Deoarece versiunea anterioara avea un mic "defect", schimband intensitatea luminoasa a afisajului matriceal foarte repede daca erau variatii bruste ale luminii din mediu apropiat, am corectat asta in fisierul LEDMatrixV2ro4.ino din subdirectorul LEDMatrixV2ro4.
In urma unei discutii cu adicontakt (care a fost pe elforum), am inceput sa studiez despre cum sa implementez modul de programare de la distanta OTA la placile de dezvoltare ce au ESP8266.
Am realizat ca am intalnit asa ceva la ceasul prezentat in articolul Ceas animat complex cu date de pe net
dar atunci nu a intrat in atentia mea modul de lucru.
Revenind, am cautat pe net despre OTA si am alesa sa ma informez din articolul ESP8266 OTA Updates with Arduino IDE | Over the Air de pe site-ul lui Santos.
Cautand un link pentru libraria ArduinoOTA am gasit articolul OTA Updates cu mai multe detalii, inclusiv despre configurarea cu parola si alte facilitati.
In mare, trebuie sa aven instalat Pyton 2.7 (daca aveti configurate placile cu ESP32, sigur il aveti) apoi se incarca programul BasicOTA din libraria ArduinoOTA
si astfel apare un port virtual cu un nume ce include adresa IP locala
Apoi se incarca programul dorit, in cazul de fata, un program ce trimite datele de la un senzor DHT11 (sau mai bine DHT22) si o tensiune pe un canal Thingspeak, acesta fiind adicontakt_DHT_OTA.ino.
Programul este derivat din unul clasic, la care am adaugat partea de conectare OTA.
Incarcand noul sketch, pe canalul de Thingspeak se pot vedea
In urma testelor cu un DHT22 (AM2302) am constatat ca apar uneori valori anormale, asa ca am pus un DTH11, dar si la acesta au aparut, mult mai rar, ce-i drept, erori, asa ca am cautat o librarie care ar putea sa fie ai stabila pentru ESP8266, asa ca am dat de cea numita DHT sensor library for ESPx
si am constatat ca si pentru DHT11 arata temperatura "cu virgula"
Dupa ce am testat un Ceas animat complex cu date de pe net, caruia ii pot regla, printre multe altele, intensitatea luminoasa de pe o pagina web locala, am realizat ca trebuie sa implementez reglajul automat al intenstatii luminoase si ceasului simplu de-l testasem, cel care preia ora de pe un server NTP si datele meteo de pe pe serverul openweathermap.
Dearece i-am printat si lui o carcasa, ca a ceasului complez (printata in oglinda), am constatat ca noaptea e bine sa am intensitate redusa, dar pe timpul zilei nu am se vad bine informatiile.
Am ales varianta cu divizor rezistiv format dintr-o fotorezistenta si o rezistenta de 10k, cum pusem la alt ceas, dupa modelul prezentat in articolul NodeMCU With LDR
Placa WeMos D1 Mini era conectata pe cablajul universal, asa ca au fost usor de montat rezistenta de 10k si fotorezistenta.
Schema de conectare este simpla,
dupa indicatiile din program:
iar partea adaugata pentru reglajul intensitatii in 5 trepte (0 - minim, 1, 2, 3 si 4 - maxim) este
iar in serial putem vedea:
Programul cu reglaj automat al intensitatii luminoase este LEDMatrixV2ro4, care este compus din mai multe fisiere:
Am facut o mica corectie pentru a se schimba mai lent intensitatea luminoasa a ecranului, facand modificari in fisierul LEDMatrixV2ro4.ino din LEDMatrixV2ro4.
Am testat o varianta foarte interesanta de ceas cu text deplasabil, care are si posibilitate de configurare de o pagina web locala, dar are si fisiere pentru a putea realiza o carcasa la imprimanta 3D, dupa realizarea acesteia.
Eu am facut mici modificari, in sensul de a adauga simbolul de grad, am lasat viteza vantului in km/h, iar presiunea in mmHg (milimetri coloana de mercur), nu am activat partea de stiri, de curs Bitcoin.
Programul modificat de mine este marquee1 (el are mai mute fisiere), iar detalii cu ce librarii sunt necesare se gasesc pe canalul Github original.
Schema este foarte simpla:
Eu nu am folosit partile urmatoare, de exemplu, la stiri se poate selecta APikey-ul si canalul de stiri:
Se poate configura legatura cu OctoPrint (aplicatie pentru imprimanta 3D):
Se poate afla cursul BitCoin:
si alte facilitati: sa reimprospatezi manual datele, sa stergi setarile, sa stergi setarile retelei wifi si sa reincarci un alt program (banuiesc ca pe wifi) un fisier bin la "Firmware Update".