Table des matières:
- Étape 1: Capteurs de sol
- Étape 2: Capteur d'animaux
- Étape 3: Contrôleur de pompe à eau
- Étape 4: Capteur de pluie
- Étape 5: Sirène animale
- Étape 6: Système principal
- Étape 7: Le système Web
Vidéo: Système de jardin sans fil : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Ce projet est basé sur Arduino et utilise des "modules" pour vous aider à arroser vos plantes et à obtenir la température, le sol et la pluie.
Le système est sans fil à 2,4 GHz et utilise des modules NRF24L01 pour envoyer et recevoir des données. Laissez-moi vous expliquer un peu comment cela fonctionne, PS ! Excusez-moi si l'anglais n'est pas correct à 100 %, je viens de Suède.
J'utilise ce système pour contrôler mes plantes, car j'ai différentes plantes dont j'avais besoin pour les enregistrer différemment. J'ai donc construit un système de journalisation basé sur les zones.
Les capteurs de sol qui mesurent l'humidité et la température du sol (fonctionnent sur batterie) vérifient toutes les heures et transmettent les données à la machine de base disposant d'une connexion wifi. Les données sont téléchargées sur un serveur dans ma maison et se connectent à une page Web.
Si le sol a besoin d'eau, il activera la pompe appropriée en fonction du capteur de sol vérifié. Mais s'il pleut, il n'arrosera pas. Et s'il fait vraiment chaud, il arrosera un peu plus.
Disons que vous avez une terre de pommes de terre, une pour le tabac et une pour la tomate, alors vous pouvez avoir 3 zones avec 3 capteurs différents et 3 pompes.
Il existe également des capteurs pir qui vérifient les mouvements, et s'ils sont activés sur la page Web, une sirène puissante commencera à effrayer l'animal ou la personne qui marche près de mes plantes.
J'espère que vous comprenez un peu. Commençons maintenant à fabriquer des capteurs som.
Ma page GitHub où vous téléchargez tout:
Étape 1: Capteurs de sol
Chaque capteur a un numéro unique qui est ajouté à la page Web. Ainsi, lorsque le capteur de sol transmet les données de ce capteur de sol seront ajoutées à la zone correcte. Si le capteur n'est pas enregistré, aucune donnée ne sera soumise.
Pour cette construction, vous avez besoin de:
- 1x puce Atmega328P-PU
- 1x module nRF24L01
- 1x 100 uf Condensateur
- 1x transistor NPN BC547
- 2x 22 pF Condensateurs
- 1x cristal 16.000 MHz
- 1x capteur d'humidité du sol
- 1x capteur de température DS18B20
- 1x RGB Led (l'anode commune est utilisée par moi)
- 3 résistances de 270 ohms
- 1x résistance 4, 7 K ohms
- Batterie (j'utilise une batterie Li-Po 3.7v)
- Et si li-po est utilisé, un module chargeur pour batterie.
Pour que les capteurs fonctionnent longtemps, n'utilisez pas de carte Arduino préfabriquée, ils videront la batterie rapidement. Utilisez plutôt la puce Atmega328P.
Branchez le tout comme il apparaît dans ma fiche électrique. (Voir l'image ou le fichier PDF) Il est recommandé d'ajouter également un interrupteur d'alimentation afin de pouvoir couper l'alimentation lors de la charge.
Lors du téléchargement du code, n'oubliez pas de définir le capteur pour leur donner un numéro d'identification unique, le code est disponible sur ma page GitHub.
Pour maintenir les capteurs de sol en vie pendant longtemps, j'utilise un transistor NPN pour les alimenter, uniquement lorsque la lecture commence. Donc ils ne sont pas activés tout le temps, Chaque capteur a un numéro d'identification de 45XX à 5000 (cela peut être modifié) donc chaque capteur doit avoir des numéros uniques, il suffit de le définir dans le code.
Les capteurs se mettront en veille pour économiser la batterie.
Étape 2: Capteur d'animaux
L'Animal Sensor est un simple capteur pir. Il détecte la chaleur des animaux ou des humains. Si le capteur détecte un mouvement. Ils enverront à la station de base.
Mais il ne se déclenchera aucune alarme, pour ce faire, sur la page vous devez l'activer, ou si vous avez configuré une minuterie elle s'activera automatiquement à ce moment-là.
Si la base reçoit un signal de mouvement du capteur Animal, elle le transmettra au capteur Siren et cela fera (j'espère) effrayer l'animal. Ma sirène est à 119 db.
Le capteur pir fonctionne sur batterie et je l'ai placé dans un ancien boîtier de capteur pir d'une ancienne alarme. Le câble qui sort du capteur animal sert juste à recharger la batterie.
Pour ce capteur il vous faut:
- Puce ATMEGA328P-PU
- 1 cristal de 16 000 MHz
- 2 condensateurs 22 pF
- 1 x module de capteur Pir
- 1 condensateur de 100 uF
- 1 module NRF24L01
- 1 x Led (je n'utilise pas de led RGB ici)
- 1 résistance de 220 ohms
- Si vous utilisez une batterie, vous en avez besoin (j'utilise Li-Po)
- Un module chargeur de batterie si vous avez une batterie de recharge.
- Une sorte d'interrupteur d'alimentation.
Connectez le tout comme vous le voyez sur la fiche électrique. Vérifiez si vous pouvez alimenter votre capteur pir à partir de votre batterie (certains ont besoin de 5v pour fonctionner).
Obtenez le code de mon GitHub et définissez le capteur de sorcière que vous allez utiliser (Ex: SENS1, SENS2, etc.) afin qu'ils obtiennent des numéros uniques.
La puce ATMEGA ne se réveillera que lorsque le mouvement sera enregistré. Sins le module de capteur pir a intégré une minuterie pour le retard, il n'y a rien pour cela dans le code, alors ajustez le pot sur le capteur pir pour le retard qu'il sera éveillé.
Voilà pour le capteur animal, on passe à autre chose.
Étape 3: Contrôleur de pompe à eau
Le contrôleur de pompe à eau sert à démarrer une pompe ou une vanne d'eau pour arroser vos champs. Pour ce système, vous n'avez pas besoin d'une batterie, vous avez besoin d'alimentation pour faire fonctionner votre pompe. J'utilise un module AC 230 à DC 5 v pour faire fonctionner un Arduino Nano. J'ai aussi des types de pompes, une qui utilise une vanne d'eau qui fonctionne sur 12 v, donc pour cela j'ai un module AC 230 à DC 12v sur la carte relais.
L'autre est 230 AC dans le relais afin que je puisse alimenter une pompe 230 V AC.
Le système est assez simple, chaque contrôleur de pompe a des numéros d'identification uniques, alors disons que le champ de pommes de terre est sec et que le capteur est réglé sur l'eau automatique, puis ma pompe qui est pour le champ de pommes de terre est ajoutée à ce capteur, donc le capteur de sol indique au système de base que l'arrosage doit commencer, de sorte que le système de base envoie un signal à cette pompe pour qu'elle s'active.
Vous pouvez définir combien de temps il doit s'exécuter sur la page Web (par exemple 5 minutes) car les capteurs ne vérifient que toutes les heures. De plus, lorsque la pompe s'arrête, l'heure est enregistrée dans le système afin que le système automatique ne démarre pas la pompe trop tôt. (Également possible à configurer sur la page Web).
Vous pouvez également via la page Web désactiver l'arrosage pendant la nuit/le jour en définissant des heures spéciales. Et aussi configurer des minuteries pour que chaque pompe commence à arroser. Et s'il pleut, ils n'arrosent pas.
J'espère que tu as compris:)
Pour ce projet, vous avez besoin de:
- 1 x Arduino Nano
- 1 module NRF24L01
- 1 condensateur de 100 uF
- 1 Led RVB (l'anode commune est utilisée par moi)
- 3 résistances de 270 ohms
- 1 x carte relais
Connectez le tout comme la fiche électrique (voir fichier pdf ou image) Téléchargez le code depuis GitHub et n'oubliez pas de définir le numéro du capteur.
Et maintenant que vous avez un contrôleur de pompe, le système peut en gérer plus d'un.
Étape 4: Capteur de pluie
Le capteur de pluie est utilisé pour détecter la pluie. Vous n'en avez pas besoin de plus d'un. Mais il est possible d'en ajouter plus. Ce capteur de pluie est alimenté par batterie et vérifie toutes les 30 minutes s'il pleut. Ils ont également un numéro unique pour s'identifier.
Le capteur de pluie utilise des broches analogiques et numériques. La broche numérique sert à vérifier s'il pleut (le numérique n'affiche que oui ou non) et vous devez régler le pot sur le module du capteur de pluie quand c'est ok pour avertir de la "pluie" (le niveau d'eau sur le capteur qui indique qu'il pleut.)
La broche analogique est utilisée pour indiquer en pourcentage à quel point il est humide sur le capteur.
Si la broche numérique détecte qu'il pleut, le capteur l'enverra au système de base. Et le système de base n'arrosera pas les plantes tant qu'il "pleut". Le capteur envoie également à quel point il est humide et l'état de la batterie.
Nous n'alimentons le capteur de pluie que lorsqu'il est temps de lire à travers le transistor qui permet à travers une broche numérique.
Pour ce capteur il vous faut:
- Puce ATMEGA328P-PU
- 1x cristal 16 000 MHz
- Condensateur 2x 22 pF
- 1x module de capteur de pluie
- 1x condensateur de 100 uF
- 1x module NRF24L01
- 1x RGB Led (j'ai utilisé une anode commune, c'est VCC au lieu de GND)
- 3 résistances 270 Ohm
- 1x transistor NPN BC547
- 1x batterie (j'utilise Li-Po)
- 1x module chargeur Li-Po (si batterie Li-Po utilisée)
Connectez le tout comme vous le voyez sur la fiche électrique (en pdf ou dans l'imageEnsuite téléchargez le code sur la puce ATMEGA comme vous pouvez le trouver dans ma page GitHub sous Capteur de pluieN'oubliez pas de définir le capteur pour obtenir le bon numéro d'identification.
Et maintenant, vous aurez un capteur de pluie qui fonctionne toutes les 30 minutes. Vous pouvez modifier l'heure si vous ne le souhaitez pas plus ou moins.
Dans la fonction counterHandler(), vous pouvez configurer l'heure de réveil de la puce. Vous calculez comme ceci: Les puces se réveillent toutes les 8 secondes et chaque fois, cela augmentera une valeur. Ainsi, pendant 30 minutes, vous obtiendrez 225 fois avant qu'il ne doive faire des actions. Il y a donc 1800 secondes sur une demi-heure. Divisez-le donc par 8 (1800 / 8) vous obtiendrez 225. Cela signifie qu'il ne vérifiera pas le capteur avant qu'il ne fonctionne 225 fois et ce sera environ 30 minutes. Vous faites la même chose sur le capteur de sol également.
Étape 5: Sirène animale
La sirène animale est simple lorsque le capteur d'animaux détecte un mouvement, la sirène sera activée. J'utilise une vraie sirène pour que je puisse même effrayer les gens avec. Mais vous pouvez aussi utiliser des sirènes que seuls les animaux entendent.
J'utilise un Arduino nano dans ce projet et je l'alimente en 12v. La sirène est également 12 v donc au lieu d'un relais j'utiliserai un transistor 2N2222A pour activer la sirène. Si vous utilisez un relais lorsque vous avez la même masse, vous pouvez endommager votre Arduino. C'est pourquoi j'utilise un transistor à la place pour activer la sirène.
Mais si votre sirène et Arduino n'utilisent pas la même masse, vous pouvez utiliser un relais à la place. Ignorez le transistor et la résistance de 2,2K et utilisez plutôt une carte relais. Et changez également le code Arduino lorsqu'il est activé, passez de HIGH à LOW et lorsqu'il est inactivé, passez de LOW à HIGH och lecture numérique pour la broche 10, car le relais utilise LOW pour s'activer et le transistor utilise HIGH, vous devez donc le changer.
Pour cette construction, vous avez besoin de:
- 1x Arduino nano
- 1x résistance 2.2K (ignorer si vous utilisez une carte relais)
- 1x 2N2222 Transistor
- 1x sirène
- 3x 270 Ohm Résistance
- 1x RGB Led (j'utilise une anode commune, VCC au lieu de GND)
- 1 module NRF24L01
- 1x condensateur de 100 uF
Connectez tout comme vous le voyez sur la fiche électrique en PDF ou dans l'image. Téléchargez le code sur l'Arduino que vous trouvez sur ma page GitHub sous Animal SirenN'oubliez pas de définir le capteur pour le bon numéro d'identification.
Et maintenant, vous avez une sirène qui fonctionne.
Étape 6: Système principal
Le système principal est le plus important de tous les modules. Sans cela, vous ne pouvez pas utiliser ce système. Le système principal est connecté à Internet avec le module ESP-01 et nous utilisons les broches Arduino Megas Serial1 pour le connecter. Le RX sur Mega à TX sur ESP mais nous devons passer par deux résistances pour faire descendre le volt à 3,3. Et du TX sur Mega au RX sur ESP.
Configurer le module ESP
Pour utiliser l'ESP, vous devez d'abord régler le débit en bauds sur 9600, c'est ce que j'ai utilisé dans ce projet et j'ai trouvé que l'ESP fonctionne le mieux. En sortie de boîte, il est réglé sur un débit de 115 200 bauds, vous pouvez l'essayer mais le mien n'était pas si stable. Pour ce faire, vous avez besoin d'un Arduino (Mega fonctionne bien) et vous devez connecter le TX d'ESP (à travers les résistances comme vous le voyez sur la feuille) au Serial TX (pas Serial1 si vous utilisez Mega) et RX sur ESP à Arduino Serial Réception.
Téléchargez un croquis clignotant (ou tout autre croquis qui n'utilise pas de série) et ouvrez le moniteur série et réglez le débit en bauds sur 115200 et NR & CR sur les lignes
Dans la ligne de commande, écrivez AT et appuyez sur Entrée. Vous devriez obtenir une réponse qui dit OK, alors maintenant nous savons que l'ESP fonctionne. (Si non il y a un problème de connexion ou un mauvais module ESP-01)
Maintenant, dans la ligne de commande, écrivez AT+UART_DEF=9600, 8, 1, 0, 0 et appuyez sur Entrée.
Il répondra par un OK et cela signifie que nous avons réglé le débit en bauds à 9600. Redémarrez l'ESP avec la commande suivante: AT+RST et appuyez sur Entrée. Modifiez le débit en bauds dans le moniteur série à 9600 et entrez AT et appuyez sur Entrée. Si tout va bien, l'ESP est configuré pour 9600 et vous pouvez l'utiliser pour le projet.
Le module de carte SD
Je veux qu'il soit facile de modifier les paramètres WIFI du système, en cas de changement de mot de passe ou de nom wifi. C'est pourquoi nous avons besoin du module de carte SD. À l'intérieur de la carte SD, créez un fichier texte avec le nom config.txt et nous utilisons JSON pour lire, nous avons donc besoin d'un format JSON. Le fichier texte doit donc contenir le texte suivant:
{ "ssid": "VOTREWIFISSID", "losen": "VOTRE MOT DE PASSEWIFI"
}
Modifiez le texte avec les GRANDES lettres pour corriger votre réseau wifi.
Les péchés que nous utilisons NRF24L01 qui utilise SPI et le lecteur de carte SD utilise également SPI, nous devons utiliser la bibliothèque SDFat afin que nous puissions utiliser SoftwareSPI (nous pouvons ajouter le lecteur de carte SD sur toutes les broches)
Capteur DHT
Ce système est placé à l'extérieur et dispose d'un capteur DHT afin que nous puissions vérifier l'humidité et la température de l'air. Il est utilisé pour un arrosage supplémentaire par temps chaud.
Pour cette construction, vous avez besoin de:
- 1x Arduino méga
- 1x module NRF24L01
- 1x module ESP-01
- 1x module de carte micro SD SPI
- 1x capteur DHT-22
- 1x RGB Led (j'ai utilisé une anode commune, VCC au lieu de GND)
- 3 résistances 270 Ohm
- 1x résistance 22 K Ohm
- 2x 10 K Ohm résistance
Veuillez noter que si vous n'obtenez pas votre module ESP-01 stable, essayez de l'alimenter à partir d'une source d'alimentation externe de 3,3 V.
Connectez tout comme vous le voyez dans la fiche électrique dans le fichier PDF ou dans l'image.
Téléchargez le code sur votre Arduino Mega et n'oubliez pas de vérifier l'intégralité du code pour les commentaires, car vous devez configurer l'hôte sur le serveur à plusieurs endroits (ce n'est pas la meilleure solution que je connaisse).
Votre système de base est maintenant prêt à être utilisé. Vous n'avez pas besoin de modifier les variables dans le code pour les péchés d'humidité du sol, vous pouvez le faire directement à partir de la page Web.
Étape 7: Le système Web
Pour utiliser le système, vous avez également besoin d'un serveur Web. J'utilise un raspberry pi avec Apache, PHP, Mysql, Gettext. Le système Web est multilingue, vous pouvez donc le créer facilement dans votre langue. Il est livré avec le suédois et l'anglais (l'anglais peut avoir un anglais incorrect, ma traduction n'est pas à 100%). Vous devez donc avoir Gettext installé pour votre serveur, ainsi que les paramètres régionaux.
Je vous montre quelques captures d'écran ci-dessus du système.
Il est livré avec un système de connexion simple et la connexion principale est: admin en tant qu'utilisateur et water en tant que mot de passe.
Pour l'utiliser, vous devez configurer trois tâches cron (vous les trouverez dans le dossier cronjob)
Le fichier timer.php que vous devez exécuter toutes les secondes. Cela contient toute l'automatisation du système de trous. Le nom de fichier temperatur.php est utilisé pour dire au système de lire la température de l'air et de l'enregistrer. Vous devez donc configurer une tâche cron sur la fréquence à laquelle vous allez l'exécuter. Je l'ai toutes les 5 minutes. Ensuite, le fichier appelé dagstatistik.php ne devrait s'exécuter qu'une seule fois avant minuit (comme 23h30, 23h30). Il prend les valeurs signalées par les capteurs pendant la journée et les enregistre pour les statistiques de la semaine et du mois.
Veuillez noter que ce système stocke la température en Celsius, mais vous pouvez la changer en Fahrenheit.
Dans le fichier db.php, vous configurez la connexion à la base de données mysql pour le système.
Tout d'abord, ajoutez les capteurs au système. Et puis créez des zones et ajoutez des capteurs aux zones.
Si vous avez des questions ou trouvez des bogues dans le système, veuillez les signaler sur la page GitHub. Vous pouvez utiliser le système Web et vous n'êtes pas autorisé à le vendre.
Si vous rencontrez des problèmes avec les paramètres régionaux de gettext, n'oubliez pas que si vous utilisez Raspberry comme serveur, ils sont souvent nommés comme en_US. UTF-8, vous devez donc effectuer ces modifications dans le fichier i18n_setup.php et dans le dossier locale. Sinon, vous serez coincé avec la langue suédoise.
Vous le téléchargez sur la page GitHub.
Conseillé:
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes
Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D
Système d'arrosage automatique sans fil de bricolage sans exigence d'accès à Internet : 3 étapes
Système d'arrosage automatique sans fil pour plantes sans exigence d'accès à Internet : j'aimerais arroser automatiquement mes plantes régulièrement, peut-être une ou deux fois par jour selon les saisons. Mais au lieu d'avoir un copain IOT pour faire le travail, je préférerais quelque chose de autonome pour cette tâche spécifique. Parce que je ne veux pas y aller
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch: 6 étapes
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch : Raspberry Pi est idéal pour créer des points d'accès sans fil sécurisés mais il n'a pas une bonne portée, j'ai utilisé un adaptateur sans fil USB TP Link WN7200ND pour l'étendre. Je veux partager comment le fairePourquoi est-ce que je veux utiliser un Raspberry Pi au lieu d'un routeur ?T
Système DIY de micro sans fil pour guitare sans fil : 4 étapes
DIY Wireless Mic to Wireless Guitar System: J'ai regardé des vidéos et des groupes et presque tous utilisent un système sans fil à la guitare. Devenir fou, bouger, marcher et faire ce qu'ils veulent sans le cordon alors je rêve d'en avoir un.. Mais.. pour moi maintenant c'est trop cher alors je suis arrivé à ça
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes
Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est