ESP8266をMQTTブローカーとして使用できますか?


7

スタートポロジーに基づいたホームオートメーションプロジェクトを作成しています。私が達成しようとしているのは、nodemcu / ESP8266の1つが外部からアクセス可能なサーバーとして機能し、他のnodemcu / ESP8266がリレーまたはセンサーに接続されたクライアントとして機能することです。

サーバーからコマンドを受信すると、それに応じてリレーをトリガーし、ステータスをサーバーに更新する必要があります。さまざまな方法でたくさんのチュートリアルを読みました。MQTTは良さそうですが、Adafruitのようなサードパーティのブローカーを使いたくありません。私のnodemcuまたは私のWebホストでWebサーバーをホストしたい。悲しいのは、Raspberry Piを所有していないことです。

ESP8266デバイスの1つをMQTTブローカーとして使用できますか、それとも適切な代替手段がありますか?


2
MQTTを使用するにはブローカーが必要ですが、esp8266はブローカーとして機能することができません。「もっと大きい」ものが必要です
hardillb

1
MQTTブローカーをPC /ラップトップでホストすることはできますが、MQTTブローカーを0/24で実行すると、電気料金が少し増える可能性があります。
Bence Kaulics 2017

1
@hardillb->何か大きなものはラズベリーパイ自体を意味しますか?または、Arduino Megaを同じ目的で使用することもできます
Rohit Mathur

1
それは本当のコンピューターを意味するので、Arduino Megaではなく、Pi Zeroで十分でしょう
hardillb

1
@BenceKaulics->ラップトップを一生置いておく代わりに、Webホスティングを使用できますか?共有ウェブホスティングを利用しています。
Rohit Mathur 2017

回答:


9

技術的に言えば、はい、ESP8266 MQTTブローカーとして機能します。実際、誰かがすでにそれを試しました彼らのプロジェクト終わりまでに、彼らは、Webインターフェイスと適切な量のアップタイムを備えた、クラウドMQTTブローカーにブリッジできるブローカーを持っていると主張しました。コメントで、彼らは彼らのコードが独占的であるので、あなたは彼らのコードを正確に使うことができないだろうと言います、しかしあなたが本当に ESP8266を使いたいなら、それは概念の証明として役立ちます。

ただし、ESP8266をブローカーとして使用するのは大変な作業になる可能性がありますMatsKで提案されているように、Piを使用する方がはるかに簡単です。RaspberryPiユニットは少し高価です(選択したモデルに応じて、5ポンドから25ポンド+送料の範囲です)が、多くの時間を節約できます。Piを使用すると、Mosquittoなどの確立されたブローカーを使用できます。ESP8266では、Mosquittoが実行される可能性なく、おそらく独自のブローカーを作成するか、はるかに信頼性の低いブローカーを使用する必要があります。

または、すべてのESP8266をAWS IoTなどのクラウドサービスに直接接続することもできます。これにより設定が簡単になりますが、すべてのリクエストがインターネット経由でルーティングされ、デバイスをローカルで制御することはできません。このアプローチを使用してインターネット接続が切断された場合、デバイスを制御することもできなくなります。


1
自動化のためのロジックを作成できるグラフィカルWebインターフェイスの「Node-red」を使用することをお勧めします。
MatsK 2017

@Aurora-そんな深みのあるものを説明していただきありがとうございます。それは私の考えを明確にしました。スタンドアロンサーバーにはPiが必要であることを理解しています。しかし、もし私がこのことをクラウド上でやりたいのなら。サードパーティのIoTサービスを使用する必要はありますか?Webホストを使用できますか?それほど難しくない場合。私はわずか14歳です。そのため、技術的な知識はあまりありません。
Rohit Mathur 2017

@RohitMathurええ、VPSや専用サーバーのようなものであれば、所有しているWebホストのタイプに応じて、独自のWebホストを使用できます。それがWebページのみの従来のWebホストである場合は、違います。使用しているホストを共有すれば、正しい方向に向けることができます。また、誰かが私の質問に答えたときにどうすればよいですか?を必ずお読みください。そうすれば、得られた役立つ回答に報いることができます。
Aurora0001

共有ホストを持っています。今のところ、私はPiと妥協する必要があると思います。VPSコストが高い。クライアントとしてPiにいくつのノードを接続できますか?ESP8266と同様に、最大4つのクライアントを管理できます。私のプロジェクトはnである可能性があります。ノードの。一部はリレーに接続され、一部はセンサーに接続されています。
Rohit Mathur 2017

@RohitMathur正確な数はわかりませんが、Piが1秒間に数百のメッセージを処理できると思います。特に、Pi 3は非常に強力です。ほとんどの場合、ユースケースでPiの機能の限界に到達することはありません。
Aurora0001

8

私の提案は、Raspberry Pi上のmosMQto MQTTブローカーです。

こちらの記事(https://tech.scargill.net/a-christmas-script/)で、Peter Scargillがすべての必要なコンポーネントと依存関係をインストールするスクリプトを作成しました。

Node-redを見てください。それを使用して、プロジェクトを補完するロジックを作成できます。

アップデート:

ESP8266 MQTTブローカーを見つけました。無料で入手できます。これは私が試さなければならない....

https://www.youtube.com/watch?v=0K9q4IuB_oA

https://github.com/martin-ger/esp_mqtt


はい、パイを購入する必要があると思います。そして、この記事は本当に役に立ちました。私のプロジェクトのいくつかのチュートリアルを共有できますか?Piを取得したら、それらを確認します。
Rohit Mathur 2017

:ルイ・サントスは次のように、多くの素敵なチュートリアルを持ってrandomnerdtutorials.com/...と、より多くの、彼の著書「ホームオートメーション」推奨です。
MatsK 2017

チュートリアルに従っています。randomnerdtutorials.com/…。Raspberry Piはまったく問題なく動作しています。しかし、esp8266はメッセージを受信して​​いません。そのため、esp8266で配線されたリレーを制御できません。
Rohit Mathur 2017

6

ESP8266のリソースは限られているため、Raspberry Piの使用を推奨する回答とコメントに加えて、ESP8266の非公式の後継であるESP32を使用することは一般的に理にかなっています。デュアルコア+ 3倍のRAMであるため、ユーザープログラムのサイズが大きくなると増加するWiFi接続の問題が修正されます。

価格帯では、ESP8266よりも数ドル高いだけで、RaspberryPiよりもかなり安価です(少なくともゼロになるまで)。他の答えは、ソフトウェア側でカバーする必要があります。


5

ESP8266をMQTTブローカーとして使用することは、他の優れた回答がすでに述べていることに加えて、最高速度で実行するためのシステム要件がないという単純な理由で理想的とは言えません。 Githubの誰かが同様の偉業を試みていて、次のように言われました:

不可能ではありませんが、あまり意味がありません。ブローカーは、CPU、メモリ、TCP接続の数(クライアントごとに1つ)、おそらく不揮発性ストレージ(永続メッセージ用)、ユーザーアクセス権の設定、その他多くの詳細などのリソースを必要とします。

私は他の素晴らしい答えを繰り返します。RaspberryPiまたは他の安価なコンピューターをブローカーとして動作させるようにしてください。ESPは、十分に機能するための仕様を欠いているだけです。


1
はい。このプロジェクトを達成するためにPiが必要になることは、今では非常に明確です
Rohit Mathur

これは主にスケーリングの問題です-ノードの数が増えるまで実際には現れません。最初から存在している問題は、最小限のリソースでブローカー機能を作成するために、ソフトウェアを(おそらくゼロから)書き換える必要があることです。
Chris Stratton

したがって、より大きなMCUで十分ですが、ローエンドのSBCよりも安くはありませんか?
Sean Houlihane 2017


2

ESP8266をMQTTブローカーとして使用できます。20のデバイス、WebSocket、およびMQTT WebSocketとSSLを提供するクラウドMQTTインスタンスへのブリッジ接続をサポートしています。

3分で、完全に機能するMQTTブローカーを使用できます。iotcentral.euプラットフォームをチェックしてください。アカウントを作成すると、準備が整います。


提案ダンに感謝します。しかし、今はMQTTブローカーとしてRaspberry Piを使用しています。しかし今問題はesp8266にあります。Wifiに接続することもありますが、「接続中...」と表示されるだけで、ドットが点灯します。外部電源を使ってみましたが、うまくいきません。それを行う方法はありますか?
Rohit Mathur 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.