MQTT、スマートホーム、ESP-8266、プラグアンドプレイ

スマートホームを作成するには、家の状況を監視するさまざまなセンサー(モーション、照明、温度、その他のセンサー)が必要です。 「スマートホーム」が小さい場合は、オープンソリューション(MQTT、OpenHABなど)に基づく自家製システムでもすべてがシンプルに見えます。センサーを接続し、OpenHABまたはHomeAssistantプログラムに登録して動作を開始しました。 しかし、センサーが多数ある場合、制御システムで各センサーを処方する際に、多くの日常的で感謝のない作業が発生します。



提案されたソリューション(「松葉杖」)を使用すると、この段階で最小限の手動操作を行うことができます。 センサーコントローラーはMQTTブローカーに接続し、特別なトピックで特定の形式でセンサーとデバイスについて話します。その後、スマートホームサーバー上の小さなスクリプトがこれらのセンサーに対応する構成ファイルを作成します。管理スクリプトの作成を開始します。



具体的には、このファームウェアはESP-8266(Sonoff Basic SwitchおよびSonoff Touch Wallswitchを含む)でOpenHABおよびHomeAssistantのP&Pスクリプトを使用するモジュールで動作しますが、プラグアンドプレイ情報出力方法は他のプロジェクトでも使用できます。



デバイスがMQTTブローカーに接続されると、次のトピックが作成されます(この場合、シリアル番号0023CB541のESP-8266のFLASHボタンについて)。





サーバーで実行されているスクリプト(クラウンまたは手動で、デバイスを接続した後)-/ myhome / PNPからトピックのリストをダウンロードし、OpenHABにないデバイスを検索し、それらの構成ファイルを作成します。 そのようなデバイスの構成ファイルが既に存在する場合、P&P情報は完全に無視されますが、必要に応じてこのファイルを削除し、センサーのセットを変更してデバイスのファイルを再作成できます。



このようにシンプルで透過的な方法で-自家製のスマートホームに多数のネットワーク制御デバイスを接続する必要がある場合、かなり大きな頭痛の種を取り除きます。



ESP-8266の実際のファームウェアについてもう少し説明します。 そのソースコード(およびOpenHABとHomeAssistantのサポートスクリプト)はGithubにあります (具体的には、サポートスクリプトはこちら )。



標準のESP-8266モジュール(およびSonoff Basic SwitchおよびSonoff Touch Wallswitch)で実行され、オンザフライでファームウェアのアップグレード(ArduinoOTA)をサポートし、WiFiネットワークパラメーターの初期構成とMQTTのIPアドレスの設定のためのシンプルなWebサーバーも備えています-ブローカー。



ファームウェア構造はモジュール式であり、センサー/デバイスを非常に簡単に追加できます。 現在のリストには次のものが含まれます。





ESP-8266にはピンがないため、モジュールが互いに競合する可能性があります(たとえば、ピンを自分で再配布しない場合、ソナーを備えた調光器を同時に接続することはできません)。



esp-sensors.hで必要なデバイスを選択し、コンパイルおよびファームウェア-モジュールが構成モードに切り替わります-「espx-0023cb541」などの名前でWiFiネットワークを上げます。同じファイルからパスワードを使用して接続する必要があります、次に192.168.4.1に移動して、ネットワークログインとパスワード、ブローカーのIPアドレスを設定します。 これらのパラメーターはフラッシュに保存されるため、2回目はこれを行う必要はありません。 1分以内に特定のネットワークに接続できない場合、3分間再び構成モードに切り替わり、接続に成功するまでこのサイクルを繰り返します。



このファームウェアを編集する人のために、各センサー/デバイスモジュールは6つの機能に分けられていることに言及します。





これらの関数はモジュールのファイルで定義し、適切な場所esp-sensors.inoに呼び出しを追加する必要があります。



All Articles