Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Win10 IOT-irrigatiecontroller met vochtsensoren

Gebruik Win10 IOT, RPi2 en XBee om de bodemvochtigheid van het gazon te meten en indien nodig automatisch te irrigeren.

Achtergrond

Grote delen van de VS hebben de afgelopen jaren te lijden gehad van laagwater of droogte. Er zijn een groot aantal dingen die een huiseigenaar kan doen om het waterverbruik van huishoudens te verminderen, en gazonirrigatie is daar een van. Werken met de meest voorkomende irrigatiecontrollers voor woningen is onhandig en frustrerend. Verborgen in garages, maken complexe wijzerplaten en obscure instructies op deze controllers het moeilijk om af te stemmen hoe lang het systeem dagelijks draait. En ze weten nog steeds niet hoeveel water de planten eigenlijk nodig hebben.

Mijn project heeft tot doel in ieder geval een deel van het probleem op te lossen, door de irrigatiecontroller te laten weten hoe nat de grond is, zodat hij weet of hij moet lopen en wanneer hij moet stoppen. Daarnaast heb ik webgebaseerde besturing toegevoegd, zodat ik de sproeiers kan bedienen met mijn smartphone vanuit de achtertuin of vanuit het hele land.

Stap 1:Waarnemen 

Eerst moeten we de bodemvochtsensoren zover krijgen dat ze gegevens naar de RPi2 sturen. We willen dat de sensoren zich in of direct naast het gazon bevinden, maar de RPi2 moet op een veilige plaats worden geplaatst, in de buurt van stroom en Ethernet. De sensoren zijn afgeschermd van de elementen, werken op batterijen en moeten gegevens van een bodemvochtsensor kunnen lezen. Gelukkig is de XBee-chiplijn van Digi International goed afgestemd op het oplossen van alle drie deze voorwaarden.

Voor de eenvoud kies ik ervoor om de XBee Pro – Series 1 . te gebruiken modulen. Hoewel Digi de eigen communicatielaag DigiMesh en een ZigBee-implementatie heeft (hier is een geweldig overzichtsblad), was de eenvoudigste en meest directe oplossing om de basisimplementatie "802.15.4" te gebruiken. In deze configuratie praat elke draadloze sensor rechtstreeks met de XBee-chip die op de RPi2 is aangesloten. Elke individuele XBee-sensor beheert zijn eigen slaap-waakcyclus, wat de levensduur van de batterij aanzienlijk verlengt. En de XBee-sensor heeft 6 ingebouwde 10-bits analoog-naar-digitale ingangen, perfect voor het aansluiten van onze bodemvochtsensor. Er zijn zelfs voldoende extra inputs om op een later tijdstip temperatuur- of lichtmetingen te verzamelen.

Voor stroomvoorziening naar de sensor wilde ik voldoende capaciteit zodat ik niet constant de batterijen hoefde te vervangen. Door het vermogen te berekenen dat door de XBee-chip in een slaap-waakcyclus wordt gebruikt en door standaard batterijcapaciteiten te gebruiken, kon ik nauwkeurig afstemmen hoe vaak de sensor naar huis meldt, zodat ik de batterijen slechts ongeveer één keer per jaar hoef te vervangen. Idealiter zal een toekomstige herziening zonnecellen bevatten.

Ten slotte moest ik de XBee-chip programmeren. Aan de rechterkant van het energiebudget-spreadsheet, in de kolommen "G" en "H", staan ​​de waarden die ik heb gewijzigd met de Digi X-CTU-software. Ik kon de XBee Explorer USB-component van SparkFun gebruiken die op mijn pc was aangesloten, in plaats van dat ik een aparte ontwikkelaarskit van Digi moest kopen.

Stap 2:Programmeren van de Raspberry Pi

De grootste uitdaging bij het programmeren van de Raspberry Pi is de interface met de XBee-module. De XBee praat alleen via serieel en de RPi2 heeft geen toegankelijke ingebouwde seriële mogelijkheden. Ik besloot om de Sparkfun XBee Explorer USB-module te gebruiken. De ingebouwde chip die wordt gebruikt, gemaakt door FTDI, heeft geen native stuurprogramma's voor Win10 IOT Core. Door de instructies van Jark op zijn GitHub-repository te volgen, kon ik echter communiceren met de XBee-module.

De sensoren sturen periodiek sensorgegevens naar de RPi, die wordt ontvangen als een API-frame, volgens de XBee-documentatie. Er zijn veel, veel verschillende bibliotheken voor het verwerken van XBee API-framegegevens, maar ik besloot mijn eigen bibliotheken te gebruiken om licentieproblemen te voorkomen.

Na het ontleden van de meetwaarden worden de gegevens verzonden naar een cloudservice, gehost in Azure. De cloudservice kan dan bepalen of de waarde al dan niet moet worden geopend en de sprinklers in een bepaalde zone laten draaien.

Stap 3:Cloudservice voor sensorlogboeken, irrigatiecontrole

Voor de cloudservice besloot ik ServiceStack te gebruiken in een Windows Azure-webapp. ServiceStack is een webgeoriënteerd framework dat een alternatief is voor ASP.Net met Entity Framework. Het heeft extra componenten om Redis-, C#-clients te ondersteunen en het heeft een dubbele commerciële / AGPL-licentie en royale gratis quota voor hobbyprojecten. Door gebruik te maken van Azure is er een schat aan extra resources die we kunnen aanboren, zoals een Redis-backend, SQL-database, Service Bus en volop mogelijkheden om indien nodig op te schalen.

Als experiment/hobbyproject is mijn website zeer minimaal, maar illustreert de aanpak. Het is ontworpen als een functioneel voorbeeld dat kan worden uitgebreid om aan de behoeften van toekomstige hackers te voldoen.

  1. Er wordt een link naar Server-Sent Events geopend met behulp van ServerEvents van ServiceStack, waardoor tweerichtingscommunicatie tussen de RPi2 en de server effectief mogelijk wordt. Dit is vergelijkbaar met, maar eenvoudiger en minder robuust, dan het gebruik van SignalR.
  2. De RPi stuurt sensorgegevens naar de cloud zodra ze worden ontvangen
  3. De server vertelt de irrigatiecontroller om de sprinklerkranen aan of uit te zetten.

De kracht van deze aanpak is dat de server complexe planning of logica kan uitvoeren, zoals het bekijken van weersvoorspellingen of het zich houden aan lokale verordeningen (zoals water geven op even/oneven dagen). Het maakt ook beheer op afstand mogelijk, of beheer van veel verschillende locaties vanuit een enkele webgebaseerde interface. Het nadeel is dat de sprinklers niet werken tenzij de internetverbinding goed werkt.

Stap 4:De toekomst

Dit project is voornamelijk een proof-of-concept geweest, zodat toekomstige hackers erop kunnen voortbouwen en het aan hun eigen behoeften kunnen aanpassen. Er zijn veel dingen die kunnen worden gedaan om er een meer gepolijst project van te maken:

  • Voeg een robuustere web-front-end toe
  • Ondersteuning voor temperatuursensoren toevoegen
  • Beveiliging implementeren
  • Voeg irrigatieschema toe
  • Download irrigatieschema, in geval van internetuitval
  • Voeg fysieke bedieningselementen toe, zoals met een LCD en drukknoppen

Bron:Win10 IOT-irrigatiecontroller met vochtsensoren


Productieproces

  1. Basis IoT – RaspberryPI HDC2010 hoe
  2. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  3. Lijnvolgsensor met RPi
  4. Milieusensor-API met een RPi
  5. Raspberry Pi Bodemvochtsensor
  6. Bouw je eerste IOT met een Raspberry Pi, DHT11-sensor en Thingspeak.
  7. Windows 10 IoT Core en SHT15
  8. GoPiGo v2 met Windows IoT
  9. De monitoring van luchtvervuiling verbeteren met IoT-sensoren
  10. IoT-miniaturisatie leidt tot miniatuur-schaal sensoren voor brandbaar gas
  11. Sensoren begrijpen