Cuprins:

Tweerstationneke A.k.a. WeatherStation olandeză: 4 pași
Tweerstationneke A.k.a. WeatherStation olandeză: 4 pași

Video: Tweerstationneke A.k.a. WeatherStation olandeză: 4 pași

Video: Tweerstationneke A.k.a. WeatherStation olandeză: 4 pași
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Iulie
Anonim
Tweerstationneke A.k.a. WeatherStation olandeză
Tweerstationneke A.k.a. WeatherStation olandeză

Tatăl meu este mereu interesat de ultimele știri și cele mai recente informații despre vreme. Așa că asta m-a adus la cadoul perfect de ziua de naștere când a devenit 76 de ani: o mică stație meteo permanentă, fără prostii, stă liniștită într-un colț toată ziua și oferă un rezumat al ultimelor predicții.

Este proiectat în jurul a două site-uri web olandeze. Probabil puteți vedea asta pe amuzantul titlu local al acestui subiect! Una oferă prognozele locale pe oraș la fiecare 10 minute în format json. Cealaltă oferă prognoza ploii pentru următoarele două ore în format text simplu, care este întotdeauna la îndemână să știți. Sunt sigur că, dacă nu locuiți în Olanda, puteți adapta cu ușurință acest subiect la orice alt serviciu.

Provizii

  • O placa ESP8266; sugerează să folosești un Wemos D1 mini
  • Un ecran TFT de 1,8 inch cu 128 * 160 puncte; Culoare pe 16 biți
  • Câteva cabluri
  • Programul este sau este pentru a începe pentru a crea propriul dvs.
  • O cutie frumoasă pentru a pune totul împreună. Utilizați unul standard sau imprimați-l pe unul cu designul atașat

Pasul 1: Faceți prototipul

Realizați prototipul
Realizați prototipul

Conectarea ecranului și a controlerului

Utilizați un cablu plat mic și lipiți împreună placa și ecranul TFT. Utilizați lista pentru a conecta părțile ion în mod corect

ECRAN TFT ------------------ WEMOS

LED ------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0 - -------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3

Alternativ, puteți pune LED-ul pe 3v3 în loc de pinul D8. Am folosit pinul D8 pentru ca dispozitivul să se culce în jurul orei 23:00 noaptea și să mă trezesc din nou în jurul orei 07:00. Eficace, acesta va fi primul moment în care citește buletinul meteo după acel moment, deoarece citește antetul pentru a verifica ora. Nu există ceas în timp real pe acest dispozitiv.

Dacă toate acestea funcționează, conectați cablul USB la Wemos și încărcați software-ul. Dacă totul funcționează, puteți începe să construiți cutia.

Pasul 2: Proiectarea programului

Proiectarea programului
Proiectarea programului

Ideile mele despre acest dispozitiv meteorologic unde

  • Adaptabil cu ușurință la un alt mediu wifi
  • Afișează prognoza meteo și prognoza ploii
  • Fără butoane
  • Fără sunet, simplu, fără fuzz

Având în vedere acest lucru, am creat un program care începe cu codul WifiManager atunci când nu poate descoperi o rețea Wifi cunoscută. Își creează propria rețea și afișează numele pe ecran. Acest lucru vă oferă șansa de a seta parametrii Wifi la propria rețea de domiciliu.

După această configurare, arată prognozele meteo și precipitațiile de ploaie pe rând, la fiecare 20 de secunde. Dacă din anumite motive nu este posibil să citiți următoarea prognoză, un număr mic de eroare va fi afișat în partea dreaptă a afișajului; iar imaginea anterioară va fi afișată. În următoarea rundă se face o nouă încercare de a prelua informațiile.

Informațiile despre vreme sunt primite de pe site într-un mesaj în stil json. Informațiile din acesta sunt convertite și salvate în variabile globale. În acest fel putem decupla regăsirea informațiilor de afișarea acestora. Nu există niciun motiv pentru a recupera vremea mai repede ca o dată la 10 minute.

Obținerea precipitațiilor de ploaie este și mai simplă. Se servește în format text simplu, cu o cantitate de ploaie preconizată ca valoare 0..255; o bară verticală; un timp pe fiecare linie. Aceasta pentru fiecare 5 minute pentru următoarele 2 ore. Valoarea de ploaie este livrată într-un mod inteligent, unde valorile mici oferă mai mult spațiu pentru a arăta diferența ca valori mai mari. Formula utilizată este după cum urmează:

mmhour = round (pow (10, (rainvalue - 109) / 32) * 10) / 10;

Rețineți că „ori 10, împarte la 10” este un truc pentru a ne asigura că avem o zecimală în spatele punctului. În funcție de cantitatea maximă de ploaie așteptată pentru următoarele 2 ore, există 3 scale folosite pentru grafic;

  1. Max de 5 mm / oră așteptat
  2. Max de 20 mm / oră așteptat
  3. Max este preluat de la cea mai mare valoare din prognoză

Aici, în Olanda, valoarea noastră permanentă este de aproximativ 80 mm / oră; deci această scară se va descurca perfect. Pentru alte țări ar putea fi înțelept să schimbi acest lucru.

Pasul 3: Codul programului

Codul programului
Codul programului

Setări editor

Software-ul pentru acest dispozitiv meteorologic este creat în mediul de programare Arduino. Îl veți găsi atașat aici pentru confortul dumneavoastră. Folosește-l așa cum este; sau schimbați-l pentru a se potrivi nevoilor dumneavoastră. Tot textul care poate fi afișat pe ecranul TFT este DEFINIT în partea de sus a programului; ceea ce înseamnă că îl puteți schimba cu ușurință în propria limbă, dacă doriți. Am folosit Wemos D1 mini, dar vor funcționa și plăci similare.

În mediul Arduino am folosit următoarele setări;

  • Placă: LOLIN (WEMOS) D1 RA & Mini
  • Viteza de încărcare: 115200
  • Frecvență CPU: 80 MHz
  • Dimensiune bliț: 4M (fără SPIFFS) V2 memorie inferioară dezactivată

Cronometrele software sunt utilizate pentru a face bucla () mai ușoară și mai ușor de citit. Afișarea informațiilor este separată de descărcarea informațiilor. În acest fel putem folosi alte dimensiuni de ecran etc. fără a fi nevoie să schimbăm întregul program.

Utilizați fișierul.ino și încărcați-l în editorul arduino. Configurați placa dvs. în editor. Atașați fișierul antet care asigură includerea în program a matricilor PROGMEM în stil C necesare.

card SD

Rețineți că majoritatea ecranelor disponibile de 1,8 inch au un slot pentru card SD în partea din spate a ecranului. Aceasta este o caracteristică frumoasă care vă ajută să stocați imagini mari pe card. Majoritatea microcontrolerelor nu au prea multă memorie la bord, ceea ce ajută.

Deși petrec mult timp încercând să pun cardul SD să funcționeze cu afișajul, nu am putut avea o situație viabilă. Aș putea folosi afișajul; preia cu succes un fișier de pe cardul SD, dar după aceea nu am mai putut ajunge pe ecranul TFT. Schimbarea bibliotecilor, schimbarea ordinii bibliotecilor și „dezbrăcarea” programului către cel mai mic organism pentru a exclude alte posibilități nu m-au ajutat.

Pentru a adăuga frustrarea mea; există o mulțime de exemple pe internet de oameni care fac lucruri similare cu rezultat pozitiv, hmmm. Ar putea fi o problemă hardware pe ecranul meu TFT? Sau ceva la care nu m-am gândit? Orice sugestie este binevenită pentru o următoare încercare. La final, după ce am petrecut câteva seri; Am decis să părăsesc acea cale. Deoarece imaginile au doar 50x50 pixeli (care rezultă la 5000 de octeți fiecare la culoare pe 16 biți) ESP este capabil să stocheze acest lucru în PROGMEM cu ușurință. Deci acesta este trucul pe care l-am folosit.

Această alegere a dus la o altă provocare. Cum să obțin imaginea BMP pe care o aveam într-un format lizibil. După câteva căutări, am descoperit site-ul de la Henning Karlsen, care a rezolvat acest puzzle mai devreme. El a creat un program care convertește fișiere de tip-p.webp

Pasul 4: Creați caseta

Creați caseta
Creați caseta
Creați caseta
Creați caseta
Creați caseta
Creați caseta

Aceasta nu este prima cutie de care aveam nevoie. O mulțime de cutii standard sunt disponibile de la furnizori. Folosind un ferăstrău mic, un cuțit, burghiu etc. este ușor să creați o gaură pentru afișajul din cutie. Dar nu am reușit niciodată să fac un dreptunghi exact. Probabil că nu sunt suficiente abilități și / sau răbdare;-)

Soluția: am avut noroc. Am o facultate care seamănă cu supermanul, dacă vine vorba de lăuda cu lucruri tehnice. Aceasta include și designul și tipărirea 3D. Așa că a decis să ofere o mulțime de timp liber pentru a măsura afișajul TFT și microcontrolerul și a crea o cutie în jurul acestuia. Totul se potrivește frumos, aruncă o privire asupra imaginilor. Acesta conține chiar și opțiuni pentru afișaj, o gaură pentru conectorul USB și un loc pentru fixarea microcontrolerului.

Mulțumesc Arjan pentru super-treaba făcută !!! Și mai bine, a fost atât de amabil să ofere tuturor acces la munca sa, așa că dacă îi descărcați fișierele de pe link și îl utilizați pentru propria dvs. imprimantă 3D, puteți crea aceeași casetă cu conținut.

Recomandat: