SONOFF Dual Tutorial: Steuern Sie Ihre Elektrogeräte aus der Ferne mit MQTT und Ubidots

dem SONOFF Dual von Itead 9 $ mehrere 110-V-Geräte über WLAN steuern können .
Im Vergleich zu den auf dem Markt erhältlichen WiFi-Smart-Steckern für Endverbraucher ist der SONOFF eine großartige Alternative für die Umsetzung von Smart-Home- und sogar industriellen IoT Projekten in größerem Maßstab. Darüber hinaus basiert es auf dem beliebten WLAN-Chip ESP8266 und ist daher mit der Arduino-Umgebung und anderen Ressourcen wie unseren ESP-Bibliotheken bei Ubidots .

Anforderungen

Hardware-Setup

Zerlegen Sie das SONOFF Dual-Gerät, um auf die SONOFF TTL-Pinbelegung zuzugreifen, die wir zum Programmieren des integrierten ESP8266 benötigen. Im Lieferumfang des SONOFF sind zwei Stiftleisten nicht enthalten. Sie müssen diese also vor der Programmierung 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 des Pin-Headers links (derjenige, der die Pins 1 und 0 der Tasten enthält) und dem EN_FW-Pin des ESP8266 herstellen, der unten gezeigt wird:

SONOFF Pinbelegung (nach vorne gerichtet)

SONOFF Pinbelegung (Rückseite)

Arduino IDE-Setup

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

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

  1. Öffnen Sie den Boards Manager über das Menü **Tools -> Board ** und installieren Sie die ESP8266-Plattform.
  2. Gehen Sie nach der Installation zum Extras > Board und wählen Sie das Board aus: Generisches ESP8266-Modul.
  3. Laden Sie die Ubidots ESPMQTT-Bibliothek als ZIP-Datei in unserem GitHub-Konto .
  4. Klicken Sie in Ihrer Arduino-IDE auf Skizze -> Bibliothek einschließen -> .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ßen Sie die Arduino IDE und öffnen Sie 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 die Registerkarte „Geräte“ und erstellen Sie ein Gerät namens „SONOFF Dual“ und darin eine Variable namens „Relais“. Es sollte so aussehen:

Stellen Sie sicher, dass die Geräte-API-Bezeichnung „sonoff-dual“ und die variable 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 Beschriftungen bei Bedarf bearbeiten.

Jetzt können Sie Ihr Gerät mit dem folgenden Code flashen:

/**************************************** * Bibliotheken einschließen ****** **********************************/ #include „ Ubidots ESPMQTT.h“ /****** ************************************ * Konstanten definieren *********** ***************************/ #define TOKEN „p4uuxxxxxxxxncTVfoVqxxxxxRQW“ // Dein Ubidots TOKEN #define WIFINAME „UBIWIFI“ //Deine SSID # define WIFIPASS „clave123456789ubi“ // Ihr WLAN-Pass #define MQTTCLIENTNAME „sonoff15345“ // Ihr MQTT-Clientname, er muss eindeutig sein, wir empfehlen daher, einen zufälligen ASCCI-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("] "); für (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("Subscribed!"); } void loop() { // Geben Sie Ihren Hauptcode hier ein, um ihn wiederholt auszuführen: if(!client.connected()){ client.reconnect(); Kunde. ubidots Subscribe("sonoff-dual","relays"); //Datenquelle und Variablenbeschriftungen einfügen } client.loop(); }

Sie können komplexere Aktionen ausführen, indem Sie an den internen Befehlen von SONOFF Dual herumbasteln. Hier ist eine kurze Referenz, die wir in ihren Foren :

Seriell: 19230,8,N,1 An das Gerät zu sendende Bytes: 0xA0 0x04 0xxx 0xA1 wobei 0xxx zu sein scheint: 0x00 beide aus 0x01 Relais eins an 0x02 Relais zwei an 0x03 beide Relais an

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

Ergebnisse

Gehen Sie nun auf den Reiter „ 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 von SONOFF gelesen wird, um die Relais ein- oder auszuschalten. Sie können Ihren SONOFF Dual jetzt von Ihrem dashboard aus fernsteuern!

Jetzt ist es an der Zeit, Ihre eigenen Anwendungen und dashboards , um Ihre Umgebungen zu steuern und zu verwalten. Um mehr über Ubidots Video-Tutorials an und melden Sie sich noch heute kostenlos an !