Ich mache ein Hausautomationsprojekt basierend auf der Sterntopologie. Was ich erreichen möchte, ist, dass einer der Knoten / ESP8266 als Server fungiert, auf den die Außenwelt zugreifen kann, und ein anderer Knoten / ESP8266 als Clients fungiert, die mit Relais oder Sensoren verbunden sind.
Nach Erhalt des Befehls vom Server müssen die Relais entsprechend ausgelöst werden und den Status wieder auf den Server aktualisieren. Ich habe viele Tutorials mit verschiedenen Methoden gelesen. MQTT scheint gut zu sein, aber ich möchte keinen Drittanbieter wie Adafruit verwenden. Ich möchte den Webserver entweder auf meinem nodemcu oder meinem Webhost hosten. Der traurige Teil ist, dass ich keinen Raspberry Pi besitze.
Kann ich eines meiner ESP8266-Geräte als MQTT-Broker verwenden oder gibt es eine geeignete Alternative?
quelle
Antworten:
Technisch gesehen könnte ein ESP8266 als MQTT-Broker fungieren. Tatsächlich hat es schon jemand versucht ! Am Ende ihres Projekts gaben sie an, einen Broker zu haben, der eine Brücke zu einem Cloud-MQTT-Broker mit einer Webschnittstelle und einer angemessenen Betriebszeit schlagen kann. In den Kommentaren heißt es, dass ihr Code proprietär ist, sodass Sie ihren Code nicht genau verwenden können. Er dient jedoch als Proof of Concept, wenn Sie wirklich einen ESP8266 verwenden möchten.
Die Verwendung eines ESP8266 als Broker ist jedoch wahrscheinlich ein großer Aufwand . Die Verwendung eines Pi, wie von MatsK vorgeschlagen , wäre weitaus einfacher, und obwohl Himbeer-Pi-Einheiten etwas teurer sind (zwischen 5 und 25 GBP + Porto, je nachdem, welches Modell Sie wählen), sparen Sie viel Zeit . Mit einem Pi können Sie einfach einen etablierten Broker wie Mosquitto verwenden . Auf einem ESP8266 besteht keine Chance, dass Mosquitto ausgeführt wird, und Sie müssten wahrscheinlich Ihren eigenen Broker schreiben oder einen weitaus weniger zuverlässigen verwenden.
Alternativ können Sie einfach alle Ihre ESP8266 direkt mit einem Cloud-Dienst wie AWS IoT verbinden . Dies vereinfacht Ihre Einrichtung, bedeutet jedoch, dass jede Anforderung über das Internet weitergeleitet wird und Sie Geräte nicht lokal steuern können. Wenn Ihre Internetverbindung mit diesem Ansatz unterbrochen wird, haben Sie auch keine Kontrolle über die Geräte.
quelle
Mein Vorschlag wäre ein Mücken-MQTT-Broker auf einem Raspberry Pi.
Es gibt hier einen Artikel https://tech.scargill.net/a-christmas-script/, in dem Peter Scargill ein Skript erstellt hat, das alle erforderlichen Komponenten und Abhängigkeiten installiert.
Schauen Sie sich Node-Red an. Damit können Sie Logik erstellen, um Ihr Projekt zu ergänzen.
Aktualisierung:
Ich habe gerade einen ESP8266 MQTT-Broker gefunden, der frei verfügbar ist. Das muss ich versuchen ....
https://www.youtube.com/watch?v=0K9q4IuB_oA
https://github.com/martin-ger/esp_mqtt
quelle
Zusätzlich zu den Antworten und Kommentaren, die aufgrund der begrenzten Ressourcen des ESP8266 die Verwendung eines Raspberry Pi empfehlen, ist es im Allgemeinen sinnvoll, den ESP32 zu verwenden , den inoffiziellen Nachfolger des ESP8266. Da Dual-Core + 3x mehr RAM vorhanden ist, werden WLAN-Verbindungsprobleme behoben, die mit zunehmender Größe der Benutzerprogramme zunahmen.
In der Preisklasse ist es nur ein paar Dollar teurer als ESP8266 und deutlich billiger als RaspberryPi (zumindest bis die Null im Preis fällt). Die anderen Antworten sollten Sie auf der Softwareseite behandelt haben.
quelle
Zusätzlich zu den anderen hervorragenden Antworten ist die Verwendung eines ESP8266 als MQTT-Broker nicht einfach ideal, da ihm die Systemanforderungen für eine schnelle Ausführung fehlen. Jemand auf Github versuchte eine ähnliche Leistung und erfuhr:
Ich stimme den anderen großartigen Antworten zu: Besorgen Sie sich einen Raspberry Pi oder einen anderen billigen Computer, der als Ihr Broker fungiert. Dem ESP werden einfach die Spezifikationen fehlen, um eine gute Leistung zu erzielen.
quelle
Es gibt eine schöne und funktionale Arduino-kompatible Bibliothek mit einem winzigen MQTT-Broker , der auf ESP8266 läuft:
quelle
Sie können einen ESP8266 als MQTT-Broker verwenden. Es unterstützt 20 Geräte, Websockets und eine Brückenverbindung zu einer Cloud-MQTT-Instanz, die MQTT-Websockets und SSL bereitstellt.
In drei Minuten können Sie einen voll funktionsfähigen MQTT-Broker haben. Schauen Sie sich die Plattform iotcentral.eu an. Erstellen Sie ein Konto und Sie sind bereit.
quelle