- OTAプログラミングとは何ですか?
- ESP8266 NodeMCU
- 必要なコンポーネント
- ワイヤレスでOTAアップデートを受信するためのNodeMCUの準備
- ESP8266OTA転送用のLED点滅プログラム
- OTAアップデートによるESP8266のLEDの点滅
OTAプログラミングとは何ですか?
OTAプログラミング(無線)は、デバイスが物理的なアクセスなしにファームウェアまたはソフトウェアをワイヤレスでアップグレードできるようにするプロセスです。有線シリアル通信ではなく、Wi-Fi、Bluetooth、GPRS、4G / 3Gなどのワイヤレステクノロジーを使用しています。OTAは、マイクロコントローラー、携帯電話、コンピューター、セットトップボックスなどのデバイスを再プログラムするために使用されます。OTAアップデートは通常、ソフトウェアのアップデート、バグの解決、一部の機能の追加などのために送信されます。IoTデバイスの使用が増えるにつれて、OTAはデータ伝送速度が低い周波数帯域(868 MHz、900 MHz、2400 MHz)。
このチュートリアルでは、OTAアップデートをESP8266 NodeMCUに送信して、LEDを点滅させます。
ESP8266 NodeMCU
NodeMCUはオープンソースのIoTプラットフォームです。これには、EspressifSystemsの低コストWi-Fi対応ESP8266Wi-Fi SoCで実行されるファームウェアと、ESP-12モジュールに基づくハードウェアが含まれます。GPIO、SPI、I2C、ADC、PWM、UARTピンがあります。ArduinoIDEでプログラムできます。NodeMCUには、USBからTTLへの機能を提供するCP2102ICが搭載されています。ESP8266の詳細については、他のESP8266ベースのプロジェクトを確認してください。
必要なコンポーネント
- NodeMCU ESP8266
- マイクロUSBケーブル
- Arduino IDE
ワイヤレスでOTAアップデートを受信するためのNodeMCUの準備
まず、マイクロUSBケーブルを使用してNodeMCUESP8266をPCに接続します。次に、OTAを使用してファームウェアをアップロードするには、マイクロUSBを使用してスケッチをシリアルにアップロードしてESPIPアドレスを生成する必要があります。これは、次回ファームウェアをワイヤレスでアップロードするために必要な手順です。[ツール]-> [ポート] から、ケーブルが接続されているシリアルポートを選択し ます 。
ESP8266には、ArduinoIDEから直接アクセスできるライブラリと例が付属しています。Arduino IDEを開き、次にBasicOTAの例を開きます。
「your-ssid」と「your-password」をWi-FiSSIDとパスワードに置き換えてスケッチを編集し、スケッチをアップロードします
プログラムを正常にアップロードした後、シリアルモニターを開きます。シリアルモニターで115200のボーレートを設定し、NodeMCUESP8266のリセットボタンを押します。NodeMCU ESP8266をWi-Fiに接続すると、Wi-Fi資格情報がチェックされるため時間がかかります。SSIDとパスワードが正しければ、NodeMCU ESP8266がWi-Fiに接続され、ESPのIPアドレスがシリアルモニターに表示されます。
ESP8266OTA転送用のLED点滅プログラム
点滅するLEDプログラムをOTAを介して転送するための完全なコードは、最後に記載されています。ここでは、コードのいくつかの重要な部分について説明します。
必要なライブラリをインポートすることは、コードを書くための最初のステップです。 ESP8266WiFi.h ライブラリは、ネットワークへの接続に必要なESP8266固有のWi-Fiルーチンを提供します。また、ステーションモードまたはソフトアクセスポイントモードでESP8266を操作するためのメソッドとプロパティも提供します。 ESP8266mDNS.hを 使用すると、sketchはマルチキャストDNSクエリに応答できます。
#include
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 * password = STAPSK;
ESP8266はステーションモードとして設定され、資格情報を与えることでWi-Fi接続が開始されます。ESPがWi-Fiモジュールに接続するまでに少し時間がかかります。SSIDとパスワードが正しい場合はWi-Fiに接続され、SSIDとパスワードが正しくない場合は1秒ごとに再起動します。
Serial.begin(115200); //ボーレートを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( "Connection Failed!Rebooting…"); delay(1000); ESP.restart(); }
ESPのIPアドレスは、Wi-Fiモジュールに接続するときにシリアルモニターに印刷されます。 WiFi.localIP() はESPのIPアドレスを提供します。
コードをアップロードした後、115200ボーレートでシリアルモニターを正常に開きます。リセットボタンを押すと、数秒後にシリアルモニターにESPIPアドレスが表示されます。これで、ファームウェアをワイヤレスでアップロードできるようになります。
OTAアップデートによるESP8266のLEDの点滅
次のスケッチをアップロードする前に、[ツール]に 移動し、ファームウェアをNodeMCUにワイヤレスでアップロードするためにPORTをESPIPアドレスに変更し ます 。
次に、Arduino IDEを使用してワイヤレスでNodeMCUに点滅するLEDの以下のスケッチをアップロードし、PCとESPが同じWi-Fiネットワークに接続され、ESPが何らかの電源から電力を供給されていることを確認します。
コードを正常にアップロードすると、NodeMCUESP8266のLEDが1秒ごとに点滅し始めます。ESPにファームウェアをアップロードする際のセキュリティのために、スケッチでホスト名とパスワードを設定することもできます。