Lichtsteuerung mit NodeMCU und Ubidots
Wie oft haben Sie schon versehentlich das Licht zu Hause angelassen? Lösen Sie dieses Problem schnell mit einem automatischen Lichtsensorsystem, das das Licht je nach Umgebungshelligkeit ein- und ausschaltet.
Dieses System arbeitet mit einem Lichtsensor, der die Menge und Intensität des Tageslichts misst. Bei Tageslicht schaltet der Sensor das Hauslicht aus und fährt die Jalousien hoch; bei Dunkelheit schaltet er das Licht ein und fährt die Jalousien herunter. Mit Ubidots können Sie außerdem jederzeit eine zusätzliche Lampe ein- oder ausschalten.
Es ist sehr einfach herzustellen und, was noch wichtiger ist, es hilft, Energie zu sparen.
Überblick
Dieser Beitrag erklärt die Verwendung des NodeMCU mit Ubidots . Der NodeMCU ist ein IoT -Gerät (Internet der Dinge) mit GPIO, PWM, I²C, 1-Wire und ADC auf einer einzigen Platine und verfügt über eine WLAN-Verbindung. Er ist einfach zu bedienen und zum Programmieren Arduino IDE
Anforderungen
- NodeMCU Version 1.0
- Grove Base Shield für NodeMCU
- Grove Relay
- Lichtsensor
- Grove weiße LED
- Servomotor
- UbidotsESPMQTT-Bibliothek
- Ubidots -Konto
Aufstellen
- Verbinden Sie zuerst den NodeMcu mit seinem Basis-Shield und anschließend die Komponenten wie folgt:
Das Endergebnis:
- Öffne die Arduino IDE, klicke auf „Datei“ → „Einstellungen“ und gib die unten stehende URL in das Feld „Zusätzliche Boardverwalter-URLs“ ein. Du kannst mehrere URLs hinzufügen und diese durch Kommas trennen.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Öffnen Sie den „Boardverwalter“ über das Menü „Werkzeuge“ → „Board“ und installieren Sie die ESP8266-Plattform. Vergessen Sie nicht, nach der Installation Ihr NodeMCU 1.0-Board im Menü auszuwählen.
2. Laden Sie die Ubidots ESPMQTT-Bibliothek , falls Sie dies noch nicht getan haben. Klicken Sie nun auf Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen.
3. Wählen Sie die .ZIP-Datei von Ubidots ESPMQTT und klicken Sie anschließend bei allen Bibliotheken auf „Akzeptieren“ oder „Auswählen“. Falls Sie die Bibliothek nicht hinzufügen können, versuchen Sie Folgendes: Entpacken Sie die heruntergeladene RAR-/ZIP-Datei und kopieren Sie den Ordner der Bibliothek nach C:\Users\ ubidots \Documents\Arduin\libraries
4. Schließen Sie die Arduino IDE und öffnen Sie sie erneut.
Ubidots einrichten
- Fügen Sie eine neue Datenquelle mit dem Namen „manual“ und eine neue Variable mit dem Namen „extra_light“ hinzu (siehe unten).

2. Stellen Sie sicher, dass der Name der Datenquelle und der Variable mit ihren API-Bezeichnungen übereinstimmt. Dies ist wichtig, da unsere Variable über die API-Bezeichnung abonniert wird und die Kommunikation zwischen Ubidots und dem NodeMCU ermöglicht. Nachdem Sie die Bezeichnungen der Datenquelle und der Variable überprüft haben, können Sie deren Namen mit einem Klick bearbeiten.

3. Erstellen Sie einen Schalter zum Ein- und Ausschalten des Lichts. Gehen Sie dazu zum Dashboard und klicken Sie oben rechts auf der Seite auf „Widget hinzufügen“ . Wählen Sie „Steuerung“ → „Schalter“ → „Manuell (Datenquelle)“ → „Licht (Variable)“ → „Fertigstellen“.
Programmieren Sie den ESP8266 NodeMCU
Sobald alles korrekt angeschlossen ist, wechseln wir zur IDE und schreiben folgenden Code:
/**************************************** * Einbinden von Bibliotheken ****************************************/ #include "UbidotsESPMQTT.h" #include<Servo.h> /**************************************** * Konstanten definieren ****************************************/ #define TOKEN "...." // Ihr Ubidots -Token #define WIFINAME "...." // Ihre SSID #define WIFIPASS "...." // Ihr WLAN-Passwort #define MQTTCLIENTNAME "..." // Ihr MQTT-Clientname. Dieser muss eindeutig sein. Wir empfehlen daher die Wahl eines zufälligen ASCII-Namens. Servo myservo; int sensorPin = A0; int ledPin = D5; int relayPin = D3; int state; int lightState; Ubidots client(TOKEN, MQTTCLIENTNAME); /**************************************** * Hilfsfunktionen ****************************************/ 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]); } Serial.println(); if ((char)payload[0]=='1'){ digitalWrite(relayPin, HIGH); } else if ((char)payload[0]=='0'){ digitalWrite(relayPin, LOW); } } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); myservo.attach(D8); pinMode(ledPin, OUTPUT); pinMode(relayPin, OUTPUT); client.ubidotsSubscribe("manual", "extra_light"); // Datenquelle und Variablenbezeichnungen einfügen } state = analogRead(sensorPin); lightState = digitalRead(ledPin); if (state <= 50) { digitalWrite(ledPin, HIGH); client.add("light", lightState); myservo.write(180); client.add("blind", 0);ubidotsPublish("Control"); Serial.println("Nacht - Licht AN, Jalousien unten."); } else { digitalWrite(ledPin, LOW); client.add("light", lightState); myservo.write(0); client.add("blind", 1); client.ubidotsPublish("Control"); Serial.println("Tageslicht AUS, Jalousien oben."); } client.add("luminosity", state); //Fügen Sie Ihre Variablenbezeichnungen und den zu sendenden Wert ein. client.ubidotsPublish("Control"); client.loop(); }
Ergebnisse
Nachdem Sie Ihren Code geflasht haben, rufen Sie Ubidots und aktualisieren Sie die Seite. Sie sehen dann das neu erstellte Datenquellen -Steuerelement .
Wenn Sie den Status der Jalousien oder der Beleuchtung überprüfen möchten, können Sie Ihr dashboard nach Ihren Wünschen gestalten. Falls Sie nicht wissen, wie das geht, finden Sie hier eine Anleitung .

Wir haben Ihnen gerade gezeigt, wie man eine Lichtsteuerung auf Basis des Internets der Dinge entwirft. Dies beweist, wie einfach sich scheinbar komplexe Dinge mit den richtigen Werkzeugen realisieren lassen.
dashboard zur Steuerung und Verwaltung Ihrer Beleuchtung zu erstellen Ubidots Widgets und -Ereignisse zu erfahren, sehen Sie sich diese Video-Tutorials und melden Sie sich noch heute kostenlos an!