Sommario:

Misuratore di umidità del suolo solare con ESP8266: 10 passaggi (con immagini)
Misuratore di umidità del suolo solare con ESP8266: 10 passaggi (con immagini)

Video: Misuratore di umidità del suolo solare con ESP8266: 10 passaggi (con immagini)

Video: Misuratore di umidità del suolo solare con ESP8266: 10 passaggi (con immagini)
Video: Relè NodeMCU 4 CH. v.2 | Usa subito Blynk | Nessuna codifica richiesta | JAKK fai da te 2024, Settembre
Anonim

In questo Instructable, stiamo realizzando un monitor dell'umidità del suolo a energia solare. Utilizza un microcontrollore wifi ESP8266 con codice a bassa potenza e tutto è impermeabile, quindi può essere lasciato all'esterno. Puoi seguire esattamente questa ricetta, o trarre da essa le tecniche utili per i tuoi progetti.

Se non conosci la programmazione di microcontrollori, dai un'occhiata alla mia classe Arduino e alla classe Internet of Things per conoscere le basi del cablaggio, della codifica e della connessione a Internet.

Questo progetto fa parte della mia Solar Class gratuita, dove puoi imparare più modi per sfruttare l'energia del sole attraverso incisioni e pannelli solari.

Per stare al passo con quello a cui sto lavorando, seguimi su YouTube, Instagram, Twitter, Pinterest e iscriviti alla mia newsletter.

Passaggio 1: cosa ti servirà

Cosa ti servirà
Cosa ti servirà

Avrai bisogno di una scheda di ricarica della batteria solare e di un breakout ESP8266 come NodeMCU ESP8266 o Huzzah, oltre a un sensore del suolo, una batteria, un interruttore di alimentazione, un cavo e un recinto per inserire il circuito all'interno.

Ecco i componenti e i materiali utilizzati per il monitor dell'umidità del suolo:

  • Microcontrollore NodeMCU ESP8266 (o simile, Vin deve tollerare fino a 6V)
  • Scheda di ricarica solare Adafruit con termistore opzionale e resistore da 2,2K ohm
  • Batteria agli ioni di litio da 2200 mAh
  • Scheda Perma-proto
  • Sensore di umidità/temperatura del suolo
  • 2 pressacavi
  • Custodia impermeabile
  • Coppia di cavi di alimentazione CC impermeabile
  • Guaina termorestringente
  • Pannello solare da 3,5 W
  • Interruttore di alimentazione a pulsante
  • Nastro biadesivo in schiuma

Ecco gli strumenti di cui avrai bisogno:

  • Saldatore e saldatore
  • Strumento per aiutare le mani
  • Spelafili
  • Snip a filo
  • Pinzette (opzionale)
  • Pistola termica o accendino
  • Multimetro (opzionale ma utile per la risoluzione dei problemi)
  • Cavo USB A-microB
  • Forbici
  • trapano a gradini

Avrai bisogno di account gratuiti sui siti di dati cloud io.adafruit.com e IFTTT.

In qualità di Associato Amazon, guadagno dagli acquisti idonei che effettui utilizzando i miei link di affiliazione.

Passaggio 2: prototipo di breadboard

Prototipo tagliere
Prototipo tagliere

È importante creare un prototipo di breadboard senza saldatura per progetti come questo, così puoi assicurarti che il sensore e il codice funzionino prima di effettuare qualsiasi connessione permanente.

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

In questo caso, il sensore del suolo ha fili intrecciati a cui è stato necessario collegare temporaneamente intestazioni solide alle estremità dei fili del sensore usando saldature, aiutando le mani e alcuni tubi termorestringenti.

Immagine
Immagine

Segui lo schema del circuito per collegare i pin di alimentazione, terra, orologio e dati del sensore (i dati ottengono anche un resistore di pull-up da 10K fornito con il sensore del suolo).

  • Cavo verde del sensore a GND
  • Cavo rosso del sensore a 3,3 V
  • Cavo giallo del sensore al pin D5 di NodeMCU (GPIO 14)
  • Cavo blu del sensore al pin D6 di NodeMCU (GPIO 12)
  • Resistenza di pull-up da 10K tra pin dati blu e 3,3V

Puoi tradurlo nel tuo microcontrollore preferito. Se stai usando un Arduino Uno o simile, la tua scheda è già supportata dal software Arduino. Se stai utilizzando ESP8266, consulta la mia classe Internet of Things per assistenza passo passo per la configurazione di ESP8266 in Arduino (aggiungendo URL supplementari al campo URL di Gestione schede aggiuntive nelle preferenze di Arduino, quindi cercando e selezione di nuove bacheche dal gestore delle bacheche). Tendo a utilizzare il tipo di scheda Adafruit ESP8266 Huzzah per programmare la scheda NodeMCU ESP8266, ma puoi anche installare e utilizzare il supporto della scheda ESP8266 generica. Avrai anche bisogno del driver del chip di comunicazione USB SiLabs (disponibile per Mac/Windows/Linux).

Per far funzionare il sensore con la mia scheda compatibile con Arduino, ho scaricato la libreria Arduino SHT1x dalla pagina github di Practical Arduino, quindi decompresso il file e spostato la cartella della libreria nella mia cartella Arduino/librerie, quindi l'ho rinominata SHT1x. Apri lo schizzo di esempio ReadSHT1xValues e cambia i numeri dei pin in 12 (dataPin) e 14 (clockPin), oppure copia lo schizzo modificato qui:

#includere

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // istanzia l'oggetto SHT1x void setup() { Serial.begin(38400); // Apre la connessione seriale per riportare i valori all'host Serial.println("Avvio"); } void loop() { float temp_c; float temp_f; umidità galleggiante; temp_c = sht1x.readTemperatureC(); // Legge i valori dal sensore temp_f = sht1x.readTemperatureF(); umidità = sht1x.readHumidity(); Serial.print("Temperatura: "); // Stampa i valori sulla porta seriale Serial.print(temp_c, DEC); Serial.print("C/"); Serial.print(temp_f, DEC); Serial.print("F. Umidità: "); Serial.print(umidità); Serial.println("%"); ritardo (2000); }

Carica questo codice sulla tua scheda e apri il monitor seriale per vedere il flusso di dati del sensore.

Se il tuo codice non viene compilato e si lamenta del fatto che SHT1x.h non è stato trovato, significa che la libreria di sensori richiesta non è stata installata correttamente. Controlla la tua cartella Arduino/librerie per una chiamata SHT1x e, se è da qualche altra parte, come la cartella dei download, spostala nella cartella delle librerie Arduino e rinominala se necessario.

Se il codice viene compilato ma non viene caricato sulla scheda, ricontrolla le impostazioni della scheda, assicurati che la scheda sia collegata e seleziona la porta corretta dal menu Strumenti.

Se il codice viene caricato ma l'input del monitor seriale non è riconoscibile, ricontrolla che la velocità di trasmissione corrisponda a quella specificata nel tuo schizzo (38400 in questo caso).

Se l'ingresso del monitor seriale non sembra corretto, ricontrolla il cablaggio rispetto allo schema del circuito. La tua resistenza di pull-up da 10K è in posizione tra il pin dati e 3,3 V? I dati e l'orologio sono collegati ai pin corretti? L'alimentazione e la messa a terra sono collegate come dovrebbero essere in tutto il circuito? Non procedere finché questo semplice schizzo non funziona!

Il passaggio successivo è specifico per ESP8266 e configura la parte di segnalazione del sensore wireless opzionale del progetto di esempio. Se stai utilizzando un microcontrollore compatibile con Arduino standard (non wireless), continua a sviluppare il tuo schizzo Arduino finale e passa a Preparare la scheda di ricarica solare.

Passaggio 3: installazione del software

Configurazione del software
Configurazione del software

Per compilare il codice per questo progetto con ESP8266, dovrai installare alcune altre librerie Arduino (disponibili tramite il gestore della libreria):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Scarica il codice allegato a questo passaggio, quindi decomprimi il file e apri Solar_Powered_Soil_Moisture_Monitor_Tutorial nel tuo software Arduino.

#includere

#include #include #include #include // Specifica le connessioni dati e clock e crea un'istanza dell'oggetto SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // imposta il feed AdafruitIO_Feed *humidity = io.feed("humidity"); AdafruitIO_Feed *temperature = io.feed("temperature"); const int sleepTime = 15; // 15 minuti

configurazione nulla()

{ Serial.begin(115200); // Apre la connessione seriale per riportare i valori all'host Serial.println("Avvio"); // connettersi a io.adafruit.com Serial.print("Connessione a Adafruit IO"); io.connect(); // attende una connessione while(io.status() < AIO_CONNECTED) { Serial.print("."); ritardo (500); } // siamo connessi Serial.println(); Serial.println(io.statusText()); }

ciclo vuoto()

{ io.run(); // io.run(); mantiene il client connesso ed è necessario per tutti gli schizzi. float temp_c; float temp_f; umidità galleggiante; temp_c = sht1x.readTemperatureC(); // Legge i valori dal sensore temp_f = sht1x.readTemperatureF(); umidità = sht1x.readHumidity(); Serial.print("Temperatura: "); // Stampa i valori sulla porta seriale Serial.print(temp_c, DEC); Serial.print("C/"); Serial.print(temp_f, DEC); Serial.print("F. Umidità: "); Serial.print(umidità); Serial.println("%"); umidità->risparmia (umidità); temperatura->salva(temp_f); Serial.println("ESP8266 sta dormendo…"); ESP.deepSleep(SleepTime * 1000000 * 60); // Dormire }

Questo codice è un mashup del codice del sensore di prima in questo tutorial e un esempio di base del servizio dati cloud Adafruit IO. Il programma entra in modalità a basso consumo e dorme la maggior parte del tempo, ma si sveglia ogni 15 minuti per leggere la temperatura e l'umidità del suolo e riporta i suoi dati ad Adafruit IO. Passare alla scheda config.h e inserire il nome utente e la chiave Adafruit IO, nonché il nome e la password della rete Wi-Fi locale, quindi caricare il codice sul microcontrollore ESP8266.

Immagine
Immagine

Dovrai fare un po' di preparazione su io.adafruit.com. Dopo aver creato i feed per la temperatura e l'umidità, puoi creare un dashboard per il tuo monitor con un grafico dei valori del sensore e dei dati di entrambi i feed in entrata. Se hai bisogno di un aggiornamento su come iniziare con Adafruit IO, dai un'occhiata a questa lezione nella mia classe Internet of Things.

Passaggio 4: preparare la scheda di ricarica solare

Preparare la scheda di ricarica solare
Preparare la scheda di ricarica solare

Preparare la scheda di ricarica solare saldando il suo condensatore e alcuni fili ai pad di uscita del carico. Sto personalizzando il mio per caricare a una velocità maggiore con un resistore aggiuntivo opzionale (2,2K saldato su PROG) e rendendo più sicuro lasciare incustodito sostituendo il resistore a montaggio superficiale con un termistore da 10K collegato alla batteria stessa. Ciò limiterà la carica per garantire un intervallo di temperatura sicuro. Ho trattato queste modifiche in modo più dettagliato nel mio progetto Solar USB Charger.

Passaggio 5: costruire il circuito del microcontrollore

Costruisci il circuito del microcontrollore
Costruisci il circuito del microcontrollore
Immagine
Immagine
Immagine
Immagine

Saldare la scheda del microcontrollore e l'interruttore di alimentazione su una scheda perma-proto.

Immagine
Immagine

Collega l'uscita di potenza del caricabatterie solare all'ingresso del tuo interruttore, che dovrebbe essere valutato per almeno 1 amp.

Immagine
Immagine

Crea e salda i collegamenti dei cavi della breadboard descritti nello schema elettrico sopra (o secondo le specifiche della tua versione personale), incluso il resistore di pull-up da 10K sulla linea dati del sensore.

I pin di carico del caricatore solare forniranno l'energia della batteria da 3,7 V quando non esiste l'energia solare, ma saranno alimentati direttamente dal pannello solare se è collegato e esposto al sole. Pertanto il microcontrollore deve essere in grado di tollerare una varietà di tensioni, a partire da 3,7 V e fino a 6 V CC. Per coloro che richiedono 5V, è possibile utilizzare un PowerBoost (500 o 1000, a seconda della corrente richiesta) per modulare la tensione di carico a 5V (come mostrato nel progetto Solar USB Charger). Ecco alcune schede comuni e i loro intervalli di tensione di ingresso:

  • NodeMCU ESP8266 (usato qui): 5V USB o 3,7V-10V Vin
  • Arduino Uno: 5V USB o 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB o 3.4-6V VBat

Per ottenere la massima durata possibile della batteria, dovresti dedicare del tempo a considerare e ottimizzare la corrente totale assorbita. L'ESP8266 ha una funzione di sospensione profonda che abbiamo utilizzato nello sketch Arduino per ridurre drasticamente il suo consumo energetico. Si sveglia per leggere il sensore e assorbe più corrente mentre si connette alla rete per riportare il valore del sensore, quindi torna a dormire per un periodo di tempo specificato. Se il tuo microcontrollore assorbe molta energia e non può essere facilmente messo in sospensione, considera la possibilità di trasferire il tuo progetto su una scheda compatibile che assorbe meno energia. Lascia una domanda nei commenti qui sotto se hai bisogno di aiuto per identificare quale scheda potrebbe essere giusta per il tuo progetto.

Passaggio 6: installare i pressacavi

Immagine
Immagine

Per creare punti di ingresso resistenti alle intemperie per il cavo del pannello solare e il cavo del sensore, installeremo due pressacavi sul lato dell'involucro resistente alle intemperie.

Immagine
Immagine
Immagine
Immagine

Metti alla prova i tuoi componenti per identificare il posizionamento ideale, quindi segna e pratica i fori in un involucro impermeabile utilizzando un trapano a gradini. Installare i due pressacavi.

Immagine
Immagine

Passaggio 7: assemblaggio completo del circuito

Assemblaggio completo del circuito
Assemblaggio completo del circuito

Inserire il lato porta di un cavo di alimentazione impermeabile in uno e saldarlo all'ingresso CC del caricatore solare (rosso con + e nero con -).

Immagine
Immagine

Inserire il sensore del suolo attraverso l'altro premistoppa e collegarlo al perma-proto come da schema elettrico.

Immagine
Immagine

Fissare la sonda del termistore alla batteria. Ciò limiterà la ricarica a un intervallo di temperatura sicuro mentre il progetto viene lasciato incustodito all'esterno.

Immagine
Immagine

La ricarica a temperature troppo elevate o troppo fredde potrebbe danneggiare la batteria o provocare un incendio. L'esposizione a temperature estreme può causare danni e ridurre la durata della batteria, quindi portala all'interno se è sotto lo zero o sopra i 45 ℃/113F.

Immagine
Immagine

Serrare i pressacavi per realizzare una tenuta stagna intorno ai rispettivi cavi.

Passaggio 8: preparare il pannello solare

Preparare il pannello solare
Preparare il pannello solare

Segui il mio Instructable per unire il cavo per il tuo pannello solare con il lato della spina del set di cavi di alimentazione CC impermeabile.

Passaggio 9: provalo

Provalo
Provalo

Collega la batteria e accendi il circuito premendo l'interruttore di alimentazione.

Immagine
Immagine

Provalo e assicurati che stia segnalando a Internet prima di chiudere il recinto e installare il sensore nel tuo giardino di erbe, preziosa pianta in vaso o altro terreno nel raggio del segnale della tua rete wifi.

Immagine
Immagine

Una volta che i dati del sensore sono stati registrati online, è facile impostare una ricetta per gli avvisi di posta elettronica o di testo sul sito del gateway API If This Then That. Ho configurato il mio per inviarmi un'e-mail se il livello di umidità del suolo scende al di sotto di 50.

Per testarlo senza aspettare che la mia pianta si asciughi, ho inserito manualmente un punto dati nel mio feed di umidità su Adafruit IO che è sceso al di sotto della soglia. Pochi istanti dopo, arriva l'e-mail! Se i livelli del terreno scendono al di sotto del livello specificato, riceverò un'e-mail ogni volta che il feed viene aggiornato finché non innaffio il terreno. Per la mia sanità mentale, ho aggiornato il mio codice per campionare il terreno molto meno spesso di ogni 15 minuti.

Passaggio 10: usalo all'esterno

Usalo fuori!
Usalo fuori!
Usalo fuori!
Usalo fuori!

Questo è un progetto divertente da personalizzare in base alle esigenze di idratazione del tuo impianto ed è facile sostituire o aggiungere sensori o integrare le funzionalità di energia solare negli altri tuoi progetti Arduino.

Grazie per aver seguito! Mi piacerebbe sentire cosa ne pensi; si prega di postare nei commenti. Questo progetto fa parte della mia Solar Class gratuita, dove puoi trovare facili progetti per il cortile e altre lezioni su come lavorare con i pannelli solari. Dai un'occhiata e iscriviti!

Se ti piace questo progetto, potresti essere interessato ad alcuni dei miei altri:

  • Classe Internet of Things gratuita
  • Contatore abbonati YouTube con ESP8266
  • Display del tracker delle statistiche sociali con ESP8266
  • Display meteo WiFi con ESP8266
  • San Valentino su Internet

Per stare al passo con ciò a cui sto lavorando, seguimi su YouTube, Instagram, Twitter, Pinterest e Snapchat.

Consigliato: