Plima i vremenski sat: 9 koraka (sa slikama)
Plima i vremenski sat: 9 koraka (sa slikama)
Anonim
Plima i vremenski sat
Plima i vremenski sat

Iako možete kupiti analogne satove s osekom koji imaju jednu kazaljku koja pokazuje je li plima velika ili niska ili negdje između, ono što sam želio bilo je nešto što bi mi reklo u koje će vrijeme biti oseka. Željela sam nešto na što bih mogla brzo baciti pogled, a da to ne moram uključiti, pritisnuti bilo koju tipku ili čekati. Htio sam nešto s dugim vijekom trajanja baterije. Stoga sam koristio ploču TTGO T5, koja je ploča zasnovana na ESP32 s ekranom od 2,13 e-papira, spojena na čip TTL5110. TPL5110 uključuje T5 svakih 2,5 sata, a jednom dnevno T5 preuzima podatke o plimi iz NOAA i vremenski podaci s OpenWeatherMap-a prikazuju podatke na e-papiru, a zatim govore TPL5110 da isključi T5.

AŽURIRAJ (25. veljače 2020.) Sat za plimu radi već godinu dana, a baterija je na 4,00 volti, pa bi sat mogao vjerovatno raditi mnogo godina.

Korak 1: Popis hardvera

TTGO T5 ploča 17 USD

Ploča Adafruit TPL5110 5 USD

Adafruit Perma-Proto ploča četvrte veličine (izborno) 0,71 USD (minimalna narudžba 8,50 USD)

Li-Poly baterija 1200 mAh 10 USD (ili drugi odgovarajući izvor napajanja)

JST PH 2-pinski kabel-muško zaglavlje 0,75 USD

220 uF kondenzator

Korak 2: Alati

Lemilica

Skidači žica

Punjač Li-Po baterija, poput ovog.

Korak 3: Sastavite hardver

Sastavite hardver
Sastavite hardver
Sastavite hardver
Sastavite hardver
Sastavite hardver
Sastavite hardver

Sastavljanje hardvera prilično je jednostavno kao što prikazuje shema. Koristio sam Adafruit Perma-proto ploču koja je poput normalne protoboarde, osim što je postavljena kao matična ploča, s istim električnim priključcima kao i matična ploča, što je lijepo. Budući da mi je bilo potrebno samo nekoliko spojeva, a htio sam cijeli sklop smjestiti u malu kutiju, izrezao sam jednu ploču na četvrte pomoću Dremel reznog kotača.

Kondenzator od 220 uF je vrlo važan. Bez toga, TPL5110 nikada neće uključiti T5. Malo je nejasno zašto, ali drugi ljudi koji koriste TPL5110 imali su isti problem. Možda ESP32 pri pokretanju troši više struje nego što TTL5110 može opskrbiti?

Ne ožičite bateriju. Upotrijebite kabel JST-PH kako biste mogli odvojiti bateriju kako biste je napunili. Možda postoji način da napunite bateriju s T5 natrag kroz TPL5110 ako je TPL5110 "uključen", ali ne mogu jamčiti za tu tehniku.

Napravio sam drvenu kutiju kao kućište, ali sve s minimalnim unutarnjim dimenzijama 1,5 "x 2,75" x 1 "radilo bi.

Korak 4: Podesite mjerenje vremena

Ploča TPL5110 ima potenciometar za podešavanje koji postavlja vremenski interval u kojem se TPL5110 budi. Upotrijebite mali odvijač da ga okrenete do kraja u smjeru suprotnom od kazaljke na satu. Na mojoj ploči ovo je postavilo interval na 145 minuta, što je zapravo više od predviđenih maksimalnih 120 minuta, ali radi i bilo je dosljedno te će uštedjeti još više energije nego buđenje svakih 120 minuta, pa sam ga iskoristio. Ne morate točno znati interval, jer je cilj samo preuzeti podatke otprilike jednom dnevno otprilike oko 4 sata ujutro. Interval (npr. 145 minuta) i vrijeme buđenja (npr. 4 sata ujutro) možete navesti u env_config.h.

(Ako želite bolju kontrolu vremena za neki drugi projekt, ploča TPL5110 ima trag na stražnjoj strani koji možete izrezati kako biste onemogućili potenciometar. Zatim na odgodni pin priključite otpornik, a otpor određuje interval, prema ovaj grafikon.)

Korak 5: Softver

Trebat će vam Arduino IDE s paketom ESP32. U IDE -u postavite ploču na "ESP32 Dev Module".

Skica je dostupna na https://github.com/jasonful/Tides i zahtijeva 3 biblioteke:

  1. "ESP8266 Weather Station", dostupno kod upravitelja knjižnice Arduino (ili ovdje). Trebat će vam samo ovih 6 datoteka: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h, a ostale možete izbrisati.
  2. "Json Streaming Parser" dostupan od Arduino Library Manager (ili ovdje)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Iako kôd nije pakiran kao prava knjižnica, možete ga samo kopirati u direktorij svojih knjižnica i uključiti to.

Korak 6: Konfigurirajte softver

Nekoliko je parametara koje ćete morati postaviti (a nekoliko ćete možda htjeti postaviti) u datoteci env_config.h, uključujući:

  • WiFi SSID i lozinka
  • NOAA ID stanice (drugim riječima, gdje ste)
  • OpenWeatherMap AppID, za koji ćete se morati registrirati (jednostavno je i besplatno)
  • OpenWeatherMap LocationID (opet, gdje ste)
  • CONFIG_USE_TPL5110, koji vam omogućuje korištenje T5 bez TPL5110. Umjesto toga, softver će ući u način dubokog sna. Ploča T5 troši oko 8 ma u dubokom snu, pa bih očekivao da će baterija izdržati nekoliko dana.

Korak 7: Kako softver radi

(Ovaj dio možete preskočiti ako vas nije briga.)

Cilj je probuditi se jednom dnevno, ali budući da je maksimalni interval TPL5110 samo 2 sata, T5 se mora češće buditi. Dakle, nakon što preuzme podatke o plimi i vremenskim prilikama, izračunava koliko ima ovih 2 -satnih intervala između sada do 4 sata ujutro sutra ujutro. To je malo komplicirano činjenicom da TPL5110 potpuno isključuje napajanje T5, što je dobro za bateriju, ali znači da gubimo RAM i sat u stvarnom vremenu. To je kao da se svako jutro budite s amnezijom. Dakle, da bi shvatio koliko je sati sada, izdvaja ga iz NOAA -inog HTTP zaglavlja. I da biste zapamtili koliko je preostalo 2-satnih intervala, piše taj brojač u odnosu na trajnu pohranu (flash). Svaki put kad se probudi, provjerava taj brojač, smanjuje ga, pohranjuje, a ako je veći od nule, odmah šalje signal TPL51110 ("Gotovo") govoreći mu da ga uspava. Kad brojač dosegne nulu, kôd preuzima nove podatke te ponovno izračunava i resetira brojač.

Korak 8: Pokrenite ga

Pokreni ga
Pokreni ga

Provjerite je li prekidač na lijevoj strani T5 u gore (uključeno) položaju, prenesite skicu na T5 i u roku od nekoliko sekundi zaslon bi se trebao ažurirati podacima o plimi i vremenu.

Ako trebate otkloniti pogreške u softveru, promijenite "#define DEBUG 0" pri vrhu Tides.ino u "#define DEBUG 1". Ovo će uključiti serijski izlaz za ispravljanje pogrešaka, a na dnu e-papira također će se prikazati broj ponovnih pokretanja preostalih prije preuzimanja novih podataka i vrijeme zadnjeg preuzimanja podataka.

Korak 9: Upute za budućnost

  1. Korištenje TPL5110 u kombinaciji s zaslonom e-papira izvrstan je način za prikaz svih podataka koji se ne mijenjaju često, uz izvrsno trajanje baterije.
  2. Kad sam to dizajnirao, razmišljao sam o korištenju TrigBoarda, koji je ploča ESP8266 s TPL5111 na ploči. Bilo bi potrebno nabaviti zaseban zaslon e-papira i ploču s upravljačkim programima e-papira poput ove ili ove. Ili kombinaciju vozač+ploča poput ove ili ove. Za prijenos koda na ESP8266, mislim da će SSL kod morati koristiti otiske prstiju umjesto certifikata, a kôd za trajnu pohranu morat će koristiti EEPROM ili RTC memoriju.
  3. Nedavno sam čuo da je ploča Lolin32 prilično pristojna u načinu dubokog sna: oko 100uA. Nije toliko dobra kao ploča TPL51110 (20uA prema Adafruit -u), ali dovoljno dobra.
  4. OpenWeatherMap vraća mnogo više vremenskih podataka nego što ih ja prikazujem. Uključujući ID -ove ikona, koji bi zahtijevali negdje pronalaženje jednobojnih ikona.

Preporučeni: