Bygg et automatisert hagesystem med Raspberry Pi Pico W

Bygg et automatisert hagesystem med Raspberry Pi Pico W
Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Med grønn tommel og litt tålmodighet er hagearbeid en herlig hobby uansett om du har noen få eksotiske planter innendørs eller har en fullverdig utehage med poteter og stauder.





spiller wii u gamecube spill

Med det sagt er det også tider når tålmodigheten din kan ta slutt når planter begynner å dø av det som ikke ser ut til å være noen god grunn i det hele tatt.





Raspberry Pi Pico W kan bidra til å gi en løsning for å sikre at plantene vil trives uten å løfte en finger i det hele tatt (vel, nesten).





La oss se på hvordan en plantemonitor, litt kode og en liten mikrokontroller vil holde oversikt over plantens helse fra hvor som helst i hjemmet ditt.

Nødvendig maskinvare

Overraskende nok er det ikke mye maskinvare som kreves. Mye av magien finnes i Plant Monitor. Du trenger egentlig bare noen få ting for å komme i gang.



Selv om denne plantemonitoren støtter bruk av krokodilleklemmer, bruker dette prosjektet pin-kontaktene som er festet til baksiden av planteovervåkingsenheten.

Sette opp hageassistenten

Dette prosjektet innebærer å koble plantemonitoren til din Raspberry Pi Pico W, i tillegg til å lage og manipulere kode for å få alt til å fungere. En nettserver vil være nødvendig for å betjene en enkel nettside som er tilgjengelig via internettforbindelsen hjemme.





Det finnes forskjellige modellversjoner av Raspberry Pi Pico. For dette prosjektet må du bruke en Raspberry Pi Pico W. For å lære om hva Pico W er i stand til, sjekk ut vår guide på hva Pico W er og hva den kan gjøre .

La oss først sørge for at anleggsmonitoren er tilkoblet og fungerer som den skal. Senere i artikkelen vil du ta for deg å sette opp en enkel webserver som brukes til å overvåke anlegget ditt med hvilken som helst nettleseraktivert enhet koblet til hjemmenettverket ditt.





Klargjøring av Plant Monitor

Med mange sensorer som er tilgjengelige for kjøp via ulike internettsider, vil du lære at noen jordsensorer vil slites lett ned i jord og andre tåler elementene ganske godt. Monk Makes Plant Monitor er et fint alternativ siden den ikke er utsatt for korrodering i jord. Ikke bare måler denne skjermen fuktighet i jorda, men den måler også fuktighet og temperatur.

  plantemonitor i jord som er koblet til en mikrokontroller

Bare fire pinner må kobles fra anleggsmonitoren til din Raspberry Pi Pico W:

Windows 10 Dark Theme File Explorer
  • GND går til GND
  • 3V kobles til 3V3 Out
  • RX_IN vil finne veien til GP0
  • TX_OUT møter GP1

Når den er koblet til strøm, vil din Raspberry Pi Pico W kunne gi strøm til seg selv og anleggsmonitoren. Du vil se noen lys på maskinvaren som bekrefter at enheten fungerer. I tillegg er det et LED-lys som vil lyse grønt, gult eller rødt (avhengig av fuktighetsnivået i jorda).

Selv om Monk Makes Plant Monitor kommer med noen flotte pythonmoduler, må du fortsatt lage en enkel kode for å overvåke helsen til plantens jord. Du kan hente følgende python-filer fra vår MUO GitHub-depot .

Du vil trenge pmon.py og test.py for jordsensordelen og pythonfilene microdot.py , mm_wlan.py , og pico_w_server.py vil bli brukt til å fullføre den enkle webserveren senere.

Nå er en fin tid for å ta en pause og oppdatere deg selv med subtile forskjeller mellom MicroPython og Python hvis du ikke allerede har gjort det.

Python-filen, pmon.py , oppretter en MicroPython-klasse for anleggsmonitoren. UART vil ta seg av dupleksdataoverføringen og da er det også nødvendig med litt arbeid med å konvertere analogt til digitalt. Du vil også legge merke til fuktighet , temp , og luftfuktighet funksjoner som også er definert i denne filen.

    def get_wetness(self): 
        return int(self.request_property("w"))

    def get_temp(self):
        return float(self.request_property("t"))

    def get_humidity(self):
        return float(self.request_property("h"))

    def led_off(self):
        self.uart.write("l")

    def led_on(self):
        self.uart.write("L")

