- OTA 프로그래밍이란 무엇입니까?
- ESP8266 NodeMCU
- 필요한 구성 요소
- 무선으로 OTA 업데이트를받을 수 있도록 NodeMCU 준비
- ESP8266 OTA 전송을위한 깜박이는 LED 프로그램
- OTA 업데이트를 통해 ESP8266의 LED 깜박임
OTA 프로그래밍이란 무엇입니까?
OTA 프로그래밍 (무선)은 장치가 물리적 액세스없이 무선으로 펌웨어 또는 소프트웨어를 업그레이드 할 수 있도록하는 프로세스입니다. 유선 직렬 통신이 아닌 Wi-Fi, Bluetooth, GPRS 또는 4G / 3G와 같은 무선 기술을 사용합니다. OTA는 마이크로 컨트롤러, 휴대폰, 컴퓨터, 셋톱 박스 등과 같은 장치를 다시 프로그래밍하는 데 사용됩니다. OTA 업데이트 는 일반적으로 소프트웨어 업데이트, 버그 해결, 일부 기능 추가 등을 위해 전송됩니다. IoT 장치의 사용이 증가함에 따라 OTA는 다음을 사용하여 전송됩니다. 데이터 전송률이 낮은 주파수 대역 (868MHz, 900MHz, 2400MHz).
이 튜토리얼에서는 LED를 깜박이기 위해 ESP8266 NodeMCU에 OTA 업데이트를 보냅니다.
ESP8266 NodeMCU
NodeMCU는 오픈 소스 IoT 플랫폼입니다. 여기에는 Espressif Systems의 저렴한 Wi-Fi 지원 ESP8266 Wi-Fi SoC에서 실행되는 펌웨어와 ESP-12 모듈을 기반으로하는 하드웨어가 포함됩니다. GPIO, SPI, I2C, ADC, PWM 및 UART 핀이 있습니다. Arduino IDE로 프로그래밍 할 수 있습니다. 온보드 NodeMCU에는 USB to TTL 기능을 제공하는 CP2102 IC가 있습니다. ESP8266에 대해 자세히 알아 보려면 다른 ESP8266 기반 프로젝트를 확인하세요.
필요한 구성 요소
- NodeMCU ESP8266
- 마이크로 USB 케이블
- Arduino IDE
무선으로 OTA 업데이트를받을 수 있도록 NodeMCU 준비
먼저 마이크로 USB 케이블을 사용하여 NodeMCU ESP8266을 PC와 연결합니다. 그런 다음 OTA를 사용하여 펌웨어를 업로드하려면 마이크로 USB를 사용하여 스케치를 직렬로 업로드하여 ESP IP 주소를 생성해야합니다. 다음 번에 무선으로 펌웨어를 업로드하는 데 필요한 단계입니다. Tools- > Port 에서 케이블이 연결된 직렬 포트를 선택합니다.
ESP8266은 Arduino IDE에서 직접 액세스 할 수있는 라이브러리 및 예제와 함께 제공됩니다. Arduino IDE를 열고 BasicOTA 예제를 엽니 다.
"your-ssid"및 "your-password"를 Wi-Fi SSID 및 비밀번호로 대체하여 스케치를 편집 한 다음 스케치를 업로드합니다.
프로그램을 성공적으로 업로드 한 후 직렬 모니터를 엽니 다. 직렬 모니터에서 115200의 Baud Rate를 설정하고 NodeMCU ESP8266에서 Reset 버튼을 누릅니다. NodeMCU ESP8266을 Wi-Fi에 연결하면 Wi-Fi 자격 증명을 확인하는 데 시간이 걸립니다. SSID와 암호가 정확하면 NodeMCU ESP8266이 Wi-Fi에 연결되고 ESP의 IP 주소가 직렬 모니터에 표시됩니다.
ESP8266 OTA 전송을위한 깜박이는 LED 프로그램
OTA를 통해 깜박이는 LED 프로그램을 전송하기위한 완전한 코드 가 마지막에 제공되며 여기에서는 코드의 몇 가지 중요한 부분을 설명합니다.
필요한 라이브러리를 가져 오는 것은 코드 작성의 첫 번째 단계입니다. ESP8266WiFi.h 라이브러리는 네트워크에 연결하는 데 필요한 ESP8266 특정 Wi-Fi 루틴을 제공합니다. 또한 스테이션 모드 또는 소프트 액세스 포인트 모드에서 ESP8266을 작동하는 방법과 속성을 제공합니다. ESP8266mDNS.h를 사용하면 스케치가 멀티 캐스트 DNS 쿼리에 응답 할 수 있습니다.
#포함
ESP를 연결할 Wi-Fi 네트워크의 SSID 및 비밀번호에 대한 변수를 정의합니다. PC와 ESP를 동일한 Wi-Fi 네트워크에 연결해야합니다.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * 암호 = STAPSK;
ESP8266이 스테이션 모드로 설정되고 자격 증명을 제공하여 Wi-Fi 연결이 시작됩니다. ESP가 Wi-Fi 모듈에 연결하는 데 약간의 시간이 걸립니다. SSID와 비밀번호가 맞으면 Wi-Fi에 연결되고 SSID와 비밀번호가 맞지 않으면 1 초마다 재부팅됩니다.
Serial.begin (115200); // Baud Rate를 115200으로 설정 Serial.println ("Booting"); // ESP를 Wi-Fi WiFi에 연결하는 단계 .mode (WIFI_STA); // ESP를 스테이션 모드로 설정 WiFi.begin (ssid, password); // Wi-Fi 자격 증명 while (WiFi.waitForConnectResult ()! = WL_CONNECTED) // ESP를 Wi-Fi에 연결하는 데는 시간이 걸리므로 연결될 때까지 기다리세요 { Serial.println ("연결 실패! 재부팅 중…"); 지연 (1000); ESP.restart (); }
ESP의 IP 주소는 Wi-Fi 모듈에 연결할 때 직렬 모니터에 인쇄됩니다. WiFi.localIP () 는 ESP의 IP 주소를 제공합니다.
코드를 업로드 한 후 115200 Baud Rate로 직렬 모니터를 성공적으로 엽니 다. 재설정 버튼을 누르면 몇 초 후에 직렬 모니터에서 ESP IP 주소를 볼 수 있습니다. 이제 무선으로 펌웨어를 업로드 할 수 있습니다.
OTA 업데이트를 통해 ESP8266의 LED 깜박임
다음 스케치를 업로드하기 전에 Tools 로 이동하여 PORT를 ESP IP 주소로 변경하여 NodeMCU에 무선으로 펌웨어를 업로드하십시오.
이제 Arduino IDE를 사용하여 NodeMCU에서 무선으로 깜박이는 LED의 아래 스케치를 업로드하고 PC와 ESP가 동일한 Wi-Fi 네트워크에 연결되어 있고 ESP가 일부 전원으로 전원이 공급 되는지 확인하십시오 .
코드를 성공적으로 업로드하면 NodeMCU ESP8266의 LED가 1 초마다 깜박이기 시작합니다. ESP에 펌웨어를 업로드하는 동안 보안을 위해 스케치에서 호스트 이름과 비밀번호를 설정할 수도 있습니다.