Myšlenka je vypůjčena z projektu. ESP8266 Zobrazení počasí.
Rozhodl jsem se to na mysli.
Byly stanoveny následující úkoly:
- Aktualizujte kód související s používáním nová verze knihovny ArduinoJson.h.
- Opište kód pomocí funkce millis () místo funkce delay (). Je jasné, že pomocí zpoždění k nastavení pauzy mezi změnou informací na displeji není možné implementovat ovládací prvky tlačítek;
- Značka stáhnout náčrtky přes Wi-Fi;
- Dostaňte se z rozměrného Wemos D1 R2 na Wemos D1 mini;
- Kdykoli je to možné Russify displej;
- Pro přístroje založené na LCD1602 použijte hotové pouzdro s otvory pro knoflíky;
- Použijte standardní tlačítka 6x6 připájená k prkénku. Přidejte ovládací tlačítka podsvícení, tlačítko karuselu pro změnu zobrazených dat a tlačítko pro nucenou aktualizaci dat ze serveru.
Byly použity následující komponenty:
- Pouzdro je vyrobeno z ABS plastu se sadou potahů na knoflíky;
- Nylonové vzpěry 6 + 5 mm samec M3 černý, 4 ks;
- Nylonové ořechy M3 černé, 4 ks;
- Nylonové sloupky 6 + 5 mm samec M2 bílý, 3 ks;
- Nylonový stojan 6 mm matný bílý, 1 ks;
- Nylonový stojan 8 mm matka bílá, 1 ks;
- Nylonové stojany 10mm matné bílé, 2 ks;
- LCD 1602 (I2C), žlutá;
- Wemos d1 mini;
- Stínění DC-Power Wemos d1;
- Prkénko na prkénko 3x7;
- Knoflíky 6x6, výška 7 mm, 3ks;
- Dupont dráty 10 cm matka-matka, 4 ks;
- Vodiče 24 AWG černé a červené;
- Silikonové dráty 20 AWG modré a bílé;
- Rezistory 5 kOhm - 2 ks, 10 kOhm - 1 ks (které se dostali do ruky);
- Napájecí adaptér 9V 1A;
- Dvousložkové epoxidové lepidlo.
Použitý případ má několik výhod. Za prvé, kromě displeje je perfektně umístěna standardní odpojovací deska 3x7 se svými nainstalovanými komponenty na obou stranách. Za druhé má na dvou koncích obdélníkové otvory pro chlazení. Ukázalo se, že propojky mezi těmito otvory jsou dokonale proříznuty mini-soubory 3 a 4 mm. Pokud vyříznete několik propojek a v případě vyříznete malý obdélníkový otvor, pak napájecí konektor DC-005 dokonale zapadne do díry vytvořené se složitou geometrií. Zadní strana tohoto případu má také velkou čtvercovou díru, která měla podle všeho instalovat baterie.Díky tomu je vhodné něco uvnitř propojit, aniž by bylo nutné pouzdro rozebrat. Následně může být jednoduše uzavřena sklem nebo plastem.
Stavět pokrok:
Nejprve byl vyroben prototyp na prkénku.
Poté je případ uzavřen souborem.
Poté se hlavní komponenty pájí a provede se montáž. Nohy byly speciálně ohnuté tak, aby odnímatelné klouby zapadly do výšky. Muselo být podáno několik nylonových stojanů, aby všechna tlačítka byla ve stejné výšce.
Výsledkem je, že přední strana desky s tlačítky, odpory a dráty je následující:
Výsledkem je, že vnitřky zařízení vypadají takto:
Po sestavení vypadá zařízení takto:
Překonávání obtíží:
- Po dlouhou dobu jsem nemohl pochopit, proč tlačítka nefungují, i když multimetr jasně ukazoval 0, když byla tlačítka stisknuta, a 4,6 - 5,0 V, když byla stisknuta (v závislosti na napájení). Ukázalo se, že v zařízeních Wemos / Lolin je nutné v náčrtu označit čísla GPIO jako čísla pinů. Například D5 je GPIO14. Takže toto je 14. kolík.
const int buttonPin = 14;
- Pro zobrazení počasí je nutná podmínka:
currentMillis - previousMillis == weatherTime
Přísná korespondence, protože musí být provedena jednou.
Pro požadavek na server je nutná podmínka:currentMillis - previousMillis> = getDataTime
Ztráta souladu, protože je prováděna, dokud není nastaven příznak „přijatá data“.
Ve skutečnosti to není zřejmé a pochopit, trvalo to docela dlouho. - Také jsem se musel trápit reakcí serveru:
String weather = root ["weather"] [0] ["main"]; String description = root ["weather"] [0] ["description"];
Zero byl zcela nenápadný. Ukázalo se, že v Moskvě jsou dvě meteorologické stanice a druhá z nich nefunguje vždy (pro příjem dat z ní musíte zadat [1], pokud je aktivní).
Nachází se úložiště s kódem a knihovnami zde.