Sommario:
- Passaggio 1: cosa ti servirà
- Passaggio 2: prototipo di breadboard
- Passaggio 3: installazione del software
- Passaggio 4: preparare la scheda di ricarica solare
- Passaggio 5: costruire il circuito del microcontrollore
- Passaggio 6: installare i pressacavi
- Passaggio 7: assemblaggio completo del circuito
- Passaggio 8: preparare il pannello solare
- Passaggio 9: provalo
- Passaggio 10: usalo all'esterno
Video: Misuratore di umidità del suolo solare con ESP8266: 10 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
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à
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
È 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.
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.
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
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.
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 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
Saldare la scheda del microcontrollore e l'interruttore di alimentazione su una scheda perma-proto.
Collega l'uscita di potenza del caricabatterie solare all'ingresso del tuo interruttore, che dovrebbe essere valutato per almeno 1 amp.
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
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.
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.
Passaggio 7: 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 -).
Inserire il sensore del suolo attraverso l'altro premistoppa e collegarlo al perma-proto come da schema elettrico.
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.
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.
Serrare i pressacavi per realizzare una tenuta stagna intorno ai rispettivi cavi.
Passaggio 8: 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
Collega la batteria e accendi il circuito premendo l'interruttore di alimentazione.
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.
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
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:
Automatizzare una serra con LoRa! (Parte 1) -- Sensori (temperatura, umidità, umidità del suolo): 5 passaggi
Automatizzare una serra con LoRa! (Parte 1) || Sensori (temperatura, umidità, umidità del suolo): in questo progetto ti mostrerò come ho automatizzato una serra. Ciò significa che ti mostrerò come ho costruito la serra e come ho collegato l'elettronica di alimentazione e automazione. Inoltre ti mostrerò come programmare una scheda Arduino che utilizza L
Guida completa all'uso del sensore di umidità del suolo con esempio pratico: 7 passaggi
Guida completa all'uso del sensore di umidità del suolo con esempio pratico: puoi leggere questo e altri fantastici tutorial sul sito Web ufficiale di ElectroPeakPanoramicaIn questo tutorial imparerai come utilizzare un sensore di umidità del suolo. Vengono forniti anche esempi pratici per aiutarti a padroneggiare il codice. Cosa imparerai: come il suolo
Monitor dell'umidità del suolo fai-da-te con Arduino e display Nokia 5110: 6 passaggi (con immagini)
Monitor dell'umidità del suolo fai-da-te con Arduino e un display Nokia 5110: in questo Instructable vedremo come costruire un monitor dell'umidità del suolo molto utile con un grande display LCD Nokia 5110 utilizzando Arduino. Misura facilmente i livelli di umidità del terreno della tua pianta dal tuo Arduino e costruisci dispositivi interessanti
Piano di test del sensore di umidità del suolo: 6 passaggi (con immagini)
Piano di test del sensore di umidità del suolo: Sfida: progettare ed eseguire un piano che accenderà un LED ROSSO quando il terreno è bagnato e un LED VERDE quando il terreno è asciutto. Ciò comporterà l'uso di un sensore di umidità del suolo. Obiettivo: l'obiettivo di questo istruibile è vedere se ha piovuto e se la pianta
Misurare l'umidità del suolo con le ampiezze del suono: 6 passaggi (con immagini)
Misura l'umidità del suolo con le ampiezze del suono: in questo tutorial spiegheremo come realizzare un dispositivo che misuri l'umidità del suolo con le ampiezze del suono