Kazalo:

Plima in vremenska ura: 9 korakov (s slikami)
Plima in vremenska ura: 9 korakov (s slikami)

Video: Plima in vremenska ura: 9 korakov (s slikami)

Video: Plima in vremenska ura: 9 korakov (s slikami)
Video: Призрак (фильм) 2024, November
Anonim
Plima in vremenska ura
Plima in vremenska ura

Čeprav lahko kupite analogne ure, ki imajo eno roko, ki označuje, ali je plima visoka ali nizka ali nekje vmes, sem želel nekaj, kar bi mi povedalo, kdaj bo oseka. Želel sem nekaj, na kar bi lahko hitro pogledal, ne da bi mi bilo treba vklopiti, pritisniti kateri koli gumb ali počakati. Hotel sem nekaj z dolgo življenjsko dobo baterije. Zato sem uporabil ploščo TTGO T5, ki je plošča na osnovi ESP32 z 2,13-palčnim zaslonom e-papirja, povezana z čipom TTL5110. TPL5110 vklopi T5 vsake 2,5 ure in enkrat na dan T5 prenese podatke o plimi iz NOAA in vremenski podatki iz OpenWeatherMap-a prikažejo podatke na e-papirju in nato povejo TPL5110, naj izklopi T5.

Posodobitev (25. februar 2020) Ura za plimovanje deluje že eno leto, baterija pa je pri 4,00 voltov, zato bi ura lahko verjetno delovala več let.

1. korak: Seznam strojne opreme

Plošča TTGO T5 17 USD

Plošča Adafruit TPL5110 5 USD

Četrtletna plošča Adafruit Perma-Proto (neobvezno) 0,71 USD (minimalno naročilo 8,50 USD)

Li-Poly baterija 1200 mAh 10 USD (ali drug ustrezen vir napajanja)

2-polni kabel JST PH-moški priključek 0,75 USD

220 uF kondenzator

2. korak: Orodja

Spajkalnik

Odstranjevalci žice

Polnilnik baterij Li-Po, kot je ta.

3. korak: Sestavite strojno opremo

Sestavite strojno opremo
Sestavite strojno opremo
Sestavite strojno opremo
Sestavite strojno opremo
Sestavite strojno opremo
Sestavite strojno opremo

Sestava strojne opreme je precej preprosta, kot prikazuje shema. Uporabil sem ploščo Adafruit Perma-proto, ki je kot običajna protoboard, le da je postavljena kot plošča z enakimi električnimi povezavami kot plošča, kar je lepo. Ker sem potreboval le nekaj priključkov in sem želel celoten sklop namestiti v majhno škatlo, sem eno ploščo razrezal na četrtine z rezalnim kolesom Dremel.

Kondenzator 220 uF je zelo pomemben. Brez tega TPL5110 ne bo nikoli vklopil T5. Malo je nejasno, zakaj, vendar so imeli drugi ljudje, ki uporabljajo TPL5110, enak problem. Mogoče ESP32 pri zagonu črpa več toka, kot ga lahko zagotovi TTL5110?

Ne ožičite baterije. Za polnjenje uporabite kabel JST-PH, da odklopite baterijo. Morda obstaja način za polnjenje baterije iz T5 nazaj prek TPL5110, če je TPL5110 "vklopljen", vendar za to tehniko ne morem jamčiti.

Naredil sem leseno škatlo kot ohišje, vendar bi vse, kar ima minimalne notranje mere 1,5 "x 2,75" x 1 ", delovalo.

4. korak: Nastavite časovni razpored

Plošča TPL5110 ima trim potenciometer, ki nastavi časovni interval, v katerem se TPL5110 prebudi. Z drobnim izvijačem zavrtite do konca v nasprotni smeri urinega kazalca. Na moji plošči je ta nastavil interval na 145 minut, kar je dejansko več od predvidenih največ 120 minut, vendar deluje in je dosledno ter bo prihranilo še več energije kot prebujanje vsakih 120 minut, zato sem ga uporabil. Intervala vam ni treba natančno poznati, saj je cilj le prenos podatkov približno enkrat na dan, približno okoli 4. ure zjutraj. V env_config.h lahko določite interval (npr. 145 minut) in čas bujenja (npr. 4 ure zjutraj).

(Če želite boljši nadzor nad časom za kakšen drug projekt, ima plošča TPL5110 sled na hrbtni strani, ki jo lahko izrežete, da onemogočite potenciometer. Nato na zakasnitveni zatič pritrdite upor, upor pa določi interval glede na ta grafikon.)

5. korak: programska oprema

Potrebovali boste Arduino IDE s paketom ESP32. V IDE -ju nastavite svojo ploščo na "ESP32 Dev Module".

Skica je na voljo na https://github.com/jasonful/Tides in zahteva 3 knjižnice:

  1. "Vremenska postaja ESP8266", na voljo pri upravitelju knjižnice Arduino (ali tukaj). Potrebovali boste le teh 6 datotek: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h, preostale pa lahko izbrišete.
  2. "Json Streaming Parser" je na voljo pri upravitelju knjižnice Arduino (ali tukaj)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Čeprav koda ni zapakirana kot prava knjižnica, jo lahko preprosto kopirate v imenik knjižnic in vključite to.

6. korak: Konfigurirajte programsko opremo

V datoteki env_config.h morate nastaviti več parametrov (in nekaj jih boste morda želeli nastaviti), med drugim:

  • SSID in geslo WiFi
  • ID postaje NOAA (z drugimi besedami, kje ste)
  • OpenWeatherMap AppID, za katerega se boste morali registrirati (preprosto in brezplačno)
  • OpenWeatherMap LocationID (spet kje ste)
  • CONFIG_USE_TPL5110, ki vam omogoča uporabo T5 brez TPL5110. Namesto tega bo programska oprema prešla v način globokega spanja. Plošča T5 v globokem spanju porabi približno 8 ma, zato bi pričakoval, da bo baterija zdržala nekaj dni.

7. korak: Kako deluje programska oprema

(Če vam je vseeno, lahko ta del preskočite.)

Cilj je, da se zbudite enkrat na dan, ker pa je največji interval TPL5110 le 2 uri, se mora T5 zbujati pogosteje. Torej, ko prenese podatke o plimi in vremenskih razmerah, izračuna, koliko teh 2 -urnih intervalov je med zdaj in 4:00 zjutraj zjutraj. To je nekoliko zapleteno zaradi dejstva, da TPL5110 popolnoma izklopi napajanje T5, kar je dobro za baterijo, vendar pomeni, da izgubimo RAM in uro v realnem času. Kot da bi se vsako jutro prebudili z amnezijo. Da bi ugotovil, koliko je ura, ga izvleče iz glave HTTP NOAA. Da bi se spomnili, koliko 2-urnih intervalov je še ostalo, piše ta števec za nehlapno shranjevanje (bliskavica). Vsakič, ko se zbudi, preveri ta števec, ga zmanjša, shrani in če je večji od nič, nemudoma pošlje signal TPL51110 ("Končano"), naj ga zaspi. Ko števec doseže ničlo, koda prenese nove podatke ter ponovno izračuna in ponastavi števec.

8. korak: Zaženite

Zaženi
Zaženi

Prepričajte se, da je stikalo na levi strani T5 v zgornjem (vklopljenem) položaju, naložite skico v T5 in v nekaj sekundah se bo zaslon posodobil s podatki o plimi in vremenu.

Če morate odpraviti napake v programski opremi, spremenite »#define DEBUG 0« na vrhu Tides.ino na »#define DEBUG 1«. To bo vklopilo serijsko odpravljanje napak, na dnu e-papirja pa bo prikazano tudi število ponovnih zagonov, ki so preostali pred prenosom novih podatkov, in čas zadnjega prenosa podatkov.

9. korak: Navodila za prihodnost

  1. Uporaba TPL5110 v kombinaciji z zaslonom za e-papir je odličen način za prikaz vseh podatkov, ki se ne spreminjajo pogosto, z odlično življenjsko dobo baterije.
  2. Ko sem to oblikoval, sem razmišljal o uporabi TrigBoarda, ki je plošča ESP8266 z vgrajenim TPL5111. Potrebovali bi ločen zaslon za e-papir in tabelo gonilnikov za e-papir. Ali kombinacijo voznik+plošča, kot je ta ali ta. Za prenos kode na ESP8266 mislim, da bo morala koda SSL namesto potrdil uporabiti prstne odtise, nehlapna pomnilniška koda pa bo morala uporabljati pomnilnik EEPROM ali RTC.
  3. Pred kratkim sem slišal, da je plošča Lolin32 v načinu globokega spanja precej spodobna: približno 100uA. Ni tako dobra kot plošča TPL51110 (20uA po Adafruit -u), vendar dovolj dobra.
  4. OpenWeatherMap vrne veliko več vremenskih podatkov, kot jih prikažem. Vključno z ID -ji ikon, za katere bi bilo treba nekje najti enobarvne ikone.

Priporočena: