Table des matières:
- Fournitures
- Étape 1: Construction de l'appareil
- Étape 2: Connexions du démarreur DOL
- Étape 3: Créez un compte avec Adafruit IO (io.adafruit.com)
- Étape 4: Créer et installer le logiciel
- Étape 5: Installez et configurez l'application MQTT Dash sur votre mobile
- Étape 6: Dernière étape:-) Tests et réglages
Vidéo: Contrôleur de démarrage DOL basé sur IOT pour pompe d'irrigation : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Bonjour les amis
Cette instructable explique comment surveiller et contrôler à distance un ensemble de pompes d'irrigation sur Internet.
Récit: Dans ma ferme, je ne suis alimenté en électricité par le réseau local que pendant environ 6 heures par jour. Les horaires ne sont pas réguliers, la disponibilité de l'électricité peut être tôt le matin ou tard le soir ou même minuit. Chaque fois que l'on se rendait à l'emplacement du puits de forage pour vérifier la disponibilité de l'énergie, démarrer ou arrêter le moteur était un processus très douloureux. De plus, je devais m'assurer que le moteur fonctionne au moins 2 à 3 heures par jour pour fournir suffisamment d'eau au système d'égouttement. Pendant un certain temps, j'explorais des options pour résoudre ce problème en actionnant le moteur à distance et en connaissant également l'état. Il existe des dispositifs disponibles sur le marché qui démarrent le moteur dès qu'il y a une alimentation électrique, mais ils n'ont pas la fonction d'arrêter le moteur quand nous le voulons. De plus, il n'y a aucun moyen de connaître l'état de marche/arrêt du moteur à tout moment. Cela conduit généralement à une irrigation excessive, entraînant une perte de fertilité du sol et également un gaspillage d'électricité. Enfin, j'ai construit moi-même une solution où je peux démarrer et arrêter le moteur à distance depuis un mobile/tablette/PC À TOUT MOMENT N'IMPORTE O…!!. Je peux également surveiller la disponibilité de l'alimentation électrique du réseau ainsi que l'état du moteur (ON/OFF) à tout moment. J'espère que cela aidera les propriétaires de fermes à la campagne à gérer leurs systèmes d'irrigation sans avoir besoin d'aller tout le temps à l'emplacement de démarrage.
Fournitures
Conditions préalables:
L'emplacement où vous souhaitez installer cet appareil doit avoir une disponibilité Internet (haut débit avec wifi/internet mobile)
Choses dont tu as besoin:
- NodeMCU /ESP12
- Relais à deux canaux
- WCS1700 – Capteur de courant
- Module de charge de batterie TP4056
- LD313, Condensateur - Registre 1000uF - Deux registres de 5k ohm
- Tout (ancien) Smartphone avec hotspot/internet.
Comment ça fonctionne:
Il s'agit d'une simple solution IOT basée sur le cloud utilisant NodeMCU/ESP12 et un courtier MQTT distant. NodeMCU fonctionne comme une passerelle IOT, contrôle également le démarreur DOL. Il se connecte au courtier MQTT distant via Internet. Une application fonctionnant sur un mobile Android se connecte au courtier via lequel nous pouvons surveiller et contrôler notre ensemble de pompes d'irrigation à tout moment. J'ai utilisé le courtier MQTT disponible gratuitement d'Adafruit IO. Il existe de nombreux courtiers gratuits disponibles comme mosquitto, cloudmqtt, etc. Vous pouvez choisir n'importe quel courtier à condition de modifier le serveur et le numéro de port dans le code. NodeMCU se connecte à Internet en utilisant le WiFi à partir du point d'accès mobile. Yon peut utiliser n'importe quel mobile ancien ou bon marché pour fournir un accès wifi via hotspot ou tout autre moyen de fournir Internet via wifi. Le mobile doit être connecté au chargeur comme il devrait l'être sur 24X7.
NodeMCU est interfacé avec deux relais pour contrôler le démarrage et l'arrêt du moteur. Pour détecter le courant dans le moteur, j'ai utilisé le capteur de courant WCS1700. La sortie analogique du capteur est utilisée pour savoir que le moteur est allumé ou éteint. Il détecte également la disponibilité de l'alimentation du réseau et la publie auprès du courtier afin que nous puissions connaître l'état du réseau à tout moment. L'appareil s'abonne à deux flux pour recevoir la demande de moteur ON et de moteur OFF. En envoyant des valeurs spécifiques à ces alimentations, nous pouvons contrôler le moteur pour START ou STOP.
Enfin, j'ai installé l'application MQTT Dash sur mon téléphone Android et l'ai configurée pour se connecter au courtier MQTT et utiliser les flux sur son tableau de bord/interface graphique. L'application a de très bonnes icônes avec des boutons, une jauge, un interrupteur, etc. pour créer un tableau de bord attrayant. Cependant, vous pouvez utiliser n'importe quelle application mobile domotique IOT qui prend en charge le protocole mqtt.
Comment fonctionne le WCS1700:
WCS1700 est essentiellement un capteur à effet Hall qui produira une tension de sortie proportionnelle au champ magnétique créé lorsque le courant traverse la bobine. La bobine ici est une ligne d'alimentation qui sera connectée au moteur. Il peut mesurer le courant alternatif jusqu'à 70 ampères. La tension de fonctionnement est comprise entre 3,3 et 12 V. Reportez-vous à sa fiche technique pour plus de détails. Comme j'utilise ESP12, j'ai utilisé la même alimentation de 3,3 V comme tension de fonctionnement pour WCS1700. Comme spécifié dans la fiche technique à 3,3 V, l'appareil doit produire une tension différentielle d'environ 32 à 38 mV par ampère de courant à travers la bobine. Mais cela peut varier en fonction de la taille de la bobine / de l'entrefer et des variations de l'appareil. J'ai donc dû le calibrer en le testant avec Ampere Meter. Je ne suis pas satisfait de la précision de l'appareil, mais il est assez bon pour décider de l'état du moteur sur ON/OFF. La broche de sortie de WCS1700 est connectée à A0 de ESP12. Lorsqu'il n'y a pas de courant, l'ESP12 doit lire la valeur autour de 556. À mesure que le courant augmente dans la bobine, la tension peut varier d'un côté ou de l'autre en fonction de la façon dont le câble passe à travers le capteur. Dans le code, j'ai pris la différence des valeurs comme valeur absolue de (x - 556). En divisant le résultat par 15, j'ai obtenu un courant approximatif circulant dans le capteur. Vous devrez expérimenter cela pour obtenir le bon numéro pour vous. Toute mesure de courant par l'appareil supérieure à 5 ampères, je considère que le moteur est allumé et inférieure à 5 ampères car le moteur est éteint. Vous pouvez utiliser le bon numéro pour votre appareil en expérimentant. Vous devez modifier WCS1700_CONST et MIN_CURRENT dans le code en conséquence.
Étape 1: Construction de l'appareil
Le schéma ci-dessus donne des détails complets sur la façon de câbler tous les composants.
Alimentation: j'ai utilisé le TP4056 pour charger les batteries et le LM313 pour réguler les 3,7 V - 4,2 V de la sortie de la batterie à 3,3 V pour alimenter le NodeMCU. Condensateur 1000 mF utilisé entre Vin et la masse du LM313 pour obtenir une alimentation stable de 3,3 V. Vous pouvez utiliser un chargeur mobile USB ordinaire pour alimenter le TP4056. Il a un circuit de protection de la batterie pour protéger la batterie contre la surcharge.
Détection de l'alimentation du réseau: le diviseur de tension de 5 k ohms réduira de 5 V à 2,5 V. La broche D5 de NodeMCU détectera la tension.
La broche de sortie de WCS1700 est connectée à A0 pour lire la tension analogique du capteur. La ligne Grid Power doit passer à travers le trou pour mesurer le courant. J'ai utilisé un condensateur de 0,01 uF pour obtenir la forme de lecture stable WCS1700.
D1 et D2 du NodeMCU à connecter à IN0 et IN1 des broches d'entrée du relais.
Étape 2: Connexions du démarreur DOL
J'ai modifié le circuit de commande du démarreur DOL pour introduire un autre ensemble d'interrupteurs START et STOP. Ce changement n'affectera pas l'opération de démarrage/arrêt manuel et ils continueront à fonctionner tels quels.
Avertir !!!! Comme le démarreur DOL est un appareil haute tension, assurez-vous que l'interrupteur principal est éteint avant d'ouvrir la boîte. Le contact direct avec un fil sous tension peut être dangereux. Si vous n'êtes pas sûr de vous, demandez l'aide d'un électricien pour effectuer les connexions
J'ai utilisé un module relais 2 canaux 5 V comme interrupteur START et STOP. Ces relais seront pilotés par l'ESP12.
Relais - 0 fonctionnera comme interrupteur START - câblé en NO (normalement ouvert).
Le relais-1 fonctionnera comme interrupteur d'ARRÊT - câblé comme NC (normalement fermé). Le démarreur aura déjà un fil reliant le contacteur supérieur au NVC. Vous devrez le retirer et le remplacer par les fils du relais -1 comme indiqué.
Assurez-vous que les connexions entre le démarreur et les modules de relais sont complètement isolées pour la sécurité. J'ai programmé l'ESP pour maintenir les deux relais pendant 2 secondes pour émuler la pression du bouton START/STOP.
Étape 3: Créez un compte avec Adafruit IO (io.adafruit.com)
J'ai utilisé le courtier Adafruit io mqtt qui est gratuit avec quelques limitations, mais c'est OK pour notre utilisation. Je préfère cela parce que je l'ai également utilisé dans d'autres projets et que je l'ai trouvé assez fiable et qu'il possède également de nombreuses autres fonctionnalités comme le tableau de bord avec une interface graphique agréable et même nous pouvons utiliser des déclencheurs. Pour utiliser Adafruit io, vous devez créer un compte et noter le nom d'utilisateur et la clé active.
Étape 4: Créer et installer le logiciel
Le code complet est disponible dans le croquis. Vous devez l'ouvrir dans Arduino IDE et apporter quelques modifications avant de compiler et de télécharger le firmware. Choisissez le type de carte comme NodeMCU 1.0. L'installation de l'EDI et des bibliothèques associées n'entre pas dans le cadre de cette documentation.
Modifiez les lignes suivantes dans le code en tant que jachères.
#define WLAN_SSID "xxx" // Votre SSID WiFi Hotspot mobile
#define WLAN_PASS "……" //
/****************************** Configuration d'Adafruit.io ******************** *************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // utiliser 8883 pour SSL
#define AIO_USERNAME "xyz" // Le nom d'utilisateur de votre compte adafruit
#define AIO_KEY "abcd……" // votre clé active…
À propos des flux MQTT: l'appareil et le client (application mobile) échangent des informations via des flux de messages à l'aide du sous-modèle de pub via le courtier MQTT. Tout client ou appareil pour recevoir un message doit s'abonner à un flux prédéfini et utiliser la méthode de publication pour envoyer un message à un flux. Pour notre projet, nous avons besoin d'environ 5 flux. Vous trouverez ci-dessous l'explication de chacun des flux comme vous le voyez dans le code et comment ils fonctionnent.
État du réseau: la disponibilité de l'alimentation électrique du réseau est publiée sur le flux /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/grid");
0 indique que l'alimentation n'est pas disponible et 1 pour l'alimentation est disponible.
État du moteur: L'appareil publiera l'état du moteur sur l'alimentation …/feeds/grid.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/motor")
Valeur 0 pour OFF et 1 pour ON
Bouton Motor ON: Cette alimentation est utilisée pour recevoir la demande de démarrage du moteur. L'appareil s'abonnera au flux pour recevoir la demande de démarrage du moteur avec la valeur = 1 et utilisera le même flux pour publier le message d'accusé de réception en tant que 0. De cette façon, nous pouvons confirmer que le message de demande de démarrage a bien été reçu par l'appareil.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_on");
Bouton d'arrêt du moteur:
Semblable à la demande de démarrage, cette alimentation est utilisée pour recevoir la demande d'arrêt du moteur. L'appareil s'abonnera au flux pour recevoir la demande d'arrêt avec la valeur = 1 et utilisera le même flux pour publier le message d'accusé de réception en tant que 0.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_off");
Lien:
Il s'agit d'un flux spécial avec l'option « dernière volonté » activée. Lorsque l'appareil fonctionne correctement à chaque intervalle fixe, il publiera connection=1 pour dire à l'utilisateur que tout va bien. En cas de panne du système ou de perte de connexion, l'appareil ne pourra pas communiquer avec le courtier. Dans de tels cas, le courtier MQTT lui-même publiera dans le flux comme connection=0 pour informer l'utilisateur que quelque chose s'est mal passé et que l'appareil n'est pas accessible via Internet. Nous devons physiquement aller vérifier l'appareil. Le code est très simple. Reportez-vous à la documentation MQTT pour plus de détails sur le fonctionnement de « Last Will ».
si(itr <= 0)
{
mqtt.publish(AIO_USERNAME "/feeds/connection", "1", 1);
itr = CON_LIVE_ITR;
}
Le reste du code est explicite et aucune modification n'est requise. N'hésitez pas à commenter au cas où vous auriez besoin de plus d'informations.
Étape 5: Installez et configurez l'application MQTT Dash sur votre mobile
- Installez MQTT Dash sur votre téléphone Android et ouvrez l'application
- Cliquez sur l'icône + dans le coin supérieur droit pour ajouter un appareil.
- Comme le montre la première image ci-dessus, donnez un nom à votre appareil, dites "MyFarm-IPSet". Le champ d'adresse est io.adafruit.com et le port 1883, le nom d'utilisateur doit être votre nom d'utilisateur adafruit et le mot de passe doit être votre clé active d'adafruit. Laissez le reste des champs tel quel. Cliquez enfin sur enregistrer.
- Vous avez créé votre appareil. Cliquez maintenant dessus pour y ajouter un tableau de bord.
- Cliquez sur + et sélectionnez le type comme commutateur/bouton. Comme indiqué ci-dessus, entrez sys dans le champ de nom. et entrez le nom du flux dans le champ du sujet. chaque flux doit commencer par username/feeds/. pour cela, nous /feeds/connection. Assurez-vous que l'option Activer la publication est désactivée. En cliquant sur l'icône à afficher, vous pouvez choisir le type d'icône à laquelle vous souhaitez ressembler sur le tableau de bord. Pour la valeur 1, sélectionnez l'une des couleurs (disons vert) et pour la valeur 0, sélectionnez la couleur gris ou rouge. Enfin, cliquez sur Enregistrer dans le coin supérieur droit. De même, créez deux autres icônes, une pour Grid avec nom d'utilisateur/flux/grille comme sujet et Moteur avec nom d'utilisateur/flux/moteur. Assurez-vous que l'option Activer la publication est désactivée.
- Enfin, créez le bouton Motor ON. C'est encore le même que le type comme interrupteur/bouton. Le sujet doit être /feeds/motor_on et assurez-vous que l'option Activer la publication est activée cette fois et QOS =1. De même, créez un autre bouton pour Motor OFF. Le sujet doit être /feeds/motor_off.
Étape 6: Dernière étape:-) Tests et réglages
- Pour être sûr, vous devez d'abord tester l'appareil pour ses opérations de démarrage et d'arrêt avant de connecter les relais au démarreur DOL. Activez Hotspot sur le mobile avec Internet activé. Connectez l'ordinateur portable ayant un environnement de développement directement au port USB NodeMCU avec un autre chargeur connecté au TP4056 en même temps. Si l'appareil est correctement connecté à Internet, vous devriez voir 1 appareil connecté au point d'accès sur le smartphone.
- Sur l'autre smartphone sur lequel vous avez installé MQTT Dash, ouvrez le tableau de bord de l'application. Vous devriez voir que l'icône NET en vert et l'icône Grille également en vert avec leurs valeurs de 1. L'icône du moteur doit s'afficher comme moteur éteint avec une valeur de 0.
- Lorsque vous cliquez sur le bouton Motor ON, le relais de démarrage doit émettre deux clics à un intervalle de deux secondes. De même, le bouton Motor OFF également.
- Pour des raisons de sécurité, coupez maintenant l'alimentation principale du démarreur DOL et connectez les relais au démarreur DOL comme indiqué ci-dessus à l'étape 2. Assurez-vous que le moteur est éteint. Appuyez sur le bouton de réinitialisation sur NodeMCU. À partir de la sortie du moniteur série, vous pouvez voir les instructions de débogage qui impriment les valeurs du capteur WC1700, le delta et le courant calculé dans la bobine. Avec le moteur à l'arrêt et " #define WCS1700_CONST 15 ", le maxCur doit être inférieur à 2 de manière cohérente. S'il est supérieur à 2, essayez avec des valeurs plus élevées de WCS1700_CONST. À chaque fois, vous devrez recompiler le code et charger le firmware.
- Allumez maintenant le moteur et recherchez à nouveau les lectures actuelles. Laissez le moteur allumé pendant environ 10 à 15 minutes et notez la lecture de courant stable. Le courant peut varier entre 10 et 20 ampères environ et n'a pas besoin d'être précis.
- Revenez au code et définissez " #define MIN_CURRENT X. Où X est 40 pour cent du courant max approché de la valeur numérique. Dans mon cas, j'ai défini MIN_CURRENT sur 5. Compilez et rechargez à nouveau le firmware sur NodeMCU.
- Retirez le câble USB du NodeMCU. Éteignez et allumez l'appareil avec le chargeur USB connecté au TP4056. Cliquer sur le bouton Motor ON sur l'application mobile devrait démarrer le moteur. Une fois que le moteur est allumé, l'état du moteur doit apparaître sur le tableau de bord de l'application comme étant allumé. Cliquer sur le bouton d'arrêt devrait arrêter le moteur.
Prendre plaisir !!!!
Conseillé:
Notions de base sur VBScript - Démarrage de vos scripts, délais et bien plus ! : 5 étapes
Notions de base sur VBScript - Démarrage de vos scripts, délais et plus encore ! : Bienvenue dans mon premier tutoriel sur la création de VBScripts avec le bloc-notes. Avec les fichiers .vbs, vous pouvez créer des farces amusantes ou des virus mortels. Dans ce tutoriel, je vais vous montrer des commandes de base comme démarrer votre script, ouvrir des fichiers et bien plus encore. À t
[Souris portable] Contrôleur de souris portable basé sur Bluetooth pour Windows 10 et Linux : 5 étapes
[Souris portable] Contrôleur de souris portable basé sur Bluetooth pour Windows 10 et Linux : j'ai créé un contrôleur de souris basé sur Bluetooth qui peut être utilisé pour contrôler le pointeur de la souris et effectuer des opérations liées à la souris PC à la volée, sans toucher aucune surface. Le circuit électronique, qui est intégré à un gant, peut être utilisé pour suivre h
Minuterie basée sur Arduino pour pompe aquaponique : 4 étapes
Minuterie basée sur Arduino pour pompe aquaponique : il s'agit d'une petite instructable sur la minuterie basée sur Arduino pour pompe aquaponique. J'ai une petite configuration de système aquaponique à l'intérieur avec un débit continu. La pompe fonctionne en continu et je voulais faire une minuterie qui fera fonctionner la pompe pendant un certain temps
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Système d'irrigation basé sur Arduino : 8 étapes
Système d'irrigation basé sur Arduino : Contextualização O Brasil està entre les pays de la zone d'irrigation de la planète et dans la zone de croissance à 65%, segundo estudo da Organização das Nações Unidas para a Alimentação e a Agricultura (FAO). Une possibilité de direc