Ideen er lånt fra prosjektet. ESP8266 Værskjerm.
Jeg bestemte meg for å få det til tankene.
Følgende oppgaver ble satt:
- Oppdater bruksrelatert kode ny versjon bibliotek ArduinoJson.h.
- Omskriver koden ved bruk av millis () -funksjonen i stedet for forsinkelse () -funksjonen. Det er tydelig at det er umulig å bruke knappekontroller ved å bruke forsinkelse for å stille en pause mellom å endre informasjon på skjermen.
- make last ned skisser via Wifi;
- Kom deg vekk fra den klumpete Wemos D1 R2 på Wemos D1 mini;
- Når det er mulig Russify-skjerm;
- Bruk et ferdig etui med knapphull for enheter basert på LCD1602;
- Bruk standard 6x6 knapper loddet til brødbordet. Legg til kontrollknapper for bakgrunnsbelysning, en karusellknapp for å endre dataene som vises og en knapp for å tvinge dataoppdateringer fra serveren.
Følgende komponenter ble brukt:
- Vesken er laget av ABS-plast med et sett deksler til knappene;
- Nylonstiver 6 + 5 mm hann M3 svart, 4 stk;
- M3 nylon nøtter svart, 4 stk;
- Nylonstolper 6 + 5 mm hann M2 hvit, 3 stk;
- Nylon stativ 6 mm mor hvit, 1 stk;
- Nylon stativ 8 mm mor hvit, 1 stk;
- Nylonreoler 10mm morhvit, 2 stk;
- LCD 1602 (I2C), gul;
- Wemos d1 mini;
- Wemos d1 DC-Power skjold;
- Brødbrett 3x7;
- Knapper 6x6, høyde 7 mm, 3stk;
- Dupont-ledninger 10 cm mor-mor, 4 stk;
- 24 AWG-ledninger svart og rødt;
- Silikontråder 20 AWG blå og hvit;
- Motstand 5 kOhm - 2 stk, 10 kOhm - 1 stk (som kom til hånden);
- Strømadapter 9V 1A;
- To-komponent epoksylim.
Den brukte saken har flere fordeler. For det første, i tillegg til skjermen, passer standard 3x7 standard avkoblingskort, med komponenter installert på begge sider, perfekt i høyden. For det andre har den i to ender rektangulære åpninger for avkjøling. Det viste seg at hopperne mellom disse hullene er perfekt kuttet av minifiler 3 og 4 mm. Hvis du kutter et par hoppere og kutter et lite rektangulært hull i saken, så går DC-005 strømkontakten perfekt inn i hullet i kompleks geometri. Baksiden av denne saken har også et stort firkantet hull, som tilsynelatende skulle installere batterier.Gjennom det er det praktisk å koble noe inni uten å demontere saken. Deretter kan den ganske enkelt lukkes med glass eller plast.
Bygg fremgang:
Først ble det laget en prototype på en brødplate.
Da blir saken avsluttet med en fil.
Etter dette blir hovedkomponentene loddet og beslaget blir utført. Bena var spesielt bøyd slik at de avtakbare leddene passet i høyden. Et par nylonstativer måtte settes inn slik at alle knappene var i samme høyde.
Som et resultat er forsiden av brettet med knapper, motstander og ledninger som følger:
Som et resultat ser enhetens innside slik ut:
Når enheten er montert, ser den slik ut:
Overvinne vanskeligheter:
- I lang tid kunne jeg ikke forstå hvorfor knappene ikke fungerte, selv om multimeteret tydelig viste 0 når knappene ble trykket og 4.6 - 5.0 V når de ble trykket (avhengig av strømforsyningen). Det viste seg at i Wemos / Lolin-enheter er det nødvendig å indikere GPIO-nummer som pin-tall i skissen. For eksempel er D5 GPIO14. Så dette er den 14. pinnen.
const int-knappPin = 14;
- For å vise været er tilstanden nødvendig:
currentMillis - forrigeMillis == weatherTime
Streng korrespondanse, fordi det må gjøres en gang.
For å sende en forespørsel til serveren, er betingelsen nødvendig:currentMillis - forrigeMillis> = getDataTime
Løs samsvar, fordi den blir utført til flagget “mottatt data” er satt.
Dette er faktisk ikke opplagt, og for å forstå dette tok det ganske lang tid. - Jeg måtte også plage meg med serverens svar:
String weather = root ["weather"] [0] ["main"]; Strengbeskrivelse = rot ["vær"] [0] ["beskrivelse"];
Null var helt opplagt. Det viser seg at det er to værstasjoner i Moskva, og den andre av dem fungerer ikke alltid (for å motta data fra den, må du spesifisere [1] hvis den er aktiv).
Depotet med kode og biblioteker er lokalisert her.