Deretter trenger du test.py fil hentet fra vår MUO GitHub-depot .

Du vil legge merke til at moduler tid, pmon (fra PlantMonitor ), og maskin er nødvendig for å overvåke plantens helse på riktig måte.

Som PlantMonitor modul er importert, alt som kreves for å overvåke jordforholdene er en enkel while-løkke. Også skrive ut kommandoen vil vise jordfuktighet, temperatur og fuktighetsavlesninger etter kjøring test.py i Thonny.

 time.sleep(2) # PlantMonitor startup time 
pm = PlantMonitor()

while True:
    w = pm.get_wetness()
    t = pm.get_temp()
    h = pm.get_humidity()
    print("Wetness: {0} Temp: {1} Humidity: {2}".format(w, t, h))
    time.sleep(1)

Har du ikke lyst til å vanne planten din når jorden er for tørr? Tilordne pumpereléet til en pinne på Raspberry Pi Pico og bruk en if-erklæring for å se etter en fuktighetsverdi (av 100) for å trigge vannpumpen din, via et relé, til å slå på og dispensere vann igjen.

 relay1 = Pin(15, Pin.OUT) #relay is wired up to GP15 and GND 

if w = 24 # watch for a wetness value of 24/100

relay1.value(1) # turn on the relay
    relay1(0) # turn off the relay

Det er lurt å gjøre noen tester for å finne den perfekte balansen for å sikre at planten din er fornøyd med mengden vann den mottar. Du kan også legge til en annen if-erklæring for å slå på en varmelampe, via et relé, hvis anlegget ditt er for kaldt.

Enkel webserver

Du trenger tre python-filer fra vår MUO GitHub-depot , for at Raspberry Pi Pico W skal kunne kringkaste jordstatistikken til internettforbindelsene hjemme:

  • microdot.py
  • mm_wlan.py
  • pico_w_server.py

De mikrodot fil håndterer back-end-funksjonene for å lage denne enkle HTTP-baserte webserveren og viser python-koden som en html-basert nettside som kan kalles ved å bruke IP-adressen til Raspberry Pi Pico W.

De mm_wlan.py fil tilbyr en enkel måte å koble til et trådløst nettverk. Du vil enten motta en IP-adresse til din Raspberry Pi Pico og en tilkoblet melding. Hvis tilkoblingen ikke var vellykket, vil du motta en melding om at tilkoblingen mislyktes i stedet.

De pico_w_server.py filen er der du skriver inn SSID (husk at Raspberry Pi Pico W bare kobles til 2,4 GHz SSID) og Wi-Fi-passordet ditt. Innenfor HTML-delen kan du tilpasse hva nettserveren din skal vise i en nettleser. Du kan også fjerne kommentarene fra oppdateringsdelen og justere intervallet hvis du ikke vil at nettsiden skal oppdateres hvert sekund eller så.

Helt nederst i denne filen kan du også tilpasse porten. Dette er nyttig hvis du ønsker å eksponere denne informasjonen til internett utenfor hjemmet ditt.

Når du kjører din test.py fil, de nødvendige server python-filene ( mm_wlan og pico_w_server ) er importert for deg. Etter at du har kjørt test.py fil, ta tak i IP-adressen hvis din Pi (finnes i Thonny-utgangen) og legg til porten du har brukt (standard er 80) fra en hvilken som helst nettleser som er koblet til samme 2,4 GHz SSID hjemme. Du bør se noe slikt:

du bryter jeg fikser i nærheten av meg
  enkel html-side som viser jordstatistikk

For å redusere avhengigheten til den tilkoblede PC-en, endre test.py fil til main.py og lagre på din Raspberry Pi Pico W. Du kan også vurdere å koble en LCD til din Pico slik at du programmerer skjermen til å sende ut IP-adressen (når du fjerner avhengigheten til den tilkoblede PC-en).

Ta tilbake den grønne tommelen

Med en sofistikert jordsensor og en enkel webserver kan du nå overvåke plantens helse fra en nettleser hvor som helst i hjemmet ditt.

Føl deg fri til å finpusse koden slik du ønsker. Hvis du er klar for det, bør du vurdere å lage en jordregistreringsapp som tilfører litt polering til den enkle webserveren du nettopp har satt opp.

For å få dette prosjektet til å føles komplett, legg til en pumpe og relé, sammen med en varmelampe, og du får en helautomatisert hage. Nå vil du alltid kunne opprettholde statusen 'grønn tommel'.