Sommario:

Vaso per piante automatizzato - Piccolo giardino: 13 passaggi (con immagini)
Vaso per piante automatizzato - Piccolo giardino: 13 passaggi (con immagini)

Video: Vaso per piante automatizzato - Piccolo giardino: 13 passaggi (con immagini)

Video: Vaso per piante automatizzato - Piccolo giardino: 13 passaggi (con immagini)
Video: Crea il tuo terrarium in 7 semplici passaggi! 2024, Luglio
Anonim
Vaso per piante automatizzato - Little Garden
Vaso per piante automatizzato - Little Garden

Sono uno studente di Multimedia and Communication Technology presso Howest Kortrijk. Per il nostro incarico finale, abbiamo dovuto sviluppare un progetto IoT di nostra scelta.

Alla ricerca di idee, ho deciso di fare qualcosa di utile per mia madre che ama coltivare piante e ho iniziato a lavorare su un vaso per piante automatizzato.

I compiti principali di questo vaso per piante automatizzato, Little Garden, sono:

  • Misurare il

    • Temperatura
    • Intensità luminosa
    • Umidità
    • Umidità del suolo

Salva le misurazioni in un database

Migliorare le condizioni per la crescita della pianta se un certo valore è troppo basso

Lascia che il dispositivo sia monitorato e gestito attraverso un sito web

Non tutti i passaggi devono essere seguiti nel segno. Molto di ciò che accade può essere una tua preferenza personale o essere migliorato. Questa build è stata realizzata in modo tale che le parti possano essere recuperate in seguito, quindi potresti voler affrontare la tua iterazione in modo diverso per renderla più permanente

Passaggio 1: materiali di consumo

Forniture
Forniture
Forniture
Forniture
Forniture
Forniture

La maggior parte delle forniture per questo progetto non è molto difficile da acquisire, anche se nel mio caso ho lavorato con molti materiali riciclati. Ho anche dovuto assicurarmi di poter recuperare alcuni materiali in seguito.

Componenti principali:

  • Raspberry Pi 4 modello B
  • Alimentatore Raspberry Pi
  • Calzolaio a T Raspberry Pi
  • Scheda microSD da 16 GB
  • Alimentatore breadboard con 3,3V e 5V
  • tagliere
  • Alimentazione 12V

Sensori:

  • DHT11: sensore di umidità e temperatura
  • BH1750: sensore di intensità luminosa
  • Sensore di umidità del suolo
  • MCP3008

Componenti dell'attuatore:

  • Pompa acqua 220V
  • Striscia LED 12V
  • Modulo relè Velleman
  • SUGGERIMENTO 50: transistor NPN
  • Display del modulo LCD 16X2
  • PCF8574a

Resistenze:

  • 3 resistenze da 330 Ohm
  • 1 x 5k Ohm resistore
  • 2 resistenze da 10k Ohm
  • 1 x 1k Ohm resistore
  • 1 x 10k Potentio resistore

Materiali:

  • Serra/vaso prefabbricato
  • Scatola di giunzione
  • Bottiglia d'acqua in plastica
  • girevoli
  • Ponticelli + filo normale
  • Skrews
  • Stagno di saldatura + tubo termoretraibile
  • Nastro adesivo a doppia faccia
  • Dipingere

Strumenti:

  • Pistola a colla
  • Trapano
  • La lama della sega
  • Saldatore
  • Taglierino
  • Pennello

La cosa bella di questo progetto è che può essere ampliato o semplificato, aggiungendo/rimuovendo componenti e modificando leggermente il codice. Ad esempio, sostituendo la pompa da 220 V con una da 12 V, è possibile rimuovere un adattatore di alimentazione dal dispositivo.

Fase 2: Schema fritzing

Schema Fritzing
Schema Fritzing
Schema Fritzing
Schema Fritzing

La breadboard e gli schemi elettrici per il dispositivo sono mostrati sopra. Qui puoi vedere come tutti i componenti sono collegati tra loro.

Una spiegazione generale del funzionamento dei componenti:

  • Il DHT11 misura l'umidità dell'aria in % e la temperatura in °C. La comunicazione con esso è gestita da un bu I2C.
  • Il BH1750 misura l'intensità della luce in lux. La comunicazione è gestita da un bus I2C
  • Il sensore di umidità del suolo crea un segnale digitale che viene convertito dall'MCP3008 in un segnale digitale leggibile per Raspberry Pi
  • Il modulo LCD 16x2 visualizza gli indirizzi IP dal Pi, uno dopo l'altro. È collegato a un PCF8574a che riceve un segnale dal Raspberry Pi che lo convertirà in un numero di segnali per i bit pin del display. I pin E e RS dell'LCD sono collegati direttamente al Pi. Il potenziometro determina la luminosità dello schermo.
  • La pompa dell'acqua è collegata a un relè che si trova tra essa e la sua presa/alimentazione 220V. Il Raspberry Pi può inviare un segnale al relè per chiudere il circuito elettrico e accendere la pompa.
  • La striscia LED è collegata all'alimentatore 12V e al TIP 50 (transistor NPN) che commuta la corrente elettrica. Il resistore da 1k Ohm viene utilizzato per limitare la potenza assorbita dal Raspberry Pi, altrimenti sarebbe fritto in modo extra croccante.

Passaggio 3: preparare il Raspberry Pi

Prepara il Raspberry Pi
Prepara il Raspberry Pi

Se non ne hai ancora uno, dovrai inserire una delle immagini del sistema operativo Raspberry Pi sulla scheda SD. Non consiglio di usare Lite, poiché questo mi ha causato problemi all'inizio. Successivamente dovrai assicurarti che il tuo Pi sia aggiornato utilizzando i seguenti comandi mentre il Pi è connesso a Internet:

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

Dopodiché puoi abilitare o installare i pacchetti affinché il progetto funzioni, tramite raspi-config o comandi.

  • SPI
  • I2C
  • MySQL: il prossimo passo
  • SocketIO: pip install flask-socketio

Dopo l'installazione, puoi aggiungere i file necessari che sono scritti in html, CSS, Javascript e Python. Tutto il mio codice può essere trovato sul mio repository github.

Passaggio 4: modello di database - MySQL

Modello di database - MySQL
Modello di database - MySQL

Sopra puoi vedere il diagramma ERD che è ospitato tramite MariaDB. Consiglio di seguire questa guida all'installazione di MariaDB, non solo per installare MariaDB, ma anche per assicurarti che il tuo Pi sia protetto.

Per le persone che desiderano capire, il database funziona come segue:

Le misurazioni e gli interruttori degli attuatori sono memorizzati come righe all'interno della tabella Metingen.

  • metingId = ID della riga di misurazione/commutazione
  • deviceId = ID del dispositivo responsabile di questa riga nella tabella
  • waarde = valore della misura del sensore o interruttore dell'attuatore

    • sensore: valore della misura nelle unità corrispondenti
    • attuatori: 0 = OFF e 1 = ON
  • commentar = commenti usati per aggiungere informazioni extra, come errori
  • datum = la data e l'ora in cui è avvenuta la misurazione/commutazione

Le impostazioni per il dispositivo sono memorizzate in Impostazioni.

  • settingId = ID di questa riga e il valore di impostazione
  • deviceID = ID del dispositivo/sensore corrispondente
  • waarde = valore dell'impostazione
  • type = tipo del settin, è massimo o minimo?

Ultimo ma non meno importante, la tabella Dispositivi contiene informazioni sui sensori e sugli attuatori.

  • deviceId = ID del dispositivo in questa tabella
  • naam = nome del dispositivo/componente
  • merk = marchio
  • prijs = prezzo del componente
  • beschrijving = riassunto del componente
  • eenheid = unità per i valori misurati
  • typeDevice = specifica se il componente è un sensore o un attuatore

Passaggio 5: Frontend: configurazione del server Web

Frontend: configurazione del server Web
Frontend: configurazione del server Web

Il Pi richiederà l'installazione del server web Apache per eseguire il server web per questo dispositivo. Questo può essere fatto con il seguente comando:

sudo apt-get install apache2.

Fatto ciò, puoi navigare nella cartella: /var/www/html. Qui dovrai inserire tutto il codice del frontend. Successivamente, è possibile accedere al sito Web navigando all'indirizzo IP.

Passaggio 6: backend

Per eseguire il backend, dovrai eseguire il file app.py, manualmente o creando un servizio per esso sul Pi in modo che si avvii automaticamente.

Come potresti notare, ci sono alcuni file. Ho separato il codice il più possibile per avere una chiara panoramica e organizzazione del codice.

Una breve spiegazione:

app.py: il file principale in cui vengono uniti il database, il codice hardware e il codice backend

config.py: il file di configurazione per databaseRepositories

Repository: per l'accesso al repository di dati

  • aiutante

    • devices_id: classi per aiutare a identificare le informazioni sul dispositivo nel database
    • lcd: per eseguire PCF e LCD
    • Attuatori: classi per far funzionare gli attuatori
    • Sensori: classi per l'esecuzione dei sensori

Passaggio 7: posizionamento della striscia LED

Posizionamento della striscia LED
Posizionamento della striscia LED

Ho tagliato un pezzo della striscia LED e l'ho incollato sulla parte superiore della scatola della serra. La striscia che ho usato potrebbe essere tagliata in più posizioni e ricollegata, in modo da poter posizionare più strisce e collegarle nuovamente in seguito tramite fili, consentendo di illuminare più spazio.

Passaggio 8: posizionamento dei tubi

Posizionamento dei tubi
Posizionamento dei tubi

I tubi potevano essere posizionati in diversi modi, ma nel mio caso li ho attaccati al lato del fondo, tenendoli il più lontano possibile dall'altra elettronica e lasciando semplicemente che l'acqua scorresse nella sporcizia.

Passaggio 9: posizionamento dell'LCD

Posizionamento dell'LCD
Posizionamento dell'LCD

Ho tagliato un intero nel coperchio della scatola di giunzione con una lama di sega, creando un'apertura abbastanza grande da far passare il display, ma abbastanza piccola in modo che il PCB rimanesse dietro di esso. In seguito, è stato fissato al coperchio mediante obliqui.

Il display LCD visualizza gli indirizzi IP del Raspberry Pi, consentendo di sapere quale indirizzo è possibile utilizzare per navigare nel sito.

Passaggio 10: posizionamento dei sensori e collegamento della striscia LED

Posizionamento dei sensori e collegamento della striscia LED
Posizionamento dei sensori e collegamento della striscia LED
Posizionamento dei sensori e collegamento della striscia LED
Posizionamento dei sensori e collegamento della striscia LED

Usando gli schemi di fritzing, ho saldato i collegamenti tra i fili e posizionato i resistori all'interno dei fili, utilizzando tubi termorestringenti per isolarli.

Sono stati praticati dei fori ai lati del coperchio e del fondo della serra per fissare le girelle, attraverso le quali ho tirato i fili per i sensori e la striscia LED.

Ho raggruppato i fili per funzione. La stessa tensione dei fili e dei tubi termoretraibili ha sostenuto i sensori. Ho dovuto usare solo la colla sui fili per il DHT11 poiché questo si estendeva ulteriormente.

Passaggio 11: cablaggio del Pi

Cablaggio del Pi
Cablaggio del Pi
Cablaggio del Pi
Cablaggio del Pi
Cablaggio del Pi
Cablaggio del Pi

Ho praticato dei fori sul lato della scatola di giunzione per consentire ai cavi di passare più tardi.

Successivamente, ho posizionato la breadboard (con il T-cobbler, PCF8574a, MCP3008, resistenza regolabile e TIP50), il relè e il Raspberry Pi sul fondo della scatola di giunzione, che era coperto con nastro biadesivo. L'alimentatore non si adattava alla breadboard, quindi ho dovuto metterlo di lato e utilizzare i cavi dei ponticelli per collegarlo alla breadboard.

Alla fine ho fatto passare i cavi dell'adattatore, del sensore e dell'attuatore attraverso i fori collegati alla breadboard, al Raspberry Pi e ad altri componenti. Il filo della pompa è stato tagliato aperto in modo da poter posizionare le estremità all'interno del relè in modo che potesse essere utilizzato come interruttore.

Passaggio 12: creare un contenitore per l'acqua

Fare un contenitore per l'acqua
Fare un contenitore per l'acqua

Ho realizzato un contenitore per l'acqua da una bottiglia di plastica da 1 litro tagliando la parte superiore con un taglierino e dipingendolo per un aspetto migliore. La pompa dell'acqua è stata poi collocata all'interno. A causa della regola dei vasi comunicanti, l'acqua potrebbe potenzialmente fluire da sola attraverso i tubi, ma tenere il tubo in alto risolve il problema.

Passaggio 13: risultato finale

Risultato finale
Risultato finale
Risultato finale
Risultato finale

Il momento che stavi aspettando. Ora puoi posizionare lo sporco e i semi all'interno della scatola della serra e lasciare che il dispositivo prenda il sopravvento. È possibile monitorare lo stato del dispositivo dal sito Web e impostare i valori ottimali per l'illuminazione e le condizioni del suolo.

Consiglio di annaffiare prima il terreno manualmente, poiché all'inizio un po' di sporco può essere piuttosto secco. Alcune pompe sembrano anche irrigare abbastanza lentamente, ma devi stare molto attento poiché si riempirà più velocemente di quanto ti aspetteresti. Una saturazione superiore all'80% può rendere il terreno molto fradicio. E assicurati che il sensore di umidità del suolo sia abbastanza profondo.

Consigliato: