Contrôle de la lumière avec NodeMcu et Ubidots
Combien de fois avez-vous accidentellement laissé les lumières de votre maison allumées ? Résolvez ce problème rapidement grâce à un système de capteur de lumière automatique qui peut s'éteindre (et s'allumer) en fonction de la quantité de lumière dans un environnement.
Ce système fonctionne avec un capteur de lumière qui sera chargé de détecter la quantité et la clarté de la lumière du jour. Si le capteur détecte la lumière du jour, il éteindra la lumière de votre maison et relèvera les stores ; si le capteur détecte qu'il n'y a pas de lumière, il allumera la lumière et baissera les stores. De plus, en utilisant Ubidots vous pouvez allumer ou éteindre une lumière supplémentaire quand vous le souhaitez.
C'est très simple à réaliser et, surtout, permet d'économiser de l'énergie.
Aperçu
Cet article explique comment utiliser le NodeMcu avec Ubidots . NodeMcu est un appareil Internet des objets ( IoT ) avec carte tout-en-un GPIO, PWM, IIC, 1-Wire et ADC, et dispose d'une connexion Wi-Fi. Il est facile à utiliser et vous avez juste besoin de l' IDE Arduino pour programmer l'appareil.
Exigences
- NodeMcu version 1.0
- Bouclier de base Grove pour NodeMcu
- Relais du bosquet
- Capteur de lumière Grove
- LED blanche Grove
- Servomoteur
- Bibliothèque Ubidots ESPMQTT
- Compte Ubidots
Installation
- Tout d'abord, connectez le NodeMcu à son blindage de base, puis connectez les composants comme suit :
Le résultat final :
- Accédez à l'IDE Arduino, cliquez sur Fichiers -> Préférences et entrez l'URL ci-dessous dans le champ « URL supplémentaires du gestionnaire de cartes ». Vous pouvez ajouter plusieurs URL en les séparant par des virgules.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Ouvrez « Boards Manager » dans le menu Outils -> Board et installez la plateforme esp8266. N'oubliez pas de sélectionner votre carte NodeMCU 1.0 dans le menu après l'installation.
2. Téléchargez la Ubidots ESPMQTT si vous ne l'avez pas déjà fait. Maintenant, cliquez sur Sketch -> Inclure la bibliothèque -> Ajouter une bibliothèque .ZIP
3. Sélectionnez le fichier .ZIP d' Ubidots ESPMQTT puis « Accepter » ou « Choisir » pour toutes les bibliothèques. Si vous ne parvenez pas à ajouter la bibliothèque, essayez manuellement : décompressez le rar/zip téléchargé et copiez le dossier de la bibliothèque dans le chemin C:Utilisateurs ubidots DocumentsArduinolibraries
4. Fermez l'IDE Arduino et rouvrez-le.
Configuration Ubidots
- Ajoutez une nouvelle source de données appelée « manuel » et une nouvelle variable appelée « extra_light » (comme indiqué ci-dessous).
2. Vérifiez que le nom de la source de données et de la variable est le même que leurs étiquettes API. Ceci est important car notre variable sera souscrite via l'API Label et elle permettra la communication entre Ubidots et le NodeMcu. Après avoir vérifié les étiquettes de source de données et de variable, vous pouvez modifier leur nom en un seul clic.
3. Créez l' interrupteur qui vous permet d'allumer ou d'éteindre la lumière. Pour cela, allez dans Dashboard et en haut à droite de la page, cliquez sur Ajouter un widget . Sélectionnez Contrôle -> Commutateur -> manuel (source de données) -> lumière (variable) -> finition.
Programmer le NodeMcu ESP8266
Une fois que tout est correctement connecté, nous irons dans l’EDI et écrirons le code suivant :
/****************************************** * Inclure les bibliothèques ****** **********************************/ #include " Ubidots ESPMQTT.h" #include<Servo.h> /**************************************** * Définir les constantes ****** **********************************/ #define TOKEN "...." // Votre JETON Ubidots # définir WIFINAME "...." //Votre SSID #define WIFIPASS "...." // Votre Wifi Pass #define MQTTCLIENTNAME "..." // Votre nom de client MQTT, il doit être unique donc nous vous recommandons de choisir un nom ASCCI aléatoire Servo myservo ; int sensorPin = A0 ; int ledPin = D5; int relayPin = D3; état int ; int état clair ; Client Ubidots (TOKEN, MQTTCLIENTNAME); /****************************************** * Fonctions auxiliaires ****** **********************************/ rappel nul (sujet char*, charge utile octet*, longueur int non signée) { Serial.print("Message arrivé ["); Serial.print (sujet); Série.print("] "); pour (int je = 0; je <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 Abonnez-vous("manuel", "extra_light"); //Insérer la source de données et les étiquettes de la variable } state = analogRead(sensorPin); lightState = digitalRead(ledPin); si (état <= 50) { digitalWrite(ledPin, HIGH); client.add("light", lightState); monservo.write(180); client.add("aveugle", 0); client. ubidots Publier("Contrôle"); Serial.println("Nuit - Lumière allumée, stores baissés."); } autre { digitalWrite(ledPin, LOW); client.add("light", lightState); monservo.write(0); client.add("aveugle", 1); client. ubidots Publier("Contrôle"); Serial.println("Jour - Lumière éteinte, aveugle."); } client.add("luminosité", état); //Insérez votre variable Labels et la valeur à envoyer au client. ubidots Publier("Contrôle"); client.loop(); }
Résultats
Après avoir flashé votre code, rendez-vous sur Ubidots et actualisez la page. Vous verrez le nouveau « contrôle » créé.
Si vous souhaitez vérifier l'état des stores ou de la lumière, vous pouvez créer votre dashboard à votre guise. Si vous ne savez pas comment consulter ce tutoriel .
Nous venons de vous montrer comment concevoir une commande d'éclairage basée sur l'Internet des objets, ce qui prouve à quel point des choses apparemment complexes peuvent être réalisées très facilement avec les bons outils.
Il est maintenant temps de créer un dashboard pour contrôler et gérer vos lumières dès aujourd'hui. Pour en savoir plus sur Ubidots , consultez ces didacticiels vidéo et inscrivez-vous gratuitement dès aujourd'hui !