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 za oseku 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 vrijeme će biti oseka. Htjela sam nešto na što bih mogla brzo pogledati, a da ne moram to uključiti, pritisnuti bilo koje dugme ili čekati. Htio sam nešto s dugim vijekom trajanja baterije. Stoga sam koristio TTGO T5 ploču, ploču zasnovanu na ESP32 sa ekranom od 2,13 e-papira, povezanu na TTL5110 čip. 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ŽURIRANJE (25. februara 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: Lista hardvera

TTGO T5 ploča 17 USD

Adafruit TPL5110 ploča 5 USD

Adafruit Perma-Proto ploča četvrte veličine (opcionalno) 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

Strojevi za skidanje žice

Li-Po punjač baterija, poput ovog.

Korak 3: Sastavite hardver

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

Sklapanje 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, sa istim električnim vezama kao i matična ploča, što je lijepo. Budući da mi je trebalo samo nekoliko veza i htio sam cijeli sklop staviti 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 dati?

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

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

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 preuzimanje podataka 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 poleđini 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 svoju ploču na "ESP32 Dev Module".

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

  1. "ESP8266 meteorološka stanica", dostupno kod upravitelja biblioteke 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 -a (ili ovdje)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Iako kôd nije pakiran kao prava biblioteka, možete ga samo kopirati u direktorij biblioteka i uključiti to.

Korak 6: Konfigurirajte softver

Postoji nekoliko 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ćava da koristite 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 buđenje 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 od danas do 4:00 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 saznao koliko je sati sada, izdvaja ga iz NOAA -inog HTTP zaglavlja. A da biste zapamtili koliko je preostalo 2-satnih intervala, piše taj brojač u odnosu na trajno skladištenje (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. Kada brojač dosegne nulu, kôd preuzima nove podatke te ponovno izračunava i resetira brojač.

Korak 8: Pokrenite ga

Run It
Run It

Provjerite je li prekidač s lijeve strane T5 u gore (uključeno) položaju, prenesite skicu na T5 i u roku od nekoliko sekundi ekran 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 na "#define DEBUG 1". Ovo će uključiti serijski izlaz za otklanjanje grešaka, a također će na dnu e-papira prikazati broj preostalih ponovnih pokretanja 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 odličan je način za prikaz svih podataka koji se ne mijenjaju često, uz izvrsno trajanje baterije.
  2. Kada sam ovo dizajnirao, razmišljao sam o upotrebi TrigBoarda, koji je ploča ESP8266 sa TPL5111 na ploči. Bilo bi potrebno nabaviti zaseban ekran e-papira i tablu upravljačkih programa e-papira poput ove ili ove. Ili kombinaciju vozač+ploča poput ove ili ove. Za prijenos koda na ESP8266, mislim da će SSL kôd 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 režimu dubokog sna: oko 100uA. Nije tako 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 identifikatore ikona, za koje bi bilo potrebno negdje pronaći jednobojne ikone.

Preporučuje se: