Indholdsfortegnelse:

Automatiseret plantepotte - lille have: 13 trin (med billeder)
Automatiseret plantepotte - lille have: 13 trin (med billeder)

Video: Automatiseret plantepotte - lille have: 13 trin (med billeder)

Video: Automatiseret plantepotte - lille have: 13 trin (med billeder)
Video: NÅR MOR IKKE ER HJEMME! 2024, Juli
Anonim
Automatiseret plantepotte - lille have
Automatiseret plantepotte - lille have

Jeg er studerende fra multimedie- og kommunikationsteknologi på Howest Kortrijk. Til vores sidste opgave måtte vi udvikle et IoT -projekt efter eget valg.

Da jeg ledte efter ideer, besluttede jeg mig for at gøre noget nyttigt for min mor, der elsker at dyrke planter og begyndte at arbejde på en automatiseret plantekrukke.

Hovedopgaverne for denne automatiserede plantekrukke, Little Garden, er at:

  • Mål

    • Temperatur
    • Lysintensitet
    • Fugtighed
    • Jordfugtighed

Gem målingerne i en database

Forbedre betingelserne for plantevækst, hvis en bestemt værdi er for lav

Lad enheden overvåges og administreres via et websted

Ikke hvert trin skal følges til mærket. Meget af det, der sker, kan være din personlige præference eller blive forbedret. Denne konstruktion blev lavet på en måde, så dele kunne genoprettes bagefter, så du vil måske nærme dig din iteration anderledes for at gøre den mere permanent

Trin 1: Forbrugsvarer

Forbrugsvarer
Forbrugsvarer
Forbrugsvarer
Forbrugsvarer
Forbrugsvarer
Forbrugsvarer

De fleste forsyninger til dette projekt er ikke særlig vanskelige at erhverve, selvom jeg i mit tilfælde har arbejdet med mange genbrugsmaterialer. Jeg var også nødt til at sikre, at jeg kunne genvinde nogle materialer bagefter.

Kernekomponenter:

  • Raspberry Pi 4 model B
  • Raspberry Pi strømforsyning
  • Raspberry Pi T-skomager
  • 16 GB micro SD -kort
  • Breadboard strømforsyning med 3,3V og 5V
  • Brødbræt
  • 12V strømforsyning

Sensorer:

  • DHT11: Fugtigheds- og temperatursensor
  • BH1750: Lysintensitetssensor
  • Jordfugtighedsføler
  • MCP3008

Aktuatorkomponenter:

  • 220V vandpumpe
  • 12V LED strip
  • Relæmodul Velleman
  • TIP 50: NPN -transistor
  • 16X2 LCD-moduke display
  • PCF8574a

Modstande:

  • 3 x 330 Ohm modstande
  • 1 x 5k Ohm modstand
  • 2 x 10k Ohm modstande
  • 1 x 1k Ohm modstand
  • 1 x 10k Potentio modstand

Materialer:

  • Præfabrikeret drivhus/plantekrukke
  • Samledåse
  • Vandflaske i plast
  • Drejeligt
  • Jumper ledninger + almindelig ledning
  • Skruer
  • Loddeform + krympeslange
  • Dobbeltsidet tape
  • Maling

Værktøjer:

  • Limpistol
  • Bore
  • Savklinge
  • Loddekolbe
  • Hobbykniv
  • Pensel

Det pæne ved dette projekt er, at det kan udvides eller forenkles ved at tilføje/fjerne komponenter og lidt justere koden. For eksempel ved at udskifte 220V -pumpen med en 12V -pumpe kan du fjerne en strømadapter fra enheden.

Trin 2: Fritzing skematisk

Fritzing skematisk
Fritzing skematisk
Fritzing skematisk
Fritzing skematisk

Brødbrættet og elektriske ordninger for enheden er vist ovenfor. Her kan du se, hvordan alle komponenter er forbundet med hinanden.

