738772 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

きょうは毒きのこ日和です

きょうは毒きのこ日和です

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Profile

あとぐ

あとぐ

Recent Posts

Category

Calendar

Keyword Search

▼キーワード検索

2021/12/27
XML
以前より​ESP8266やESP32でスマートホーム機器を自作していますが、
メインの通信でWiFiを利用していた時は多くの悩みを抱えていました。

​​そんな中で2021年の今頃ですがESP-NOWという仕組みに気づきました。
ESP32/8266同士のMACアドレスで調停無しで直接通信する仕組みの様で、
自分なりに欲しい機能をまとめたサンプルを作って検討を始めました。
  ​QiitaにArduinoIDEで作ったESP-NOWの送受信関数群とサンプルを作りました
  ​ESP-NOWで三路スイッチモドキを作る(リレー側)
  ​ESP-NOWで三路スイッチモドキを作る(スイッチ側)


検討して判ったESP-NOWは安直で良い感じです
  ・ESP32/8266の保持するMACアドレスに対して送信/受信ができる
  ・総てのESP32/ESP8266へ一斉送信ができる(broadcast)
  ・送信は届かない事もある。(UDP通信みたいな感じ?)
  ・1送信で200byteぐらい送れる(非暗号化の平文ですケドネー)
  ・WiFiのプログラムとは共存できないらしい (排他利用:WiFiは別機器で利用可)
  ・通信範囲はESP32とESP8266の性能に依存(最悪で3mぐらい)
  ・通信チャンネルは設定できるらしい (僕は固定CHで利用中なので詳細不明)
  ・使用時のプログラム/ヒープメモリ占有量は少ない(BLE通信と共存可)
  ・RSSIはESP32で取れるがESP8266は無理っぽい(ArduinoIDEライブラリで未対応)
  ・電源ONから約50mSecでESP-NOWメッセージが送信できる

問題点は?
  ・1対1通信は楽に作れる。けどネットワークの仕組みは無い
  ・通信距離はESP32/ESP8266の性能に依存して5mがやっと・・ かな?


中継機能ありのESP-NOWネットワークを自作してみた
  親局同士の連携+親局・子局の通信の機能を持ったモノを作成しました。
  連携先のMACアドレスを各機体で覚える形式ですが結構うまく動きました。
  でも設定や現状把握は専用の自作ソフトが必要になりました​。
  機器台数が10台を超えた頃から設定が面倒臭くなりました。


設定不要なESP-NOW MESHネットワークを自作してみる
  「宛先付きの電文を各機器がリレー伝達すれば成り立つ」と考え作りました。
  個々の通信は一応できますが、従来のスマートネットワークでは対応できず
  新たな仕様を考えている状態です。


ESP-NOWを導入して解決したWiFiの悩みです。
  ・WiFi AP局が死んだ時は総ての機器が停止する
  ・WiFi AP局が復活しても自動復帰できない機器がある
  ・ルーター先のネットワークが死ぬと停止する機器がある
  ・WiFiの通信距離が短い機器/場所がある
​  ・手持ちのESP32/8266は総じてWiFi通信距離が短い(安全距離は約5m)
  ・WiFi AP局に子機が同時接続できる台数が結構少ない(安物買うからですけどねー)
  ・WiFi AP局の更新は子機全てに同じSSIDとPASSWORDの設定が必要
  ・子機を他所に持っていって披露する時はWiFiAP局も持って行く必要がある

​​​​​​

   ここからは過去の検討記事です

2021年12月27日 ESP-NOWの動作確認を行いました
   使用したのは ESP32 (​ESP32Loin 32 Lite​)とESP8266(​Node MCU V3 Lua​)
   ​QiitaにArduinoIDEで作ったESP-NOWの送受信関数群とサンプルを上げました。
   自分視点ですが、TEXT仕様でUARTと似た使い方が出来る様にしました。
   ルールさえ判れば、使用感はUDP通信より簡単で扱い易いです。

   Broadcast送信がある
     Broadcast応答機能を組み込んでおけば、通信可能範囲に
     何台機器があるか判るし・・・  イロイロできます。

   ESP-NOWの有効飛距離
     ​飛距離の判定は古民家の屋内で行いました。 平屋/土壁/築100年ホド
​     MACアドレス指定での検討だと5m以上でも通信できました。
     broadcastとloopbackの応答具合では通信距離は5mぐらい。
     別件でAirPlay使用中に時々WiFiの飛距離低下が判っています。
     その時間帯は距離3m程度で隣の部屋への通信がやっとでした。
     ソコで​中継局を考慮した通信の仕組みが欲しい​なぁと考えています。

   ESP-NOWとWiFiの同時運用
     1つの機体でESP-NOWとWiFiが使えれば楽になると考え調べました。
     一応は可能な様ですが提供ライブラリを改造する必要がありそうで、
     バージョンアップで動かなくなる可能性を考慮して諦めました。
     別個でESP-NOW機とWiFi機を作り、UARTで繋いで対処してます。

   時々電文の取りこぼしが起こります。
     仕様なので対処が必要です。
     自作のESP-NOW通信ライブラリは送信・受信を出来る様にしました。
     必要に応じて送信受信の確認する様にプログラムを作って対処します。

   1台の機器の送信先登録数は20台程度
     提供ライブラリでは送信相手20台分程度のワークを取っている様です。
     相手の登録削除などもできるライブラリです。


良く判らないソフト作成時の不具合ですがメモ書きしときます
​​​​​​​​
  問題点:勝手に納得:しょっぱなにアドレスFF:FF:FF:FF:FFで送信する必要がある。
    現状はおまじないで送信していますが無くても動きそうな感じです。
    原因究明するよりは他の作業を行うので放置確定です。

  問題点:解決:ESP32からESP8266へBroadcastが通らないバージョンある
    ライブラリの古いバージョンは仕様が違っているみたいです。

  問題点:一応解決:受信しない時期があり、受信できない時期はトコトン受信できない。
    main()ループのdelay(1)を入れるとアラ不思議! 治りました。

  個人的な問題点:解決:トグルコマンドの連発は結局ドッチ?
    通信未達問題で同じコマンドを複数回発信していたのが問題でした。
    識別を追加して、取りこぼし対策か次のコマンドか判る様にしました。


​​2023年4月 追記 WiFiの様な通信強度(RSSI)が取れないか気になります

    ESP-NOWハブを自作して広範囲で通信が出来る様になったのですが、
   安直で作った自作ネットワークはDHCPが無い大昔の固定でIPを割り振って
   指定のハブに繋感じです。最近のWiFiメッシュの様なネット仕様を猿真似て
   作れないか考えてみたところ、各機器間の通信強度を自動判断する仕組みが
   無いと連携先の判断が出来ない事に気付きました。 現在実装検討中~♪
     ※現状は各機器で通信強度の高い組み合わせを人間が判断して設定しています。

   ネットを調べたところ、RSSIは
       ESP32は取得可能
       ESP8266は取得不可(正しい答えは取得できない)
   一応ESP8266でプログラムを直して調べてみましたが、挫折しました。


2023年6月 三路スイッチモドキのサンプルを上げました。
   三路スイッチ記事スマート化は興味ある方がいる様なので、
   ESP-NOW通信で簡単な三路スイッチソースを作る事にしました。
     ​ESP-NOWで三路スイッチモドキを作る(リレー側)
     ​ESP-NOWで三路スイッチモドキを作る(スイッチ側)
   スイッチは何個でも個数制限が無いので使い勝手良いですよ。


​2023年3月 ​ESP-NOWの中継ハブ運用も開始しました
   有効通信距離3mと書きましたが、家の端々で使うなら中継が必要です。
   そこで各機を繋ぐ独自ネットワークルールを作りました。バケツリレー+
   無暗号化などの簡素でヤバい仕様なので詳細は公表できません。


2023年1月 ​QiitaにArduinoIDEで作ったサンプルを上げました。


2022年8月 ESP-NOW通信が結構形になってきました
    実験で問題を潰していますが、安定通信出来る様になりました。
    別件開発中のiOSのPythonistaとのBLE連携​でESP32を中継局にして
    ESP-NOW機器の一覧や設定を行ったり出来る様になりました。
    機器一覧画面(Pythonista)


2023年2月 ​ESP-NOWネットワーク中継局を運用開始しました
    スマート機器を家中に配置して動かしたいので中継局を検討開始しました。
    
    古民家で中継局を置いた場所に直径4mで水色〇を書いてみました。


​2023年11月 ESP-NOWネットワーク中継ハブ通信が結構形になってきました
    別件でGoogleSpreadSheetを使ったデータロギングを行っていますが、
    中継ハブ経由箇所の機器もあるのにデータは安定して追加されます。
    ​最近SwiftPlaygroundとESP32でBLE連携が可能になった​ので管理ソフトを
    作り直しています。(これがpythonistaより使い易いんですよ)
    



PVアクセスランキング にほんブログ村






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024/10/03 11:27:05 PM
コメント(0) | コメントを書く
[部品:電気・電子・USBの工作や部品等の検討・紹介] カテゴリの最新記事



© Rakuten Group, Inc.
X