Lichtsteuerung mit NodeMcu und Ubidots
Wie oft haben Sie versehentlich das Licht in Ihrem Zuhause eingeschaltet gelassen? Lösen Sie dieses Problem schnell mit einem automatischen Lichtsensorsystem, das sich je nach Lichtmenge in einer Umgebung ausschalten (und einschalten) kann.
Dieses System arbeitet mit einem Lichtsensor, der für die Erkennung der Menge und Klarheit des Tageslichts verantwortlich ist. Wenn der Sensor Tageslicht erkennt, schaltet er das Licht in Ihrem Haus aus und fährt die Jalousien hoch; Wenn der Sensor erkennt, dass kein Licht vorhanden ist, schaltet er das Licht ein und fährt die Jalousien herunter. Außerdem können Sie mit Ubidots jederzeit ein zusätzliches Licht ein- oder ausschalten.
Es ist sehr einfach herzustellen und hilft, was noch wichtiger ist, Energie zu sparen.
Überblick
In diesem Beitrag wird erläutert, wie Sie NodeMcu mit Ubidots . NodeMcu ist ein IoT -Gerät (Internet of Things) mit GPIO, PWM, IIC, 1-Wire und ADC-All-in-One-Board und verfügt über eine Wi-Fi-Verbindung. Es ist einfach zu bedienen und Sie benötigen lediglich die Arduino IDE, um das Gerät zu programmieren.
Anforderungen
- NodeMcu-Version 1.0
- Grove Base Shield für NodeMcu
- Grove-Staffel
- Grove-Lichtsensor
- Grove weiße LED
- Servomotor
- Ubidots ESPMQTT-Bibliothek
- Ubidots Konto
Aufstellen
- Verbinden Sie zunächst den NodeMcu mit seinem Basisschild und verbinden Sie dann die Komponenten wie folgt:
Das Endergebnis:
- Gehen Sie zur Arduino IDE, klicken Sie auf Dateien –> Einstellungen und geben Sie die URL unten in das Feld „Zusätzliche Board Manager-URLs“ ein. Sie können mehrere URLs hinzufügen und diese durch Kommas trennen.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Öffnen Sie „Boards Manager“ im Menü „Extras -> Board“ und installieren Sie die esp8266-Plattform. Vergessen Sie nicht, nach der Installation Ihr NodeMCU 1.0-Board aus dem Menü auszuwählen.
2. Laden Sie die Ubidots ESPMQTT-Bibliothek , falls Sie dies noch nicht getan haben. Klicken Sie nun auf Skizze –> Bibliothek einschließen –> .ZIP-Bibliothek hinzufügen
3. Wählen Sie die .ZIP-Datei von Ubidots ESPMQTT und dann „Akzeptieren“ oder „Auswählen“ für alle Bibliotheken. Wenn Sie die Bibliothek nicht hinzufügen können, versuchen Sie es manuell: Entpacken Sie die heruntergeladene RAR-/ZIP-Datei und kopieren Sie den Ordner aus der Bibliothek in den Pfad C:Users ubidots DocumentsArduinolibraries
4. Schließen Sie die Arduino IDE und öffnen Sie sie erneut.
Ubidots einrichten
- Fügen Sie eine neue Datenquelle namens „manual“ und eine neue Variable namens „extra_light“ (wie unten gezeigt).
2. Stellen Sie sicher, dass der Name der Datenquelle und der Variablen mit ihren API-Labels übereinstimmt. Dies ist wichtig, da unsere Variable über das API-Label abonniert wird und die Kommunikation zwischen Ubidots und NodeMcu ermöglicht. Nachdem Sie die Datenquellen- und Variablenbezeichnungen überprüft haben, können Sie deren Namen mit nur einem Klick bearbeiten.
3. Erstellen Sie den Schalter , mit dem Sie das Licht ein- oder ausschalten können. 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 (variabel) –> Fertig stellen.
Programmieren Sie den ESP8266 NodeMcu
Sobald alles richtig angeschlossen ist, gehen wir zur IDE und schreiben den folgenden Code:
/**************************************** * Bibliotheken einschließen ****** **********************************/ #include " Ubidots ESPMQTT.h" #include<Servo.h> /**************************************** * Konstanten definieren ****** **********************************/ #define TOKEN "...." // Dein Ubidots TOKEN # define WIFINAME "...." //Ihre SSID #define WIFIPASS "...." // Ihr WLAN-Pass #define MQTTCLIENTNAME "..." // Ihr MQTT-Clientname, er muss eindeutig sein, daher empfehlen wir die Auswahl ein zufälliger ASCCI-Name Servo myservo; int sensorPin = A0; int ledPin = D5; int RelayPin = D3; int-Zustand; 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("] "); für (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.ubidots Subscribe("manual", "extra_light"); //Datenquelle und Variablenbeschriftungen 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); Kunde. ubidots Publish("Control"); Serial.println("Nacht - Licht AN, Jalousien herunter."); } else { digitalWrite(ledPin, LOW); client.add("light", lightState); myservo.write(0); client.add("blind", 1); Kunde. ubidots Publish("Control"); Serial.println("Tag – Licht AUS, Jalousien hoch."); } client.add("luminosity", state); //Fügen Sie Ihre Variablenbeschriftungen und den Wert ein, der an den Client gesendet werden soll. ubidots Publish("Control"); client.loop(); }
Ergebnisse
Gehen Sie nach dem Flashen Ihres Codes zu Ubidots und aktualisieren Sie die Seite. Das neue Datenquellen- „Steuerelement“ wird erstellt.
Wenn Sie den Zustand der Jalousien oder des Lichts überprüfen möchten, können Sie Ihr dashboard nach Ihren Wünschen gestalten. Wenn Sie nicht wissen, wie Sie dieses Tutorial .
Wir haben Ihnen gerade gezeigt, wie Sie eine Lichtsteuerung auf Basis des Internets der Dinge entwerfen und damit beweisen, wie einfach scheinbar komplexe Dinge mit den richtigen Werkzeugen erledigt werden können.
Jetzt ist es an der Zeit, ein dashboard zur Steuerung und Verwaltung Ihrer Lichter zu erstellen. Um mehr über Ubidots Video-Tutorials an und melden Sie sich noch heute kostenlos an!