Inhoudsopgave:
- Benodigdheden
- Stap 1: Apparaatconstructie
- Stap 2: DOL Starter-verbindingen
- Stap 3: Maak een account aan bij Adafruit IO (io.adafruit.com)
- Stap 4: Bouw en installeer de software
- Stap 5: Installeer en configureer de MQTT Dash APP op uw mobiel
- Stap 6: Laatste stap:-) Testen en finetunen
Video: IOT-gebaseerde DOL-startercontroller voor irrigatiepompset - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Hallo vrienden
Deze instructable gaat over het op afstand bewaken en besturen van een irrigatiepompset via internet.
Verhaal: Op mijn boerderij krijg ik slechts ongeveer 6 uur per dag stroom van het lokale elektriciteitsnet. De tijden zijn niet regelmatig, de beschikbaarheid van stroom kan vroeg in de ochtend of laat in de avond of zelfs middernacht zijn. Elke keer dat naar de boorputlocatie ging om de beschikbaarheid van stroom te controleren, was het starten of stoppen van de motor een zeer pijnlijk proces. Ik moest er ook voor zorgen dat de motor elke dag minstens 2-3 uur draait om voldoende water voor het druppelsysteem te leveren. Ik was al geruime tijd bezig met het verkennen van opties om dit probleem op te lossen door de motor op afstand te bedienen en ook de status te kennen. Er zijn apparaten op de markt die de motor starten zodra er stroom is, maar ze hebben niet de mogelijkheid om de motor te stoppen wanneer we maar willen. En er is ook geen manier om op elk moment de status van de motor AAN/UIT te kennen. Dit leidt meestal tot overmatige irrigatie, wat leidt tot verlies van bodemvruchtbaarheid en ook tot verspilling van elektriciteit. Eindelijk heb ik zelf een oplossing gebouwd waarbij ik de motor op afstand vanaf mobiel/tablet/PC ALTIJD OVERAL kan starten en stoppen…!!. Ook kan ik de beschikbaarheid van de stroomvoorziening van de gird en de motorstatus (AAN / UIT) de hele tijd volgen. Ik hoop dat het boeren op het platteland zal helpen om hun irrigatiesystemen te beheren zonder steeds naar de startlocatie te hoeven gaan.
Benodigdheden
Vereisten:
De locatie waar je dit apparaat wilt installeren moet internet beschikbaar hebben (breedband met wifi/mobiel internet)
Dingen die je nodig hebt:
- NodeMCU /ESP12
- Twee kanaals relais
- WCS1700 – Stroomsensor
- TP4056 batterij-oplaadmodule
- LD313, Condensator – 1000uF Register – Twee registers van 5k ohm
- Elke (Oude) Smartphone met hotspot/internet.
Hoe het werkt:
Het is een eenvoudige cloudgebaseerde IOT-oplossing met NodeMCU/ESP12 en externe MQTT-broker. NodeMCU werkt als een IOT-gateway en bestuurt ook de DOL-starter. Het maakt via internet verbinding met een externe MQTT-makelaar. Een app die op een Android-mobiel draait, maakt verbinding met de makelaar waarmee we onze irrigatiepompset de hele tijd kunnen controleren en besturen. Ik gebruikte de gratis beschikbare MQTT-makelaar van Adafruit IO. Er zijn veel gratis brokers beschikbaar zoals mosquitto, cloudmqtt etc. U kunt elke broker kiezen, op voorwaarde dat u de server en het poortnummer in de code wijzigt. NodeMCU maakt verbinding met internet via wifi vanaf de mobiele hotspot. Yon kan elke oude of goedkope mobiel gebruiken om wifi-toegang te bieden via een hotspot of elke andere manier om internet via wifi te bieden. Mobiel moet worden aangesloten op de oplader zoals het hoort op 24X7.
NodeMCU is gekoppeld aan twee relais om de start- en stopwerking van de motor te regelen. Om de stroom in de motor te voelen, heb ik de stroomsensor WCS1700 gebruikt. De analoge uitgang van de sensor wordt gebruikt om te weten of de motor AAN of UIT is. Het detecteert ook de beschikbaarheid van stroom van het net en publiceert deze naar de makelaar, zodat we op elk moment de status van het net kunnen kennen. Het apparaat abonneert zich op twee feeds om het verzoek voor motor AAN en motor UIT te ontvangen. Door specifieke waarden naar deze feeds te sturen, kunnen we de motor naar START of STOP sturen.
Ten slotte heb ik de MQTT Dash-app op mijn Android-telefoon geïnstalleerd en deze geconfigureerd om verbinding te maken met de MQTT-makelaar en de feeds op zijn dashboard / gui te gebruiken. De app heeft zeer goede iconen met knoppen, meter, schakelaar etc om een aantrekkelijk dashboard te creëren. U kunt echter elke mobiele IOT-app voor huisautomatisering gebruiken die het mqtt-protocol ondersteunt.
Hoe WCS1700 werkt:
WCS1700 is in feite een Hall-effectsensor die een uitgangsspanning produceert die evenredig is aan het magnetische veld dat wordt gecreëerd als de stroom door de spoel vloeit. De spoel hier is een voedingslijn die wordt aangesloten op de motor. Het kan wisselstroom meten tot 70 Ampère. De bedrijfsspanning ligt tussen 3,3 en 12 V. Raadpleeg het gegevensblad voor meer informatie. Omdat ik ESP12 gebruik, heb ik dezelfde voeding van 3,3V gebruikt als bedrijfsspanning voor WCS1700. Zoals aangegeven in het gegevensblad bij 3,3 V moet het apparaat een differentiële spanning van ongeveer 32 tot 38 mV per ampère stroom door de spoel produceren. Maar het kan variëren op basis van de spoelgrootte / luchtspleet en variaties in het apparaat. Daarom moest ik het kalibreren door het te testen met Ampere Meter. Ik ben niet tevreden over de nauwkeurigheid van het apparaat, maar het is goed genoeg om te beslissen over de status van Motor als AAN/UIT. De uitgangspen van WCS1700 is verbonden met A0 van ESP12. Als er geen stroom is, zou de ESP12 de waarde rond 556 moeten lezen. Naarmate de stroom in de spoel toeneemt, kan de spanning naar beide kanten variëren, afhankelijk van hoe de kabel door de sensor gaat. In de code nam ik het verschil van de waarden als absolute waarde van (x - 556). Door het resultaat te delen door 15 kreeg ik een geschatte stroom door de sensor. U zult dit moeten experimenteren om het juiste nummer voor u te krijgen. Elke stroommeting door het apparaat boven 5 ampère beschouw ik als motor AAN en onder 5 ampère als motor UIT staat. U kunt het juiste nummer voor uw apparaat gebruiken door te experimenteren. U moet WCS1700_CONST en MIN_CURRENT dienovereenkomstig in de code wijzigen.
Stap 1: Apparaatconstructie
Het bovenstaande diagram geeft volledige details over hoe alle componenten moeten worden aangesloten.
Stroomvoorziening: ik heb TP4056 gebruikt om de batterijen op te laden en LM313 om de 3,7 V - 4,2 V batterij-output te regelen naar 3,3 V om NodeMCU van stroom te voorzien. Gebruikte 1000mF condensator tussen Vin en aarde van LM313 om een stabiele voeding van 3,3V te krijgen. U kunt een gewone mobiele USB-oplader gebruiken om de TP4056 van stroom te voorzien. Het heeft een batterijbeveiligingscircuit om de batterij te beschermen tegen overladen.
Grid Power supply sensing: De 5k ohm spanningsdeler zal 5 V verminderen tot 2,5 V. Pin D5 van NodeMCU zal de spanning detecteren.
Uitgangspen van WCS1700 is verbonden met A0 om de analoge spanning van de sensor te lezen. De Grid Power-lijn moet door het gat gaan om de stroom te meten. Ik gebruikte een condensator van 0,01 uF om de stabiele leesvorm WCS1700 te krijgen.
D1 en D2 van NodeMCU moeten worden aangesloten op IN0 en IN1 van de relaisingangspinnen.
Stap 2: DOL Starter-verbindingen
Ik heb het regelcircuit van de DOL-starter aangepast om nog een set START- en STOP-schakelaars te introduceren. Deze wijziging heeft geen invloed op de handmatige start/stop-bewerking en ze blijven werken zoals ze zijn.
Voorzichtigheid !!!! Aangezien de DOL-starter een hoogspanningsapparaat is, moet u ervoor zorgen dat de hoofdschakelaar is uitgeschakeld voordat u de doos opent. Direct contact met stroomvoerende draden kan gevaarlijk zijn. Als u niet zeker bent, neem dan de hulp van een elektricien om de aansluitingen te maken
Ik gebruikte 2-kanaals 5 V relaismodule als START- en STOP-schakelaar. Deze relais worden aangestuurd door ESP12.
Relais – 0 werkt als START-schakelaar - bedraad als NO (Normaal Open).
Relais-1 werkt als STOP-schakelaar - bedraad als NC (normaal gesloten). De starter heeft al een draad tussen de bovenste contactor en de NVC. U moet deze verwijderen en vervangen door relais-1-draden zoals afgebeeld.
Zorg ervoor dat de verbindingen tussen de starter en de relaismodules volledig geïsoleerd zijn voor de veiligheid. Ik heb ESP geprogrammeerd om beide relais 2 seconden vast te houden om het indrukken van de START/STOP-knop na te bootsen.
Stap 3: Maak een account aan bij Adafruit IO (io.adafruit.com)
Ik gebruikte Adafruit io mqtt broker die gratis te gebruiken is met weinig beperkingen, maar het is OK voor ons gebruik. Ik geef hier de voorkeur aan omdat ik het ook in andere projecten heb gebruikt en redelijk betrouwbaar vond en ook veel andere functies heeft zoals Dashboard met een mooie GUI en zelfs we kunnen triggers gebruiken. Om Adafruit io te gebruiken, moet u een account aanmaken en de gebruikersnaam en actieve sleutel noteren.
Stap 4: Bouw en installeer de software
De volledige code is beschikbaar in de schets. U moet dit openen in Arduino IDE en enkele wijzigingen aanbrengen voordat u de firmware compileert en uploadt. Kies het bordtype als NodeMCU 1.0. Installatie van IDE en gerelateerde bibliotheken vallen niet binnen het bestek van deze documentatie.
Wijzig de volgende regels in de code als braak.
#define WLAN_SSID "xxx" // Uw mobiele hotspot WiFi SSID
#define WLAN_PASS "……" //
/************************* Installatie van Adafruit.io ******************** ***********/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 // gebruik 8883 voor SSL
#define AIO_USERNAME "xyz" // Uw adafruit-account gebruikersnaam
#define AIO_KEY "abcd……" // uw actieve sleutel…
Over MQTT-feeds: het apparaat en de client (mobiele app) wisselen informatie uit via berichtfeeds met behulp van het pub-submodel via MQTT-broker. Elke client of elk apparaat om een bericht te ontvangen, moet zich abonneren op een vooraf gedefinieerde feed en moet de publicatiemethode gebruiken om een bericht naar een feed te verzenden. Voor ons project hebben we ongeveer 5 feeds nodig. Hieronder vindt u de uitleg over elk van de feeds zoals u in de code ziet en hoe ze werken.
Grid Status: Beschikbaarheid van stroomvoorziening van het net wordt gepubliceerd op de feed /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/grid");
0 geeft aan dat voeding niet beschikbaar is en 1 voor voeding is beschikbaar.
Motor Status: Het apparaat publiceert de status van de motor op de feed …/feeds/grid.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/motor")
Waarde van 0 voor UIT en 1 voor AAN
Motor AAN-knop: deze feed wordt gebruikt om het startverzoek van de motor te ontvangen. Het apparaat abonneert zich op de feed om een motorstartverzoek met waarde = 1 te ontvangen en gebruikt dezelfde feed om een bevestigingsbericht als 0 te publiceren. Op die manier kunnen we bevestigen dat het startverzoekbericht daadwerkelijk door het apparaat is ontvangen.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_on");
Motor UIT-knop:
Net als bij Startverzoek wordt deze feed gebruikt om het motorstopverzoek te ontvangen. Het apparaat abonneert zich op de feed om het stopverzoek met waarde = 1 te ontvangen en gebruikt dezelfde feed om een bevestigingsbericht als 0 te publiceren.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_off");
Verbinding:
Dit is een speciale feed met de optie "laatste wil" ingeschakeld. Wanneer het apparaat op elk vast interval goed werkt, zal het verbinding=1 publiceren om de gebruiker te vertellen dat alles in orde is. Als het systeem uitvalt of de verbinding wordt verbroken, kan het apparaat niet communiceren met de makelaar. In dergelijke gevallen publiceert MQTT-broker zelf naar de feed als verbinding = 0 om de gebruiker te laten weten dat er iets mis is gegaan en dat het apparaat niet bereikbaar is via internet. We moeten het apparaat fysiek gaan controleren. De code is heel eenvoudig. Raadpleeg de MQTT-documentatie voor meer details over hoe " Last Will" werkt.
if(itr <= 0)
{
mqtt.publish(AIO_USERNAME "/feeds/connection", "1", 1);
itr = CON_LIVE_ITR;
}
De rest van de code spreekt voor zich en er zijn geen wijzigingen vereist. Voel je vrij om commentaar te geven als je meer info nodig hebt.
Stap 5: Installeer en configureer de MQTT Dash APP op uw mobiel
- Installeer MQTT Dash op je Android-telefoon en open de app
- Klik op het +-pictogram in de rechterbovenhoek om een apparaat toe te voegen.
- Zoals te zien is in de eerste afbeelding hierboven, geeft u uw apparaat een naam, zeg "MyFarm-IPSet". Adresveld als io.adafruit.com en poort als 1883, gebruikersnaam moet uw adafruit-gebruikersnaam zijn en wachtwoord moet uw actieve sleutel van adafruit zijn. Laat de rest van de velden zoals ze zijn. Klik ten slotte op opslaan.
- Je hebt je apparaat gemaakt. Klik er nu op om er een dashboard aan toe te voegen.
- Klik op + en selecteer type als schakelaar/knop. Zoals hierboven weergegeven, voert u sys in het naamveld in. en voer de feednaam in het onderwerpveld in. elke feed moet beginnen met gebruikersnaam/feeds/. hiervoor hebben wij /feeds/connection. Zorg ervoor dat Publiceren inschakelen is uitgeschakeld. Door op het pictogram te klikken om weer te geven, kunt u het type pictogram kiezen dat u op het dashboard wilt laten lijken. Voor waarde 1 selecteer een van de kleuren (zeg groen) en voor waarde 0 selecteer de kleur grijs of rood. Klik ten slotte op opslaan in de rechterbovenhoek. Maak op dezelfde manier nog twee pictogrammen, één voor Grid met gebruikersnaam/feeds/grid als onderwerp en Motor met gebruikersnaam/feeds/motor. Zorg ervoor dat Publiceren inschakelen is uitgeschakeld.
- Maak ten slotte de knop Motor AAN. Het is weer hetzelfde type als schakelaar/knop. Het onderwerp moet /feeds/motor_on zijn en zorg ervoor dat Publiceren inschakelen deze keer is ingeschakeld en QOS =1. Maak op dezelfde manier een andere knop voor Motor UIT. Het onderwerp moet /feeds/motor_off zijn.
Stap 6: Laatste stap:-) Testen en finetunen
- Om veilig te zijn, moet u het apparaat eerst testen op zijn START- en STOP-bewerkingen voordat u de relais aansluit op de DOL-starter. Schakel Hotspot in op de mobiel met internet ingeschakeld. Sluit de laptop met ontwikkelomgeving rechtstreeks aan op de NodeMCU USB-poort met een andere oplader die tegelijkertijd op de TP4056 is aangesloten. Als het apparaat succesvol is verbonden met internet, zou je 1 apparaat moeten zien verbonden met hotspot op de smartphone.
- Op de andere smartphone waarop je MQTT Dash hebt geïnstalleerd, open je het app-dashboard. U zou moeten zien dat het NET-pictogram in het groen en het Grid-pictogram ook in het groen met hun waarden als 1. Het motorpictogram moet worden weergegeven als motor uit met de waarde 0.
- Als u op de knop Motor AAN klikt, moet het startrelais twee klikgeluiden maken met een interval van twee seconden. Evenzo ook de knop Motor UIT.
- Schakel voor de veiligheid nu de hoofdvoeding naar de DOL-starter uit en sluit de relais aan op de DOL-starter zoals hierboven in stap 2 is weergegeven. Zorg ervoor dat de motor is uitgeschakeld. Druk op de resetknop op NodeMCU. Op de uitgang van de seriële monitor kunt u debug-instructies zien die waarden van de WC1700-sensor, delta en de berekende stroom in de spoel afdrukken. Met motor uit en " #define WCS1700_CONST 15 " moet de maxCur constant kleiner zijn dan 2. Als het groter is dan 2, probeer dan met hogere waarden van WCS1700_CONST. Elke keer moet u de code opnieuw compileren en de firmware laden.
- Zet nu de motor AAN en zoek opnieuw naar de huidige meetwaarden. Laat de motor ongeveer 10 -15 minuten AAN staan en noteer de stabiele stroomaflezing. De stroom kan ruwweg variëren tussen 10 en 20 Ampère en hoeft niet nauwkeurig te zijn.
- Ga terug naar de code en stel " #define MIN_CURRENT X in. Waar X 40 procent van de maximale stroom is, benadert de numerieke waarde. In mijn geval stel ik MIN_CURRENT in op 5. Compileer en laad de firmware opnieuw naar NodeMCU.
- Verwijder de USB-kabel van NodeMCU. Schakel het apparaat UIT en AAN met de USB-oplader aangesloten op de TP4056. Als u op de knop Motor AAN op de mobiele app klikt, moet de motor worden gestart. Zodra de motor aan staat, moet de status van de motor op het app-dashboard worden weergegeven als AAN. Als u op de stopknop klikt, moet de motor stoppen.
Genieten van !!!!
Aanbevolen:
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: 8 stappen
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: deze instructable legt uit hoe u uw eigen externe Bluetooth-compatibele GPS voor uw telefoon kunt maken, wat dan ook voor ongeveer $ 10. Materiaallijst: NEO 6M U-blox GPSHC-05 bluetooth-module Kennis van interface Blutooth Low energy-modulesArdui
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Systeem voor het bewaken van de luchtkwaliteit voor fijnstofverontreiniging: 4 stappen
Systeem voor monitoring van luchtkwaliteit voor fijnstofverontreiniging: INTRO: 1 In dit project laat ik zien hoe ik een deeltjesdetector bouw met dataweergave, databack-up op SD-kaart en IOT. Visueel geeft een neopixels ringdisplay de luchtkwaliteit aan. 2 Luchtkwaliteit is een steeds belangrijker zorg t
Relaisbord voor Arduino voor minder dan $8: 5 stappen
Relaisbord voor Arduino voor minder dan $8.: Hallo vrienden, vandaag ga ik je vertellen hoe je een relaisbord voor Arduino maakt voor minder dan $8. In dit circuit gaan we geen IC of transistor gebruiken. Dus laten we het doen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): 4 stappen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): TL;DR: Knip op de sensor het spoor naar de Echo-pin en sluit het opnieuw aan met een spanningsdeler (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND). Bewerken: Er is enige discussie geweest over de vraag of de ESP8266 daadwerkelijk 5V-tolerant is op GPIO in