Le kit Maison de Noël contient le Nano Le microcontrôleur n'a que des fonctions limitées, comme allumer la lumière à l'aide du bouton situé à côté de la porte.
Dans ce billet de blog, l'ensemble doit être transformé en une petite maison intelligente avec fonction WiFi au look de Noël grâce à un mini microcontrôleur D1.
Matériel
Pour la mise en œuvre, vous avez besoin de :
D1mini ESP8266 (d'autres versions également possibles)
Kit sapin de Noël LED (d'autres versions également possibles)
Connectez le convertisseur de niveau au D1mini à l'aide des câbles en silicone comme suit :

Figure 1 : Câblage du D1mini
Pour le côté droit, vous pouvez utiliser une multiprise D1mini. Si vous disposez des outils appropriés, une connexion sertie est bien entendu l’option professionnelle.
Après avoir assemblé le kit Maison de Noël selon les instructions, ouvrez le panneau de toit sur le côté du boîtier de batterie.
Connectez maintenant le relais et le DHT22 aux connexions suivantes sur le Nano- Boucliers en place.
|
DHT22 |
Bouclier |
relais |
Bouclier |
|
+ |
V11 |
- |
G7 |
|
SORTI |
S11 |
+ |
(V 7) |
|
- |
G11 |
S |
S7 |
Les modules déjà installés du kit restent au niveau des connexions décrites dans les instructions.
La bande LED WS2812 n'est pas utilisée dans ce blog, mais le sapin de Noël LED est contrôlé via le relais. Cela peut également être utilisé en ajustant le nombre de LED.
Connectez l'arbre LED comme suit :
|
arbre |
relais |
Bouclier |
|
VCC |
|
v |
|
GND |
NON |
|
|
|
COM |
G |

Figure 2 : Connexions pour l'alimentation 5 V
Remarque :
Si vous alimentez le projet avec le relais et l'arbre de Noël via une source de tension externe (par exemple une batterie à l'arrière), les composants supplémentaires peuvent provoquer un échauffement important du régulateur à faible chute en cas de besoin de courant élevé. Cela peut potentiellement entraîner des dommages. Si le besoin en courant est supérieur à 500 mA, utilisez une source de tension distincte ou un convertisseur abaisseur.
Les relais et le capteur DHT22 peuvent désormais être fixés dans la maison avec du ruban adhésif double face par exemple.
Continuez à laisser la partie arrière du toit ouverte pour les étapes suivantes.
Logiciel
Depuis le Nano n'a pas d'interface WLAN, le D1 mini est requis. La seule tâche de cette personne est de fournir le serveur web pour le contrôle. Les informations sont ensuite envoyées à l'interface UART Nano, qui prend en charge l’intégralité du contrôle des composants.
Étant donné que les deux microcontrôleurs échangent des données via l'interface UART, la connexion doit être séparée pour flasher un microcontrôleur.
Préparation de l'IDE Arduino
Si vous utilisez des microcontrôleurs pour la première fois, vous devrez toujours télécharger le pilote approprié afin de pouvoir transférer le programme sur la carte.
Vous pouvez télécharger le fichier d'installation du pilote approprié ici télécharger.
Pour le D1 mini, vous avez besoin d’un package supplémentaire. Pour l'installer, copiez le lien suivant dans l'IDE Arduino sous : Fichier->Préférences->URL du gestionnaire de cartes supplémentaires :
http://arduino.esp8266.com/stable/package_esp8266com_index.json
et installez le package ESP32 dans la gestion de la carte Arduino IDE.
De plus, des bibliothèques sont nécessaires pour pouvoir contrôler l'écran LCD, le module LED et le capteur DHT22 :
Vous pouvez installer les bibliothèques à l'aide de la gestion des bibliothèques intégrée à l'IDE Arduino ou les télécharger au format .zip en utilisant le lien de Github et accéder à
Sketch > inclure la bibliothèque > Ajouter une bibliothèque .zip…
incorporer.
Coder Nano
Téléchargez le programme suivant Nano:
|
#include <Wire.h> |
Le code complet peut ici être téléchargé.
Explication :
Au début, les bibliothèques sont intégrées et des macros sont créées pour les noms de broches des modules connectés.
Vient ensuite l'initialisation des variables globales et des objets des bibliothèques.
La méthode suivante lit les valeurs des capteurs et génère une chaîne json à partir d'elles, qui est ensuite envoyée au D1mini via l'interface série (UART) afin que les valeurs climatiques puissent être affichées sur le site Web. Étant donné que le LDR n'est qu'une résistance et n'est donc pas calibré en usine, les valeurs limites réelles peuvent varier. Vous pouvez définir cela dans la fonction map(). (900 en dessous de la limite 0 % ; 100 limite supérieure à 100 %)
La fonction readLine() suivante forme une chaîne à partir des caractères individuels reçus via l'interface UART. Les caractères sont additionnés ici jusqu'à ce qu'une nouvelle ligne (\n) commence. La fonction est requise pour une évaluation ultérieure des données.
Dans setup(), les méthodes de démarrage des bibliothèques sont appelées et les IO du relais sont configurées en sortie.
La boucle() commence par exécuter le PoignéeCapteurs fonctionner chaque seconde. Le délai est ici implémenté avec une comparaison utilisant la fonction millis(). Cela signifie que la boucle() n'est pas bloquée.
La chaîne avec l'entrée du serveur Web est ensuite évaluée et la LED est ensuite réglée sur la couleur sélectionnée, le texte s'affiche sur l'écran et enfin le relais est réglé sur l'état transmis.
Serveur Web :
Suit maintenant le code html qui affiche le serveur web :
|
|
Fondamentalement, chaque fichier HTML est en un seul tête et corps divisé. La configuration s'effectue dans la tête. Cela inclut également le style des éléments.
Le corps contient également les éléments HTML individuels tels que les champs de saisie et les boutons. scénario Partie qui contient les méthodes.
Lorsque vous appuyez sur un bouton, une méthode assignée est exécutée, qui transmet ensuite l'entrée au microcontrôleur.
Cependant, les fonctions et la structure exactes du HTML ne seront pas abordées davantage ici.
Code mini D1
Téléchargez le programme complet (téléchargement à la fin) sur le D1mini :
|
#include <ESP8266WiFi.h> //Webserver html// |
Le code complet peut ici être téléchargé.
Explication :
Comme dans le code du Nano, Au début, les bibliothèques sont intégrées et les objets et variables globales sont initialisés.
Le code HTML est également chargé en mémoire ici. L'intégralité du fichier HTML a été omis ici pour plus de clarté.
Les méthodes suivantes sont les fonctions de rappel du serveur Web, avec lesquelles les entrées sont lues et affichées lorsqu'une modification est effectuée.
La fonction readLine correspond essentiellement à celle de Nanoprogramme utilisé. La seule différence est que la fonction rendement() est utilisée ici, ce qui permet d'exécuter des fonctions en arrière-plan. Cela signifie qu'il n'y a aucun problème avec le serveur Web en raison de processus en arrière-plan bloqués.
Un point d'accès est démarré dans setup() afin que vous puissiez vous connecter directement au D1mini et qu'aucune connexion WiFi n'est donc nécessaire.
Les méthodes de rappel sont ensuite attribuées et le serveur Web est démarré.
Le loop() est à nouveau structuré de manière analogue au programme du Nano. Ici la chaîne reçue n'est pas évaluée, mais est envoyée directement au serveur car elle est déjà au format json.
Une fois les deux microcontrôleurs flashés, branchez le mini-assemblage D1 dans l'en-tête de broche UART libre sur le Nano-Bouclier. Assurez-vous qu'il est correctement connecté (vous pouvez utiliser la broche GND comme référence dans le câblage ci-dessus.
Après le téléchargement, connectez-vous au réseau ouvert « SmartHome ». Si vous recevez une notification indiquant que le réseau n'a pas accès à Internet, activez-le Maintenir la connexion pour le réseau. Une fois connecté au réseau, ouvrez le navigateur sur l'appareil connecté et saisissez l'adresse 192.168.4.1. La page suivante s'affichera alors où vous pourrez contrôler la maison intelligente.

Figure 3 : Capture d'écran du serveur Web
Conclusion :
Maintenant que vous pouvez contrôler les différentes parties du projet via un serveur Web, vous pouvez toujours configurer des automatisations sur le Nano programmez-le, par exemple pour utiliser le bouton comme contrôle. Assurez-vous cependant qu'aucun bloc (while ou delay) n'est utilisé dans la boucle() afin de ne pas interrompre le traitement des données par le serveur Web.
Avec ces automatisations et éventuellement des capteurs ou modules supplémentaires, vous pouvez mettre en œuvre et étendre votre propre petit projet de maison intelligente.
Amusez-vous à le reproduire :)
Pour les lecteurs ayant des connaissances avancées, cela vaut également la peine de jeter un œil au blog pirater un arbre, dans lequel le kit sapin de Noël est reprogrammé et vous pouvez programmer vos propres motifs.






