Table des matières:

ESP8266-01 Minuterie intelligente IoT pour la domotique : 9 étapes (avec photos)
ESP8266-01 Minuterie intelligente IoT pour la domotique : 9 étapes (avec photos)

Vidéo: ESP8266-01 Minuterie intelligente IoT pour la domotique : 9 étapes (avec photos)

Vidéo: ESP8266-01 Minuterie intelligente IoT pour la domotique : 9 étapes (avec photos)
Vidéo: Smart Home with Google Assistant & Alexa using NodeMCU ESP8266 (Manual + Voice) | IoT Projects 2021 2024, Juillet
Anonim
ESP8266-01 Minuterie intelligente IoT pour la domotique
ESP8266-01 Minuterie intelligente IoT pour la domotique
ESP8266-01 Minuterie intelligente IoT pour la domotique
ESP8266-01 Minuterie intelligente IoT pour la domotique
ESP8266-01 Minuterie intelligente IoT pour la domotique
ESP8266-01 Minuterie intelligente IoT pour la domotique

MISES À JOUR

2018-09-30: Mise à jour du micrologiciel vers la version 1.09. Maintenant avec le support de base de Sonoff

2018-10-01: version d'essai du micrologiciel 1.10 disponible pour les tests sur ESP8266-01 avec des problèmes

Avec les nouveaux mots à la mode Internet des objets (IoT) et domotique, j'ai décidé d'examiner les éléments actuels dans et autour de ma maison qui sont contrôlés via une sorte d'appareil. Les éléments qui se sont démarqués sont les suivants:

  • Pompe de piscine
  • Remplisseur d'eau de piscine
  • Piscine et lumières environnantes
  • Lumières d'armoire de système de télévision/de divertissement

L'élément commun utilisé pour contrôler ces appareils sont les minuteries de prise murale standard. Chaque appareil est équipé de sa propre minuterie et sont tous situés à des endroits différents. Alors pourquoi ai-je choisi ces éléments pour commencer avec des projets d'Internet des objets ou de domotique, pourriez-vous demander ?

Eh bien, vivre en Afrique du Sud signifie que les pannes de courant sont fréquentes. Avec les statistiques de ma maison, j'ai eu 35 pannes de courant au cours de la dernière année, totalisant 40 heures. Ce n'est normalement pas un problème, car toutes les minuteries actuellement installées sont équipées d'une batterie de secours pour garder l'heure pendant les pannes de courant. Mais il y a quelques problèmes:

  • Ces piles de secours ne durent qu'un an ou deux, puis la minuterie doit être remplacée. Les minuteries sont construites de telle sorte que la minuterie doit être détruite pour accéder à la batterie Ni-Cad interne.
  • Chaque fois que l'alimentation est coupée, les minuteries avec des piles défectueuses doivent être reprogrammées et l'heure réglée.
  • L'emplacement physique de la minuterie, lorsqu'elle est branchée sur la prise murale, rend presque impossible la lecture des écrans LCD en regardant la minuterie par le haut. Cela signifie que la minuterie doit être débranchée ou que je dois m'allonger sur le sol pour régler ou ajuster les minuteries après une panne de courant.

Pour les raisons ci-dessus, j'ai décidé de tester la possibilité de remplacer les minuteries par une minuterie intelligente IoT, connectée à mon réseau domestique local.

L'idée était de concevoir une minuterie autonome, qui peut:

  • Ajustez automatiquement l'heure actuelle à l'aide d'Internet (IoT)
  • Fonctionne sans aucune action de l'utilisateur (Smart)
  • Activer/désactiver une sortie selon des horaires définis (Timer)
  • Programmable et contrôlable via le réseau (domotique)

Étape 1: La conception ESP8266-01

La conception ESP8266-01
La conception ESP8266-01
La conception ESP8266-01
La conception ESP8266-01

La conception a été réalisée à l'aide d'un module WiFi ESP8266-01, car c'est ce que j'avais à disposition. Dans sa forme la plus simple, l'ESP8266-01 possède quatre broches d'E/S:

  • GPIO0
  • GPIO2
  • Émission
  • Réception

ESP8266-01 Modes de mise sous tension

L'état logique des broches d'E/S est utilisé pour déterminer dans quel mode l'ESP8266-01 démarrera. La première étape consistait à déterminer laquelle des broches d'E/S peut être utilisée pour piloter un relais de sortie.

  • Pour une mise sous tension normale, GPIO0 et GPIO2 doivent être réglés sur logique HAUT. Il est donc clair que ces deux broches ne peuvent pas être utilisées comme sortie numérique.
  • La broche Tx est définie comme une sortie à la mise sous tension et la sortie est définie sur un niveau élevé. Cette broche Tx transmet également des données série lors de la mise sous tension. Ainsi, cette broche ne peut pas non plus être utilisée comme sortie.

La seule broche restante est la broche Rx. Cette broche est définie comme une entrée à la mise sous tension et n'a pas besoin d'être tirée vers le haut lors de la mise sous tension. Cette broche est donc la plus adaptée pour être utilisée comme broche de sortie.

Démarrage

Pour garantir un mode de démarrage correct de l'ESP8266-01 lors de la mise sous tension, les broches suivantes sont tirées vers le haut à l'aide de résistances de 10K:

  • GPIO0
  • GPIO2
  • TVD
  • CH_PD

Cela garantit que l'unité démarre correctement à chaque fois.

Relais de sortie

Le RX est la seule broche pouvant être utilisée comme sortie. Cette broche est ainsi utilisée pour piloter le relais de sortie via un transistor NPN. La diode à volant d'inertie standard et les résistances à base de transistor ont été ajoutées.

Bouton MODE/SET

Le bouton est connecté à GPIO2, et avec le bouton relâché, une résistance de 10K tirera GPIO2 vers le haut. Avec le bouton enfoncé, GPIO2 est tiré à 0V.

Ce bouton est utilisé pour deux fonctions:

  • Configuration initiale pour connecter l'unité à un réseau WiFi local
  • Pour contrôler manuellement la sortie pendant les opérations normales

LED d'indication

La LED est connectée à GPIO0, et indique ce qui suit:

  • Lors de la mise sous tension initiale, clignote RAPIDEMENT pour indiquer le mode de configuration WiFi
  • Clignote lentement lorsque l'heure de l'appareil n'est pas réglée
  • indique l'état On/Off du relais de sortie

Étape 2: L'alimentation

L'alimentation
L'alimentation
L'alimentation
L'alimentation
L'alimentation
L'alimentation

J'utiliserai la minuterie intelligente IoT sur différents niveaux de tension, il y a donc deux options d'alimentation disponibles:

12 - 24V CC

Le convertisseur DC-DC utilisé est adapté pour des alimentations jusqu'à 28V DC. La sortie du convertisseur est réglable et est réglée sur 5V. Cela doit être fait avant que le module ESP8266 ne soit connecté.

Une diode a été ajoutée pour protéger contre l'inversion de polarité sur l'entrée d'alimentation.

220V ACPour cette option, j'ai pu me procurer une petite alimentation à découpage 220V/5V sur eBay.

Quelle que soit la tension d'entrée, l'IoT Smart Timer a besoin de deux alimentations:

Rail 5V

Avec les deux options, le 5V DC est obtenu à partir d'une alimentation à découpage, et non d'un régulateur linéaire. Cela signifie qu'il y a une chaleur minimale générée par l'alimentation électrique. Le 5V est utilisé pour piloter le relais de sortie

Rail 3.3V

Le 3.3V pour l'ESP8266-01 est obtenu à partir d'un régulateur ASM1117 3.3. L'ASM1117 3.3 est un régulateur linéaire et peut gérer jusqu'à 500 mA. Cependant, la chaleur générée sera déterminée par la tension d'entrée de l'ASM1117. Pour réduire la chaleur, l'ASM1117 est alimenté par le rail 5V.

Filtrage du bruit

Pour réduire l'ondulation de tension vers l'ESP8266-01, le rail 3,3 V est équipé d'un condensateur de 100 à 1000 uf. Les rails 5 V et 3,3 V sont également protégés contre les interférences haute fréquence par des condensateurs de 0,1 uf.

Étape 3: Assemblage de la carte de circuit imprimé

Assemblage de la carte de circuit imprimé
Assemblage de la carte de circuit imprimé
Assemblage de la carte de circuit imprimé
Assemblage de la carte de circuit imprimé
Assemblage de la carte de circuit imprimé
Assemblage de la carte de circuit imprimé

La carte PC a été conçue en utilisant la version gratuite d'Eagle. Il s'agit d'un panneau simple face, qui peut être facilement fabriqué à la maison en utilisant la méthode de transfert de toner.

Une fois la carte de circuit imprimé réalisée, assemblez la carte de circuit imprimé dans l'ordre suivant:

  • Soudez le régulateur ASM1117 et trois composants SMD de 0,1 uf sur le côté soudure de la carte
  • Ajoutez le cavalier unique du côté composant de la carte
  • Soudez les résistances et les diodes en place
  • Ajouter les en-têtes pour le module ESP8266-01
  • Ajouter les broches d'en-tête pour la LED et le bouton
  • Ajouter les bornes à vis
  • À l'aide des broches d'en-tête, connectez le convertisseur DC/DC à la carte.
  • Soudez le relais en place
  • Complétez la carte en soudant le transistor et le condensateur 100 uf.

Une fois que tous les composants sont soudés à la carte, vérifiez tous les points de soudure et assurez-vous qu'il n'y a pas de court-circuit entre les pastilles.

! ! ! NOTE IMPORTANTE ! ! ! Pour vous assurer que la carte de circuits imprimés peut gérer des courants importants sur les contacts de sortie, appliquez une quantité décente de soudure sur les pistes entre les contacts de relais et les bornes à vis

Étape 4: Test de la carte de circuit imprimé

Test de la carte PC
Test de la carte PC

! ! ! Avant de mettre sous tension ! ! !

Retirez le module ESP8266-01 de l'unité. Ceci afin d'éviter la surchauffe du régulateur ASM1117 avant que l'alimentation 5V ne soit ajustée.

Il n'y a pas beaucoup de tests qui peuvent être faits après l'assemblage. L'étape la plus importante est de garantir les niveaux de tension corrects.

  • Appliquez 12 - 24V DC à l'unité.
  • Mesurer la tension de sortie du convertisseur DC/DC
  • Réglez la sortie du convertisseur entre 5,0 et 5,5 V.
  • Ensuite, mesurez l'alimentation 3,3V.
  • Si les alimentations sont correctes, coupez l'alimentation de l'unité

Vous pouvez maintenant insérer le module ESP8266-01 dans les en-têtes fournis.

! ! ! Noter !

Une fois que vous avez testé la minuterie IoT et qu'elle fonctionne, utilisez un vernis transparent pour couvrir le côté soudure de la carte de circuit imprimé. Cela empêchera l'oxydation des pistes et fournira une isolation supplémentaire entre les contacts du relais et le reste du circuit

Étape 5: L'enceinte

L'enceinte
L'enceinte
L'enceinte
L'enceinte
L'enceinte
L'enceinte

Le boîtier n'est pas si important, tant que la carte de circuit imprimé et tout le câblage s'y intègrent parfaitement et en toute sécurité.

Pour faciliter la construction, j'ai fabriqué un câble auquel la LED et le bouton MODE/SETUP sont connectés. Cela m'a donné plus de flexibilité dans le montage de la LED et du bouton sur le boîtier. Ce câble est ensuite branché dans l'en-tête de la carte de circuit imprimé.

Les photos montrent l'une des unités 12V utilisées pour les lumières LED.

Étape 6: Programmation de l'ESP8266-01/NodeMCU

Programmation de l'ESP8266-01/NodeMCU
Programmation de l'ESP8266-01/NodeMCU
Programmation de l'ESP8266-01/NodeMCU
Programmation de l'ESP8266-01/NodeMCU
Programmation de l'ESP8266-01/NodeMCU
Programmation de l'ESP8266-01/NodeMCU

Pour programmer l'ESP8266-01, vous devez d'abord configurer l'IDE Arduino. Je n'entre pas dans ces détails, car il existe de nombreux excellents Instructables disponibles sur ce sujet. J'ai choisi les liens suivants sur Instructables pour référence, sans ordre spécifique aux auteurs. Merci pour leurs Instructables individuels.

Suivez cet ESP8266 et Arduino IDE pour configurer l'Arduino IDE pour le module ESP8266.

Ensuite, vous aurez besoin d'un programmeur pour programmer l'ESP8266. Voici deux liens:

Utiliser Arduino Uno

Conseil de programmation de bricolage

Bibliothèques

Vous devrez installer des bibliothèques supplémentaires pour pouvoir compiler le code. Encore une fois, reportez-vous à ce Instructable:

Installer et utiliser les bibliothèques Arduino

Je ne me souviens plus des bibliothèques que je devais installer, mais je sais que WiFiManager doit être téléchargé séparément. Je les ai inclus dans le fichier Libraries.zip.

Étape 7: Configuration initiale

Première configuration
Première configuration
Première configuration
Première configuration
Première configuration
Première configuration

Lorsqu'il est utilisé pour la première fois, l'IoT Smart Timer doit être connecté à un réseau WiFi. Cette tâche est effectuée à l'aide de la bibliothèque WiFiManager, donc aucun SSID ou mot de passe n'a besoin d'être tapé dans le code.

Suivez ces quelques étapes:

  • Mettre l'unité sous tension
  • La LED commencera à clignoter rapidement
  • Appuyez sur le bouton MODE/SETUP
  • Lorsque la LED s'éteint, relâchez le bouton
  • Attendez quelques secondes, puis ouvrez les connexions WiFi de votre smartphone ou de votre appareil
  • Un nouveau réseau WiFi appelé IoT Timer sera visible
  • Sélectionnez ce point d'accès
  • Connectez-vous au minuteur IoT (aucun mot de passe n'est requis)
  • Attendez que votre appareil soit connecté au réseau IoT Timer
  • Ouvrez n'importe quel navigateur Internet
  • Dans la barre d'adresse, saisissez l'adresse IP suivante - 192.168.4.1
  • La console WiFiManager s'ouvrira
  • Sélectionnez Configurer le Wi-Fi
  • Une liste avec les points de réseaux WiFi disponibles sera affichée
  • Sélectionnez le réseau WiFi requis et saisissez le mot de passe
  • Ensuite, entrez l'adresse IP que vous souhaitez utiliser pour vous connecter au minuteur IoT
  • Entrez l'adresse IP de la passerelle par défaut, suivie du masque
  • Une fois tous les réglages effectués, cliquez sur le bouton Enregistrer
  • Une nouvelle fenêtre s'ouvrira pour confirmer que les nouvelles informations d'identification ont été enregistrées
  • Fermez votre navigateur

Une fois enregistré, le réseau IoT Timer s'éteindra et l'unité essaiera de se connecter à votre réseau WiFi.

  • Connectez votre smartphone ou appareil au même réseau WiFi que celui utilisé pour la minuterie IoT.
  • Ouvrez votre navigateur
  • Dans la barre d'adresse, saisissez l'adresse IP de votre minuteur IoT
  • La page de configuration de l'IoT Timer s'ouvrira

Votre minuteur IoT est maintenant prêt à être utilisé

Étape 8: Configuration de la minuterie IoT

Configuration de la minuterie IoT
Configuration de la minuterie IoT
Configuration de la minuterie IoT
Configuration de la minuterie IoT
Configuration de la minuterie IoT
Configuration de la minuterie IoT
Configuration de la minuterie IoT
Configuration de la minuterie IoT

La page Web intégrée du minuteur IoT se compose de cinq sections:

Statut

Cela montre le nom de l'appareil, ainsi que l'heure actuelle et l'état de sortie de la minuterie

De plus, le mode de fonctionnement de la minuterie est défini dans cette section. Il existe trois modes:

  • Auto - La sortie sera contrôlée par les différents programmes de minuterie
  • On - La sortie est forcée sur ON, et restera allumée jusqu'à ce que le mode soit changé
  • Off - La sortie est forcée sur OFF et restera éteinte jusqu'à ce que le mode soit changé.

Programmes

Cette section contient les heures d'activation et de désactivation de la minuterie. Il y a sept programmes disponibles, et chaque programme peut être réglé individuellement.

Avant de changer le programme suivant, appuyez sur le bouton SAVE pour enregistrer les modifications apportées au programme en cours.

Fonction du bouton

Le bouton MODE/SETUP peut être utilisé pour contrôler le relais de sortie pendant le fonctionnement normal. Ici, sélectionnez ce que le bouton doit faire lorsqu'il est enfoncé.

Cochez la case "Mettre à jour la fonction du bouton" avant d'appuyer sur le bouton Enregistrer pour enregistrer les nouveaux paramètres.

Configuration

Ici, vous pouvez changer le nom de la minuterie IoT. Cela facilite l'identification entre plusieurs minuteries.

L'heure sur l'unité est obtenue à partir d'Internet via un serveur de temps NTP. Pour afficher l'heure correcte, veuillez mettre à jour le fuseau horaire de votre région.

Si vous souhaitez utiliser un autre serveur de temps NTP, entrez la nouvelle adresse IP dans l'espace prévu.

Cochez la case "Mettre à jour la configuration" avant d'appuyer sur le bouton Enregistrer pour enregistrer les nouveaux paramètres.

REMARQUE

Lors de la modification du fuseau horaire, la nouvelle heure ne sera définie correctement que lors de la prochaine requête de temps. L'unité est réglée pour mettre à jour l'heure toutes les 5 minutes.

Réglage de l'heure

Parfois, il arrive que le serveur de temps NTP ne réponde pas à chaque requête de temps. Si le réglage de l'heure via le serveur NTP prend trop de temps, vous pouvez saisir l'heure et la date manuellement.

Cochez la case "Mettre à jour l'heure" avant d'appuyer sur le bouton Enregistrer pour enregistrer la nouvelle heure et la nouvelle date.

Synchronisation de l'heure

La dernière partie de la page indique l'heure et la date de la dernière synchronisation via le serveur de temps NTP.

Conseillé: