Table des matières:

Pot de fleurs automatisé - Petit jardin : 13 étapes (avec photos)
Pot de fleurs automatisé - Petit jardin : 13 étapes (avec photos)

Vidéo: Pot de fleurs automatisé - Petit jardin : 13 étapes (avec photos)

Vidéo: Pot de fleurs automatisé - Petit jardin : 13 étapes (avec photos)
Vidéo: Le Plus Grand Point Noir Du Monde ?😱 2024, Juillet
Anonim
Pot de Fleurs Automatisé - Petit Jardin
Pot de Fleurs Automatisé - Petit Jardin

Je suis étudiant en technologie multimédia et communication à Howest Kortrijk. Pour notre mission finale, nous devions développer un projet IoT de notre choix.

En cherchant des idées, j'ai décidé de faire quelque chose d'utile pour ma mère qui aime faire pousser des plantes et j'ai commencé à travailler sur un pot de fleurs automatisé.

Les principales tâches de ce pot de fleurs automatisé Little Garden sont les suivantes:

  • Mesurer le

    • Température
    • Intensité lumineuse
    • Humidité
    • Humidité du sol

Enregistrer les mesures dans une base de données

Améliorer les conditions de croissance des plantes si une certaine valeur est trop faible

Laissez l'appareil être surveillé et géré via un site Web

Toutes les étapes ne doivent pas être suivies à la trace. Une grande partie de ce qui se passe peut être votre préférence personnelle ou être améliorée. Cette construction a été conçue de manière à ce que les pièces puissent être récupérées par la suite, vous voudrez donc peut-être aborder votre itération différemment pour la rendre plus permanente

Étape 1: Fournitures

Fournitures
Fournitures
Fournitures
Fournitures
Fournitures
Fournitures

La plupart des fournitures pour ce projet ne sont pas très difficiles à acquérir, même si dans mon cas j'ai travaillé avec beaucoup de matériaux recyclés. Je devais aussi m'assurer de pouvoir récupérer certains matériaux par la suite.

Composants de base:

  • Raspberry Pi 4 modèle B
  • Alimentation Raspberry Pi
  • Cordonnier Raspberry Pi
  • Carte micro SD de 16 Go
  • Alimentation de la planche à pain avec 3,3 V et 5 V
  • Planche à pain
  • Alimentation 12V

Capteurs:

  • DHT11: Capteur d'humidité et de température
  • BH1750: Capteur d'intensité lumineuse
  • Capteur d'humidité du sol
  • MCP3008

Composants de l'actionneur:

  • Pompe à eau 220V
  • Bande LED 12V
  • Module relais Velleman
  • ASTUCE 50: transistor NPN
  • Écran LCD 16X2
  • PCF8574a

Résistances:

  • 3 résistances de 330 Ohm
  • 1 résistance de 5k Ohm
  • 2 résistances de 10k Ohm
  • 1 résistance de 1k Ohm
  • 1 résistance de potentiel 10k

Matériaux:

  • Serre/pot à plantes préfabriqués
  • Boîte de dérivation
  • Bouteille d'eau en plastique
  • Pivote
  • Fils cavaliers + fil ordinaire
  • Broche
  • Étain à souder + gaine thermorétractable
  • Ruban adhésif double face
  • Peindre

Outils:

  • Pistolet à colle
  • Percer
  • Lame de scie
  • Fer à souder
  • Cutter
  • Pinceau

L'avantage de ce projet est qu'il peut être étendu ou simplifié, en ajoutant/supprimant des composants et en modifiant légèrement le code. Par exemple, en remplaçant la pompe 220V par une pompe 12V, vous pouvez retirer un adaptateur secteur de l'appareil.

Étape 2: Schéma de frittage

Schéma de frittage
Schéma de frittage
Schéma de frittage
Schéma de frittage

La maquette et les schémas électriques de l'appareil sont indiqués ci-dessus. Ici, vous pouvez voir comment tous les composants sont connectés entre eux.

Une explication générale du fonctionnement des composants:

  • Le DHT11 mesure l'humidité de l'air en % et la température en °C. La communication avec elle est gérée par une bu I2C.
  • Le BH1750 mesure l'intensité lumineuse en lux. La communication est gérée par un bus I2C
  • Le capteur d'humidité du sol crée un signal numérique qui est converti par le MCP3008 en un signal numérique lisible pour le Raspberry Pi
  • Le module LCD 16x2 affiche les adresses IP du Pi, l'une après l'autre. Il est connecté à un PCF8574a qui reçoit un signal du Raspberry Pi qui le convertira en un certain nombre de signaux pour les broches binaires de l'affichage. Les broches E et RS de l'écran LCD sont connectées directement au Pi. La résistance de potentio détermine la luminosité de l'écran.
  • La pompe à eau est connectée à un relais qui se trouve entre elle et son alimentation/prise 220V. Le Raspberry Pi peut envoyer un signal au relais pour fermer le circuit électrique et allumer la pompe.
  • La bande LED est connectée à l'alimentation 12V et au TIP 50 (transistor NPN) qui bascule le courant électrique. La résistance de 1k Ohm est utilisée pour limiter la puissance tirée du Raspberry Pi, sinon elle serait frite très croustillante.

Étape 3: préparer le Raspberry Pi

Préparer le Raspberry Pi
Préparer le Raspberry Pi

Si vous n'en avez pas encore, vous devrez mettre l'une des images du système d'exploitation Raspberry Pi sur la carte SD. Je ne recommande pas d'utiliser Lite, car cela m'a causé des problèmes au début. Ensuite, vous devrez vous assurer que votre Pi est à jour en utilisant les commandes suivantes pendant que le Pi est connecté à Internet:

  1. sudo apt-get mise à jour
  2. sudo apt-get mise à niveau

Après quoi, vous pouvez activer ou installer les packages pour que le projet fonctionne, soit via raspi-config, soit via des commandes.

  • SPI
  • I2C
  • MySQL: prochaine étape
  • SocketIO: pip install flask-socketio

Après l'installation, vous pouvez ajouter les fichiers nécessaires qui sont écrits en html, CSS, Javascript et Python. Tout mon code se trouve sur mon dépôt github.

Étape 4: Modèle de base de données - MySQL

Modèle de base de données - MySQL
Modèle de base de données - MySQL

Ci-dessus, vous pouvez voir le diagramme ERD qui est hébergé via MariaDB. Je recommande de suivre ce guide d'installation de MariaDB, non seulement pour installer MariaDB, mais aussi pour vous assurer que votre Pi est protégé.

Pour les personnes qui voudraient comprendre, la base de données fonctionne comme suit:

Les mesures et les bascules de l'actionneur sont stockées sous forme de lignes dans la table Metingen.

  • metingId = ID de la ligne de mesure/basculement
  • deviceId = ID de l'appareil responsable de cette ligne dans le tableau
  • waarde = valeur de la mesure du capteur ou de la bascule de l'actionneur

    • capteur: valeur de la mesure dans les unités correspondantes
    • actionneurs: 0 = OFF et 1 = ON
  • commentaar = commentaires utilisés pour ajouter des informations supplémentaires, telles que des erreurs
  • datum = la date et l'heure auxquelles la mesure/le basculement s'est produit

Les paramètres de l'appareil sont stockés dans Paramètres.

  • settingId = ID de cette ligne et la valeur du paramètre
  • deviceID = ID de l'appareil/capteur correspondant
  • waarde = valeur du réglage
  • type = type de réglage, est-il maximum ou minimum ?

Enfin, le tableau Devices contient des informations sur les capteurs et les actionneurs.

  • deviceId = ID de l'appareil dans cette table
  • naam = nom de l'appareil/composant
  • merk = marque
  • prijs = prix du composant
  • beschrijving = résumé du composant
  • eenheid = unité pour les valeurs mesurées
  • typeDevice = spécifie si le composant est un capteur ou un actionneur

Étape 5: Frontend: Configuration du serveur Web

Frontend: configuration du serveur Web
Frontend: configuration du serveur Web

Le Pi vous demandera d'installer le serveur Web Apache afin d'exécuter le serveur Web pour cet appareil. Cela peut être fait avec la commande suivante:

sudo apt-get install apache2.

Une fois cela fait, vous pouvez naviguer jusqu'au dossier: /var/www/html. Ici, vous devrez placer tout le code du frontend. Ensuite, vous pouvez accéder au site Web en naviguant jusqu'à l'adresse IP.

Étape 6: Back-end

Pour exécuter le backend, vous devrez exécuter le fichier app.py, soit manuellement, soit en créant un service pour celui-ci sur le Pi afin qu'il démarre automatiquement.

Comme vous pouvez le remarquer, il y a pas mal de fichiers. J'ai séparé le code autant que possible pour avoir une vue d'ensemble et une organisation claires du code.

Une brève explication:

app.py: Le fichier principal où la base de données, le code matériel et le code backend sont joints

config.py: fichier de configuration pour les référentiels de bases de données

Référentiels: Pour accéder au référentiel de données

  • Assistant

    • devices_id: classes pour aider à identifier les informations de périphérique dans la base de données
    • lcd: pour exécuter le PCF et l'écran LCD
    • Actionneurs: classes de fonctionnement des actionneurs
    • Capteurs: cours pour faire fonctionner les capteurs

Étape 7: Placer la bande LED

Placer la bande LED
Placer la bande LED

J'ai coupé un morceau de la bande LED et l'ai collé sur le dessus de la boîte à effet de serre. La bande que j'ai utilisée peut être coupée à plusieurs endroits et reconnectée, vous pouvez donc placer plusieurs bandes et les reconnecter par la suite à l'aide de fils, ce qui permet d'éclairer plus d'espace.

Étape 8: Placer les tubes

Placer les tubes
Placer les tubes

Les tubes pouvaient être placés de plusieurs manières, mais dans mon cas, je les ai attachés sur le côté du fond, en les gardant aussi loin que possible des autres appareils électroniques et en laissant l'eau s'écouler simplement dans la saleté.

Étape 9: Placement de l'écran LCD

Placer l'écran LCD
Placer l'écran LCD

J'ai coupé un tout dans le couvercle de la boîte de jonction avec une lame de scie, créant une ouverture assez grande pour que l'écran puisse passer, mais assez petite pour que le PCB reste derrière. Ensuite, il a été attaché au couvercle à l'aide de biais.

L'écran LCD affiche les adresses IP du Raspberry Pi, ce qui permet de savoir quelle adresse vous pouvez utiliser pour surfer sur le site.

Étape 10: Placement des capteurs et connexion de la bande LED

Placement des capteurs et connexion de la bande LED
Placement des capteurs et connexion de la bande LED
Placement des capteurs et connexion de la bande LED
Placement des capteurs et connexion de la bande LED

En utilisant les schémas de frittage, j'ai soudé les connexions entre les fils et placé les résistances à l'intérieur des fils, en utilisant des tubes thermorétractables pour les isoler.

Des trous ont été découpés sur les côtés du couvercle et du fond de la serre pour fixer les pivots, à travers lesquels j'ai tiré les fils des capteurs et de la bande LED.

J'ai regroupé les fils par fonction. La tension des fils et des tubes thermorétractables elle-même a maintenu les capteurs. Je n'ai eu qu'à utiliser de la colle sur les fils pour le DHT11 car cela s'est étendu plus loin.

Étape 11: Câblage du Pi

Câblage du Pi
Câblage du Pi
Câblage du Pi
Câblage du Pi
Câblage du Pi
Câblage du Pi

J'ai découpé des trous sur le côté de la boîte de jonction pour permettre aux fils de passer plus tard.

Après cela, j'ai placé la planche à pain (avec le cordonnier en T, PCF8574a, MCP3008, résistance réglable et TIP50), le relais et le Raspberry Pi au bas de la boîte de jonction, qui était recouverte de ruban adhésif double face. L'alimentation ne rentrait pas sur la maquette, j'ai donc dû la mettre sur le côté et utiliser des câbles de connexion pour la connecter à la maquette.

Enfin, j'ai tiré les fils de l'adaptateur, du capteur et de l'actionneur à travers les trous connectés les fils à la planche à pain, au Raspberry Pi et à d'autres composants. Le fil de la pompe a été coupé pour que je puisse placer les extrémités à l'intérieur du relais afin qu'il puisse être utilisé comme interrupteur.

Étape 12: Faire un récipient pour l'eau

Fabriquer un récipient pour l'eau
Fabriquer un récipient pour l'eau

J'ai fabriqué un réservoir d'eau à partir d'une bouteille d'eau en plastique de 1 litre en coupant le haut avec un cutter et en le peignant pour un meilleur look. La pompe à eau a ensuite été placée à l'intérieur. En raison de la règle des vases communicants, l'eau pourrait potentiellement s'écouler toute seule dans les tuyaux, mais maintenir le tube en place résout le problème.

Étape 13: Résultat final

Résultat final
Résultat final
Résultat final
Résultat final

Le moment que vous attendiez. Vous pouvez maintenant placer la terre et les graines à l'intérieur de la boîte de serre et laisser l'appareil prendre le relais. Vous pouvez surveiller l'état de l'appareil à partir du site Web et définir les valeurs optimales pour les conditions d'éclairage et de sol.

Je recommande d'arroser le sol d'abord manuellement, car certaines saletés peuvent être assez sèches au début. Certaines pompes semblent également arroser assez lentement, mais vous devez être très prudent car elles se rempliront plus rapidement que prévu. Une saturation supérieure à 80% peut rendre le sol très détrempé. Et assurez-vous que le capteur d'humidité du sol est suffisamment profond.

Conseillé: