남들이 안해본것을 해서 궁극적인 지식의 완성을 목표로 하는 블로그입니다. 제품리뷰 , IT, 프로그래밍 관련글을 포스팅합니다. 또한 자기만 읽으려고 만든 정리 노트식의 글들을 싫어합니다. 비전공자나 처음 본 사람도 최대한 이해할 수 있도록 프로그래밍 관련 글들을 쉽게 적으려고 노력하고 있습니다. 보안 계통과 컴퓨터의 Low-Level 한 분야에 관심이 많습니다.
한 Blynk 서버에서 연결된 여러개의 ESP8266 디지털핀을 각각 제어하려면
Blynk의 Virtual Pin 기능을 사용해주시면 됩니다.
저는 Wemos D1 Mini를 사용했습니다.
Blynk서버의 중앙제어 예제는 생략합니다.
Blynk 로컬 서버 구축은 여기를 참고해주세요.
//신호등 1번 #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> int red = D4; int yellow = D3; int green = D2; // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "Token"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "SSID_NAME"; char pass[] = "PASSWORD"; char ip[] = "Custom_server_ip"; void setup() { // Debug console Serial.begin(9600); pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); Blynk.begin(auth, ssid, pass, ip, 8080); } void loop() { Blynk.run(); } BLYNK_WRITE(V2) { if (param.asInt() == 1) digitalWrite(green, HIGH); else digitalWrite(green, LOW); } BLYNK_WRITE(V1) { if (param.asInt() == 1) digitalWrite(yellow , HIGH); else digitalWrite(yellow, LOW); } BLYNK_WRITE(V0) { if (param.asInt() == 1) digitalWrite(red, HIGH); else digitalWrite(red, LOW); }
//신호등 2번 #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> int red = D4; int yellow = D3; int green = D2; // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "Token"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "SSID_NAME"; char pass[] = "PASSWORD"; char ip[] = "Custom_server_ip"; void setup() { // Debug console Serial.begin(9600); pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); Blynk.begin(auth, ssid, pass, ip, 8080); } void loop() { Blynk.run(); } BLYNK_WRITE(V5) { if (param.asInt() == 1) digitalWrite(green, HIGH); else digitalWrite(green, LOW); } BLYNK_WRITE(V4) { if (param.asInt() == 1) digitalWrite(yellow , HIGH); else digitalWrite(yellow, LOW); } BLYNK_WRITE(V3) { if (param.asInt() == 1) digitalWrite(red, HIGH); else digitalWrite(red, LOW); }
기본적으로 연결할때 같은 Auth-Token에 연결해주고
클라이언트 단에서 BLYNK_WRITE(V핀번호) 로 이벤트를 받아주면 됩니다.
위 예제에서는 Blynk 서버에서 V0에 신호를 보내면 1번 Wemos D1의 빨간불이,
V3에 신호를 보내면 2번 Wemos D1의 빨간불이 켜지게 됩니다.
Blynk 로컬 서버를 이용하지 않으실거라면 코드에서
이부분을 제거하고
char ip[] = "Custom_server_ip";
Blynk 셋업 부분을 다음과 같이 변경합니다.
Blynk.begin(auth, ssid, pass);
사실 BLYNK는 다중제어에는 크게 적합하지 않습니다.
1:n의 다중제어가 필요하다면 MQTT등의 서비스를 이용하는걸 추천합니다
BLYNK로 ESP8266 여러개 제어하기 (Multiple Device)
한 Blynk 서버에서 연결된 여러개의 ESP8266 디지털핀을 각각 제어하려면
Blynk의 Virtual Pin 기능을 사용해주시면 됩니다.
저는 Wemos D1 Mini를 사용했습니다.
Wemos D1을 이용한 신호등 중앙제어 예제
Server-Side
Blynk서버의 중앙제어 예제는 생략합니다.
Blynk 로컬 서버 구축은 여기를 참고해주세요.
Client-Side
기본적으로 연결할때 같은 Auth-Token에 연결해주고
클라이언트 단에서 BLYNK_WRITE(V핀번호) 로 이벤트를 받아주면 됩니다.
위 예제에서는 Blynk 서버에서 V0에 신호를 보내면 1번 Wemos D1의 빨간불이,
V3에 신호를 보내면 2번 Wemos D1의 빨간불이 켜지게 됩니다.
Blynk 로컬 서버를 이용하지 않으실거라면 코드에서
이부분을 제거하고
Blynk 셋업 부분을 다음과 같이 변경합니다.
사실 BLYNK는 다중제어에는 크게 적합하지 않습니다.
1:n의 다중제어가 필요하다면 MQTT등의 서비스를 이용하는걸 추천합니다
'프로젝트 > 아두이노' 카테고리의 다른 글
COMMENT WRITE