INHOUDSOPGAWE:

Outomatiese plantpot - tuintjie: 13 stappe (met foto's)
Outomatiese plantpot - tuintjie: 13 stappe (met foto's)

Video: Outomatiese plantpot - tuintjie: 13 stappe (met foto's)

Video: Outomatiese plantpot - tuintjie: 13 stappe (met foto's)
Video: KAS2030 in 7 stappen uitgelegd: Aardbei 2024, Julie
Anonim
Outomatiese plantpot - Tuintjie
Outomatiese plantpot - Tuintjie

Ek is 'n student van Multimedia en Kommunikasietegnologie aan Howest Kortrijk. Vir ons finale opdrag moes ons 'n IoT -projek van ons eie keuse ontwikkel.

Op soek na idees, het ek besluit om iets nuttigs te maak vir my ma wat graag plante kweek en begin werk aan 'n outomatiese pot.

Die hooftake vir hierdie outomatiese pot, Little Garden, is om:

  • Meet die

    • Temperatuur
    • Ligte intensiteit
    • Humiditeit
    • Grondvog

Stoor die metings in 'n databasis

Verbeter die toestande vir die plantgroei as 'n sekere waarde te laag is

Laat die toestel deur 'n webwerf gemonitor en bestuur word

Nie elke stap hoef tot by die punt gevolg te word nie. Baie van wat gebeur, kan u persoonlike voorkeur wees of verbeter word. Hierdie konstruksie is so gemaak dat dele daarna herstel kan word, sodat u u herhaling anders wil benader om dit meer permanent te maak

Stap 1: Voorrade

Voorrade
Voorrade
Voorrade
Voorrade
Voorrade
Voorrade

Die meeste voorrade vir hierdie projek is nie baie moeilik om aan te skaf nie, hoewel ek in my geval met baie herwinde materiaal gewerk het. Ek moes ook verseker dat ek 'n paar materiaal daarna kon herstel.

Kernkomponente:

  • Framboos Pi 4 model B
  • Raspberry Pi kragtoevoer
  • Framboos Pi T-skoenmaker
  • 16 GB mikro -SD -kaart
  • Breadboard kragtoevoer met 3.3V en 5V
  • Broodbord
  • 12V kragtoevoer

Sensors:

  • DHT11: Humiditeits- en temperatuursensor
  • BH1750: Ligintensiteitsensor
  • Grondvog sensor
  • MCP3008

Aktuator komponente:

  • 220V Waterpomp
  • 12V LED strook
  • Relay module Velleman
  • WENK 50: NPN -transistor
  • 16X2 LCD-moduke-skerm
  • PCF8574a

Weerstands:

  • 3 x 330 Ohm weerstande
  • 1 x 5k Ohm weerstand
  • 2 x 10k Ohm weerstande
  • 1 x 1k Ohm weerstand
  • 1 x 10k Potentio -weerstand

Materiaal:

  • Voorafvervaardigde kweekhuis/plantpot
  • Kas
  • Waterbottel van plastiek
  • Draaibare
  • Springdrade + gewone draad
  • Skroewe
  • Soldeerbout + krimpkoker
  • Dubbelsydige plakband
  • Verf

Gereedskap:

  • Gom geweer
  • Boor
  • Saaglem
  • Soldeerbout
  • Boksnyer
  • Verfkwas

Die aangename aan hierdie projek is dat dit uitgebrei of vereenvoudig kan word deur komponente by te voeg/te verwyder en die kode effens aan te pas. Deur byvoorbeeld die 220V -pomp deur 'n 12V -pomp te vervang, kan u 'n kragadapter van die toestel verwyder.

Stap 2: Fritzing skematiese

Fritzing skematiese
Fritzing skematiese
Fritzing skematiese
Fritzing skematiese

Die broodbord en elektriese skemas vir die toestel word hierbo getoon. Hier kan u sien hoe al die komponente aan mekaar gekoppel is.

'N Algemene verduideliking van hoe die komponente werk:

  • Die DHT11 meet die lugvog in % en die temperatuur in ° C. Die kommunikasie daarmee word behartig deur 'n I2C bu.
  • Die BH1750 meet die ligintensiteit in lux. Die kommunikasie word deur 'n I2C -bus hanteer
  • Die grondvogsensor skep 'n digitale sein wat deur die MCP3008 omgeskakel word na 'n leesbare digitale sein vir die Raspberry Pi
  • Die 16x2 LCD-module vertoon die IP-adresse van die Pi, die een na die ander. Dit is gekoppel aan 'n PCF8574a wat 'n sein van die Raspberry Pi ontvang wat dit omskakel in 'n aantal seine vir die bitpenne van die skerm. Die E- en RS -penne van die LCD is direk aan die Pi gekoppel. Die potensioweerstand bepaal die helderheid van die skerm.
  • Die waterpomp is gekoppel aan 'n relais wat tussen dit is en sy 220V -kragbron. Die Raspberry Pi kan 'n sein na die aflos stuur om die elektriese stroombaan te sluit en die pomp aan te skakel.
  • Die LED -strook is gekoppel aan die 12V -kragtoevoer en die TIP 50 (NPN -transistor) wat die elektriese stroom wissel. Die 1k Ohm -weerstand word gebruik om die krag van die Raspberry Pi te beperk, anders word dit ekstra bros gebraai.

Stap 3: Berei die Framboos Pi voor

Berei die Framboos Pi voor
Berei die Framboos Pi voor

As u nog nie een het nie, moet u een van die Raspberry Pi OS -beelde op die SD -kaart plaas. Ek beveel nie aan om Lite te gebruik nie, aangesien dit aan die begin probleme veroorsaak het. Daarna moet u seker maak dat u Pi op datum is deur die volgende opdragte te gebruik terwyl die Pi aan die internet gekoppel is:

  1. sudo apt-get update
  2. sudo apt-get upgrade

Daarna kan u die pakkette aktiveer of installeer sodat die projek kan werk, hetsy deur raspi-config of opdragte.

  • SPI
  • I2C
  • MySQL: volgende stap
  • SocketIO: pip installeer flask-socketio

Na die opstelling kan u die nodige lêers byvoeg wat in html, CSS, Javascript en Python geskryf is. Al my kode kan op my github -bewaarplek gevind word.

Stap 4: Databasemodel - MySQL

Databasemodel - MySQL
Databasemodel - MySQL

Hierbo kan u die ERD -diagram sien wat deur MariaDB aangebied word. Ek beveel aan dat u hierdie installasiegids van MariaDB volg, nie net om MariaDB te installeer nie, maar ook om seker te maak dat u Pi beskerm is.

Vir mense wat dit wil verstaan, werk die databasis soos volg:

Die metings en skakelaars word as rye in die Metingen -tabel gestoor.

  • metingId = ID van die meting/wissel ry
  • deviceId = ID van die toestel wat verantwoordelik is vir hierdie ry in die tabel
  • waarde = waarde van die sensormeting of omschakelaar van de aandrijving

    • sensor: waarde van die meting in die ooreenstemmende eenhede
    • aandrywers: 0 = UIT en 1 = AAN
  • commentaar = kommentaar wat gebruik word om ekstra inligting by te voeg, soos foute
  • datum = die datum en tyd waarop die meting/skakelaar plaasgevind het

Die instellings vir die toestel word in Instellings gestoor.

  • settingId = ID van hierdie ry en die instellingswaarde
  • deviceID = ID van die ooreenstemmende toestel/sensor
  • waarde = waarde van die instelling
  • tipe = tipe setin, is dit maksimum of minimum?

Laastens, maar nie die minste nie, bevat die toesteltabel inligting oor die sensors en aandrywers.

  • deviceId = ID van die toestel in hierdie tabel
  • naam = naam van die toestel/komponent
  • merk = merk
  • prys = prys van die komponent
  • beschrijving = opsomming van die komponent
  • eenheid = eenheid vir die gemete waardes
  • typeDevice = spesifiseer of die komponent 'n sensor of aktuator is

Stap 5: Frontend: Die opstel van die webbediener

Frontend: die opstel van die webbediener
Frontend: die opstel van die webbediener

Die Pi vereis dat u die Apache -webbediener installeer om die webbediener vir hierdie toestel te laat loop. Dit kan gedoen word met die volgende opdrag:

sudo apt-get install apache2.

Sodra dit gedoen is, kan u na die gids gaan:/var/www/html. Hier moet u al die kode van die frontend plaas. Daarna kan u toegang tot die webwerf verkry deur na die IP -adres te blaai.

Stap 6: Backend

Om die backend uit te voer, moet u die app.py -lêer uitvoer, hetsy met die hand of deur 'n diens daarvoor op die Pi te skep, sodat dit outomaties begin.

Soos u dalk agterkom, is daar 'n hele paar lêers. Ek het die kode soveel as moontlik geskei om 'n duidelike oorsig en organisasie van die kode te hê.

'N Kort verduideliking:

app.py: die hooflêer waar die databasis, hardewarekode en backend -kode verbind word

config.py: Die konfigurasielêer vir die databaseRepositories

Bewaarplekke: Vir toegang tot die databank

  • Helper

    • devices_id: klasse om die apparaatinligting in die databasis te identifiseer
    • lcd: om die PCF en LCD uit te voer
    • Aktuators: klasse vir die bestuur van die aandrywers
    • Sensors: klasse vir die bestuur van die sensors

Stap 7: Plaas die LED -strook

Plaas die LED -strook
Plaas die LED -strook

Ek het 'n stukkie van die LED -strook gesny en dit bo -op die kweekhuis vasgeplak. Die strook wat ek gebruik het, kan op verskeie posisies gesny word en weer verbind word, sodat u meer stroke kan plaas en dit daarna weer deur drade kan verbind, sodat meer ruimte verlig kan word.

Stap 8: Plaas die buise

Plaas die buise
Plaas die buise

Die buise kan op verskillende maniere geplaas word, maar in my geval het ek dit aan die onderkant vasgemaak, so ver as moontlik van die ander elektronika gehou en die water in die vuil laat vloei.

Stap 9: Plaas die LCD

Plaas die LCD
Plaas die LCD

Ek sny 'n geheel in die deksel van die aansluitkas met 'n saagblad, en skep 'n opening wat groot genoeg is om deur die skerm te kom, maar klein genoeg sodat die PCB daaragter kan bly. Daarna is dit met skeef aan die deksel vasgemaak.

Die LCD vertoon die IP -adresse van die Raspberry Pi, wat dit moontlik maak om te weet watter adres u kan gebruik om na die webwerf te blaai.

Stap 10: Plaas die sensors en verbind die LED -strook

Plaas die sensors en verbind die LED -strook
Plaas die sensors en verbind die LED -strook
Plaas die sensors en verbind die LED -strook
Plaas die sensors en verbind die LED -strook

Met behulp van die fritz -skemas het ek verbindings tussen die drade gesoldeer en die weerstande in die drade geplaas, met behulp van krimpbuise om dit te isoleer.

Daar is gate in die kante van die deksel en onderkant van die kweekhuis gesny om die draaie vas te maak, waardeur ek die drade vir die sensors en LED -strook getrek het.

Ek het die drade volgens funksie gegroepeer. Die spanning van die drade en krimpbuise het die sensors gehou. Ek moes net gom op die drade vir die DHT11 gebruik, aangesien dit verder uitgebrei het.

Stap 11: Bedrading van die Pi

Bedrading van die Pi
Bedrading van die Pi
Bedrading van die Pi
Bedrading van die Pi
Bedrading van die Pi
Bedrading van die Pi

Ek het gate aan die kant van die aansluitkas gesny sodat die drade later kan deurkom.

Daarna het ek die broodbord (met die T-skoenmaker, PCF8574a, MCP3008, verstelbare weerstand en TIP50), aflos en Framboos Pi op die onderkant van die aansluitkas geplaas, wat bedek was met dubbelzijdige band. Die kragtoevoer pas nie op die broodbord nie, so ek moes dit aan die kant sit en gebruik trui om dit aan die broodbord te koppel.

Uiteindelik het ek die adapter-, sensor- en bedieningsdrade deur die gate getrek wat die drade met die broodbord, Raspberry Pi en ander komponente verbind het. Die pompdraad is oopgesny sodat ek die punte in die aflos kon plaas sodat dit as 'n skakelaar gebruik kon word.

Stap 12: Maak 'n houer vir water

Maak 'n houer vir water
Maak 'n houer vir water

Ek het 'n waterhouer gemaak uit 'n plastiekbottel van 1 liter deur die bokant daarvan met 'n bokssnyer te sny en dit te verf vir 'n beter voorkoms. Die waterpomp is daarna binne geplaas. As gevolg van die reël om vaartuie te kommunikeer, kan water moontlik self deur die pype vloei, maar as u die buis omhoog hou, word die probleem opgelos.

Stap 13: Finale resultaat

Finale Uitslag
Finale Uitslag
Finale Uitslag
Finale Uitslag

Die oomblik waarop jy gewag het. Nou kan u die vuil en sade in die kas hou en die toestel laat oorneem. U kan die status van die toestel vanaf die webwerf monitor en die optimale waardes vir die beligting en grondtoestande stel.

Ek beveel aan dat u die grond eers met die hand natmaak, aangesien vuilgoed aanvanklik redelik droog kan wees. Sommige pompe maak ook baie stadig water, maar u moet baie versigtig wees, aangesien dit vinniger vol word as wat u sou verwag. 'N Versadiging van meer as 80% kan die grond baie pap maak. En maak seker dat die grondvogsensor diep genoeg is.

Aanbeveel: