6일차 아두이노 IOT 스마트 홈 | ||
안녕하세요~!!
구독자 여러뷴~
디바이스마트 엔지니어 흥프로 입니다~~!!~!
이번 포스팅은
6일차 아두이노 IOT 스마트 홈 wifi + App Inventor (3)입니다.
이전 포스팅을 이어서 진행 하겠습니다~~
완성 된 디자인과 블록(웹주소 넣어줘야함)입니다.

6일차 아두이노 IOT 스마트 홈 wifi + App Inventor (3)입니다.
이전 포스팅을 이어서 진행 하겠습니다~~
완성 된 디자인과 블록(웹주소 넣어줘야함)입니다.
아두이노 코드 입니다.!!!!
저희는 아두이노 2대를 사용 하기로 했지용?!!
기억 하셔야 합니다!!!
요기에 꼭 사용하시는 와이파이 이름과 비번을 넣어주세요!!
const char* ssid = "와이파이 이름";
const char* password = "와이파이 비번";
아두이노 코드는
http://www.esp8266learning.com/wemos-webserver-example.php
여기것을 참조해서 변형 하였습니다.~
#include <ESP8266WiFi.h>
const char* ssid = "와이파이 이름";
const char* password = "와이파이 비번";
int pin2 = D2;
int pin8 = D8;
int LED_1 ;
int LED_2 ;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
pinMode(pin2,OUTPUT);
pinMode(pin8,OUTPUT);
digitalWrite(pin2, LOW);
digitalWrite(pin8, LOW);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL : ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
if (request.indexOf("/pin2=ON") != -1) {
digitalWrite(pin2, HIGH);
LED_1 = HIGH;
}
if (request.indexOf("/pin2=OFF") != -1){
digitalWrite(pin2, LOW);
LED_1 = LOW;
}
if (request.indexOf("/pin8=ON") != -1) {
digitalWrite(pin8, HIGH);
LED_2 = HIGH;
}
if (request.indexOf("/pin8=OFF") != -1){
digitalWrite(pin8, LOW);
LED_2 = LOW;
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
//client.println("<!DOCTYPE HTML>");
//client.println("<html>");
//client.print("Led pin is now: ");
if(LED_1 == HIGH && LED_2 == LOW ) {
client.println("LED_1 ON / LED_2 OFF");
}
else if(LED_1 == LOW && LED_2 == HIGH ) {
client.println("LED_1 OFF / LED_2 ON");
}
else if(LED_1 == HIGH && LED_2 == HIGH ) {
client.println("LED_1 ON / LED_2 ON");
}
else if(LED_1 == LOW && LED_2 == LOW ) {
client.println("LED_1 OFF / LED_2 OFF");
}
else {
client.println("LED_1 OFF / LED_2 OFF");
}
//client.println("<br><br>");
//client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 5 ON<br>");
//client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 5 OFF<br>");
//client.println("</html>");
delay(1);
Serial.println("Client disconnected");
Serial.println("");
}
아두이노 2번 소스 코드 입니다.
#include <ESP8266WiFi.h>
const char* ssid = "와이파이 이름";
const char* password = "와이파이 비번";
int pin2 = D2;
int pin8 = D8;
int LED_3 ;
int LED_4 ;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
pinMode(pin2,OUTPUT);
pinMode(pin8,OUTPUT);
digitalWrite(pin2, LOW);
digitalWrite(pin8, LOW);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL : ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
if (request.indexOf("/pin2=ON") != -1) {
digitalWrite(pin2, HIGH);
LED_3 = HIGH;
}
if (request.indexOf("/pin2=OFF") != -1){
digitalWrite(pin2, LOW);
LED_3 = LOW;
}
if (request.indexOf("/pin8=ON") != -1) {
digitalWrite(pin8, HIGH);
LED_4 = HIGH;
}
if (request.indexOf("/pin8=OFF") != -1){
digitalWrite(pin8, LOW);
LED_4 = LOW;
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
//client.println("<!DOCTYPE HTML>");
//client.println("<html>");
//client.print("Led pin is now: ");
if(LED_3 == HIGH && LED_4 == LOW ) {
client.println("LED_3 ON / LED_4 OFF");
}
else if(LED_3 == LOW && LED_4 == HIGH ) {
client.println("LED_3 OFF / LED_4 ON");
}
else if(LED_3 == HIGH && LED_4 == HIGH ) {
client.println("LED_3 ON / LED_4 ON");
}
else if(LED_3 == LOW && LED_4 == LOW ) {
client.println("LED_3 OFF / LED_4 OFF");
}
else {
client.println("LED_3 OFF / LED_4 OFF");
}
//client.println("<br><br>");
//client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 5 ON<br>");
//client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 5 OFF<br>");
//client.println("</html>");
delay(1);
Serial.println("Client disconnected");
Serial.println("");
}
넣어 주세요~ 아두이노 1번과 2번에
위에 써있는 http://111.111.111.111/
이것을 복사 하셔서요
앱 인벤터로 돌아갑니다.!!!
블록에 넣어 주세요!!!
넣어 주시는데 뒤에 꼭
/pin2=ON
붙혀 주셔야 해요
아두이노가 해당 명령어를 읽어서 동작을 수행 합니다.
전체적으로 넣어 줄껍니다.
이런식으로 넣어 주시면 됩니다.
아두이노 1번의 웹 주소는 왼쪽(버튼 1~4)
아두이노 2번의 웹 주소는 오른쪽(버튼 5~8)에 넣어주세요.
넣어 주셨다면
연결에
AI 컨패니언을 눌러주세요
이런식으로 QR코드와 코드명이 나옵니다.
앱 인벤터는 켜두세요~(인터넷창은 끄지마세용)
이제!!!!
스마트폰으로 가봅시다
아래 코드 넣는곳에 6자리 코드를 넣으셔도 되고
스켄을 하셔도 됩니다.
자 들어가게 되면
짜잔!!!
테스트 진행 해보시고
문제 있거나 안되는 부분 있으면
댓글로 남겨주세요!! 같이 해결해봅시다.
아래 LED_ALL ON / OFF는 숙제입니다.
다 켜지고 다 꺼지는거에요 ㅎㅎ
오늘은 여기까지 포스팅하고요
추가로 궁금하신게 있으신 분들은
댓글 달아 주시면 답변 드리겠습니다~
감사합니다!!~ 안뇽!!!
3 댓글
작성자가 댓글을 삭제했습니다.
답글삭제작성자가 댓글을 삭제했습니다.
답글삭제외부전원으로 넣고 밖에서 실제로 조종하려면 어떤식으로 해야 좋을까요?
답글삭제다른 와이파이에서 접속하면 불이 안켜지던데..