안녕하세요. 애드라이프 입니다.
오늘은 저번 포스팅에 이어서 DIY HOME IOT 2편입니다.
이번에는 저번 포스팅에서 제시했던 3가지중 1,2번을 하기전에 간이 TEST를 해보겠습니다.
안방을 포함한 3가지 공간의 전등제어 및 캔들 무드등의 제어가 목표이기 때문에
실현하기 위한 준비로 LED와 조도 센서를 준비 했습니다.
LED는 와이파이를 이용하여 전등을 ON/OFF 해야 하기 때문에 간이 전등 역할로 선정하였고
조도 센서(CDS)는 와이파이로 전등을 키고자 할때 실제 전등이 켜졌는지, 또는
집에 불을 끄고 나왔는지 헷갈릴때 꺼져있는 상태를 확인하기 위한 방법으로 선정하게 되었습니다.
그리고 이번 포스팅에서는 제가 이전에 다뤘던 WIFI모듈중에 WeMos D1 R2보드를 사용합니다.
표제와 같이 Blynk어플을 이용하여 WeMos D1 R2보드를 통해 LED와 조도센서를 컨트롤하기 위한
회로도를 먼저 살펴 보겠습니다. ▼
조도센서의 값을 읽기 위해 A0포트에 연결하고 LED의 ON/OFF제어 핀은 D3포트로 선정했습니다.
조도센서와 같이 있는 저항은 저같은 경우 5K ohm저항이 가장 보기 편했습니다만 저항 종류가 많이 않은분들은
가지고 있는 저항을 사용 하셔도 상관없습니다. 변화만 감지되면 되는 정도의 TEST이기 때문입니다.
회로도의 실제 배선한 모습은 아래와 같습니다. 조도센서가 led쪽으로 휘어 있는 이유는
지금 led는 전등을 대신하고 있기때문에 led가 ON/OFF되었을 경우에 값의 변화를 알아 보기 위해서
조도센서를 led쪽으로 휘어놓았습니다.
Blynk어플의 설정 법은 이전 포스팅에서 참고하시면 쉽게 하실 수 있습니다.
혹여 더 자세한 정보가 필요하신 분들은 blynk홈페이지를 방문하시면 됩니다.
간단하게 지금까지 다루지 않은 부분만 잠깐 설명하면
디지털 포트와 아날로그 포트가 아닌 가상포트를 설정하는 방법과
이번 포스팅에서 사용하는 Weget Box아이템에 대한 정보가
아래 사진과 같습니다. ▼
필요한 아이템을 추가하여 포트를 설정할 때 Virtual을
선택하고 임의의 포트를 설정해주세요.
LED ON/OFF를 위한 버튼을 하나 추가하고
가상포트 V1로 설정합니다.
조도센서의 값을 표시하기 위해 Value Display,
SuperChart 를 추가하고 두가지 모두
가상포트 V2로 설정합니다.
이제 프로젝트 설정도 끝났으니 프로그램을 살펴 보도록 하겠습니다.
지금까지 다뤘던 WIFI모듈의 프로그램과 크게 다르지 않습니다만
위에서 정해 줬던 가상포트를 설정하여 원하는 동작을 구현하면
좀더 편한 유저인터페이스를 구성할 수 있는 장점이 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> //라이브러리 추가 필요. char auth[] = "8e0f3537************************"; //blynk어플로 만든 프로젝트의 해당 토큰 값을 적어 넣습니다. char ssid[] = "SK_************"; //자신이 연결할 와이파이 이름을 적습니다, char pass[] = "1*********"; //해당 와이파이의 비밀번호를 입력합니다. int ledPin = D3; //led제어핀 설정 int CdsPin = A0; //조도센서값을 읽기 위한 핀 설정 int CdsVaule; void setup() { delay(10); pinMode(ledPin, OUTPUT); //led를 제어하기 위해 선정한 포트 역할을 OUTPUT으로 설정 Serial.begin(115200); //시리얼 통신 속도 115200설정 Blynk.begin(auth, ssid, pass); //와이파이 연결시도 } BLYNK_WRITE(V1) // 가상의 포트로 설정한 부분의 기능 구현 필자는 V1포트로 led on/off버튼을 만들었습니다. { int pinData = param.asInt(); if(pinData == HIGH) //blynk어플에서 만든 led제어를 위한 버튼을 눌렀을 때 { digitalWrite(ledPin, HIGH); } else if(pinData == LOW) //blynk어플에서 만든 led제어를 위한 버튼을 눌리지 않았을때 { digitalWrite(ledPin, LOW); } } BLYNK_READ(V2) // 가상의 포트로 설정한 부분의 기능 구현 필자는 V2포트로 조도센서값을 모니터링하기 위한 디스플레이용 아이템을 설치합니다. { Blynk.virtualWrite(V2, CdsVaule); } void sensingData() { delay(100); int val = analogRead(A0); CdsVaule = val; Serial.println(CdsVaule, 1); } void loop() { Blynk.run(); sensingData(); } | cs |
프로그램의 전체적인 흐름은 주석을 참고해주세요.(옆으로 넘기면서 보실 수 있습니다.)
마지막으로 동영상으로 실제 동작을 확인 하면서 이번 포스팅을 끝내도록 하겠습니다.▼
지금까지 아두이노(Arduino) 고급 WIFI모듈을 이용한 DIY HomeIoT(Blynk) - 2편에 대한 포스팅이였습니다.
3편에서는 온습도 센서와 서보모터를 가지고 간이TEST를 진행하겠습니다.
계속해서 도움되는 포스팅으로 찾아뵙겠습니다.
by 애드라이프
'아두이노 > 아두이노 고급' 카테고리의 다른 글
아두이노(Arduino) 고급 WIFI모듈을 이용한 DIY HomeIoT(Blynk) - 3편 (0) | 2018.12.24 |
---|---|
아두이노(Arduino) 고급 WIFI모듈을 이용한 DIY HomeIoT(Blynk) - 1편 (0) | 2018.12.18 |
아두이노(Arduino) 고급 음성인식 모듈 아두보이스 3편 음성으로 조명제어 (0) | 2018.12.09 |
아두이노(Arduino) 고급 음성인식 모듈 아두보이스 2편 프로그램 TEST (0) | 2018.12.07 |
아두이노(Arduino) 고급 음성인식 모듈 아두보이스 1편 기본사용법 (0) | 2018.12.05 |