반응형

https://youtube.com/live/qxINaiNG4fM

[아두이노#561] ESP32를 BLYNK IoT플랫폼에 연결해서 제어해보기!(녹칸다ESP32#11)

녹칸다의 ESP32시리즈이다!
제목 그대로 과거의 녹칸다는 IoT보드로 ESP8266보드만 활용했다!
ESP32에 대한 수요도 늘어나는것 같고 제일 중요한 것은 지금의 녹칸다가 ESP32보드가 필요하게 되었다!
ESP8266으로 만들어진 예제들을 ESP32버전으로 바꾸는게 주요 주제라고 할 수 있다!
그와 동시에 약간의 설명도 첨가해서 이것저것 예제를 만들어보도록 하자!
(ESP8266과 ESP32의 차이점을 강조해서 진행해보도록함!)
(근데 거의 80~90%는 거기서 거기인듯!)

이번편은 ESP32보드를 BLYNK IoT 플랫폼에 연동시켜보도록 한다!
BLYNK IoT 플랫폼은 누군가가 서비스하는 플랫폼이다!

기본적인 범위안에서는 무료로 사용할 수 있고 조금 기능을 확장하고자 한다면 유료로 사용할 수 도 있다!
대략 무료의 범위라고 하면 연결가능한 IoT보드의 갯수 제한이 있고 사용할 수 있는 컴포넌트가 제한적이다!

그러나 최대 장점이라고 한다면 외국에서 서비스하는 서버를 사용하기 때문에 집밖에서 집안에 있는 장치를 제어할 수 있다는 것이다!(스마트폰에 블링크 앱을 설치해서 가능함)

현재 IoT보드만 활용하면 마스터와 슬레이브가 동일한 네트워크에 존재해야한다!(동일한 WiFi공유기에 접속됨)
IoT 보드를 플랫폼서버와 연결하고 플랫폼에서 제공하는 API를 활용하면 원격으로 제어할 수 있다!

하지만 이 서비스가 현재 무료인 범위가 어떻게 변화할지는 아무도 모른다!
다만 현재 녹칸다가 이 내용을 다루는 시점에서는 소규모로 IoT를 활용하기에는 무료범위에도 큰 문제가 없다!
그리고 실제로 ESP32를 BLYNK로 연동하는 방법에 대해서 많은 질문을 한다!

과거 녹칸다가 준비해둔 자료는 ESP8266버전으로만 있기에 ESP32버전을 이번에 새롭게 해보는데 의미가 있다!
블링크 서버와 연결만 하게 되면 나머지는 아주 간단하다!
전반적으로 아래와 같은 순서로 접근해보도록 하자!

1.IoT보드를 서버에 등록하는 방법
2.IoT보드에서 서버로 데이터를 전송하는 방법
3.서버에서 IoT보드를 제어하는 방법
4.스마트폰의 앱으로 제어하는 방법
5.서버와 IoT보드가 싱크를 맞추는 방법

 

(참고자료1 ESP32핀맵)
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/user-guide-devkitm-1.html
(참고자료2 INPUT_PULLUP가능핀)
불가능 34,35,2,36,39
가능 32, 33,25,26,14,27,12,13,22,23,19,21,5,18,16,17,4,15
(참고자료3 ESP32의 I2C핀)
SDA : 21
SCL : 22
(참고자료4 ESP32의 SPI핀)
SCK : 18
MOSI : 23
MISO : 19
CS : 5
(참고자료5 ESP32의 Serial핀)
RX : 16
TX : 17

(참고자료6 녹칸다의 ESP8266 BLYNK시리즈)
https://bota.tistory.com/category/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/Blynk%EC%99%80%20ESP8266
(참고자료7 BLYNK CLOUD)
https://blynk.cloud/dashboard/global
(참고자료8 한번에 서버와 접속하기 위한 입력값)
#define BLYNK_TEMPLATE_ID "템플릿ID"
#define BLYNK_DEVICE_NAME "디바이스명"
#define BLYNK_AUTH_TOKEN "인증토큰"
#define BLYNK_WIFI_SSID "공유기ID"
#define BLYNK_WIFI_PASS "공유기PW"

(깨일지식)
1.블링크 클라우드에 계정을 만드는 것은 알아서 직접하기!
2.템플릿을 생성해야한다!
3.템플릿을 생성하면 템플릿id와 템플릿name이 생성된다!(나중에 EPS32 코드에 입력된다)
4.디바이스 등록은 클라우드쪽하고 ESP32쪽하고 따로따로 진행한다!
5.디바이스 등록을 완료하게 되면 나오는 BLYNK_AUTH_TOKEN은 ESP32가 나중에 서버에 접속할때 사용하는 비밀번호 같은 개념이므로 제 3자가 알게되면 보안에 문제가 생길 수 있음!
6.ESP32에 BLYNK서버로 접속하는 코드를 입력해야하는데 입력값을 비워두고 스마트폰으로 접속해서 인증값을 채우는 방식과 업로드할때부터 값을 모두 입력하는 방법 2가지가있다!
7.아두이노 개발툴에 BLYNK라이브러리를 다운받아야한다!(1.2.0버전)
8.ESP32에 업로드해줄 코드가 blynk.edgent/Edgent_ESP32라는 코드인에 이게 단일 파일이 아니라 여러개의 파일을 묶여져있는 구조를 가지기 때문에 새로운 프로젝트에 복붙해서는 구동이 불가하다!
9.만약에 기존에 BLYNK코드가 들어가있어서 이전의 인터넷공유기주소나 등록된 정보가 갱신이 필요한 경우 툴>Erase all flash~~ 된부분을 enable로 바꾸고 업로드를 시도하면 가능하다!(기록된 모든 정보를 초기화 하는 개념)
10.블링크는 각 보드의 GPIO를 직접적으로 제어할 수 있는 방법을 제공하고 가상핀도 제공한다!
11.녹칸다는 모든것을 가상핀으로만 시연하도록 함!
12.ESP32의 LED 1개를 제어하기 위해서는 클라우드쪽에 가상핀을 생성해서 제어할 수 있는 UI를 구현해야하고 ESP32에는 LED 1개를 제어하기위한 코드가 들어가야한다!
13.블링크 클라우드에 가상핀을 등록하고 웹대시보드에서 UI를 구현한다음 어떤 데이터를 어떤 가상핀에 전송할지를 결정하면 ESP32가 작동한다!
14.ESP32가 업로드 할때의 기본요소는 센서데이터와 타이밍(interval)이다!
15.BLYNK에서는 타이밍을 제공하기 위해서 timer를 기본 제공한다!
16.ESP32보드가 현장에 설치되어있어서 PC에 USB로 접속시킬 수 없는 상황일때 인터넷에 연결되어있는 ESP32보드에 원격으로 코드를 업로드하는 행위를 OTA라고 표현한다!
16.아두이노 개발툴에서 ESP32에 업로드 되어야할 코드를 bin파일로 생성한다!
17.OTA할때 버전체크를 해서 버전이 더 높은 것이면 업데이트를 수행한다(기본설정)

반응형


(예제) txt파일은 아두이노 코드만 있는 것이고 zip파일은 작동가능한 프로젝트 단위로 압축된 코드임!


1.ESP32를 블링크 클라우드와 접속시킬 수 있는 가장 기본적인 코드를 구현하시오!

561-1.txt
0.00MB
20230510_1.zip
0.02MB

2.ESP32의 15번핀에 LED를 1개 연결하고 블링크 클라우드에서 제어하는 방법을 시연하시오!

561-2.txt
0.00MB
20230510_2.zip
0.02MB

3.(예제2를 포함해서)ESP32에 가상의 온습도센서가 있다고 가정하고 측정한 온도와 습도값을 클라우드로 전송해서 출력하시오!

561-3.txt
0.00MB
20230510_3.zip
0.02MB

4.블링크 서버에서 ESP32의 LED를 ON시켰다! ESP32가 정전이 되어서 재부팅되었다! 어떻게 하면 ESP32보드의 마지막 상태를 복원할 수 있을 것인가?

561-4.txt
0.00MB
20230510_5.zip
0.60MB

5.(예제4에서) 이산화탄소농도를 업로드하는 코드를 새롭게 업데이트 하고자 할때 OTA로 업로드 하는 방법을 보이시오!

561-5.txt
0.00MB
20230510_5.zip
0.60MB

 

6.(초심으로돌아가서) LED 4개를 19번,21번, 22번, 23번핀에 순서대로 연결하고 가상핀 V0~V3까지를 배성해서 블링크 클라우드에서 개별제어와 일괄제어가 가능하도록 구현하시오!

561-6.txt
0.00MB
20230510_6.zip
0.02MB

반응형
Posted by 덕력킹
,