Stazione meteo comunitaria..con 20 euro

Forse il titolo è un pò esagerato, ma rende l’idea.

Questa settimana sono stato in Campeggio (sono camperista da decenni) e puntualmente è nata la discussione con mia moglie: fa caldo, è umido, ma non vedi che è Tramontana? ma non senti l’umidità dello Scirocco e cosi via..

Anche in vacanza i neuroni tecnologici non si spengono. Vedo nella borsa di Mary Poppins ed oltre il mio fido Mac, trovo gli ultimi esperimenti fatti con Arduino e le varie componentistiche. Purtroppo mi manca il sensore di umidità ma trovo quello di temperatura (3€ compresa spedizione) . Non ho però alcun Arduino a disposizione (altrimenti avrei replicato questo post ).

Mi sono ricordato che l’ESP8266, la schedina WiFi che ho comprato su Ebay a 7€ compresa spedizione, può funzionare anche senza Arduino Uno. Mhmhh serve però anche una Breadboard (5euro) e un adattatore USB FDTI (cioè che dal cavetto USB spilla poi i singoli pin per alimentazione, TX, RX ect) che avevo preso (indovinate da dove? 4€) e che trasforma anche il 5V tipico dell’alimentazione USB in 3.3V (che invece è necessario per la scheda ESP8266).

Ed ora? spippolando sul web ho capito che si può programmare la ESP8266 con il software Arduino IDE (in pratica quello che server per programmare l’Arduino) inserendo la libreria ESP8266 e inserendo anche il tool Python esptool (cercate sul web come inserire esptool per Mac: va modificato preferences.txt di Arduino per dare il path corretto del tool, per Windows non ci sono problemi). Per fare l’upload va selezionato “Generic ESP8266 Module” e “Bus Pirate USB” per Mac o “esptool” per Windows:

Schermata 2015-07-29 alle 17.22.30

 

La porta si chiamerà a seconda del modulo USB FDTI che avrete preso. Per fare l’upload, va messo il pin GPIo-0 a massa (cioè lo collegate a GND dell’USB FDTI) e poi attaccate il cavetto USB al Mac/PC e cliccate upload su Arduino IDE. Vanno ovviamente prima collegati altri PIN.

In particolare: VCC e CH_PD vanno collegati insieme all’uscita 3.3V dell’FDTI, il GND al GND dell’FDTI, il RXD dell’ESP8266 al TX del FDTI e quindi il TXD dell’ESP8266 al RX dell’FDTI. (quindi sono esclusi sono il Pins RST e GIPo2).

Il sorgente del codice da uploadare è WiFi_Station.ino

(ricordatevi di scaricare ed inserire la libreria del sensore di temperatura. volendo la stessa cosa può essere fatta con il sensore DHT11 che gestisce anche l’umidità e quindi avere doppia rilevazione…cosi non avrei discusso con mia moglie 🙂 )

esp8266_pinout

Fatto l’upload, scolleghiamo il cavetto USB. ora passiamo ai collegamenti. Mi perdonino i maestri dell’elettronica e di Arduino. Correggete la grafica e lo schema come meglio credete. Cosi però mi funziona 🙂

Le resistenze sono una da 4.7kohm (quella collegata al sensore nero di temperatura) mentre l’altra collegata al Led è di 220ohm. Ho inserito anche un piccolo pulsante collegato alla massa e al pin RST (Reset) dell’ESP8266 cosi al bisogno basta cliccarci sopra per riavviare il tutto.

Il GPIo-0 (quello che durante l’upload era a massa) va messo al pin centrale del Sensore Dallas, mentre il GPIo-2 va messo al polo negativo del Led (quello con la gambetta più piccola).

espwifi_temp_bb

 

Il funzionamento sarà cosi:

1) Collegate il cavo USB al Mac/PC piuttosto che alimentatore di cellulare o anche ad un piccolo pannellino fotovoltaico – caricabatteria tipo questo. Sarebbe perfetto per rendere la stazione (di temperatura o umitidà o Co2 ect… insomma la vostra stazione di rilevazione WiFI) autonoma per tanto tanto tempo…

Esempio unendo caricabatteria solare (con custodia waterproof ) e cassetta stagna avremo una stazione perfetta. Consiglio dalla cassetta stagna di mettere un tubo di 10 cm verso il basso dove inserire il sensore di temperatura/umidità. essendo verso il basso non entra acqua.

scatola_stagna waterproof caricabatteriasolare

 

 

 

 

 

 

 

si potrebbe anche usare una cassetta stagna con coperchio trasparente e “attaccare” il caricabatteria con il pnnellino solare verso l’alto, ma temo che ci sia effetto serra con il sole. meglio separare il caricabatteria dal circuito. fate voi cmq delle prove

cassettastagna

2) Il led verde si accenderà e la stazione cercherà un WiFi disponibile che abbia SSID “Piersoft”. Nel codice potete ovviamente cambiarlo con il SSID che volete. Ma il senso è che magari siete in un posto ameno, lontano da corrente elettrica e Wifi..come fare? Ecco l’idea!! sfruttiamo il vostro SmartPhone!!! Se avete Android o iPhone basta impostare la modalità HotSpot, cambiare il nome SSID in “Piersoft” e password “12345678”. Et Voilà!! siete diventati contributori alla trasmissione dati della stazione mobile di temperatura (o qualità dell’aria). La trasmissione durerà 2-3 secondi e utilizzerà 10KB (insomma 1 o 2 centesimi di euro….). Legambiente sarà contenta 😉

3) il Led verde appena la stazione si collega al “vostro” Hot Spot, si spegne e dopo alcuni secondi lampeggerà!! ok funziona tutto!! ogni 5 minuti ricerca il nuovo utente a cui collegarsi resettandosi. Se c’è un problema allora c’è il tasto Reset manuale 🙂 . Magari mettete un bel QR-Code sulla scatoletta stagna e cosi l’utente leggerà le istruzioni (che ripeto consistono solo in mettere in modalità hotspot il proprio smartphone con SSID e password che avrete inserito-cambiato voi nel codice oppure lasciate “Piersoft” “12345678” in mio onore 🙂 ).

Volete la conferma? semplice. Il sistema non solo alimenterà il grafico qui sotto, ma manderà un Tweet con la temperatura rilevata. L’account che uso io è @arduinosoft . Cercatelo e vedrete le rilevazioni.

 

E la parte web?

1) Dovete creare un account gratuito su data.sparkfun.com cliccando “create a free data stream”

Vi verranno assegnati una private e public key che vanno inserite nel codice che vi ho allegato in questa parte:

Schermata 2015-07-29 alle 17.52.00

Schermata 2015-07-29 alle 17.50.27

 

2) Andate su http://www.thingspeak.com/ e registratevi anche qui. Potevamo usare direttamente questa piattaforma per tutto, ma ho voluto dividere le cose. Con thingspeak.com sfrutteremo la sezione App – Twitter. Avrete una chiave API di twitter. Potete crearvi un account ad hoc come ho fatto io (@arduinosoft per capirci) oppure usare il vostro personale. Loggatevi e cliccate sulla sezione ThingTweet :

Schermata 2015-07-29 alle 17.55.19

 

cliccate su “collega Account Twitter” e copiatevi l’API Key. Questa è la privatekey1 da inserire nel codice in questa posizione:

Schermata 2015-07-29 alle 17.56.51

 

Quindi per ricapitolare nel codice arduino che vi ho allegato, dovete inserire SSID, Password, private e public key Sparkfun e privatekey1 (API Twitter) di Thinkspeak per i tweet. Nel testo del tweet potete inserire il vostro account Twitter (non quello creato ad hoc ma il vostro personale) in modo che ad ogni tweet vi arrivi la notifica perchè sarete taggati. va inserito qui:

Schermata 2015-07-29 alle 17.59.00

 

Alla fine avrete una cosa del genere, che dovrete mettere in una scatola stagna (sempre che lo vogliate). Vi consiglio di tenere però in esterno il sensore di temperatura/umidità altrimenti se la scatoletta dovesse diventare un “fornellino” , potreste avere rilevazioni non corrette:

 

esp8266_wifi

 

Le rilevazioni arrivano in questa pagina di Sparkfun (che ha il download in CSV e Json . Aggiungete la licenza CC-BY-SA che è quella che applico io ed avete anche contribuito agli opendata comunitari) a cui è collegata questa pagina html che potete scaricare visualizzando il sorgente e cambiando qui nel codice la vostra publickey di Sparkfun:

Schermata 2015-07-30 alle 00.14.15

Visualizza schermo intero

 

Eccovi un piccolo video:

 

Buona stazione Wifi di Temperatura comunitaria!!!

Potrebbero interessarti anche...