Sommario:

Orologio maree e meteo: 9 passaggi (con immagini)
Orologio maree e meteo: 9 passaggi (con immagini)

Video: Orologio maree e meteo: 9 passaggi (con immagini)

Video: Orologio maree e meteo: 9 passaggi (con immagini)
Video: Questa purtroppo è Milano....😔 #ruzzaorologi #orologio #rapina 2024, Dicembre
Anonim
Orologio maree e meteo
Orologio maree e meteo

Sebbene sia possibile acquistare orologi di marea analogici che hanno una sola lancetta che indica se la marea è alta o bassa o da qualche parte nel mezzo, quello che volevo era qualcosa che mi dicesse a che ora sarà la bassa marea. Volevo qualcosa a cui poter dare un'occhiata rapidamente senza doverlo accendere, premere alcun pulsante o aspettare. E volevo qualcosa con una lunga durata della batteria. Quindi ho usato una scheda TTGO T5, che è una scheda basata su ESP32 con un display e-paper da 2,13 , collegata a un chip TTL5110. Il TPL5110 accende il T5 ogni 2,5 ore e una volta al giorno il T5 scarica i dati di marea da NOAA e dati meteo da OpenWeatherMap, visualizza i dati sull'e-paper, quindi dice al TPL5110 di spegnere il T5.

AGGIORNAMENTO (25 febbraio 2020) L'orologio delle maree è in funzione da un anno e la batteria è a 4,00 volt, quindi l'orologio potrebbe in teoria funzionare per molti anni.

Passaggio 1: elenco hardware

Scheda TTGO T5 $ 17

Scheda Adafruit TPL5110 $ 5

Scheda Adafruit Perma-Proto Quarter-size (opzionale) $ 0,71 (ordine minimo $ 8,50)

Batteria Li-Poly 1200 mAh $ 10 (o altra fonte di alimentazione appropriata)

Cavo JST PH a 2 pin - Intestazione maschio $ 0,75

Condensatore da 220 uF

Passaggio 2: strumenti

Saldatore

Spelafili

Caricabatterie Li-Po, come questo.

Passaggio 3: assemblare l'hardware

Assemblare l'hardware
Assemblare l'hardware
Assemblare l'hardware
Assemblare l'hardware
Assemblare l'hardware
Assemblare l'hardware

L'assemblaggio dell'hardware è piuttosto semplice, come mostra lo schema. Ho usato una scheda Adafruit Perma-proto che è come una normale scheda prototipi, tranne per il fatto che è strutturata come una breadboard, con le stesse connessioni elettriche di una breadboard, il che è carino. Dato che avevo bisogno solo di poche connessioni e volevo inserire l'intero gruppo in una piccola scatola, ho tagliato una delle schede in quarti con un disco da taglio Dremel.

Il condensatore da 220 uF è molto importante. Senza di esso, il TPL5110 non accenderà mai il T5. Non è chiaro il motivo, ma altre persone che utilizzano il TPL5110 hanno avuto lo stesso problema. Forse l'ESP32 assorbe più corrente all'avvio di quanto il TTL5110 possa fornire?

Non cablare la batteria. Utilizzare il cavo JST-PH in modo da poter scollegare la batteria per caricarla. Potrebbe esserci un modo per ricaricare la batteria dal T5 attraverso il TPL5110 se il TPL5110 è "acceso", ma non posso garantire questa tecnica.

Ho realizzato una scatola di legno come recinto, ma qualsiasi cosa con dimensioni interne minime di 1,5 x 2,75 x 1 pollici funzionerebbe.

Passaggio 4: sintonizzare il tempismo

La scheda TPL5110 dispone di un potenziometro di trim che imposta l'intervallo di tempo in cui il TPL5110 si riattiva. Usa un piccolo cacciavite per girarlo completamente in senso antiorario. Sulla mia scheda, questo ha impostato l'intervallo su 145 minuti, che in realtà è più del massimo specificato di 120 minuti, ma funziona ed è stato coerente e farà risparmiare ancora più energia rispetto al risveglio ogni 120 minuti, quindi l'ho usato. Non è necessario conoscere l'intervallo con precisione, poiché l'obiettivo è solo quello di scaricare i dati all'incirca una volta al giorno verso le 4 del mattino. È possibile specificare l'intervallo (ad es. 145 minuti) e l'ora della sveglia (ad es. 4am) in env_config.h.

(Se vuoi un migliore controllo dei tempi per qualche altro progetto, la scheda TPL5110 ha una traccia sul retro che puoi tagliare per disabilitare il potenziometro. Quindi colleghi un resistore al pin Delay e la resistenza determina l'intervallo, secondo questo grafico.)

Passaggio 5: il software

Avrai bisogno dell'IDE Arduino con il pacchetto ESP32. Nell'IDE, imposta la tua scheda su "ESP32 Dev Module".

Lo sketch è disponibile su https://github.com/jasonful/Tides e richiede 3 librerie:

  1. "ESP8266 Weather Station", disponibile da Arduino Library Manager (o qui). Avrai solo bisogno di questi 6 file: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.he puoi eliminare il resto.
  2. "Json Streaming Parser" disponibile da Arduino Library Manager (o qui)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Anche se il codice non è impacchettato come una vera libreria, puoi semplicemente copiarlo nella directory delle tue librerie e includerlo esso.

Passaggio 6: configurare il software

Ci sono diversi parametri che dovrai impostare (e alcuni potresti voler impostare) nel file env_config.h, tra cui:

  • SSID e password Wi-Fi
  • ID stazione NOAA (in altre parole, dove sei)
  • OpenWeatherMap AppID, a cui dovrai registrarti (è facile e gratuito)
  • OpenWeatherMap LocationID (di nuovo, dove sei)
  • CONFIG_USE_TPL5110, che consente di utilizzare un T5 senza TPL5110. Invece, il software entrerà in modalità di sospensione profonda. La scheda T5 assorbe circa 8 ma in modalità di sospensione profonda, quindi mi aspetto che la batteria duri solo pochi giorni.

Passaggio 7: come funziona il software

(Puoi saltare questa parte se non ti interessa.)

L'obiettivo è svegliarsi una volta al giorno, ma poiché l'intervallo massimo del TPL5110 è di sole 2 ore circa, il T5 deve svegliarsi più spesso. Quindi, dopo aver scaricato i dati di marea e meteo, calcola quanti di questi intervalli di 2 ore ci sono tra ora e le 4:00 di domani mattina. Ciò è leggermente complicato dal fatto che il TPL5110 interrompe completamente l'alimentazione al T5, il che è positivo per la batteria, ma significa che perdiamo RAM e l'orologio in tempo reale. È come svegliarsi ogni mattina con l'amnesia. Quindi, per capire che ore sono adesso, lo estrae dall'intestazione HTTP di NOAA. E per ricordare quanti intervalli di 2 ore rimangono, scrive quel contatore sulla memoria non volatile (flash). Ogni volta che si sveglia, controlla quel contatore, lo decrementa, lo memorizza e, se è maggiore di zero, invia immediatamente un segnale al TPL51110 ("Fatto") dicendogli di metterlo in sospensione. Quando il contatore raggiunge lo zero, il codice scarica nuovi dati e ricalcola e reimposta il contatore.

Passaggio 8: eseguilo

Eseguirlo
Eseguirlo

Assicurati che l'interruttore sul lato sinistro del T5 sia in posizione su (acceso), carica lo schizzo sul T5 e in pochi secondi lo schermo dovrebbe aggiornarsi con le informazioni sulla marea e sul tempo.

Se è necessario eseguire il debug del software, modificare "#define DEBUG 0" nella parte superiore di Tides.ino in "#define DEBUG 1". Questo attiverà l'output di debug seriale e visualizzerà anche nella parte inferiore dell'e-paper il numero di riavvii rimanenti prima che scarichi nuovi dati e l'ora dell'ultimo download di dati.

Passaggio 9: direzioni future

  1. L'uso del TPL5110 combinato con un display e-paper è un ottimo modo per visualizzare qualsiasi dato che non cambia spesso, con un'eccellente durata della batteria.
  2. Quando stavo progettando questo, ho preso in considerazione l'utilizzo del TrigBoard, che è una scheda ESP8266 con un TPL5111 a bordo. Sarebbe stato necessario ottenere un display e-paper separato e una scheda driver e-paper come questo o questo. O una combinazione driver+scheda come questa o questa. Per trasferire il codice su ESP8266, penso che il codice SSL dovrà utilizzare le impronte digitali anziché i certificati e il codice di archiviazione non volatile dovrà utilizzare la memoria EEPROM o RTC.
  3. Di recente ho sentito che la scheda Lolin32 è abbastanza decente in modalità di sospensione profonda: circa 100uA. Non buono come la scheda TPL51110 (20uA secondo Adafruit) ma abbastanza buono.
  4. OpenWeatherMap restituisce molti più dati meteorologici di quelli visualizzati. Compresi gli ID delle icone, che richiederebbero la ricerca di icone monocromatiche da qualche parte.

Consigliato: