Innholdsfortegnelse:
- Trinn 1: Rekvisita
- Trinn 2: Fritzing Schematic
- Trinn 3: Forbered Raspberry Pi
- Trinn 4: Databasemodell - MySQL
- Trinn 5: Frontend: Sette opp webserveren
- Trinn 6: Backend
- Trinn 7: Plassering av LED -stripen
- Trinn 8: Plassering av rørene
- Trinn 9: Plassering av LCD -skjermen
- Trinn 10: Plassering av sensorene og tilkobling av LED -stripen
- Trinn 11: Kabling av Pi
- Trinn 12: Lag en beholder for vann
- Trinn 13: Sluttresultat
Video: Automatisert plantepotte - Little Garden: 13 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Jeg er student fra multimedia og kommunikasjonsteknologi ved Howest Kortrijk. For vårt siste oppdrag måtte vi utvikle et IoT -prosjekt etter eget valg.
Da jeg så rundt etter ideer, bestemte jeg meg for å lage noe nyttig for min mor som elsker å dyrke planter og begynte å jobbe med en automatisert plantepotte.
Hovedoppgavene for denne automatiserte plantepotten, Little Garden, er å:
-
Mål
- Temperatur
- Lysintensitet
- Luftfuktighet
- Jordfuktighet
Lagre målingene i en database
Forbedre betingelsene for plantevekst hvis en viss verdi er for lav
La enheten overvåkes og administreres via et nettsted
Ikke hvert trinn må følges til målet. Mye av det som skjer kan være din personlige preferanse eller bli forbedret. Denne bygningen ble laget på en måte slik at deler kunne bli gjenopprettet etterpå, så du vil kanskje nærme deg iterasjonen annerledes for å gjøre den mer permanent
Trinn 1: Rekvisita
De fleste forsyninger til dette prosjektet er ikke veldig vanskelig å skaffe, selv om jeg i mitt tilfelle jobbet med mye resirkulert materiale. Jeg måtte også sørge for at jeg kunne gjenvinne noen materialer etterpå.
Kjernekomponenter:
- Raspberry Pi 4 modell B
- Raspberry Pi strømforsyning
- Bringebær Pi T-skomaker
- 16 GB micro SD -kort
- Strømforsyning til brødbrett med 3,3V og 5V
- Brødbrett
- 12V strømforsyning
Sensorer:
- DHT11: Fuktighets- og temperatursensor
- BH1750: Lysintensitetssensor
- Jordfuktighetssensor
- MCP3008
Aktuatorkomponenter:
- 220V vannpumpe
- 12V LED -stripe
- Stafettmodul Velleman
- TIPS 50: NPN -transistor
- 16X2 LCD-moduke-skjerm
- PCF8574a
Motstander:
- 3 x 330 Ohm motstander
- 1 x 5k Ohm motstand
- 2 x 10k Ohm motstander
- 1 x 1k Ohm motstand
- 1 x 10k Potentio -motstand
Materialer:
- Ferdiglaget drivhus/plantepotte
- Koblingsboks
- Vannflaske i plast
- Svinger
- Stikkledere + vanlig ledning
- Skruer
- Loddetinn + krympeslange
- Dobbeltsidig tape
- Maling
Verktøy:
- Limpistol
- Bore
- Sagblad
- Loddejern
- Boksåpner
- Pensel
Det fine med dette prosjektet er at det kan utvides eller forenkles ved å legge til/fjerne komponenter og justere koden litt. For eksempel, ved å erstatte 220V -pumpen med en 12V -pumpe, kan du fjerne en strømadapter fra enheten.
Trinn 2: Fritzing Schematic
Brettbrettet og elektriske opplegg for enheten er vist ovenfor. Her kan du se hvordan alle komponentene er koblet sammen.
En generell forklaring på hvordan komponentene fungerer:
- DHT11 måler luftfuktigheten i % og temperaturen i ° C. Kommunikasjonen med den håndteres av en I2C bu.
- BH1750 måler lysintensiteten i lux. Kommunikasjonen håndteres av en I2C -buss
- Jordfuktighetssensoren skaper et digitalt signal som omdannes av MCP3008 til et lesbart digitalt signal for Raspberry Pi
- 16x2 LCD-modulen viser IP-adressene fra Pi, den ene etter den andre. Den er koblet til en PCF8574a som mottar et signal fra Raspberry Pi som vil konvertere det til et antall signaler for bitpinnene på skjermen. E- og RS -pinnene fra LCD -en er koblet direkte til Pi. Potensiomotstanden bestemmer lysstyrken på skjermen.
- Vannpumpen er koblet til et relé som er mellom den og den er 220V strømforsyning/stikkontakt. Raspberry Pi kan sende et signal til reléet for å lukke den elektriske kretsen og slå på pumpen.
- LED -stripen er koblet til 12V strømforsyningen og TIP 50 (NPN -transistoren) som bytter den elektriske strømmen. 1k Ohm -motstanden brukes til å begrense trukket effekt fra Raspberry Pi, ellers ville den bli stekt ekstra sprø.
Trinn 3: Forbered Raspberry Pi
Hvis du ikke har fått en enda, må du sette et av Raspberry Pi OS -bildene på SD -kortet. Jeg anbefaler ikke å bruke Lite, da dette forårsaket meg problemer i starten. Etterpå må du sørge for at Pi er oppdatert ved å bruke følgende kommandoer mens Pi er koblet til internett:
- sudo apt-get oppdatering
- sudo apt-get oppgradering
Deretter kan du aktivere eller installere pakkene for at prosjektet skal fungere, enten gjennom raspi-config eller kommandoer.
- SPI
- I2C
- MySQL: neste trinn
- SocketIO: pip installer kolbe-socketio
Etter oppsettet kan du legge til de nødvendige filene som er skrevet i html, CSS, Javascript og Python. All koden min finnes på github -depotet mitt.
Trinn 4: Databasemodell - MySQL
Over kan du se ERD -diagrammet som er vert gjennom MariaDB. Jeg anbefaler å følge denne installasjonsveiledningen for MariaDB, ikke bare for å installere MariaDB, men også for å sikre at Pi er beskyttet.
For folk som ønsker å forstå, fungerer databasen som følger:
Målingene og aktuatorbryterne lagres som rader i Metingen -tabellen.
- metingId = ID for måle-/veksleraden
- deviceId = ID for enheten som er ansvarlig for denne raden i tabellen
-
waarde = verdien av sensormålingen eller aktuatorbryteren
- sensor: verdien av målingen i de tilsvarende enhetene
- aktuatorer: 0 = AV og 1 = PÅ
- commentaar = kommentarer som brukes til å legge til ekstra informasjon, for eksempel feil
- datum = datoen og klokkeslettet da måling/veksle skjedde
Innstillingene for enheten lagres i Innstillinger.
- settingId = ID for denne raden og innstillingsverdien
- deviceID = ID for den tilsvarende enheten/sensoren
- waarde = verdien av innstillingen
- type = type settin, er det maksimum eller minimum?
Sist men ikke minst inneholder tabellen Enheter informasjon om sensorene og aktuatorene.
- deviceId = ID for enheten i denne tabellen
- naam = navnet på enheten/komponenten
- merk = merke
- pris = prisen på komponenten
- beschrijving = sammendrag av komponenten
- enhet = enhet for måleverdiene
- typeDevice = angir om komponenten er en sensor eller aktuator
Trinn 5: Frontend: Sette opp webserveren
Pi krever at du installerer Apache -webserveren for å kjøre webserveren for denne enheten. Dette kan gjøres med følgende kommando:
sudo apt-get install apache2.
Når dette er gjort, kan du navigere til mappen:/var/www/html. Her må du plassere all koden til frontend. Etterpå kan du få tilgang til nettstedet ved å bla til IP -adressen.
Trinn 6: Backend
For å kjøre backend må du kjøre app.py -filen, enten manuelt eller ved å opprette en tjeneste for den på Pi, slik at den starter opp automatisk.
Som du kanskje merker, er det ganske mange filer. Jeg atskilt koden så mye jeg kunne for å ha en oversikt og organisering av koden.
En kort forklaring:
app.py: Hovedfilen der databasen, maskinvarekoden og backend -koden er koblet sammen
config.py: Konfigurasjonsfilen for databaseRepositories
Lagre: For tilgang til datalageret
-
Hjelper
- devices_id: klasser for å identifisere enhetsinformasjonen i databasen
- lcd: for å kjøre PCF og LCD
- Aktuatorer: klasser for kjøring av aktuatorene
- Sensorer: klasser for kjøring av sensorene
Trinn 7: Plassering av LED -stripen
Jeg klippet et stykke av LED -stripen og limte det fast på toppen av drivhusboksen. Strimmelen jeg brukte, kan kuttes på flere posisjoner og kobles til igjen, slik at du kan plassere flere strimler og koble dem til igjen etterpå gjennom ledninger, slik at mer plass kan lyses opp.
Trinn 8: Plassering av rørene
Rørene kan plasseres på en rekke måter, men i mitt tilfelle festet jeg dem til siden av bunnen, og holdt dem så langt fra den andre elektronikken som mulig og lot vannet renne ut i smusset.
Trinn 9: Plassering av LCD -skjermen
Jeg kuttet en hel i lokket på koblingsboksen med et sagblad, og skapte en åpning som var stor nok til at skjermen kunne komme gjennom, men liten nok til at PCB -en skulle holde seg bak den. Etterpå ble det festet til lokket ved hjelp av skjevheter.
LCD -skjermen viser IP -adressene til Raspberry Pi, noe som gjør det mulig å vite hvilken adresse du kan bruke til å surfe til nettstedet.
Trinn 10: Plassering av sensorene og tilkobling av LED -stripen
Ved å bruke fritz -ordningene loddet jeg tilkoblinger mellom ledningene og plasserte motstandene inne i ledningene, ved hjelp av varmekrympeslanger for å isolere dem.
Hull ble kuttet i sidene av drivhusets lokk og bunn for å feste svingene, der jeg trakk ledningene til sensorene og LED -stripen.
Jeg grupperte ledningene etter funksjon. Spenningen fra ledningene og krympeslangene holdt sensorene oppe. Jeg måtte bare bruke lim på ledningene til DHT11 siden dette utvidet seg ytterligere.
Trinn 11: Kabling av Pi
Jeg skar hull i siden av koblingsboksen for å la ledningene komme gjennom senere.
Etter det plasserte jeg brødbrettet (med T-skomaker, PCF8574a, MCP3008, justerbar motstand og TIP50), relé og bringebær Pi på bunnen av koblingsboksen, som var dekket med dobbeltsidig duktape. Strømforsyningen passet ikke på brødbrettet, så jeg måtte sette den på siden og brukte jumperkabler for å koble den til brødbrettet.
Til slutt dro jeg adapter, sensor og aktuatorledninger gjennom hullene som var koblet ledningene til brødbrettet, Raspberry Pi og andre komponenter. Ledningen til pumpen ble kuttet opp slik at jeg kunne plassere endene inne i reléet slik at den kunne brukes som bryter.
Trinn 12: Lag en beholder for vann
Jeg lagde en vannbeholder av en 1 l vannflaske i plast ved å kutte toppen av med en boksekutter og male den for et bedre utseende. Vannpumpen ble deretter plassert inne. Årsaken til regelen for å kommunisere fartøyer, kan vannet potensielt strømme gjennom rørene på egen hånd, men å holde røret løser problemet.
Trinn 13: Sluttresultat
Øyeblikket du har ventet på. Nå kan du plassere skitt og frø inne i drivhusboksen og la enheten ta over. Du kan overvåke enhetens status fra nettstedet og angi de optimale verdiene for lys- og jordforhold.
Jeg anbefaler å vanne jorda først manuelt, ettersom noe skitt kan være ganske tørt først. Noen pumper ser også ut til å vanne ganske sakte, men du må være veldig forsiktig, siden den fylles opp raskere enn du forventer. En metning på over 80% kan gjøre bakken veldig fuktig. Sørg for at jordfuktighetssensoren er dyp nok.
Anbefalt:
Enkel automatisert Point to Point Model Railroad: 10 trinn (med bilder)
Enkel automatisert punkt -til -punkt modell jernbane: Arduino mikrokontrollere er gode til å automatisere modelljernbanelinjer. Automatisering av oppsett er nyttig for mange formål, for eksempel å sette oppsettet ditt på et display hvor layoutoperasjonen kan programmeres til å kjøre tog i en automatisk sekvens. Den l
Akvariedesign med automatisert kontroll av grunnleggende parametere: 4 trinn (med bilder)
Akvariedesign med automatisert kontroll av grunnleggende parametere: Introduksjon I dag er marin akvariumpleie tilgjengelig for alle akvarister. Problemet med å skaffe seg et akvarium er ikke vanskelig. Men for innbyggernes fulle livsstøtte, beskyttelse mot tekniske feil, enkelt og raskt vedlikehold og pleie
Modelljernbanelayout med automatisert sidespor: 13 trinn (med bilder)
Modelljernbanelayout med automatisert sidespor: Å lage modelltogoppsett er en flott hobby, og automatisering av det vil gjøre det mye bedre! La oss ta en titt på noen av fordelene med automatiseringen: Billig drift: Hele oppsettet styres av en Arduino mikrokontroller, ved hjelp av en L298N mo
Automatisert vannmotor med nivåindikator: 6 trinn (med bilder)
Automatisert vannmotor med nivåindikator: Hei alle, velkommen til nok en instruerbar. I dette prosjektet vil vi lære å lage en helautomatisk vanntanknivåkontroller med vannstandsindikatorfunksjon ved hjelp av Arduino Nano. Arduino er hjernen til dette prosjektet. Det vil ta innspill fra
Automatisk smart plantepotte - (DIY, 3D -trykt, Arduino, selvvanning, prosjekt): 23 trinn (med bilder)
Automatisk smart plantepotte - (DIY, 3D -trykt, Arduino, selvvanning, prosjekt): Hei, Noen ganger når vi går hjemmefra i noen dager eller er veldig opptatt, lider husplantene (urettferdig) fordi de ikke blir vannet når de trenger det. Dette er min løsning. Det er en smart plantepotte som inkluderer: Innebygd vannreservoar. En senso