Cuprins:

Ghiveci automat pentru plante - Grădina mică: 13 pași (cu imagini)
Ghiveci automat pentru plante - Grădina mică: 13 pași (cu imagini)

Video: Ghiveci automat pentru plante - Grădina mică: 13 pași (cu imagini)

Video: Ghiveci automat pentru plante - Grădina mică: 13 pași (cu imagini)
Video: Cum cultivam capsunii in jardiniere sau ghivece. De ce merita? 2024, Noiembrie
Anonim
Ghiveci automat pentru plante - Little Garden
Ghiveci automat pentru plante - Little Garden

Sunt student la tehnologia multimedia și comunicații la Howest Kortrijk. Pentru misiunea noastră finală, a trebuit să dezvoltăm un proiect IoT la alegere.

Căutând idei în jur, am decis să fac ceva util mamei mele care iubește plantele în creștere și a început să lucreze la un ghiveci automat.

Principalele sarcini pentru acest ghiveci automat, Little Garden, sunt:

  • Măsurați

    • Temperatura
    • Intensitatea luminii
    • Umiditate
    • Umiditatea solului

Salvați măsurătorile într-o bază de date

Îmbunătățiți condițiile pentru creșterea plantelor dacă o anumită valoare este prea mică

Lăsați dispozitivul să fie monitorizat și gestionat printr-un site web

Nu fiecare pas trebuie urmat până la semn. Multe dintre ceea ce se întâmplă pot fi preferințele personale sau pot fi îmbunătățite. Această construcție a fost realizată într-un mod astfel încât piesele să poată fi recuperate ulterior, astfel încât s-ar putea să doriți să abordați iterația dvs. diferit pentru a o face mai permanentă

Pasul 1: consumabile

Provizii
Provizii
Provizii
Provizii
Provizii
Provizii

Majoritatea consumabilelor pentru acest proiect nu sunt foarte dificil de achiziționat, deși în cazul meu am lucrat cu o mulțime de materiale reciclate. De asemenea, a trebuit să mă asigur că pot recupera câteva materiale după aceea.

Componente de bază:

  • Raspberry Pi 4 model B
  • Alimentare Raspberry Pi
  • Raspberry Pi T-cobbler
  • Card micro SD de 16 GB
  • Sursă de alimentare pentru panouri cu 3.3V și 5V
  • Pană de pâine
  • Alimentare 12V

Senzori:

  • DHT11: senzor de umiditate și temperatură
  • BH1750: Senzor de intensitate a luminii
  • Senzor de umiditate a solului
  • MCP3008

Componentele actuatorului:

  • Pompa de apa 220V
  • Banda LED de 12V
  • Modul de releu Velleman
  • SFAT 50: tranzistor NPN
  • Afișaj LCD-moduke 16X2
  • PCF8574a

Rezistențe:

  • Rezistențe de 3 x 330 Ohm
  • 1 rezistor de 5k Ohm
  • 2 rezistențe de 10k Ohm
  • Rezistor 1 x 1k Ohm
  • 1 x rezistență 10k Potentio

Materiale:

  • Seră prefabricată / ghiveci de plante
  • Cutie de distribuție
  • Sticla de apa din plastic
  • Pivotante
  • Sârme jumper + sârmă obișnuită
  • Skrews
  • Tabla de lipit + tub termocontractabil
  • Bandă dublă față
  • A picta

Instrumente:

  • Pistol de lipit
  • Burghiu
  • Lamă de ferăstrău
  • Ciocan de lipit
  • Taietor de cutii
  • Pensulă

Lucrul îngrijit al acestui proiect este că poate fi extins sau simplificat, prin adăugarea / eliminarea componentelor și modificarea ușoară a codului. De exemplu, prin înlocuirea pompei de 220V cu o pompă de 12V, puteți scoate un adaptor de alimentare de pe dispozitiv.

Pasul 2: Schema Fritzing

Schema Fritzing
Schema Fritzing
Schema Fritzing
Schema Fritzing

Schema de verificare și schemele electrice pentru dispozitiv sunt prezentate mai sus. Aici puteți vedea cum sunt conectate toate componentele.

O explicație generală a modului în care funcționează componentele:

  • DHT11 măsoară umiditatea aerului în% și temperatura în ° C. Comunicarea cu acesta este gestionată de un bu I2C.
  • BH1750 măsoară intensitatea luminii în lux. Comunicarea este gestionată de un autobuz I2C
  • Senzorul de umiditate a solului creează un semnal digital care este convertit de MCP3008 într-un semnal digital lizibil pentru Raspberry Pi
  • Modulul LCD 16x2 afișează adresele IP de la Pi, unul după altul. Este conectat la un PCF8574a care primește un semnal de la Raspberry Pi care îl va converti într-un număr de semnale pentru pinii de biți ai afișajului. Pinii E și RS de pe LCD sunt conectați direct la Pi. Rezistorul potentio determină luminozitatea ecranului.
  • Pompa de apă este conectată la un releu aflat între ea și sursa de alimentare de 220V. Raspberry Pi poate trimite un semnal către releu pentru a închide circuitul electric și a porni pompa.
  • Banda LED este conectată la sursa de alimentare de 12V și la TIP 50 (tranzistor NPN) care comută curentul electric. Rezistorul de 1k Ohm este folosit pentru a limita puterea extrasă de la Raspberry Pi, altfel ar fi prăjit extra crocant.

Pasul 3: Pregătiți Raspberry Pi

Pregătiți Raspberry Pi
Pregătiți Raspberry Pi

Dacă nu aveți încă una, va trebui să puneți una dintre imaginile Raspberry Pi OS pe cardul SD. Nu recomand utilizarea Lite, deoarece acest lucru mi-a cauzat probleme la început. Apoi, va trebui să vă asigurați că Pi-ul dvs. este actualizat utilizând următoarele comenzi în timp ce Pi este conectat la internet:

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

După care puteți activa sau instala pachetele pentru ca proiectul să funcționeze, fie prin raspi-config, fie prin comenzi.

  • SPI
  • I2C
  • MySQL: pasul următor
  • SocketIO: pip instala flask-socketio

După configurare, puteți adăuga fișierele necesare care sunt scrise în html, CSS, Javascript și Python. Tot codul meu poate fi găsit în depozitul meu github.

Pasul 4: Modelul bazei de date - MySQL

Model de baze de date - MySQL
Model de baze de date - MySQL

Mai sus puteți vedea diagrama ERD care este găzduită prin MariaDB. Vă recomand să urmați acest ghid de instalare MariaDB, nu numai pentru a instala MariaDB, ci și pentru a vă asigura că Pi-ul dvs. este protejat.

Pentru persoanele care ar dori să înțeleagă, baza de date funcționează după cum urmează:

Măsurătorile și comutatoarele de acționare sunt stocate ca rânduri în tabelul Metingen.

  • metingId = ID-ul rândului de măsurare / comutare
  • deviceId = ID-ul dispozitivului responsabil pentru acest rând din tabel
  • waarde = valoarea măsurării senzorului sau comutatorului actuatorului

    • senzor: valoarea măsurării în unitățile corespunzătoare
    • servomotoare: 0 = OFF și 1 = ON
  • commentaar = comentarii folosite pentru a adăuga informații suplimentare, cum ar fi erorile
  • datum = data și ora la care a avut loc măsurarea / comutarea

Setările pentru dispozitiv sunt stocate în Setări.

  • settingId = ID-ul acestui rând și valoarea setării
  • deviceID = ID-ul dispozitivului / senzorului corespunzător
  • waarde = valoarea setării
  • tip = tip de settin, este maxim sau minim?

Nu în ultimul rând, tabelul Dispozitive conține informații despre senzori și actuatoare.

  • deviceId = ID-ul dispozitivului din acest tabel
  • naam = numele dispozitivului / componentei
  • merk = brand
  • prijs = prețul componentei
  • beschrijving = rezumatul componentei
  • eenheid = unitate pentru valorile măsurate
  • typeDevice = specifică dacă componenta este un senzor sau un actuator

Pasul 5: Frontend: Configurarea serverului web

Frontend: Configurarea serverului web
Frontend: Configurarea serverului web

Pi vă va cere să instalați serverul web Apache pentru a rula serverul web pentru acest dispozitiv. Acest lucru se poate face cu următoarea comandă:

sudo apt-get install apache2.

După ce ați făcut acest lucru, puteți naviga la folderul: / var / www / html. Aici va trebui să plasați tot codul frontendului. Ulterior, puteți accesa site-ul web navigând la adresa IP.

Pasul 6: Backend

Pentru a rula backend-ul, va trebui să rulați fișierul app.py, fie manual, fie creând un serviciu pentru acesta pe Pi, astfel încât acesta să pornească automat.

După cum ați putea observa, există destul de multe fișiere. Am separat codul cât am putut pentru a avea o imagine de ansamblu și o organizare clară a codului.

O scurtă explicație:

app.py: Fișierul principal în care se alătură baza de date, codul hardware și codul backend

config.py: Fișierul de configurare pentru databaseRepozitories

Depozite: pentru acces la depozitul de date

  • Ajutor

    • devices_id: clase pentru a ajuta la identificarea informațiilor despre dispozitiv în baza de date
    • lcd: pentru a rula PCF și LCD
    • Actuatoare: clase pentru rularea actuatoarelor
    • Senzori: clase pentru rularea senzorilor

Pasul 7: Amplasarea benzii LED

Amplasarea benzii LED
Amplasarea benzii LED

Am tăiat o bucată din banda LED și am lipit-o de vârful cutiei de seră. Banda pe care am folosit-o ar putea fi tăiată în mai multe poziții și reconectată, astfel încât să puteți așeza mai multe benzi și să le conectați din nou ulterior prin fire, permițând iluminarea unui spațiu mai mare.

Pasul 8: Amplasarea tuburilor

Amplasarea tuburilor
Amplasarea tuburilor

Tuburile ar putea fi așezate în mai multe moduri, dar în cazul meu le-am atașat pe partea de jos, ținându-le cât mai departe de celelalte electronice și lăsând apa să curgă pur și simplu în murdărie.

Pasul 9: Plasarea ecranului LCD

Amplasarea ecranului LCD
Amplasarea ecranului LCD

Am tăiat un întreg în capacul cutiei de joncțiune cu o lamă de fierăstrău, creând o deschidere suficient de mare pentru ca ecranul să treacă, dar suficient de mică, astfel încât PCB să rămână în spatele ei. Ulterior, a fost atașat la capac folosind înclinări.

LCD-ul afișează adresele IP ale Raspberry Pi, ceea ce face posibil să știți ce adresă puteți utiliza pentru a naviga pe site.

Pasul 10: Plasarea senzorilor și conectarea benzii LED

Amplasarea senzorilor și conectarea benzii LED
Amplasarea senzorilor și conectarea benzii LED
Amplasarea senzorilor și conectarea benzii LED
Amplasarea senzorilor și conectarea benzii LED

Folosind schemele fritzing, am lipit conexiunile între fire și am plasat rezistențele în interiorul firelor, folosind tuburi termocontractibile pentru a le izola.

Au fost tăiate găuri în părțile laterale ale capacului și fundului serii pentru a atașa pivoturile, prin care am tras firele pentru senzori și banda LED.

Am grupat firele după funcție. Tensiunea de la fire și tuburile de contracție a susținut senzorii. A trebuit să folosesc lipici pe fire pentru DHT11, deoarece acest lucru s-a extins și mai mult.

Pasul 11: Cablarea Pi

Cablarea Pi
Cablarea Pi
Cablarea Pi
Cablarea Pi
Cablarea Pi
Cablarea Pi

Am tăiat găuri în lateralul cutiei de joncțiune pentru a permite firelor să treacă mai târziu.

După aceea, am așezat placa de prindere (cu T-cobbler, PCF8574a, MCP3008, rezistență reglabilă și TIP50), releu și Raspberry Pi pe fundul cutiei de joncțiune, care a fost acoperită cu bandă dublă. Sursa de alimentare nu se potrivea pe tablă, așa că a trebuit să o pun pe lateral și am folosit fire jumper pentru a o conecta la panou.

În cele din urmă, am tras adaptorul, senzorul și firele de acționare prin orificiile conectate firele la panou, Raspberry Pi și alte componente. Sârma pompei a fost tăiată, astfel încât să pot așeza capetele în interiorul releului, astfel încât să poată fi folosit ca întrerupător.

Pasul 12: Realizarea unui recipient pentru apă

Realizarea unui recipient pentru apă
Realizarea unui recipient pentru apă

Am făcut un recipient de apă dintr-o sticlă de apă de plastic de 1 litru, tăind partea superioară a acestuia cu un tăietor de cutii și pictându-l pentru un aspect mai bun. Pompa de apă a fost apoi plasată în interior. Cauza regulii vaselor care comunică, apa ar putea să curgă singură prin țevi, dar menținerea tubului ridicat rezolvă problema.

Pasul 13: Rezultatul final

Rezultat final
Rezultat final
Rezultat final
Rezultat final

Momentul pe care l-ai așteptat. Acum puteți plasa murdăria și semințele în interiorul cutiei de seră și lăsați dispozitivul să preia. Puteți monitoriza starea dispozitivului de pe site și puteți seta valorile optime pentru condițiile de iluminare și sol.

Recomand udarea solului mai întâi manual, deoarece o parte din murdărie poate fi destul de uscată la început. Unele pompe par, de asemenea, să ude destul de încet, dar trebuie să fii foarte atent, deoarece se va umple mai repede decât te-ai aștepta. O saturație de peste 80% poate face pământul foarte ud. Și asigurați-vă că senzorul de umiditate al solului este suficient de adânc.

Recomandat: