Table des matières:

Automatisation de la maison verte : 11 étapes
Automatisation de la maison verte : 11 étapes

Vidéo: Automatisation de la maison verte : 11 étapes

Vidéo: Automatisation de la maison verte : 11 étapes
Vidéo: Les Distributeurs Ne Veulent Pas Que Vous Sachiez Ça 2024, Novembre
Anonim
Automatisation de la maison verte
Automatisation de la maison verte

L'automatisation de la serre est un projet dans lequel trois paramètres d'une serre, à savoir l'humidité du sol, la température et l'humidité, sont surveillés à distance par l'utilisateur simplement à l'aide d'un navigateur Web.

Étape 1: Composants requis

Composants requis
Composants requis
Composants requis
Composants requis
Composants requis
Composants requis

Certains composants essentiels requis sont énumérés ci-dessous

1. Raspberry PI modèle B

2. Carte de développement NodeMCU

3. Module Wifi ESP8266

4. Capteur d'humidité

5. Capteur de température et d'humidité DHT11

6. Relais monocanal 5V

7. Pompe à eau submersible 5V

8. Planche à pain

9. Module d'alimentation de la planche à pain

Étape 2: Langue et protocole

Langue et protocole
Langue et protocole
Langue et protocole
Langue et protocole
Langue et protocole
Langue et protocole
  • Le langage C est utilisé pour les microcontrôleurs.
  • Messagerie MQTT: MQTT signifie MQ Telemetry Transport. Il s'agit d'un protocole de messagerie de publication/abonnement, extrêmement simple et léger, conçu pour les appareils contraints et les réseaux à faible bande passante, à latence élevée ou peu fiables. Les principes de conception sont de minimiser les besoins en bande passante du réseau et en ressources de l'appareil tout en essayant d'assurer la fiabilité et un certain degré d'assurance de livraison. Ces principes s'avèrent également rendre le protocole idéal dans le monde émergent des appareils connectés « machine à machine » (M2M) ou « Internet des objets », et pour les applications mobiles où la bande passante et la puissance de la batterie sont primordiales.
  • Le programme Python est utilisé pour automatiser le débit d'eau et la connectivité à la base de données.

Étape 3: Eclipse Mosquitto MQTT Broker

Courtier Eclipse Mosquitto MQTT
Courtier Eclipse Mosquitto MQTT

Ici, j'ai utilisé le courtier Mosquitto MQTT pour faciliter la communication des messages entre les nœuds.

Eclipse Mosquitto est un courtier de messages open source (sous licence EPL/EDL) qui implémente les versions 5.0, 3.1.1 et 3.1 du protocole MQTT. Mosquitto est léger et convient à une utilisation sur tous les appareils, des ordinateurs monocartes à faible consommation aux serveurs complets.

Le protocole MQTT fournit une méthode légère d'exécution de messagerie à l'aide d'un modèle de publication/abonnement. Cela le rend adapté à la messagerie Internet des objets, par exemple avec des capteurs à faible puissance ou des appareils mobiles tels que des téléphones, des ordinateurs intégrés ou des microcontrôleurs.

Le projet Mosquitto fournit également une bibliothèque C pour implémenter les clients MQTT et les clients MQTT en ligne de commande mosquitto_pub et mosquitto_sub très populaires.

Étape 4: Flux de données dans l'ensemble du projet

Dans l'image ci-dessus, les nœuds sont

  1. NodeMCU
  2. Tarte aux framboises
  3. ESP8266

NodeMCU est la partie de détection de la Green House et l'ESP8266 est la partie d'actionnement qui fournit l'eau lorsque le sol a besoin d'eau selon les capteurs.

Raspberry PI contient le Mosquitto Broker et un client Python qui abonne les messages provenant du MQTT Broker et stocke les données dans un serveur SQL.

Étape 5: Connexion des capteurs avec le NodeMCU

Connexion des capteurs avec le NodeMCU
Connexion des capteurs avec le NodeMCU

Le capteur de température et d'humidité DHT11 et le capteur d'humidité de l'eau sont capables de fonctionner sur 3,3 volts.

NodeMCU ne peut pas fournir plus de 3,3 volts. Ainsi, les capteurs peuvent être directement connectés à la carte du microcontrôleur NodeMCU.

Étape 6: Connexion de la pompe à eau submersible avec l'ESP8266

Connexion de la pompe à eau submersible avec l'ESP8266
Connexion de la pompe à eau submersible avec l'ESP8266
Connexion de la pompe à eau submersible avec l'ESP8266
Connexion de la pompe à eau submersible avec l'ESP8266

Une pompe à eau submersible est utilisée pour fournir l'eau chaque fois que nécessaire.

La pompe à eau a besoin d'une alimentation de 5 volts pour son fonctionnement.

Un relais à canal unique est nécessaire pour connecter le moteur. Lorsque la broche GPIO2 de l'ESP8266 est activée, le relais s'allume et fournit automatiquement l'eau à l'aide de la pompe à eau submersible.

Ici, une alimentation externe est fournie à la carte ESP8266, au relais et à la pompe à eau submersible.

Ma connexion matérielle complète est dans l'image ci-dessus.

Étape 7: Installation de Mosquitto Broker et exécution du programme Python dans Raspberry Pi

Voici les étapes pour installer le courtier Mosquitto dans Raspberry PI

Ouvrez le terminal et tapez les commandes suivantes

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get mise à jour

sudo apt-get install moustique

sudo apt-get install mosquitto-clients

Il devrait démarrer automatiquement Mosquitto.

Pour arrêter et démarrer le service que j'avais besoin d'utiliser

sudo service stop moustique

service sudo démarrer moustique

La plupart des sites que j'ai découverts utilisent le format.

sudo /etc/init.d/mosquitto stop

Étape 8: Comment fonctionne MQTT ?

Comment fonctionne MQTT ?
Comment fonctionne MQTT ?

MQTT est l'un des protocoles les plus couramment utilisés dans les projets IoT. Il signifie Message Queuing Telemetry Transport.

De plus, il est conçu comme un protocole de messagerie léger qui utilise des opérations de publication/abonnement pour échanger des données entre les clients et le serveur. De plus, sa petite taille, sa faible consommation d'énergie, ses paquets de données minimisés et sa facilité de mise en œuvre font du protocole l'idéal du monde « machine à machine » ou « Internet des objets ».

Comme tout autre protocole Internet, MQTT est basé sur des clients et un serveur. De même, le serveur est la personne qui est chargée de gérer les demandes du client de recevoir ou d'envoyer des données entre eux. Le serveur MQTT est appelé un courtier et les clients sont simplement les appareils connectés. Donc:

* Lorsqu'un appareil (un client) souhaite envoyer des données au courtier, nous appelons cette opération une « publication ».

* Lorsqu'un appareil (un client) souhaite recevoir des données du courtier, nous appelons cette opération un « abonnement ».

Étape 9: Programmation de NodeMCU et ESP8266

Voici le code source pour la carte de microcontrôleur NodeMCU et ESP8266

Étape 10: Conception d'une page Web et connexion à la base de données SQL

La page Web est conçue en utilisant les langages HTML, CSS et PHP.

PHP est utilisé pour extraire les lectures des capteurs de la base de données et les afficher dans la page HTML.

Un programme python est utilisé comme cœur de ce projet.

Les travaux effectués par le programme python sont les suivants.

  1. Il s'abonne à un sujet dans lequel le capteur envoie les lectures du capteur.
  2. Il publie la commande marche/arrêt de la pompe à eau au courtier MQTT.
  3. Il stocke la lecture du capteur dans une base de données SQL.

Ici, dans mon cas, le programme python et la base de données SQL sont présents dans un ordinateur portable. La page Web s'exécutant via un hôte local.

Voici le code source de mon programme python.

Étape 11: Terminer le travail

Travail complet
Travail complet

Voici les étapes dans lesquelles le processus se déroule.

  1. NodeMCU fonctionne comme partie de détection et lit la température, l'humidité et le niveau d'humidité du sol.
  2. Il envoie les lectures au broker MQTT avec un topic "Topic 1"
  3. Dans un ordinateur portable, le programme python est en cours d'exécution et il s'abonne à un sujet « Topic 1 » avec le courtier MQTT.
  4. Lorsque le NodeMCU envoie les lectures, le courtier Mosquitto MQTT envoie immédiatement les données au programme python.
  5. Le programme Python calcule ensuite s'il y a de l'eau nécessaire dans la serre. Ensuite, il stocke les lectures dans la base de données SQL.
  6. Si de l'eau est nécessaire dans la serre, le programme python publie un message d'activation/désactivation de la pompe à eau au courtier Mosquitto MQTT avec un sujet "Sujet 2"
  7. ESP8266 fonctionne comme un actionneur. Il s'abonne au topic "Topic 2" dans lequel le programme python publie le message. Lorsque le programme python publie un message, le message est immédiatement transféré à l'ESP8266. Selon le message marche/arrêt, il a allumé/éteint la pompe à eau submersible.
  8. Dernière phase pour afficher les lectures en direct dans la page Web. La page Web récupère les données de la base de données SQL dans laquelle le programme python stocke les données directement et affiche les lectures dans la page.

Conseillé: