2016-06-05 18 views
0

Ich habe einen mqtt + nodejs Server für mein Smart Home System. Zuerst versuche ich eine LED von meinem mqtt + nodejs Server zu blinken.Arduino + esp8266 + mqtt

Ich habe dies mit nodemcu eine Platine gemacht. Ich habe pubsubclient.h dafür verwendet, aber ich wollte mehr Sensoren und LEDs hinzufügen. Aus diesem Grund entschied ich mich für Arduino mega + esp8266. Ich möchte eine Verbindung zu meinem Server über esp8266 herstellen. Das Problem ist, ich kann pubsubclient.h mit dem Arduino Mega + esp8266 nicht verwenden.

Und ich begann mit AT-Befehle, um eine Verbindung zu einem WLAN herzustellen. Jetzt kann ich mit WLAN verbinden, aber ich weiß nicht, wie ich jetzt mqtt verwenden kann.

Ich habe eine Bibliothek espduino gefunden, aber es benötigt spezielle Verbindungen.

Wie kann ich AT-Befehle und Mqtt für mein Projekt verwenden?

+0

Mögliches Duplikat von [mqtt zwischen esp8266 und arduino mit PubSubclient] (http://stackoverflow.com/questions/37030019/mqtt-between-esp8266-and-arduino-with-pubsubclient) – hardillb

Antwort

0

Sie sollten wahrscheinlich versuchen, stattdessen einen Multiplexer zu verwenden (wie die 4051). Sie können dann 4 IO-Ports auf 8 IO's (oder 1 Analog + 3 IO auf 8 analoge Ports) erweitern. Wenn Sie möchten, dass noch mehr Ports bekommen etwas wie ein 4067, dann können Sie 16 Ports von 5 erhalten.

Das ESP8266 ist viel mächtiger als ein normales Arduino (mit einem ATMEGA328-Chip), es ist auch billiger als das ArduinoMega, Versuchen Sie also, es als Ihren Mikrocontroller zu behalten (wenn Sie es bereits benutzen).

0

Sie müssen eine WiFi- oder Ethernet-Client-Instanz angeben, um über MQTT-Bibliotheken eine Verbindung zum Broker herzustellen. Während der seriellen Kommunikation benötigen Sie eine serielle Arduino-Bibliothek, die mit ESP arbeitet und Protokoll-Header und Stacks implementiert.

Sie können WiFiEsp library verwenden, um eine Client-Instanz von WiFi zu erstellen. So können Sie Ihren Client als Parameter an den PubSubClient-Konstruktor übergeben. Hier ist Beispiel:

WiFiEspClient espClient; 
PubSubClient client(espClient); 

Eine weitere serielle Bibliothek ist espduino wie Sie bereits erwähnt. Sie können seiner Anleitung folgen und die MQTT-Bibliothek von Arduino folgendermaßen verwenden:

#include <SoftwareSerial.h> 
#include <espduino.h> 
#include <mqtt.h> 

SoftwareSerial debugPort(2, 3); // RX, TX 
ESP esp(&Serial, &debugPort, 4); 
MQTT mqtt(&esp); 

Viel Glück!

0

Ich schlage vor, dass Sie versuchen Homie-esp8266. Ich denke, es wird zu deinem aktuellen Setup passen. Es unterstützt MQTT, einfache WLAN-Konfiguration und Over-the-Air (OTA) Firmware-Update. Die documentation ist auch ziemlich geradlinig. Das verwende ich derzeit in meinem Smart-Home-Projekt.

Verwandte Themen