Innholdsfortegnelse:

Automatisert plantepotte - Little Garden: 13 trinn (med bilder)
Automatisert plantepotte - Little Garden: 13 trinn (med bilder)

Video: Automatisert plantepotte - Little Garden: 13 trinn (med bilder)

Video: Automatisert plantepotte - Little Garden: 13 trinn (med bilder)
Video: Виниловый сайдинг! Секреты монтажа и полезные хитрости, о которых мало кто знает! 2024, Juli
Anonim
Automatisert plantepotte - Little Garden
Automatisert plantepotte - Little Garden

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

Rekvisita
Rekvisita
Rekvisita
Rekvisita
Rekvisita
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

Fritzing skjematisk
Fritzing skjematisk
Fritzing skjematisk
Fritzing skjematisk

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

Forbered Raspberry Pi
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:

  1. sudo apt-get oppdatering
  2. 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

Databasemodell - MySQL
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

Frontend: Sette opp webserveren
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

Plassering av LED -stripen
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

Plassering av rørene
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

Plassering av LCD -skjermen
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

Plassering av sensorene og tilkobling av LED -stripen
Plassering av sensorene og tilkobling av LED -stripen
Plassering av sensorene og tilkobling av LED -stripen
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

Kabling av Pi
Kabling av Pi
Kabling av Pi
Kabling av Pi
Kabling av Pi
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

Lag en beholder for vann
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

Endelig resultat
Endelig resultat
Endelig resultat
Endelig resultat

Ø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: