luni, 17 aprilie 2023

Ceas NTP cu selectie ora vara/iarna pe afisaj 16x8 leduri adresabile

   In completarea articolului anterior, in care am realizat un ceas NTP pe afisaj 16c8 leduri adresabile, de data asta am optimizat programul, incluzand si selectie ora vara sau ora de iarna, dar si reglaj intensitate luminoasa pe timp de zi, respectiv noapte.

  Pentru a putea selecta ora de vara sau de iarna, am ales solutia comutarii pinului analogic la +3,3V, respectic la masa (GND), asa ca schema ceasului devine

   Deoarece, in programele anterioare, ora se actualiza greu, am folosit ce aveam implemementat in alte proiecte, de exemplu in Ceas NTP pe afisaj grafic cu driver ST7789 si Wemos D1 (ESP8266)
iar pentru optimizarea afisarii ce am implementat in ceasul NTP inelar (cu 60 leduri adresabile) - partea a 2-a, asa ca progaramul actual este NTP_clock_16x8_WS2812_v2.ino.
    In functie de pozitia comutattorului, avem:
- ora de vara (pin A0 la 3.3V)
- ora de iarna (A0 la GND)
  Pentru intensitatea luminoasa de zi (10 din 255), consumul este de cca. 200mA:
    Am pastrat schimbarea culorilor, cum am prezentat in articolul anterior si modul de functionare se vede in filmulelele:

ceas NTP cu ora vara/iarna pe afisaj din 16x8 leduri adresabile (1)

NTP clock with DST on 16x8 adresable leds (1)


vineri, 14 aprilie 2023

Ceas NTP pe afisaj 16x8 leduri adresabile

    Am achizitionat un afisaj cu 32x8 leduri adresabile (WS2812) si am vrut sa reproduc proiectul WS2812-WeatherStation al lui 707pheonix


doar ca pana sa ma prind eu ca proiectul initial a fost facut pentru o matrice de 32 leduri la rand 
s-a defectat de la jumatate, ramanand functional un 16x8
ulterior constatand ca sunt defecte 8 sau 9:
si ca matrice e altfel, cu 8 leduri pe coloana
si m-am apucat sa studiez programul original sa fac ceva cu partea ramasa... am observat ca in proiect sunt niste chestii interesante, asa ca le-am pastrat si am modificat caracterele sa folosesc cat mai mult din zona de 16x8. 
adica
    Programul rezultat este NTP_clock_16x8_WS2812_v1a2.ino si modul de functionare se vede in cele 2 filmulte:
   Dar ceasul e prea static, asa ca am ales sa schimb culorile orelor, minutelor si secundelor, astfel:
ca rezumat, folosesc 6 culori principale (din cele 8 principale posibile, adica fara alb si negru), ce se schimba la fiecare 10 minute si la fiecare secunda, respectiv la fiecare ora astfel:
- orele 0, 6, 12 si 18, minutele cu valoare mai mica de 10 (format general 0x), respectiv secundele 0, 6, 12, 18, 24, 30, 36, 42, 48, 54 apar in culoarea albastru;
- orele 1, 7, 13 si 19, minutele intre 10 si 19 (format general 1x), respectiv secundele 1,7, 13, 19, 25, 31, 37, 43, 49, 55 apar in culoarea verde;
- orele 2, 8, 14 si 20, minutele intre 20 si 29 (format general 2x), respectiv secundele 2,8, 14, 20, 26, 32, 38, 44, 50, 56 apar in culoarea bleo (albastru-verzui sau verde-albastrui);
- orele 3, 9, 15 si 21, minutele intre 30 si 39 (format general 3x), respectiv secundele 3,9, 15, 21, 27, 33, 39, 45, 51, 57 apar in culoarea rosie;
- orele 4, 10, 16 si 22, minutele intre 40 si 49 (format general 4x), respectiv secundele 4,10, 16, 22, 28, 34, 40, 46, 52, 58 apar in culoarea mov;
- orele 5, 11, 17 si 23, minutele intre 50 si 59 (format general 5x), respectiv secundele 5, 11, 17, 23, 29, 35, 41, 47, 53, 59 apar in culoarea galbena.
    Pentru a fi mai convingator, am facut poze la orele 10 cand acestea au culoarea galbena, respectiv orele 11 cand acestea au culoarea galbena:
- minute 0x, albastre:
- minute 1x, verzi:
- minute 2x, bleo:
- minute 3x, rosii
- minute 4x, mov:
- minute 5x, galbene:
si, dupa cum era de asteptat, ora 12:0x are toate cifrele doar in albastru
    Programul modificat este NTP_clock_16x8_WS2812_v1b.ino si modul de prezentare a orelor este mult mai clar in cele 2 filmultele:
    Schema folosita este:

   In perioada urmatoare, o sa adaug selectie ora de vara/iarna, un control al intensitatii (zi/noapte), poate si ceas in format de 12 ore... totul in functie de timpul liber.

duminică, 9 aprilie 2023

Ceas NTP inelar (cu 60 leduri adresabile) - partea a 2-a

   Dupa ce am tot testat ceasul NTP inelar (cu 60 leduri adresabile), apoi am adaugat alte afisaje (4 OLED-uri sau unul cu 4 cifre din 14 segmente),

am gasit un proiect interesant pentru o carcasa de realizat cu imprimanta 3D



asa ca am trecut la realizarea carcasei, dupa cateva teste, cand nu am gasit filament alb, am scos straturile albe, de difuzie, 

   Schema este identica

si programul folosit a fost acelasi, deci pot selecta:
- ora de iarna
- ora de vara (DST)

de asemenea, programul are implementat reglaj al intensitatii luminoase pentru zi si noapte, doar ca are ore fixe.

    Am facut si 2 filmulete:

ceas NTP cu 60 leduri adresabile (3)

Round-LED-NTP-Clock (3)

   Ulterior, am simplificat programul mai avansat de la ceasul, pentru ca folosea biblioteca SolarCalculator (determina ora de rasarit si apus de soare, in functie de coordonatele geografice si ora locala) si afisa si pe afisajul cu 14-segmente si 4 cifre. In plus, reteaua wi-fi se poate schimbata usor de pe telefon, cum e prezentat in articolul configurare usoara conectare la retea Wi-Fi pentru microcontrolerele ESP8266/ESP32onfigurare usoara conectare la retea Wi-Fi pentru microcontrolerele ESP8266/ESP32

asa ca programul devine Round-LED-Clock2.ino.
   Am incarcat inca 2 filmuletele:

sâmbătă, 8 aprilie 2023

Ceas NTP pe afisaj grafic cu driver ST7789 si Wemos D1 (ESP8266) - partea a 2-a

    Fata de ce am prezentat in articolul anterior, acum am modificat ca un minut sa am ceasul ca in articolul anterior si in urmatorul sa fie doar un ceas analogic mare.

   Schema de conectare a ramas identica, fara nici o modificare:
   Doar programul devine TFT_Clock_analog_digital_v2a.ino si cu el putem avea:
- ora de vara, in format doar de ceas analogic
- ora de iarna, in format doar de ceas analogic
- ora de vara in format analogic si digital
- ora de vara in format analogic si digital

luni, 3 aprilie 2023

Ceas NTP pe afisaj grafic cu driver ST7789 si Wemos D1 (ESP8266)

    Acum ceva timp, am realizat un ceas NTP pe afisaj grafic cu driver ILI9341 si Wemos D1 (ESP8266), asa ca am zis sa adaptez ceasul si pe un afisaj de 240x240 cu driver ST7789.

   Diferenta mare e ca afisajul cu ILI9341 are rezolutie 320x240, iar cel cu ST7789 are 240x240, asa ca a trebuit sa modific programul pentru a incapea si ceasul analogic si cel digital. Am pastrat dimensiunea caracterelor pentru ceasul digital si am redus dimensiunea ceasului analog, care e doar informativ.

- ceas "original" pe afisajul cu rezolutie 320x240

- ceas pe afisajul cu rezolutie 240x240

   Programul folosit este similar cu cel din programul anterior, doar ca este adaptat la afisajul cu ST7789 ce functioneaza cu biblioteca Bodmer/TFT_eSPI si am modificat ca pinul analogic sa fie cel ce face selectia de ora de vara sau de iarna. De asemenea, trebuie modificat, pentru ST7789, si fisierul User_setup.h care este in interiorul bibliotecii TFT_eSPI, la mine este asa:
   Schema de conectare este:
   In functie de pozitia comutatorului (sau conectarea pinului analogic A0), avem:
- ora de iarna (A0 la GND)
- ora de vara (A0 la 3,3V)
   Am realizat si niste filmulete:
    Consumul acestui ceas nu este foarte mare, fiind maxim de 100mA la o alimentare din 5V
dar consumul mediu e pe la 65-70mA.