Ideja ir aizgūta no projekta. ESP8266 laika displejs.
Es nolēmu to atcerēties.
Tika izvirzīti šādi uzdevumi:
- Atjauniniet ar kodu saistīto kodu jaunā versija bibliotēkas ArduinoJson.h.
- Pārrakstiet kodu, izmantojot funkciju millis (), nevis kavēšanās () funkciju. Ir skaidrs, ka, izmantojot aizkavi, lai iestatītu pauzi starp informācijas mainīšanu displejā, nav iespējams ieviest pogas vadību;
- Padarīt lejupielādēt skices, izmantojot Wifi;
- Dodieties prom no lielgabarīta Wemos D1 R2 uz Wemos D1 mini;
- Kad vien iespējams Rusificēt displejs;
- Ierīcēm, kuru pamatā ir LCD1602, izmantojiet gatavu korpusu ar pogu caurumiem;
- Izmantojiet standarta 6x6 pogas, kas pielodētas pie maizes dēļa. Pievienojiet fona apgaismojuma vadības pogas, karuseļa pogu parādīto datu mainīšanai un pogu datu atjaunināšanas piespiešanai no servera.
Tika izmantoti šādi komponenti:
- Korpuss ir izgatavots no ABS plastmasas ar pogām;
- Neilona balsti 6 + 5 mm vīriešu M3 melni, 4 gab .;
- M3 neilona rieksti melni, 4 gab .;
- Neilona stabi 6 + 5 mm vīriešu M2 balti, 3 gab .;
- Neilona statīvs 6 mm mātes balts, 1 gab .;
- Neilona statīvs 8 mm mātes balts, 1 gab .;
- Neilona plaukti 10mm māte balti, 2 gab.;
- LCD 1602 (I2C), dzeltens;
- Wemos d1 mini;
- Wemos d1 līdzstrāvas vairogs;
- Dēļu maizes dēlis 3x7;
- Pogas 6x6, augstums 7 mm, 3gab .;
- Dupont vadi 10cm māte-māte, 4 gab .;
- 24 AWG vadi melni un sarkani;
- Silikona stieples 20 AWG zilā un baltā krāsā;
- Rezistori 5 kOhm - 2 gab, 10 kOhm - 1 pc (kas nāca pie rokas);
- Strāvas adapteris 9V 1A;
- Divkomponentu epoksīda līme.
Izmantotajam gadījumam ir vairākas priekšrocības. Pirmkārt, papildus displejam, standarta 3x7 standarta atdalīšanas dēlis ar komponentiem, kas uzstādīti uz tā abās pusēs, lieliski iederas augstumā. Otrkārt, divos galos tam ir taisnstūrveida atveres dzesēšanai. Izrādījās, ka džemperi starp šiem caurumiem ir lieliski sagriezti ar 3 un 4 mm minifailām. Ja jūs sagriežat pāris džemperus un gadījumā izgriezāt nelielu taisnstūra caurumu, tad strāvas savienotājs DC-005 lieliski nonāk sarežģītas ģeometrijas caurumā. Arī šīs lietas aizmugurē ir liels kvadrātveida caurums, kurā, acīmredzot, bija paredzēts uzstādīt baterijas.Caur to ir ērti kaut ko savienot iekšpusē, neizjaucot lietu. Pēc tam to var vienkārši aizvērt ar stiklu vai plastmasu.
Veidojiet progresu:
Vispirms uz maizes dēļa tika izgatavots prototips.
Tad lieta tiek pabeigta ar lietas materiāliem.
Pēc tam galvenās sastāvdaļas tiek pielodētas un tiek veikta montāža. Kājas bija speciāli saliektas tā, lai atdalāmie savienojumi ietilptu augstumā. Bija jāiesniedz pāris neilona plaukti, lai visas pogas būtu vienā augstumā.
Rezultātā tāfeles priekšējā puse ar pogām, rezistoriem un vadiem ir šāda:
Rezultātā ierīces iekšpuse izskatās šādi:
Salikusi ierīce izskatās šādi:
Grūtību pārvarēšana:
- Ilgu laiku es nevarēju saprast, kāpēc pogas nedarbojas, lai gan multimetrs skaidri parādīja 0, kad tika nospiestas pogas, un 4,6 - 5,0 V, kad tika nospiests (atkarībā no barošanas avota). Izrādījās, ka Wemos / Lolin ierīcēs skicē ir jānorāda GPIO numuri kā pin skaitļi. Piemēram, D5 ir GPIO14. Tātad šī ir 14. tapa.
const int buttonPin = 14;
- Lai parādītu laika apstākļus, ir nepieciešams nosacījums:
currentMillis - previousMillis == weatherTime
Stingra sarakste, jo tā ir jāveic vienreiz.
Lai pieprasītu serveri, ir nepieciešams šāds nosacījums:currentMillis - previousMillis> = getDataTime
Atbilstība zaudē spēku, jo tā tiek izpildīta, līdz tiek iestatīts karodziņš “dati saņemti”.
Faktiski tas nav acīmredzami, un, lai to saprastu, bija vajadzīgs diezgan ilgs laiks. - Man nācās sevi mocīt arī ar servera atbildi:
Stīgu laika apstākļi = sakne ["laika apstākļi"] [0] ["galvenā"]; Stīgas apraksts = sakne ["laika apstākļi"] [0] ["apraksts"];
Nulle bija pilnīgi neuzkrītoša. Izrādās, ka Maskavā ir divas laika stacijas, un otrā no tām ne vienmēr darbojas (lai no tās saņemtu datus, jums jānorāda [1], ja tā ir aktīva).
Atrodas krātuve ar kodu un bibliotēkām šeit.