loading

if you want Ubiquitous & Intelligent in your room?

(방에 유비쿼터스와 지능형 시스템이 필요한가요?)

But, it is so expensive for gadget and installation fee?

(장비와 설치가 너무 비싸다고요?)

From Now on you can build yout own Ubiquitous & Intelligent System!

(이제 부터 여러분이 직접 만들어 봅시다!)

Step 1: What Is Ubiquitous?

Ubiquitous is interesting concept

(유비쿼터스는 흥미로운 컨셉입니다.)

maybe, you might already know about it, don`t you?

(아마도, 당신은 이미 알고 있고 있을 것입니다 그렇죠?)

Ubiquitous is concepted by 1988 year, PARC(Palo Alto

Research Center) of Xerox company, Mark Weiser

(유비 쿼터스는 1988년 제로스사의 PARC에서 마크 와이저에 의해 제시되었습니다.)

he studied Computer Network and Human . also he predicted the future of Ubiquitous we know.

(그는 컴퓨터 네트워크와 사람을 연구하엿습니다. 또한 그는 우리가 아는 미래의 유비쿼터스의 예측하였습니다.)

Today Ubiquitous has 5C and 5 ANY

(오늘날, 유비쿼터스는 5C와 5ANY로 구성되어집니다.)

5C is Computing(컴퓨팅) Communication(커뮤니케이션) Connectivity(접속) Contents(컨텐츠) and Calm(조용함)

5 ANY is Any-time(언제) Any-Where(어디서나) Any-Network(어떠한 네트워크에서) Any-Device(모든 기기들간의)

and Any-Service(어떠한 서비스도)

in this instructables , i am going to show you how to bulid DIY Ubiquitous system with INTEL GAILIEO 2 , in the form of Power extension outlet

( 이 블로그에서는 인텔 갈릴레오 2세대를 활용한 멀티탭 형식의 DIY 유비쿼터스 & 인텔리젠트 시스템을 만드는 것을 소개하겠습니다)

Step 2: What Is INTEL GAILIEO 2 ?

Intel gailieo is open soure product made by intel

(갈릴레오는 인텔에서 제작된 오픈 소스 기반의 개발 플랫폼입니다)

It has capacity for ethernet and PCI express and of course compatible arduino uno

(아두이노와 호환될뿐 만아니라, 에더넷과 PCI 도 내장으로써 가지고 있습니다)

If you want to use complex tech in a single board such as wifi, sd card, bluetooth and ethernet

(만약에 와이파이나 sd 카드 , 블루투수와 에더넷 같은 복합적인 기능을 사용해야한다면)

Intel gailieo would be a best option for you with efficient manner

(인텔 갈릴레오는 당신을 위한 가장 효율적인 수단일 것 입니다)

In this project i will use ethernet

( 이 프로젝트에서는 에더넷을 사용합니다.)

By the way, if you are interested in Linux programming you can easily use Ubuntu image and other linux image as well

(당신이 만약에 리눅스 프로그래밍에 흥미가 있다면, 라즈베리파이같은 느낌으로, 우분투나 다른 리눅스 이미지를 사용할 수 있습니다)

You can also use basic linux text system on board

(물론 기초 텍스트 리눅스는 내장되어 있답니다)

Step 3: Thanks, Intel!

Thamks to intel idea contest , l can make this project in reality

(이 프로젝트가 가능하게 해준 인텔 아이디어 공모전에 감사합니다)

I appreciate for this chance and thanks to related people to this contest

( 이 기회를 감사하게 생각하고 이 공모전과 관련있는 사람들게 감사드립니다)

Step 4: Tools and Parts You Need

There are some tools and parts you need

( 몇 가지 필요한 도구와 부품 )

Dc Ac relay for home application controll

( 가전 제품을 제어하기위한 DC AC 릴레이 )

in my case i wii use 5v input and 220v 15a SSR)

( 이번 경우에는 5v 릴레이 입력 220 SSR) ( 구입처 : 다바이스마트 // 제어하고 싶은 만큼의 수 )

Power socket and outlet

( 파워 소켓과 플러그 ) (( 구입처 : 다바이스마트 또는 다이소 // 제어하고 싶은 만큼의 수)

Internet router and lan wire

( 인터넷 라우터 , 랜 선 ) ( 구입처 : 인터넷 쇼핑몰 11ST // 각각 하나씩)

Intel gailieo 2 board

( 인터넷 갈릴레오 2 보드 ) ( 구입처 : 디바이스마트 인텔 갈릴레오 2 제공 부품 사용 // 1개)

Some amount of wire gauage

( 약간의 연결 와이어 ) ( 구입처 : 다바이스마트 // 약 30개)

Distamce sensor , cds or any kind of sensor you may want

( 거리 센서 , CDS 그리고 필요한 종류의 센서 ) ( 구입처 : 다바이스마트 // 센서 당 각각 1개 )

2N3904 transistor and breadboard

( 트랜지스터 2N3904 와 브레드보드 ) // ( 구입처 : 다바이스마트 // 제어하고 싶은 만큼의 수만큼의 트랜지스터, 브레드보드 소형으로 1개)

arduino compatible Sensor that you want

( 아두이노와 호환되는 여러분이 원하는 센서들) ( 구입처 : 다바이스마트 // 각각 1개씩 )

Step 5: Assembling the Hardware

now it is able to you and it would be easy for you

( 위의 일들은 이제 여러분들이 할 수 있는 일 입니다 )

First

1. Disassemble the power outlet

( 전원 플러스 분해 하기 )

2. Connect wire with each Power outlet ( Only one side)

( 한 플러그 단 한 부분씩만 소켓과 연결하기 )

3. Now connect another side of relay (Only one side)

( 릴레이의 한 부분씩만 연결하기 )

4. Connect NOT connected other side of relay to NOT connected side point of Power outlet

( 릴레이의 연결되지 않은 부분과 연결안된 전원 소켓을 각각 연결하기 )

5. Connect multiple connected AC line to Power Socket

( 다수가 연결된 각 두선은 돼지코 플러그 와 연결하기 )

Second

http://pdf1.alldatasheet.com/datasheet-pdf/view/50...

( 데이터쉬트를 통해 E B C의 위치를 찾으세요!)

( please check the Datasheet for more information )

1. install the 2N3904 transistor to bread board

( 빵판에 2N3904 꽃기)

2. Connect Emiiter to GND of galileo

( 각 이미터와 갈릴레오의; GND 연결하기 )

3. Connect BASE to DIGITAL pin of galieo

( 각 BASE 와 갈릴레오의 디지털핀 연결하기 )

4. Connect each Collector to GND of Relay (SSR)

( 각 Collecter 와 릴레이의 음극 연결하기 )

5. Connect each positive side of Relay

( 각각 릴레이의 양극 연결하기 )

6. Connect 5V of galileo to positive side of Relay

( 모두 연결된 릴레이의 양극에 갈릴레오의 5v 연결하기 )

Third

Find more Sensor Data on other Arduino Guide , it is More helpful to you

(인터넷을 둘러보면 혹은 여기 사이트는 저보다 센서 설명이 잘 되어있어요. 쓰고 싶은 센서를 검색하고 그 대로 하세요)

1. Connect CDS in proper Position , in my case i use perfboard

( 기반에 광센서를 연결한다.)

2. Connect IR sensor or what you want on your Galileo

(적외선 센서 혹은 여러분이 쓰고 싶은 센서를 갈릴레오에 장착한다!)

3. USE AnalogRead example on Arduino-G and check the sensor`s proper actions

(갈릴레오 개발환경의 AnalogRead 예제를 사용해 센서의 작동을 확인한다)

CAUTIONS

1. you SHOULD check you connectivity between point REGULARLY

(연결상태를 각 단계마다 점검하세요)

2. since it use high-voltage , you should use proper safety gear and watch out for wrong connection!

( 220v 나 110v 같은 비교적 고압을 쓰기에 안정장비를 쓰고 연결을 신중히하세요 )

3. Please DOUBLE check your Circuit so, nothing bad things WII NOT HAPPEN

( 다시한번더, 회로의 연결상태를 꼼꼼히 보세요!, 저는 누전차단기 내려가서 고생했었어요........)

More detail is on pictures take look a it :)

(자세한 것은 사진을 참고하세요!! )

Step 6: Ready the Software

Now, let`s upload software

(이제 프로그램을 올려볻겠습니다 )

there are 3 program code for intel galileo Gen 2

( 갈릴레오 2세대에서 작동 시킬 수 있는 3가지 코드가 있습니다 )

The first is Intelligent Section

(처음은 지능형 부분입니다 )

///////////////////////////////////////////////

void setup() {
// initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(13, OUTPUT); }

// the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: /////////////////////// Intelligent SETUP ////////////////////////////////////// int sensorValue1 = analogRead(A0); int sensorValue2 = analogRead(A2); Serial.println(sensorValue1); Serial.println(""); Serial.println(""); Serial.println(""); Serial.println(sensorValue2);

///////////////////////// DISTANCE SENSOR //////////////////////////////////

if (sensorValue2 < 50) { digitalWrite(2, HIGH); digitalWrite(13, HIGH); } else if (sensorValue2 > 50) { digitalWrite(2, LOW); digitalWrite(13, LOW); } ///////////////////////// LIGHT SENSOR ////////////////////////////////// if (sensorValue1 < 20) { digitalWrite(3, HIGH); digitalWrite(12, HIGH); } else if (sensorValue1 > 100) { digitalWrite(3, LOW); digitalWrite(12, LOW); } }

/////////////////////////////////////////

Now Here is Web Server Section

(이제 웹서버 부분입니다)

///////////////////////////////////////////////////////

#include
#include

byte mac[] = { 0x98, 0x4F, 0xEE, 0x01, 0x81, 0xF2 }; IPAddress ip(192,168,10,20); byte gateway[] = { 192, 168, 10, 1 }; byte subnet[] = { 255, 255, 255, 0 };

String inString = String(35);

String Led;

int led[] = {00, 2, 3, 4 ,5 ,6 ,7 ,8,9 }; int numofleds = 8; String value[] = {"on","on","on","on","on","on","on","on","on"}; EthernetServer server(80); String data; void setup() { Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); //set pin mode for (int j = 1; j < (numofleds + 1); j++){ pinMode(led[j], OUTPUT); } Serial.println("Serial READY"); Serial.println("Ethernet READY"); Serial.println("Server READY"); }

void loop() { EthernetClient client = server.available(); if(client){ // an http request ends with a blank line boolean current_line_is_blank = true; while (client.connected()) { if(client.available()) { char c = client.read(); // if we've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so we can send a reply if (inString.length() < 35) { inString.concat(c); } if (c == '\n' && current_line_is_blank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("

"); client.println("

Home Automation controller

"); for(int i=1;i < (numofleds + 1) ;i++){ Led = String("Appliance") + i; if(inString.indexOf(Led+"=on")>0 || inString.indexOf("all=on")>0){ Serial.println(Led+"on"); digitalWrite(led[i], HIGH); value[i] = "off"; }else if(inString.indexOf(Led+"=off")>0 || inString.indexOf("all=off")>0 ){ Serial.println(Led+"on"); digitalWrite(led[i], LOW); value[i] = "on"; } client.println("
"+Led+" "); } client.println("
All "); client.println("

"); break; } if (c == '\n') { // we're starting a new line current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } } } // give the web browser time to receive the data delay(1); inString = ""; client.stop(); } }

////////////////////////////////////////////////////

Now is combination of two code

(두가지를 한번에 수행하는 코드 입니다)

////////////////////////////////////////////////////

#include
#include //network NB: Pins 10, 11, 12 and 13 are reserved for Ethernet module. byte mac[] = { 0x98, 0x4F, 0xEE, 0x01, 0x81, 0xF2 }; IPAddress ip(192,168,10,20); byte gateway[] = { 192, 168, 10, 1 }; byte subnet[] = { 255, 255, 255, 0 };

String inString = String(35);

String Led;

int led[] = {00, 2, 3, 4 ,5 ,6 ,7 ,8,9 }; //Led pins num 0 in arry is not used int numofleds = 8; //numofleds String value[] = {"on","on","on","on","on","on","on","on","on"}; //startup all led are off

EthernetServer server(80); String data; void setup() { Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); //set pin mode for (int j = 1; j < (numofleds + 1); j++){ pinMode(led[j], OUTPUT); } Serial.println("Serial READY"); Serial.println("Ethernet READY"); Serial.println("Server READY"); }

void loop() { int sensorValue1 = analogRead(A0); int sensorValue2 = analogRead(A2); if (sensorValue2 < 50) { digitalWrite(2, HIGH); digitalWrite(13, HIGH); } else if (sensorValue2 > 50) { digitalWrite(2, LOW); digitalWrite(13, LOW); } ///////////////////////// LIGHT SENSOR ////////////////////////////////// if (sensorValue1 < 20) { digitalWrite(3, HIGH); digitalWrite(12, HIGH); } else if (sensorValue1 > 100) { digitalWrite(3, LOW); digitalWrite(12, LOW); } EthernetClient client = server.available(); if(client){ // an http request ends with a blank line boolean current_line_is_blank = true; while (client.connected()) { if(client.available()) { char c = client.read(); // if we've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so we can send a reply if (inString.length() < 35) { inString.concat(c); } if (c == '\n' && current_line_is_blank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("

"); client.println("

Home Automation controller

"); for(int i=1;i < (numofleds + 1) ;i++){ Led = String("led") + i; if(inString.indexOf(Led+"=on")>0 || inString.indexOf("all=on")>0){ Serial.println(Led+"on"); digitalWrite(led[i], HIGH); value[i] = "off"; }else if(inString.indexOf(Led+"=off")>0 || inString.indexOf("all=off")>0 ){ Serial.println(Led+"on"); digitalWrite(led[i], LOW); value[i] = "on"; } client.println("
"+Led+" "); } client.println("
All "); client.println("

"); break; } if (c == '\n') { // we're starting a new line current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } } } // give the web browser time to receive the data delay(1); inString = ""; client.stop(); } }

///////////////////////////////////////////////////////////////////////////////////////////////////////

l am going to upload this code for us

( 첨부파일을 확인해주세요)

example (온도센서)

#include

DHT11 dht11(2);

void setup()

{

Serial.begin(9600);

}

void loop()

{

int err;

float temp, humi;

if((err=dht11.read(humi, temp))==0)

{

Serial.print("temperature:");

Serial.print(temp);

}

else

{

}

delay(DHT11_RETRY_DELAY);

if(temp > 35.5)

{

pinMode(13, HIGH);

}

else

{

pinMode(13, LOW);

}

}

Step 7: Now Let`s See!

as it is designed to work with "ANY" right type of power socket

( 110v 나 220v 같은 전압만 맞다면 어떤 종류와도 호환됩니다.)

so try as appliances as you think!

( 어떤 전자제품이나 사용해보세요 ㅎ)

Additionally, Web Host program can work with mobile device and Futher Network!!

( 더욱이, 모바일 기기나 외부 셀률러 상태에서도 접속이 가능합니다)

Neat, isn`t it?

( 대박이죠? )

here is successfully working video

( 비디오로 링크를 걸어둡니다 참고하세요!)

Step 8: Thanks for Reading and More Informations

More information for Someone else

(누군가를 위한 정보)

at first i want to use temperature sensor and Voice Regontion

(처음에 온도센서와 음성인식을 사용하려 했지만 )

but, since this library doesn`t seem to work

( 이 작업을 하는 라이브러리가 알 수 없는 에러를 내보내서 )

so l should abadon it

(어쩔 수 없이 못했었습니다 )

with more time i would work on this part also

( 나중에 시간이 된다면 이 기능들도 가능하게 할 계획에 있습니다)

by the way

( 여담으로)

as Ethernet have Low mobility so, l am looking for the way

(에더넷은 휴대와 사용이 불편해서 방법을 찾아보니)

and l found ePCI Mini card Wifi

( PCI express 급 wifi를 사용하게 되었습니다)

as you can see it perfectly work

(그리고 갈릴레오의 호환성 덕분에 잘 작동합니다)

of course l am searching more sensors to work with

(물론 더 다양한 센서들을 쓰는 것도 생각하고 있습니다.)

if you have any Question or Suggestion please, Let me know

( 질문이나 제안이 있다면 내가 알게 해주세요 ㅎ)

i will update this instruction later so stay be toned :)

( 이 글은 계속 갱신되니 자주 찾아주세요 ㅎ)

Thanks again Intel to make this project able

( 다시 한번 더 이 프로젝트가 가능하게한 인텔사에 감사드립니다!)

About This Instructable

1,234views

22favorites

More by 성우오:Ubiquitous & Intelligent  Uber Power outlet 
Add instructable to: