Stazione Meteo Solare Wifi (v2.0)

 

AGGIORNAMENTO 03-11-2018

Nell’articolo precedente ho descritto la costruzione di una Stazione meteo basata su Arduino utilizzando materiale di recupero o comunque presente nel mio laboratorio. L’appetito vien mangiando e mi sono posto una sfida….ne realizzo una da zero super economica….Wireless!
Apro il sito di e-commerce con gli occhi a mandorla e prendo la mia carta di credito ricaricabile…

Sulla carta c’erano ben 4,7 Euro!
E che ci fai? Direte voi….ma su questi siti sono un capitale! 🙂
Iniziamo con la lista della spesa.

  • Scheda NodeMcu (cugino di Arduino, si programma con lo stesso IDE ma ha Wireless integrato, 80Mhz di controllore e tanta tanta memoria in più)
  • Pannello solare da 6volt 100mA
  • Sensore di Temperatura/Umidità/Pressione BME280
  • Regolatore di carica per celle LiPo

Avanza ancora qualche centesimo….compro anche un secondo pannello solare e un secondo regolatore di carica. Totale spesa 4,6 Euro.

In città compro una normale cassetta stagna da elettricista e procuro una batteria a LiPo proveniente da un notebook.

Dopo 20 giorni arriva tutto….iniziamo a saldare!

Parto con una prima configurazione : Controllore Wifi + Scheda di regolazione di carica (D1 Battery shield) e un sensore di Temperatuta Umidità DHT11

Dovrebbe essere lavoro di un oretta…ma non e’ cosi!

La scheda che gestisce la tensione nasce per la famiglia Wemos di microcontrollori e oltre a gestire la carica di una sola cella LiPo (3,7Volt) ha incorporato un circuito di StepUp che porta la tensione a 5V che io collego direttamente alla Vin della scheda NodeMcu.
Il regolatore di carica non nasce per lavorare con un pannello solare…ma per essere alimentato/caricato da una sorgente a 5v proveniente da una presa USB. Il pannello solare sappiamo che fornisce una tensione variabile in base alla quantità di luce (sole) che lo colpisce….e questo al regolatore non andava giù!

Nello specifico se collegavamo il tutto con il sole o con la notte andava tutto bene…ma alla prossima transizione notte/giorno andava tutto in palla. Si creava un punto in cui come tensione di uscita c’erano solo 3 volt….troppo bassi per l’ingresso Vin di NodeMcu.

In fase di sperimentazione (e senza aver risolto il problema alimentazione) apporto le prime modifiche. Il sensore viene sostituito con un più performante BME280 che sfrutta il protocollo I2C per inviare oltre alla Temperatura e Umidità…anche la Pressione atmosferica.

Sensore BME280

Viene aggiunto anche un punto di controllo della tensione della batteria interna…finezze!

Ecco un primo schema

Schema iniziale

 

Troppi componenti e troppa poca corrente per alimentare il tutto….dobbiamo risparmiare!

La batteria fornisce circa 2000mA (non 110 come da immagine), NodeMcu ne consuma 100…il pannellino solare…ne fornisce 100 di giorno a sole pieno. C’e’ da spegnere qualcosa e utilizzare qualche trucchetto.

Iniziamo a spegnere! Avere tutti i dati inviati online ogni secondo non ha senso…diciamo che possiamo tranquillamente allungare il tempo tra una lettura e l’altra anche a 10 minuti.
A noi cambia poco….la durata della batteria di allunga in maniera esponenziale.
Tra una lettura e l’altra…spegniamo tutto. Mandiamo il microcontrollore in DeepSleep.
Tramite un comando (e un ponticello che connette il pin D0 al pin Reset) riusciamo a spegnere tutto e portare l’assorbimento a meno di 1mA.

Ponticello per disabilitare il DeepSleep

Avremmo comunque il sensore sempre sotto tensione che assorbe preziosa energia.
Spostiamo (come da schema) il Vcc del BME280 su un Pin gestibile da codice e lo accendiamo solo quando serve.

Dopo ogni accensione ho aggiunto qualche secondo di attesa (delay) prima della lettura per far riscaldare il sensore e rendere le letture più veritiere.

Non contento aggiungo la lettura della tensione batteria. Per far ciò utilizzo il pin A0 (analogico) per leggere la tensione.
Il problema sta nel fatto che l’ingresso analogico restituisce un valore che va da 0 a 1023 leggendo rispettivamente da 0 a 1Volt.
Sul circuito stesso e’ presente un partitore resistivo formato da 2 resistenze da 220k e 100k che permettono di leggere da 0 a 3.3 volt…ma una batteria al Litio arriva al massimo della sua carica a 4.2Volt!

Carta, penna e calcolatrice alla mano….aggiungo una resistenza da altri 220K e alzo la lettura fino a 5Volt (più precisamente 5.1).

Check up lettura voltaggio batteria

Iniziamo ad assemblare

Iniziamo a programmare…cercando di risolvere con qualche altro trucchetto da codice il problema dell’alimentazione.

Niente…al passaggio tra notte e giorno (e viceversa) si blocca tutto.

Mi viene in aiuto un altro gestore di carica della batteria il TP4056 al quale lascerò il pensiero della carica della batteria e utilizzerò il secondo gestore di carica solo come StepUp per portare la tensione a 5V.

Cambia lo schema

Modifica schema principale

Sembra abbiamo risolto il tutto in questo modo non ci sono più sbalzi di tensione e il caro NodeMcu puo’ lavorare tranquillamente.

Ecco il risultato finale

Inseriti nel codice i dati della mia rete Wireless posso inviare i dati al portale Thingspeak

Dati su Thinkspeak

 

Di seguito il codice commentato per chi volesse cimentarsi nella replica…..mi raccomando le librerie!

Alla prossima!

Fermi tutti 🙂

Ho testato il tutto per qualche giorno e mi sono accorto che il modulo di ricarica della batteria…direttamente connesso al pannellino solare non funziona bene!
Con il sole presente alle mie latitudini il pannello solare arriva a sviluppare anche 7 volt a vuoto. Superati i 6v il modulo di ricarica va in protezione e stacca tutto.

Si perde così tantissimo sole prezioso e la stazione va a morire.

Ho risolto il tutto aggiungendo 3 diodi 1N4007 in serie sul positivo del pannello solare. La tensione totale si abbassa di circa 1,8volt e il tutto continua a funzionare anche con il sole a picco sulla stazione.

Buon lavoro!

9 thoughts on “Stazione Meteo Solare Wifi (v2.0)

  1. Grazie Guido, la lista e’ nel testo. Ho usato una NodeMcu come microcontrollore, una Battery shield per Wemos e una schedina Tp4056 come regolatore di carica.

  2. Ciao, ottimo lavoro!!. Io ho fatto una cosa simile per un sensore remoto di una stazione meteo ( si trova a circa 9 km di distanza) però con un arduino mini pro , sensore hdc1010 e come tx un modulo HC12 seriale che funziona in UHF . Come ho fatto io , potresti “modulare” i tempi di stby in funzione dello stato di carica (tensione ) delle batterie. In caso di mancanza illuminazione sufficiente, quanta autonomia ha il sistema.?

  3. Ciao Viki,
    Il sistema sta funzionando in assenza di illuminazione da 4gg partendo da una LiPo con 3,8v di carica.
    In questi giorni devo affinare la ricarica …

  4. arrivato qua da Hackaday di oggi.
    Che dire? bellissimo lavoro!
    grazie per averlo condiviso!

  5. Grazie mille, in questi giorni sto monitorando il funzionamento. Sembra andare bene. Forse più in la aggiungo un secondo pannellino per ricaricare il tutto anche con giornate annuvolate.
    Alla prossima

  6. Complimenti Danilo,

    progetto molto interessante.

    P.S. Fa piacere che HaD sia seguito anche da altri italiani 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *