SONOFF Dual Tutorial: Steuern Sie Ihre Elektrogeräte ferngesteuert mit MQTT und Ubidots

María Hernández
· 4 Minuten Lesezeit
Per E-Mail versenden

dem SONOFF Dual von Itead nur 9 $ zwei 110-V-Geräte per WLAN steuern können .
Im Vergleich zu handelsüblichen WLAN-Steckdosen ist der SONOFF eine hervorragende Alternative für Smart-Home- und sogar industrielle IoT unseren ESP-Bibliotheken bei Ubidots kompatibel .

Anforderungen

Hardware-Einrichtung

Zerlegen Sie das SONOFF Dual-Gerät, um an die TTL-Pinbelegung zu gelangen, die wir zum Programmieren des integrierten ESP8266 benötigen. Dem SONOFF fehlen zwei Stiftleisten; diese müssen Sie vor dem Programmieren des Geräts anlöten.

Nach dem Löten verbinden Sie die Platine gemäß dieser Tabelle mit dem UartSBee:

UartSBee SONOFF Dual
VCC VCC
TX RX
RX TX
GND GND

UartSBEE Pinbelegung

Außerdem müssen Sie eine Verbindung zwischen dem GND-Pin der Stiftleiste auf der linken Seite (derjenige, der die Pins für Taste 1 und 0 enthält) und dem EN_FW-Pin des ESP8266 herstellen, der unten abgebildet ist:

SONOFF Pinbelegung (Vorderseite)

SONOFF Pinbelegung (Rückseite)

Arduino IDE-Einrichtung

  1. Klicken Sie in der Arduino IDE auf Datei -> Einstellungen und geben Sie diese URL in das Zusätzliche Boardverwalter-URLs , um auf die ESP8266-Bibliotheken für Arduino zugreifen zu können:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Dieses Feld unterstützt mehrere URLs. Trennen Sie diese durch Kommas, falls Sie bereits andere URLs eingegeben haben.

  1. Öffnen Sie den Boardverwalter über das Menü **Tools -> Board** und installieren Sie die ESP8266-Plattform.
  2. Nach der Installation gehen Sie zum „Tools > Board“ und wählen das Board aus: Generic ESP8266 Module.
  3. Laden Sie die Ubidots ESPMQTT-Bibliothek als ZIP-Datei von unserem GitHub-Konto .
  4. Zurück in Ihrer Arduino IDE klicken Sie auf Sketch -> Bibliothek einbinden -> .ZIP-Bibliothek hinzufügen.
  5. Wählen Sie die .ZIP-Datei von Ubidots ESPMQTT aus und klicken Sie dann auf „Akzeptieren“ oder „Auswählen“.
  6. Schließe die Arduino IDE und öffne sie erneut.

Codierung Ihres SONOFF Dual

Dieser Beispielcode abonniert eine Ubidots Variable, die beide Relais gleichzeitig ein- oder ausschaltet.

Bevor Sie den Code ausführen, gehen Sie zu Ihrem Ubidots -Konto, suchen Sie den Tab „Geräte“ und erstellen Sie ein Gerät namens „SONOFF Dual“ sowie eine Variable namens „Relays“. Es sollte folgendermaßen aussehen:

Stellen Sie sicher, dass die Geräte-API-Bezeichnung „sonoff-dual“ und die Variablen-API-Bezeichnung „relays“ lautet. Dies sind die eindeutigen Kennungen, die SONOFF verwendet, um zu wissen, welche Variable im MQTT-Broker abonniert werden soll. Sie können die Bezeichnungen bei Bedarf bearbeiten.

Sie können Ihr Gerät nun mit folgendem Code flashen:

/**************************************** * Bibliotheken einbinden ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Konstanten definieren ****************************************/ #define TOKEN "p4uuxxxxxxxxncTVfoVqxxxxxRQW" // Ihr Ubidots -Token #define WIFINAME "UBIWIFI" // Ihre SSID #define WIFIPASS "clave123456789ubi" // Ihr WLAN-Passwort #define MQTTCLIENTNAME "sonoff15345" // Ihr MQTT-Clientname. Dieser muss eindeutig sein. Wir empfehlen daher, einen zufälligen ASCII-Namen zu wählen. Ubidots client(TOKEN, MQTTCLIENTNAME); /**************************************** * Hilfsfunktionen ****************************************/ void relays_on() { Serial.write(0xA0); Serial.write(0x04); Serial.write(0x03); Serial.write(0xA1); Serial.flush(); } void relays_off(){ Serial.write(0xA0); Serial.write(0x04); Serial.write(0x00); Serial.write(0xA1); Serial.flush(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Nachricht angekommen ["); Serial.print(topic); Serial.print("] "); for (int i=0;i <length;i++) { Serial.print((char)payload[i]); } if ((char)payload[0]=='1'){ relays_on(); } else{ relays_off(); } Serial.println(); } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(19200); Serial.println("Connecting to WiFi..."); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); Serial.println("Connected!"); pinMode(16, OUTPUT); client.ubidots-Geräte- und Variablen-API-Labels Serial.println("Abonniert!"); } void loop() { // Hier Ihren Hauptcode einfügen, der wiederholt ausgeführt wird: if(!client.connected()){ client.reconnect();ubidotsSubscribe("sonoff-dual","relays"); // Datenquelle und Variablen-Labels einfügen } client.loop(); }

Durch Ausprobieren der internen Befehle des SONOFF Dual lassen sich komplexere Aktionen durchführen. Hier ist eine Kurzübersicht, die wir in deren Foren :

Seriennummer: 19230,8,N,1 An das Gerät zu sendende Bytes: 0xA0 0x04 0xxx 0xA1 Dabei scheint 0xxx Folgendes zu bedeuten: 0x00 beide Relais aus, 0x01 Relais 1 an, 0x02 Relais 2 an, 0x03 beide Relais an

Nach dem Flashen Ihrer Geräte öffnen Sie den seriellen Monitor der Arduino IDE. Sie sollten etwa Folgendes sehen, was bedeutet, dass die WLAN-Verbindung und das MQTT-Abonnement erfolgreich waren:

Ergebnisse

Wechseln Sie nun zum Tab „Dashboards“ und fügen Sie ein neues Widget vom Typ „Steuerung“ → „Schalter“ hinzu:

Dieser Schalter sendet eine „1“ oder eine „0“ an die Variable „Relays“, die dann in der Callback-Funktion des SONOFF ausgelesen wird, um die Relais ein- oder auszuschalten. Sie können Ihren SONOFF Dual nun bequem von Ihrem dashboardaus fernsteuern!

Jetzt ist es an der Zeit, eigene Anwendungen und dashboards zur Steuerung und Verwaltung Ihrer Umgebungen zu erstellen. Um mehr über Ubidots Widgets und -Ereignisse zu erfahren, sehen Sie sich diese Video-Tutorials und melden Sie sich noch heute kostenlos an !