0件のコメント現時点の情報です。最新情報はM5StickC非公式日本語リファレンスを確認してみてください。省電力でWi-Fi通信ができるESP-NOWを、2台のM5StickCに同じプログラムを入れて、ブロードキャスト通信ができるところまでの検証をしました。Protocolを使って通信しているようです。内容的にはWi-fiでMACアドレス宛に直接通信をしている方式であり、到達性は悪いですが、LoRaなどに近い省電力用の通信方式です。SlaveとControllerESP32のスケッチ例だとSlaveとMasterという用語を使っていますが、主にハブとなる電源につながっている送受信装置をSlave。端末側をControllerと表現することが多いようです。ESP-NOW自体にはSlaveとControllerの区別はありませんが、概念としては理解しておいたほうがよいです。通信のハブとして動き、Controllerに接続されているセンサー情報などを受信したり、Controllerへの制御を行ったりします。電源に接続されていることが多く、基本的には常に送受信が可能な状態になっていることが多いです。Controllerの役割センサーなどを搭載した端末などであり、センサー情報を定期的にSlaveに送信したあとは電源スリープするなど、省電力で動いていることが多いです。送信先確定の仕組み基本的にはWi-fiのMACアドレス宛に直接送信をするので、SlaveとControllerの差はありません。Controllerが送信すべきSlaveのMACアドレスをどう設定するかによって、実装に差がでてきます。ブロードキャストするすべてFFのMACアドレスに送信することで、すべての端末にESP-NOWを送信することができます。事前に設定をすることもないですし、非常にお手軽に利用できます。すべての端末に届くと受信側の消費電力があがったり、不要な通信を送信してしまうデメリットがあります。SOFTAPサーバーESP32のスケッチ例がこのタイプですが、Slave側がSOFTAPモードでWi-Fiアクセスポイントとして動作します。Controller側から周りにあるWi-Fiアクセスポイントの一覧をスキャンして、条件に一致するアクセスポイント名をSlaveとして、該当MACアドレスを送信先に指定します。事前書き込み等あらかじめSlaveのMACアドレスをプログラムの中などで指定して送信します。NVSなどに保存しておくことで変更も可能になります。delay(1);}サンプルで組んでみたスケッチです。SlaveとControllerの区別はなく、ブロードキャストで送受信しています。BtnAを押すことで送信し、受信すると受信結果を画面に表示しています。ESP-NOWの流れ無線初期化WiFi.mode(WIFI_STA)WiFi.disconnect()esp_now_init()Wi-FiとESP-NOWを初期化します。Wi-Fiは接続しっぱなしだと消費電力が高いのでdisconnect()しているのだと思います。送信先登録esp_now_add_peer()あらかじめ送信する先を登録する必要があります。最大20箇所まで登録が可能で、登録の削除や変更も可能です。登録時の設定でWi-Fiで送信する電波チャンネル数や、通信の暗号化などの設定も行います。コールバック関数登録esp_now_register_send_cb()esp_now_register_recv_cb()送信コールバックは、送信したあとに送信結果を受信します。ブロードキャスト宛に送信している場合には宛になりませんが、MACアドレス宛の場合には送信ができたのかを確認することができます。受信コールバックは、受信時に呼ばれます。ポーリングでの受信確認はできず、すべてコールバック関数により受信をする必要があります。コールバック関数自体は送信だけして、送信結果がいらないのであれば両方登録する必要はありません。送信esp_now_send()送信先MACアドレスを指定して、250バイトまでのデータを送信可能です。送信が完了したかは送信コールバックで確認が必要です。連続送信をすると、コールバックの順番がおかしくなる場合があるので、1つ送信した場合には、送信コールバックが呼び出されるまで待機するのが推奨ですが、コールバックの内容が必要なければ連続送信も可能そうです。受信コールバック関数で処理されます。送信元MACアドレスもわかるので、ブロードキャストでSlaveやControllerを探すことも可能です。まとめ非常にかんたんにESP-NOWを利用することができました。ESP32とESP8266しかESP-NOWは利用できませんが、複数台のセンサーからデータを手軽に集めるのには使いやすいかもしれません。コメントをキャンセルメールアドレスが公開されることはありません。date*管理者承認後にページに追加されます。公開されたくない相談はその旨本文に記載するかTwitterなどでDM投げてください。スパム対策として、日本語が含まれない投稿は無視されますのでご注意ください。その1ESP32のGPIO入力について関連記事はこちらです。関連記事はこちらです。Themegraphy。