En generel forklaring på, hvordan komponenterne fungerer:

  • DHT11 måler luftfugtigheden i % og temperaturen i ° C. Kommunikationen med den varetages af en I2C bu.
  • BH1750 måler lysintensiteten i lux. Kommunikationen håndteres af en I2C -bus
  • Jordfugtighedsføleren skaber et digitalt signal, der omdannes af MCP3008 til et læseligt digitalt signal til Raspberry Pi
  • 16x2 LCD-modulet viser IP-adresserne fra Pi, den ene efter den anden. Den er forbundet til en PCF8574a, der modtager et signal fra Raspberry Pi, der konverterer det til et antal signaler for skærmens bitpinde. E- og RS -benene fra LCD'et er forbundet direkte til Pi. Potentiomodstanden bestemmer skærmens lysstyrke.
  • Vandpumpen er forbundet til et relæ, der er mellem den og dens 220V strømforsyning/stikkontakt. Raspberry Pi kan sende et signal til relæet for at lukke det elektriske kredsløb og tænde pumpen.
  • LED -båndet er forbundet til 12V strømforsyningen og TIP 50 (NPN transistor), der skifter den elektriske strøm. 1k Ohm modstanden bruges til at begrænse den trukne effekt fra Raspberry Pi, ellers ville den blive stegt ekstra sprød.

Trin 3: Forbered Raspberry Pi

Forbered Raspberry Pi
Forbered Raspberry Pi

Hvis du ikke har fået en endnu, skal du lægge et af Raspberry Pi OS -billederne på SD -kortet. Jeg anbefaler ikke at bruge Lite, da dette forårsagede problemer i starten. Bagefter skal du sikre dig, at din Pi er opdateret ved at bruge følgende kommandoer, mens Pi er forbundet til internettet:

  1. sudo apt-get opdatering
  2. sudo apt-get opgradering

Derefter kan du aktivere eller installere pakkerne, så projektet kan fungere, enten via raspi-config eller kommandoer.

  • SPI
  • I2C
  • MySQL: næste trin
  • SocketIO: pip installer kolbe-socketio

Efter opsætningen kan du tilføje de nødvendige filer, der er skrevet i html, CSS, Javascript og Python. Al min kode kan findes på mit github -lager.

Trin 4: Databasemodel - MySQL

Databasemodel - MySQL
Databasemodel - MySQL

Ovenfor kan du se ERD -diagrammet, der er hostet gennem MariaDB. Jeg anbefaler at følge denne MariaDB installationsvejledning, ikke kun for at installere MariaDB, men også for at sikre, at din Pi er beskyttet.

For folk, der gerne vil forstå, fungerer databasen som følger:

Målingerne og aktuatorskiftene gemmes som rækker i Metingen -tabellen.

  • metingId = ID for måling/skift række
  • deviceId = ID for den enhed, der er ansvarlig for denne række i tabellen
  • waarde = værdien af sensormålingen eller aktuatorskift

    • sensor: værdien af målingen i de tilsvarende enheder
    • aktuatorer: 0 = OFF og 1 = ON
  • commentaar = kommentarer, der bruges til at tilføje ekstra oplysninger, f.eks. fejl
  • datum = den dato og det tidspunkt, hvor målingen/skiftet fandt sted

Indstillingerne for enheden gemmes i Indstillinger.

  • settingId = ID for denne række og indstillingsværdien
  • deviceID = ID for den tilsvarende enhed/sensor
  • waarde = værdien af indstillingen
  • type = typen af settinet, er det maksimum eller minimum?

Sidst men ikke mindst indeholder tabellen Enheder oplysninger om sensorer og aktuatorer.

  • deviceId = ID for enheden i denne tabel
  • naam = navn på enheden/komponenten
  • mærke = mærke
  • pris = komponentens pris
  • beschrijving = sammendrag af komponenten
  • enhed = enhed for de målte værdier
  • typeDevice = angiver, om komponenten er en sensor eller aktuator

Trin 5: Frontend: Opsætning af webserveren

Frontend: Opsætning af webserveren
Frontend: Opsætning af webserveren

Pi vil kræve, at du installerer Apache -webserveren for at køre webserveren til denne enhed. Dette kan gøres med følgende kommando:

sudo apt-get install apache2.

Når dette er gjort, kan du navigere til mappen:/var/www/html. Her skal du placere al koden til frontend. Bagefter kan du få adgang til webstedet ved at gå til IP -adressen.

Trin 6: Backend

For at køre backend skal du køre appen app.py, enten manuelt eller ved at oprette en service til den på Pi, så den starter automatisk.

Som du måske bemærker, er der en del filer. Jeg adskilte koden så meget som jeg kunne for at få et klart overblik og organisering af koden.

En kort forklaring:

app.py: Hovedfilen, hvor databasen, hardwarekoden og backend -koden er forbundet

config.py: Konfigurationsfilen til databaseRepositories

Lagre: Til adgang til datalageret

  • Hjælper

    • devices_id: klasser, der hjælper med at identificere enhedsoplysninger i databasen
    • lcd: for at køre PCF og LCD
    • Aktuatorer: klasser til drift af aktuatorerne
    • Sensorer: klasser til kørsel af sensorerne

Trin 7: Placering af LED Strip

Placering af LED Strip
Placering af LED Strip

Jeg skar et stykke af LED -strimlen og limede det fast på toppen af drivhuskassen. Strimlen, jeg brugte, kunne skæres i flere positioner og tilsluttes igen, så du kunne placere flere strimler og forbinde dem igen bagefter gennem ledninger, så der kunne lyses mere plads op.

Trin 8: Placering af rørene

Placering af rørene
Placering af rørene

Rørene kunne placeres på en række måder, men i mit tilfælde satte jeg dem fast på siden af bunden, holdt dem så langt fra den anden elektronik som muligt og lod vandet simpelthen strømme ind i snavs.

Trin 9: Placering af LCD -skærmen

Placering af LCD -skærmen
Placering af LCD -skærmen

Jeg skar en hel i låget på forbindelsesboksen med en savklinge og skabte en åbning, der var stor nok til, at displayet kunne komme igennem, men lille nok, så printkortet ville blive bagved det. Bagefter blev det fastgjort til låget ved hjælp af skævheder.

LCD'et viser Raspberry Pi's IP -adresser, hvilket gør det muligt at vide, hvilken adresse du kan bruge til at surfe til webstedet.

Trin 10: Placering af sensorerne og tilslutning af LED -stripen

Placering af sensorerne og tilslutning af LED -stripen
Placering af sensorerne og tilslutning af LED -stripen
Placering af sensorerne og tilslutning af LED -stripen
Placering af sensorerne og tilslutning af LED -stripen

Ved hjælp af fritz -ordningerne lodde jeg forbindelser mellem ledningerne og placerede modstandene inde i ledningerne ved hjælp af varmekrympeslanger til at isolere dem.

Der blev skåret huller i siderne af drivhusets låg og bund for at fastgøre drejerne, hvorigennem jeg trak ledningerne til sensorerne og LED -strimlen.

Jeg grupperede ledningerne efter funktion. Spændingen fra ledningerne og krympeslangerne holdt sensorerne oppe. Jeg måtte kun bruge lim på ledningerne til DHT11, da dette forlængede sig yderligere.

Trin 11: Tilslutning af Pi

Tilslutning af Pi
Tilslutning af Pi
Tilslutning af Pi
Tilslutning af Pi
Tilslutning af Pi
Tilslutning af Pi

Jeg skar huller i siden af samlingsboksen for at lade ledningerne komme igennem senere.

Herefter placerede jeg brødbrættet (med T-skomageren, PCF8574a, MCP3008, justerbar modstand og TIP50), relæ og Raspberry Pi på bunden af forbindelsesboksen, som var dækket med dobbeltsidet duktape. Strømforsyningen passede ikke på brødbrættet, så jeg måtte lægge den på siden og brugte jumperwires til at forbinde den med brødbrættet.

Til sidst trak jeg adapteren, sensoren og aktuatorledningerne gennem hullerne, der sluttede ledningerne til brødbrættet, Raspberry Pi og andre komponenter. Tråden på pumpen blev skåret op, så jeg kunne placere enderne inde i relæet, så den kunne bruges som switch.

Trin 12: Lav en beholder til vand

Lav en beholder til vand
Lav en beholder til vand

Jeg lavede en vandbeholder fra en 1 l plastikflaske ved at skære toppen af med en bokseskærer og male den for et bedre udseende. Vandpumpen blev derefter placeret indeni. Årsagen til reglen om kommunikation af fartøjer kan vandet potentielt strømme gennem rørene på egen hånd, men ved at holde røret løst problemet.

Trin 13: Endeligt resultat

Endeligt resultat
Endeligt resultat
Endeligt resultat
Endeligt resultat

Det øjeblik, du har ventet på. Nu kan du placere snavs og frø inde i drivhuskassen og lade enheden overtage. Du kan overvåge enhedens status fra webstedet og indstille de optimale værdier for belysning og jordforhold.

Jeg anbefaler at vande jorden først manuelt, da noget snavs kan være temmelig tørt i starten. Nogle pumper ser også ud til at vande ganske langsomt, men du skal være meget forsigtig, da den fyldes hurtigere, end du ville forvente. En mætning på over 80% kan gøre jorden meget fugtig. Og sørg for, at jordfugtighedsføleren er dyb nok.

Anbefalede: