ESP-NOWのサンプルプログラムです。ESP-NOWの使い方がなるべく簡単にわかるように、シンプルに書きました。
構造体を用いて直感的でわかりやすく通信できるやり方を採用しています。参考になれば幸いです。
プログラムにはコメントでアツい解説が書かれています。
プログラムの場所は、simple_exampleフォルダの中にreceive、sendがあり、それぞれのsrcの中です。
動作確認はM5core2とM5FIREで行いました。
ESP-NOWとは、ESPマイコンなら使用可能な低遅延無線通信の規格です。wifiやbluetoothと比べると、以下のような特徴があります。
特徴 | ESP-NOW | WiFi | Bluetooth |
---|---|---|---|
通信距離 | 約100m(校庭1個分) | 約50m(教室2〜3個分) | 約10m(教室1個分) |
速さ | まあまあ速い | とても速い | 普通 |
電池の持ち | 長持ち | すぐ減る | 長持ち |
つなぎ方 | 直接つながる | ルーター経由 | 直接つながる |
接続できる数 | 最大20台 | 理論上は数百台以上(実際はルーターの性能による) | クラシック:最大7台 BLE:理論上は無制限(実際は数十〜数百台) |
設定の難しさ | 超簡単 | ちょっと難しい | まあまあ簡単 |
-
電池が長持ち: スマホのバッテリーセーブモードみたいに、必要な時だけ起きて通信します。
-
すぐにつながる: テレビのリモコンを押したらすぐ反応するような感じで、待ち時間がほとんどありません。
-
使い方が簡単: レゴブロックをつなぐような感覚で、簡単にデバイス同士をつなげられます。
-
ESP32チップと仲良し: ESP32というチップを使ったデバイスとは、特別な設定なしでおしゃべりできます。
-
接続できる数: 1台のESP-NOWデバイスが直接通信できるのは最大20台までです。これは、例えば教室内のセンサーや機器をつなぐのに十分な数です。
ESP-NOWは、例えば学校の校庭にある温度センサーや、家の中の電気スイッチなど、近くにあるモノ同士を直接つなげたい時に便利です。WiFiのようにインターネットルーターがなくても使えるのが大きな特徴です。
ただし、スマホとつなげたり、インターネットを使ったりする場合は、WiFiやBluetoothの方が向いています。用途に応じて使い分けるのがポイントです!
ESP-NOWは主にESP8266とESP32シリーズのマイコンで使用できます。これらは、Espressif Systems社が開発した特別なWiFiチップです。
-
使えるデバイスの例:
- ESP8266
- ESP32
- ESP32-S2
- ESP32-C3 ESP32-S3
- その他のESP32シリーズ
-
使えないデバイスの例:
- Arduino UNO
- Raspberry Pi
- 一般的なスマートフォン
-
特別な設計: ESP-NOWは、EspressifのESPチップ用に特別に設計された通信プロトコルです。
-
ハードウェアサポート: ESPチップには、ESP-NOW通信を効率的に処理するための特別なハードウェア機能があります。
-
ファームウェアの一部: ESP-NOWは、ESPチップのファームウェアに組み込まれています。
- ESP-NOWデバイスは、WiFiを使って他の種類のデバイス(スマートフォンやパソコンなど)と間接的に通信することができます。
- 例えば、ESP-NOWデバイスがデータを集め、それをWiFiネットワークを通じてサーバーに送信し、そのサーバーから他のデバイスがデータにアクセスする、といった方法があります。
ESP-NOWは、ESPマイコン同士の直接通信に特化した技術です。他の通信方式と組み合わせることで、より幅広いデバイスとの連携も可能になります。