SONOFF-Anleitung: Ein WLAN-Raumtemperaturregler für 10 $
In unserem letzten Blogbeitrag Ubidots steuert . Diesmal zeigen wir, wie man eine Klimaanlage mit dem SONOFF TH , einer Variante des Originals mit Temperatur- und Feuchtigkeitssensoren. Mithilfe dieser Messwerte und der Ubidots schaltet sich die Klimaanlage je nach Raumtemperatur automatisch ein oder aus.
Überblick
Im Vergleich zu den gängigen WLAN-Steckdosen für 30 $ IoT Projekte in größerem Umfang. Darüber hinaus basiert er auf dem beliebten ESP8266-WLAN-Chip und ist somit mit der Arduino-Umgebung und anderen Ressourcen wie unseren ESP-Bibliotheken bei Ubidots .
Das SONOFF-Gerät wird mit eigener Firmware und mobiler App geliefert, aber wir sind der Meinung, dass sein Hauptvorteil in seiner kompakten Bauform und seinem Preis liegt. Deshalb haben wir uns entschieden, es etwas zu modifizieren und sein volles Potenzial auszuschöpfen!
Anforderungen
Aufstellen
- Zerlegen Sie das SONOFF-Gerät, um an die TTL-Pinbelegung zu gelangen, die wir zum Programmieren des integrierten ESP8266 benötigen. Sie müssen vier Pins verlöten; diese sind in der Abbildung unten dargestellt.
- Verbinden Sie die UARTbee-Pins gemäß dieser Pinbelegung mit den SONOFF-Pins:
| UARTbee | SONOFF |
|---|---|
| VCC | VCC |
| TX | RX |
| RX | TX |
| GND | GND |
Öffnen Sie die Arduino IDE, klicken Sie auf Dateien -> Einstellungen und geben Sie diese URL ein, um auf die ESP8266-Bibliotheken für Arduino zugreifen zu können:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
in das „Zusätzliche Board-Manager-URLs“ . Dieses Feld unterstützt mehrere URLs, die durch Kommas getrennt werden, falls Sie bereits andere URLs eingegeben haben.
3. Öffnen Sie den Boardverwalter über „Werkzeuge“ → „Board“ und installieren Sie die ESP8266-Plattform. Wählen Sie nach der Installation „Werkzeuge“ → „Board“
4. Laden Sie die Ubidots -Bibliothek hier .
5. Klicken Sie nun auf Sketch -> Bibliothek einbinden -> .ZIP-Bibliothek hinzufügen.
6. Wählen Sie die .ZIP-Datei von Ubidots und klicken Sie dann auf „Akzeptieren“ oder „Auswählen“ .
7. Schließen Sie die Arduino IDE und öffnen Sie sie erneut.
Ubidots -Ereignisse erstellen
Wir benötigen zwei Ubidots Ereignisse: eines zum Einschalten des Relays und ein weiteres zum Ausschalten:
- in Ihrem Ubidots -Konto zu „Veranstaltungen “ und klicken Sie dann auf „Neue Veranstaltung hinzufügen“.
- Wählen Sie die soeben erstellte SONOFF-Datenquelle aus.
- Wählen Sie die „Hitzeindex“ .
- Stellen Sie die Auslösebedingung auf „größer als 25“ oder den gewünschten Hitzeindex ein (das SONOFF-Gerät sendet die Daten in Grad Celsius)
- Wählen Sie als Triggertyp „Variable festlegen“, dann erneut die SONOFF-Datenquelle und anschließend „Relay-Variable“
- Setzen Sie den Wert auf „1“, damit die Ereignisfunktion die Relay-Variable auf „1“ setzt, wenn die Bedingung erfüllt ist.
- Wiederholen Sie diese Schritte, um ein zweites Ereignis zu erstellen, aber setzen Sie diesmal die Bedingung auf „kleiner als 20“ und den an das Relay gesendeten Wert auf „0“.
Programmierung Ihres SONOFF-TH
Hier ist der Code zum Ein- und Ausschalten des SONOFF-Geräts. Vergessen Sie nicht, WIFISSID, PASSWORD und Ihren Ubidots -TOKEN zu ändern, um diesen Code zu verwenden.
Um den Code auf den SONOFF hochzuladen, müssen Sie ihn in den Programmiermodus versetzen:
- Verbinden Sie den UARTbee mit dem USB-Anschluss des PCs.
- Drücken Sie gleichzeitig die SONOFF-Taste und trennen Sie das USB-Kabel.
- Während Sie den Knopf drücken, schließen Sie das USB-Kabel wieder an.
/**************************************** * Bibliotheken einbinden ****************************************/ #include "Ubidots.h" #include "DHT.h" /**************************************** * Instanzen und Konstanten definieren ****************************************/ #define DHTPIN 14 // Digitaler Pin, an den wir angeschlossen sind #define DHTTYPE DHT11 // DHT 11 #define RELAY 12 #define LED 13 const char* UBIDOTS_TOKEN = "..."; // Hier den Ubidots -Token einfügen const char* WIFI_SSID = "..."; // Hier die WLAN-SSID einfügen const char* WIFI_PASS = "..."; // Hier das WLAN-Passwort einfügen char *macAddrs; DHT dht(DHTPIN, DHTTYPE); Ubidots ubidots(UBIDOTS_TOKEN, UBI_HTTP); /**************************************** * Hilfsfunktionen ****************************************/ // Hier Ihre Hilfsfunktionen einfügen /**************************************** * Hauptfunktionen ****************************************/ void setup() { Serial.begin(115200); dht.begin(); ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); pinMode(RELAY, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); ubidots.setDebug(true); // Diese Zeile auskommentieren, um Debug-Meldungen auszugeben } void loop() { // Einige Sekunden zwischen den Messungen warten. delay(2000); // Das Auslesen von Temperatur oder Luftfeuchtigkeit dauert etwa 250 Millisekunden! // Sensorwerte können bis zu 2 Sekunden alt sein (es handelt sich um einen sehr langsamen Sensor). float h = dht.readHumidity(); // Temperatur in Celsius lesen (Standardeinstellung). float t = dht.readTemperature(); // Prüfen, ob Lesefehler aufgetreten sind, und gegebenenfalls vorzeitig beenden (um es erneut zu versuchen). if (isnan(h) || isnan(t)) { Serial.println("Fehler beim Lesen vom DHT-Sensor!"); return; } // Hitzeindex in Celsius berechnen (isFahreheit = false). float hic = dht.computeHeatIndex(t, h, false); ubidots("humidity", h); // Variablennamen anpassen. ubidots("temperature", t); ubidots("heat", hic); bool bufferSent = false; bufferSent = ubidots(); // Sendet Daten an ein Gerätelabel, das der Geräte-ID entspricht. if (bufferSent) { // Führe eine Aktion aus, wenn die Werte korrekt gesendet wurden. Serial.println("Vom Gerät gesendete Werte"); } ubidots(macAddrs); /* Letzten Wert einer Variablen als Float über HTTP abrufen */ float setRelay = ubidots(macAddrs, "relay"); if (setRelay == 1.00) { digitalWrite(RELAY, HIGH); // Relais einschalten digitalWrite(LED, LOW); // LED einschalten } if (setRelay == 0.00) { digitalWrite(RELAY, LOW); // Relais ausschalten digitalWrite(LED, HIGH); // LED ausschalten } delay(5000); }- Wenn Sie mit dem Hochladen des Codes fertig sind, trennen Sie UARTbee und SONOFF und schließen Sie dann den DHT11-Sensor an.
Ihr SONOFF-Gerät ist bereit, an eine 110-240-V-Stromversorgung und an Ihre Klimaanlage angeschlossen zu werden.
Alles zusammenfassen
Wir haben dieses Projekt mit einem „SAMURAI Eole Crystal“-Ventilator getestet. Dieses Gerät musste nach dem Anschließen an die Steckdose per Knopfdruck eingeschaltet werden, daher haben wir den Ein-/Ausschalter so angelötet, dass er immer eingeschaltet ist:



Wir haben das Gerät dann wieder zusammengebaut, an das Stromnetz angeschlossen und fertig!

Noch einen Schritt weiter…
Ubidots ist ein Cloud-Service, der es Tausenden von Ingenieuren weltweit ermöglicht IoT Projekte im Bildungsbereich und in Unternehmen zu realisieren. Erfahren Sie mehr darüber, wie Ubidots unsere Funktionen ansehen oder uns eine Nachricht hinterlassen.