Sommario:

Irrigazione di piante da interno con NodeMCU, server Blynk locale e Blynk Apk, punto di regolazione regolabile: 3 passaggi
Irrigazione di piante da interno con NodeMCU, server Blynk locale e Blynk Apk, punto di regolazione regolabile: 3 passaggi

Video: Irrigazione di piante da interno con NodeMCU, server Blynk locale e Blynk Apk, punto di regolazione regolabile: 3 passaggi

Video: Irrigazione di piante da interno con NodeMCU, server Blynk locale e Blynk Apk, punto di regolazione regolabile: 3 passaggi
Video: IoT Based Plant Watering System Indoor project using ESP32 Blynk | IoT Projects 2023 2024, Luglio
Anonim
Irrigazione di piante da interno con NodeMCU, server Blynk locale e Apk Blynk, punto di regolazione regolabile
Irrigazione di piante da interno con NodeMCU, server Blynk locale e Apk Blynk, punto di regolazione regolabile

Ho realizzato questo progetto perché le mie piante d'appartamento devono essere sane anche quando sono in vacanza per un lungo periodo di tempo e mi piace l'idea di avere il controllo o almeno monitorare tutte le cose possibili che accadono a casa mia su Internet.

Forniture

NodoMCU ESP-8266

Raspberry Pi 3

Scheda SD (16 Gb consigliati)

Sensore di umidità del suolo capacitivo (o fai da te)

Minipompa 3-6 V (CC)

2N2222 o transistor NPN equivalente

1x diodo 1N4148

1x resistenza da 1K 0,25W

Breadboard o scheda di prototipazione

Cavi di salto

Passaggio 1: prepara il server Blynk locale

Prepara il tuo server Blynk locale
Prepara il tuo server Blynk locale

Il cuore del software di questo progetto è la piattaforma Blynk IOT. Offrono hosting gratuito per piccoli progetti con la possibilità di acquistare crediti extra se hai intenzione di estendere le tue idee. La parte buona di questa piattaforma consiste nella possibilità di installare localmente il proprio server basato su Java su una varietà di piattaforme tra cui Windows o Raspberry Pi3, che userò in questo tutorial.

Prima di tutto, devi installare l'ultima build Raspbian disponibile, Buster è la versione che sto usando al momento. Per istruzioni, dettagli e impostazioni, un buon tutorial è questo.

Ovviamente è obbligatorio connettere il tuo RPi3 al tuo router tramite LAN o WiFi. Anche se non hai una tastiera o un monitor da connettere al tuo RPi3, puoi collegarlo al tuo WiFi con l'aiuto di questo tutorial.

Ora, l'installazione del server Blynk sul tuo Raspbian appena installato può essere eseguita molto facilmente seguendo questo tutorial. Devo dirti che devi sostituire alcune delle istruzioni da esso perché da quando è stato scritto quel tutorial, il server Blynk ha ricevuto alcuni aggiornamenti e devi aggiornare di conseguenza. Quindi, quando ti chiedono di scaricare il server, devi sostituire il comando wget "https://github.com/blynkkk/blynk-server/releases/download/v0.23.0/server-0.23.0.jar" con wget "https://github.com/blynkkk/blynk-server/releases/download/v0.41.8/server-0.41.8-java8.jar"

Poiché il server Blynk non si avvierà automaticamente dopo il riavvio di RPi, è necessario aggiungere il file Crontab come indicato aggiungendo alla fine di esso la seguente riga:

@reboot java -jar /home/pi/server-0.41.8-java8.jar -dataFolder /home/pi/Blynk &

L'ultima menzione per quanto riguarda l'installazione del server Blynk è che la pagina a cui accederai per scopi di amministrazione sarà https://IP_BLINK_SERVER:9443/admin e dovrai prestare attenzione al numero di porta, 9443, perché in quel tutorial, in quel tempo, la porta utilizzata era la 7443

Affinché il server sia accessibile da Internet, dovrai inoltrare la porta 9443 all'indirizzo IP del server Blynk interno e inoltre dovrai utilizzare un servizio DDNS nel caso in cui l'indirizzo IP pubblico cambi durante il riavvio del router. Se sei il proprietario di router ASUS o Mikrotik (sto dando questi esempi perché ho entrambi i marchi e sto usando con successo il loro servizio DDNS), o qualsiasi altro marchio con il proprio servizio DDNS, le cose saranno molto più facili per te.

Passaggio 2: configurazione hardware

Configurazione hardware
Configurazione hardware
Configurazione hardware
Configurazione hardware
Configurazione hardware
Configurazione hardware

Per quanto riguarda l'hardware, il modulo di interfaccia tra sensore, pompa e server Blynk, ho scelto NodeMCU ESP8266. Questo modulo è dotato di chipset ESP8266 per WiFi (che è molto ben documentato e incluso in molti progetti IoT). Se vuoi sperimentare ulteriormente, puoi scegliere la versione più semplice, ESP8266 ESP-01, purché questo progetto necessiti solo di 2 pin per funzionare: un ingresso analogico per leggere i valori dal sensore di umidità del suolo e un'uscita per avviare la pompa per irrigazione.

Ma in questo progetto useremo NodeMCU perché è molto più facile caricare lo schizzo (tramite cavo USB) ed è compatibile con la breadboard, rendendo possibili sviluppi futuri (come l'aggiunta di un LCD ad esempio per leggere l'umidità effettiva e il set point o l'aggiunta di un relè per fornire luce crescente per le vostre piante).

Come affermato in precedenza, utilizzeremo un sensore di umidità del suolo, di tipo capacitivo. Sul mercato puoi trovare anche il tipo resistivo, con la stessa gamma di valori di uscita analogica, ma è dimostrato da molti fai-da-te che è instabile e non misura il reale livello di umidità nel terreno ma la densità dei sali disciolti, ioni nel tuo terreno.

Per la parte della pompa, ho usato un transistor NPN per azionare il motore. Le connessioni che puoi vedere nel file fritzing allegato e gli schemi nell'immagine del titolo. Si noti che sarà necessaria una seconda alimentazione, compresa tra 7 e 9 V, con una corrente sufficiente per azionare la pompa. Nel mio caso, la corrente misurata che scorreva attraverso la pompa era di 484 mA e ho usato un alimentatore da 9 V. Il diodo del volano viene utilizzato per rimuovere la corrente inversa che scorre attraverso la bobina del motore quando questa sta per fermarsi, per evitare danni al transistor.

Passaggio 3: codifica e impostazione dell'applicazione Blynk sul tuo cellulare

In questo passaggio devi caricare lo sketch allegato in NodeMCU.

Prima di tutto, devi aggiungere la scheda ESP8266 al tuo IDE Arduino. Questo può essere fatto molto facilmente, seguendo questo tutorial. Quando collegherai NodeMCU al tuo computer, usando un cavo USB devi controllare la porta COM e selezionarla di conseguenza da Arduino IDE.

In secondo luogo, devi aggiungere la libreria Blynk nell'IDE, seguendo questo tutorial.

E infine, devi installare sul tuo cellulare l'applicazione Blynk di Google Play.

Ora apri l'applicazione Blynk sul tuo cellulare e configura il tuo account. Seleziona il server personalizzato nella schermata principale e inserisci il nome DDNS impostato nel passaggio 1 di questo tutorial. Lascia invariata la porta predefinita (hai già inoltrato questa porta nel router in precedenza). Nel campo del nome utente inserisci il tuo indirizzo email e scegli una password. L'account verrà creato e ora aggiungi un nuovo progetto, chiamalo come desideri. Scegli NodeMCU come scheda che utilizzerai e Connection - WiFi. Riceverai un token di autenticazione nella tua email, questo codice verrà inserito nello sketch allegato, ho chiarito dove devi scriverlo, a lato dei commenti.

Successivamente, nell'applicazione Blynk devi aggiungere i seguenti widget:

Widget LCD: leggerà il pin V9 (pin virtuale V9) e passerà all'avanzato; questo mostrerà la potenza del WiFi e l'indirizzo IP

Widget Indicatore: leggerà il pin virtuale V2, con un intervallo da 0 a 100, questa sarà l'umidità effettiva nel suolo

Widget di input numerico: collegato al pin virtuale V1, intervallo da 0 a 100, questo invierà il setpoint per l'umidità a un numero intero utilizzato nello schizzo

Super Chart (opzionale) - leggerà il flusso di dati dal pin virtuale V2 per creare un grafico con l'umidità della tua pianta.

Infine, sostituisci nello schizzo il tuo token di autenticazione ricevuto nella tua e-mail, sostituisci il nome WiFi e la password per WiFi e carica il tuo schizzo su NodeMCU.

Spero che tutto andrà per il meglio e senza problemi poiché le tue piante devono essere sane!

Buona fortuna !

Consigliato: