Cuprins:

Ceas de maree și vreme: 9 pași (cu imagini)
Ceas de maree și vreme: 9 pași (cu imagini)

Video: Ceas de maree și vreme: 9 pași (cu imagini)

Video: Ceas de maree și vreme: 9 pași (cu imagini)
Video: Vescan - Tic-Tac (feat. Mahia Beldo) Xsession Version 2024, Noiembrie
Anonim
Tide and Weather Clock
Tide and Weather Clock

Deși puteți cumpăra ceasuri de maree analogice care au o singură mână care să indice dacă valul este mare sau scăzut sau undeva la mijloc, ceea ce am vrut a fost ceva care să-mi spună la ce oră va fi marea joasă. Am vrut ceva la care să mă uit rapid, fără să trebuiască să-l pornesc, să nu apăs niciun buton sau să aștept. Și am vrut ceva cu o durată lungă de viață a bateriei. Așa că am folosit o placă TTGO T5, care este o placă bazată pe ESP32 cu un afișaj de hârtie electronică de 2,13 , conectat la un cip TTL5110. TPL5110 pornește T5 la fiecare 2,5 ore, iar o dată pe zi T5 descarcă datele de maree de la NOAA și datele meteo din OpenWeatherMap, afișează datele pe e-hârtie, apoi îi spune TPL5110 să oprească T5.

ACTUALIZARE (25 februarie 2020) Tide Clock funcționează de un an acum, iar bateria este la 4,00 volți, astfel încât ceasul ar putea funcționa, probabil, timp de mulți ani.

Pasul 1: Lista hardware

Placă TTGO T5 17 USD

Placa Adafruit TPL5110 5 $

Placă Adafruit Perma-Proto Quarter-size (opțional) 0,71 USD (comandă minimă 8,50 USD)

Baterie Li-Poly 1200 mAh 10 USD (sau altă sursă de alimentare adecvată)

Cablu JST PH cu 2 pini - antet masculin 0,75 USD

Condensator 220 uF

Pasul 2: Instrumente

Ciocan de lipit

Decapanti de sârmă

Încărcător de baterie Li-Po, ca acesta.

Pasul 3: Asamblați hardware

Asamblați hardware
Asamblați hardware
Asamblați hardware
Asamblați hardware
Asamblați hardware
Asamblați hardware

Asamblarea hardware-ului este destul de simplă, așa cum arată schema. Am folosit o placă Adafruit Perma-proto, care este ca o placă de protecție normală, cu excepția faptului că este așezată ca o placă, cu aceleași conexiuni electrice ca o placă, ceea ce este frumos. Deoarece aveam nevoie doar de câteva conexiuni și doream să încadrez întregul ansamblu într-o cutie mică, am tăiat una dintre plăci în pătrimi cu o roată de tăiere Dremel.

Condensatorul de 220 uF este foarte important. Fără acesta, TPL5110 nu va porni niciodată T5. Este puțin clar de ce, dar alte persoane care folosesc TPL5110 au avut aceeași problemă. Poate că ESP32 atrage mai mult curent la pornire decât poate furniza TTL5110?

Nu conectați bateria. Utilizați cablul JST-PH astfel încât să puteți deconecta bateria pentru ao încărca. Poate exista o modalitate de a încărca bateria de la T5 înapoi prin TPL5110 dacă TPL5110 este „pornit”, dar nu pot garanta această tehnică.

Am făcut o cutie de lemn ca o incintă, dar orice lucru cu dimensiuni interioare minime de 1,5 "x 2,75" x 1 "ar funcționa.

Pasul 4: Reglați sincronizarea

Placa TPL5110 are un potențiometru de decupare care setează intervalul de timp la care TPL5110 se trezește. Folosiți o șurubelniță mică pentru a întoarce acest lucru în sens invers acelor de ceasornic. Pe tabloul meu, acest lucru a setat intervalul la 145 de minute, care este de fapt mai mult decât maximul specificat de 120 de minute, dar funcționează și a fost consistent și va economisi chiar mai multă energie decât trezirea la fiecare 120 de minute, așa că l-am folosit. Nu trebuie să cunoașteți cu precizie intervalul, deoarece obiectivul este doar să descărcați date aproximativ o dată pe zi aproximativ în jurul orei 4:00. Puteți specifica intervalul (de exemplu, 145 de minute) și ora de trezire (de exemplu, 4am) în env_config.h.

(Dacă doriți un control mai bun al sincronizării pentru un alt proiect, placa TPL5110 are o urmă pe spate pe care o puteți tăia pentru a dezactiva potențiometrul. Apoi atașați un rezistor la pinul de întârziere, iar rezistența determină intervalul, conform acest grafic.)

