Fata de ceasul anterior am adaugat in program facilitatea de a arata formatul de 12 ore cu indicare AM/PM cu ultimul punct zecimal al cifri din dreapta, deoarece nu mai am pini liberi la placa Arduino (as mai avea pe D0/D1 - Rx/Tx, dar nu e ok sa-i folosesc, sau as putea muta pentru ca am Nano butoanele de meniu si crestere valoar epe A6/A7), dar programul nu poate fi folosit pe mai multe tipuri de placi (Nano, Uno, Pro Mini, chiar si Mega, etc)
Formatul aceste de 12 ore mi-a fost cerut insistent 😁😃 de un cititor al blogurilor mele din Nigeria, asa ca am zis ca daca tot am dezvoltat proiectul, sa fac si asta.
In programul multiplexed_scroll_clock3c.ino se schimba simplu valoarea h12 = 0 pentru formatul de 24 ore, respectiv h12 = 1 pentru formatul de 12 ore.
Am pastrat facilitatea de a functiona cu anod comun sau catod comun prin simpla schimbare a variabilei tip = 0 pentru catod comun, respectiv tip = 1 pntru anod comun:
inclusv de a testat functionarea cu variabila test = 1, respectiv pentru functionare nomala test = 1
Dupa cum se vede din pozele de mai jos, ora 1:01 PM sau 13:01 in formatul de 24 ore
respectiv ora 2:02 AM, respectiv 2:02 in format de 24 ore
Microcontroler-ele ESP8266 care se gasesc pe placi simple sau cu interfata USB (NodeMCU, WeMos, etc) pot lucra in retele Wi-Fi ("uairles") ca un simplu client intr-o retea sau pot fi ele "router-e" in modul AP (Acces Point)
Multe proiecte lucreaza intr-o retea Wi-Fi clasica, dar am gasit un material in care se foloseste un ESP8266 ca AP (creeaza reteaua) si altul care se conecteaza la acea retea Wi-Fi si comunica intre ele.
Materialul se numeste Accesspoint - Station Communication Between Two ESP8266 MCUs si a fost usor de reprodus.
Am facut si eu mici modificari in programele AP-ului si clientului (AP_1.ino, respectiv ST_1.ino), pe ecranele de monitorizare seriala, vedem, la server-ul (router-ul) nostru
iar la client, care se conecteaza imediat la reteaua "Wemos_AP" si saluta pe sef
care-i raspunde
Reteaua Wi-Fi "Wemos_AP" o pot vedea si de pe telefon
14.01.2019
Dupa o scurta perioada am observat ca se pierde comunicarea dintre cele 2 ESP-uri, din cauza "clientului", asa ca am incercat diverse metode (subrutina de reconectare, reset soft, apoi hard reset)... singura cu sanse vizibile de reusita a fost reset-ul hard, dar si acolo am intampinat probleme, pana mi-am adus aminte ca am mai rezolvat cumva aceasta problema la o placa de retea clasica cu W5100 si am presentat solutia in articolul Termostat controlat de pe o pagina web (2).
Pe scurt solutia era sa schimb ordinea clasica a definirii pinului ca iesire si trecerea lui in HIGH, adica intai i spun ca trebuie sa fie in HIGH si apoi ca e pin ca iesire...
ca sa fiu sigur i-am mai "spus" odata ca trebuei sa fie in HIGH...
Schema de conectare e simpla: pinul D0 se leaga la RST (RESET) si acesta ajunge in LOW cand se numara prea multe iteratii sau se pierde legatura sau "se pierd date pe drum"...
19.01.2019
Am schimbat D0 cu D5 si legatura e mult mai stabila.
01.02.2019
Am testat si versiunea de a "culca" clientul si a-l "trezi" periodic pentru a putea reduce mult curentul, pentru a putea face ceva util, gen statie meteo cu comunicare wi-fi. Am realizat un filmulet in care se poate vedea partea cu consumul, care se numeste Comunicatie wi-fi intre 2 ESP-uri si se revine la conectarea pinului D0 la RESET, "client"-ul foloseste programul ST_1_sleep.ino
Fata de articolul anterior, unde am prezentat un Ceas RTC cu reglaj si termometru in 2 zone de data asta, Bogdan ARGATU a modificat programul pentru a avea indicatii pentru trei zone, pastrand facilitatea de ceas cu reglaj.
Schema de conectare este identica, doar afisajul este 2004, adica are 20 coloane si 4 randuri, in locd e 1602 cu 16 coloane si 2 randuri.
Programul modificat de Bogdan este clock_3ds18b20.ino, care incarcat intr-o placa de dezvoltare Arduino montata conform schmei de mai sus prezinta datele cum se vede in filmuletul Ceas RTC cu reglaj si temometru in 3 zone realizat de el:
Montajul realizat de Bogdan:
iar cei trei senzori sunt montati, unul in camera la 1,5m inaltime, unul pe turul de la centrala (la etaj) si unul exterior.
Eu am facut mici modificari la modul de a afisa temperaturile fara a se deplasa punctul zecimal si simbolul de grad Celsius, dupa cum se vede incarcand programul clock_3ds18b20_v1.ino.
Fata de programul meu, Bogdan a schimbat semnul de plus cu o pauza pentru valorile pozitive, pentru toate cele 3 temperaturi, dupa cum se vede pentru una din ele: