Az ötletet a projektből vettük kölcsön. ESP8266 időjárás-kijelző.
Úgy döntöttem, hogy eszembe jut.
A következő feladatokat tűzték ki:
- Frissítse a felhasználással kapcsolatos kódot új verzió könyvtár ArduinoJson.h.
- Írja át a kódot a millis () függvény segítségével, a késleltetés () funkció helyett. Nyilvánvaló, hogy a késleltetés használatával szünetet lehet beállítani a kijelzőn megjelenő információk megváltoztatása között, lehetetlen végrehajtani a gombvezérlőket;
- make töltse le vázlatait Wifi-n keresztül;
- Távolodjon el a terjedelmes Wemos D1 R2-től a Wemos D1 mini készüléken;
- Amikor csak lehetséges Erősít képernyő;
- Az LCD1602 alapú készülékekhez használjon kész tokot gombnyílásokkal;
- Használjon szabványos 6x6-os gombokat, amelyek megforrasztottak a kenyérpulthoz. Adjon hozzá háttérvilágítás vezérlőgombot, körhinta gombot a megjelenített adatok megváltoztatásához és egy gombot az adatok frissítésének kényszerítéséhez a szerverről.
A következő komponenseket használták:
- A tok ABS műanyagból készült, a gombok fedéllel;
- Nylon rugók 6 + 5 mm-es hím M3 fekete, 4 db;
- M3 nylon dió fekete, 4 db;
- Nylon oszlopok 6 + 5 mm-es hím M2 fehér, 3 db;
- Nylon állvány 6 mm anyafehér, 1 db;
- Nylon állvány 8 mm anyafehér, 1 db;
- Nylon állványok 10mm anyafehér, 2 db;
- LCD 1602 (I2C), sárga;
- Wemos d1 mini;
- Wemos d1 DC-Power pajzs;
- Táblás kenyérvágódeszka 3x7;
- Gombok 6x6, magasság 7 mm, 3db;
- Dupont vezetékek 10cm anya-anya, 4 db;
- 24 AWG vezeték fekete és piros;
- Szilikon huzalok 20 AWG kék és fehér;
- Ellenállások 5 kOhm - 2 db, 10 kOhm - 1 db (kézhez jöttek);
- Hálózati adapter 9V 1A;
- Kétkomponensű epoxi ragasztó.
A használt esetnek számos előnye van. Először is, a kijelzőn kívül a szokásos 3x7 szabványos leválasztó tábla, amelynek mindkét oldalára telepített alkatrészek, tökéletesen illeszkedik a magasságba. Másodszor, két végén téglalap alakú nyílások vannak a hűtéshez. Kiderült, hogy az e lyukak közötti átkötéseket tökéletesen vágják a 3 és 4 mm-es mini fájlok. Ha kivág egy pár jumpert és kicsi téglalap alakú lyukat vág be a házba, akkor a DC-005 tápcsatlakozó tökéletesen bejut a komplex geometriájú lyukba. A ház hátuljában szintén van egy nagy négyzet alakú lyuk, amelyben láthatóan akkumulátorokat kellett telepíteni.Ezen keresztül kényelmesen csatlakoztathat valamit a házba anélkül, hogy szétszedné a házat. Ezt követően egyszerűen le lehet zárni üveggel vagy műanyaggal.
A haladás fejlesztése:
Először prototípust készítettek egy kenyérdeszkán.
Ezután az ügyet aktával véglegesítik.
Ezután a fő alkatrészeket megforrasztják és a szerelést elvégzik. A lábakat speciálisan meghajlítottuk úgy, hogy az eltávolítható illesztések magasságukba illeszkedjenek. Néhány nejlontartót be kellett rakni, hogy az összes gomb azonos magasságban legyen.
Ennek eredményeként a tábla elülső oldala gombokkal, ellenállásokkal és vezetékekkel a következő:
Ennek eredményeként a készülék belseje így néz ki:
Összeszereléskor a készülék így néz ki:
A nehézségek leküzdése:
- Hosszú ideig nem tudtam megérteni, hogy miért nem működnek a gombok, bár a multiméter egyértelműen 0-t mutatott, amikor a gombokat nyomták, és 4,6–5,0 V-ot, amikor megnyomták (az energiaellátástól függően). Kiderült, hogy a Wemos / Lolin készülékekben a vázlaton a GPIO-számokat pin-számokként kell feltüntetni. Például D5 jelentése GPIO14. Tehát ez a 14. tű.
const int buttonPin = 14;
- Az időjárás megmutatásához a következő feltétel szükséges:
currentMillis - previousMillis == weatherTime
Szigorú levelezés, mert ezt egyszer kell megtenni.
A kiszolgálóhoz történő kéréshez a következő feltétel szükséges:currentMillis - previousMillis> = getDataTime
Laza a megfelelés, mert addig hajtják végre, amíg az „adatok fogadva” zászlót be nem állítják.
Valójában ez nem nyilvánvaló, és ennek megértése elég hosszú időbe telt. - Kínoznom kellett magam a szerver válaszával is:
Időjárás = gyökér ["időjárás"] [0] ["fő"]; Karakterlánc leírás = gyökér ["időjárás"] [0] ["leírás"];
Zero teljesen észrevétlen volt. Kiderül, hogy két meteorológiai állomás van Moszkvában, és a második nem mindig működik (az adatok fogadásához meg kell adnia az [1] -et, ha aktív).
A tároló kóddal és könyvtárakkal található itt.