Pasul 5: Software-ul

Veți avea nevoie de Arduino IDE cu pachetul ESP32. În IDE, setați placa la „ESP32 Dev Module”.

Schița este disponibilă la https://github.com/jasonful/Tides și necesită 3 biblioteci:

  1. „Stația meteo ESP8266”, disponibilă de la Arduino Library Manager (sau aici). Veți avea nevoie doar de aceste 6 fișiere: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h și puteți șterge restul.
  2. „Json Streaming Parser” disponibil de la Arduino Library Manager (sau aici)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Chiar dacă codul nu este ambalat ca o adevărată bibliotecă, îl puteți copia în directorul bibliotecilor și îl puteți include aceasta.

Pasul 6: Configurați software-ul

Există mai mulți parametri pe care va trebui să îi setați (și câțiva pe care poate doriți să îi setați) în fișierul env_config.h, inclusiv:

  • SSID WiFi și parolă
  • ID stație NOAA (cu alte cuvinte, unde ești)
  • OpenWeatherMap AppID, pe care va trebui să vă înregistrați (este ușor și gratuit)
  • OpenWeatherMap LocationID (din nou, unde ești)
  • CONFIG_USE_TPL5110, care vă permite să utilizați un T5 fără un TPL5110. În schimb, software-ul va intra în modul de repaus profund. Placa T5 atrage aproximativ 8 m în somn profund, așa că m-aș aștepta ca bateria să reziste doar câteva zile.

Pasul 7: Cum funcționează software-ul

(Puteți sări peste această parte dacă nu vă pasă.)

Scopul este să vă treziți o dată pe zi, dar din moment ce intervalul maxim al TPL5110 este de doar 2 ore sau cam așa, T5 trebuie să se trezească mai des. Deci, după ce descarcă datele despre maree și vreme, calculează câte dintre aceste intervale de 2 ore există între acum și 4:00 dimineața. Acest lucru este ușor complicat de faptul că TPL5110 reduce total puterea T5, ceea ce este bun pentru baterie, dar înseamnă că pierdem memoria RAM și ceasul în timp real. Este ca și când te-ai trezi în fiecare dimineață cu amnezie. Deci, pentru a afla ce oră este acum, îl extrage din antetul HTTP al NOAA. Și pentru a ne aminti câte intervale de 2 ore mai rămân, scrie că contrar stocării nevolatile (bliț). De fiecare dată când se trezește, verifică contorul respectiv, îl scade, îl stochează și, dacă este mai mare de zero, trimite imediat un semnal către TPL51110 („Terminat”), spunându-i să-l adoarmă. Când contorul atinge zero, codul descarcă date noi și recalculează și resetează contorul.

Pasul 8: Rulați-l

Rulați-l
Rulați-l

Asigurați-vă că comutatorul din partea stângă a T5 este în poziția sus (pornită), încărcați schița pe T5 și, în câteva secunde, ecranul ar trebui să se actualizeze cu informații despre maree și vreme.

Dacă trebuie să depanați software-ul, schimbați „#define DEBUG 0” din partea de sus a Tides.ino la „#define DEBUG 1”. Aceasta va activa ieșirea de depanare în serie și va afișa, de asemenea, în partea de jos a e-hârtiei numărul de reporniri rămase înainte de a descărca date noi și data la care a descărcat ultima dată date.

Pasul 9: Direcții viitoare

  1. Utilizarea TPL5110 combinată cu un afișaj de hârtie electronică este o modalitate excelentă de a afișa orice date care nu se schimbă des, cu o durată excelentă de viață a bateriei.
  2. Când proiectam acest lucru, m-am gândit să folosesc TrigBoard, care este o placă ESP8266 cu un TPL5111 la bord. Ar fi trebuit să obțineți un afișaj separat pentru hârtie electronică și o placă de driver pentru hârtie electronică de genul ăsta sau de astea. Sau o combinație de drivere + plăci de genul acesta sau așa. Pentru a transfera codul la ESP8266, cred că codul SSL va trebui să utilizeze amprente digitale în loc de certificate, iar codul de stocare nevolatil va trebui să utilizeze memoria EEPROM sau RTC.
  3. Am auzit recent că placa Lolin32 este destul de decentă în modul de somn profund: aproximativ 100uA. Nu la fel de bun ca placa TPL51110 (20uA conform Adafruit), dar suficient de bun.
  4. OpenWeatherMap returnează mult mai multe date despre vreme decât le afișez. Inclusiv ID-uri de pictograme, care ar necesita găsirea unor pictograme monocrome undeva.

Recomandat: