luni, 16 ianuarie 2023

Termometru/higrometru cu DHT22/11 pe afisaj led din 4 caractere a 14 segmente fiecare cu interfata i2c (HT16K33)

    Pentru completarea articolului anterior, am testat un senzor DHT22 (AM2302), pe care l-am legat la placa Wemos D1 la D5, astfel:

    Am adaptat programul pentru a putea testa toate cazurile uzuale:
- temperatura negativa sub - 100C
- temperatur negativa cu o cifra (peste -100C)
- temperatura pozitiva mai mica de 100C
- temperatura pozitiva mai mare de 100C
- umiditate sub 10%
- umiditate peste 10%
    Folosind programul DHT_on_ht16k33_1.ino am facut 2 filmulete:

duminică, 15 ianuarie 2023

Ceas NTP pe afisaj led din 4 caractere a 14 segmente fiecare cu interfata i2c (HT16K33)

    Am intrat in posesia unor module de afisare cu led-uri ce au 4 caractere a 14 segmente fiecare (de fapt 15 cu puntele). Aceste 4 cifre sunt controlate cu integratul HT16K33 ce are interfata i2c, iar adresa implicita este 0x70.

   Schema de testare a afisajului este foarte simpla, in care am folosit o placa Wemos D1 Mini, un breadboard, cateva fire si un modul de afisare cu driver HT16K33 

Dupa cum se observa din poza, afisajul poate fi alimentat si de la 3,3V desi in fisa de catalog se recomanda doar 4,5-5,5V. In urma unor teste de lunga durata, ce vor urma, voi alege varianta corespunzatoare.
    Am verificat adresa modulului cu programul i2c_scanner gasind, cum era de asteptat, 0x70
apoi am mai conectat in paralel cu el un al doilea modul, caruia i-a facut un strap la A0 pentru a a  creste adresa cu o unitate:

si in ecranul de monitorizare seriala gasim
    Primele teste le-am facut folosit biblioteca Noiasca HT16K33 asa ca am modificat programului ceasului NTP cu afisaj OLED 
folosind schema
(programul este NTP_clock_on_HT16K33_v1.ino).
- ora vara (comutator la +3,3V)
- ora iarna (comutator la GND)
   Primele 2 filmulete rezultate sunt:
apoi am testat afisarea numelui zilei cu animatie (deplasare de la dreapta la stanga) cu ajutorului programului rescris de mine dayweek_scrolltext.ino 
    Se vede modul de prezentare in cele 2 filmulete
    Apoi am integrat modul de afisare animat la ceasul NTP cu selectie ora vara/iarna, programul devenind NTP_clock_on_HT16K33_v2.ino in care apare
- ora
- nume zi (alternativ: engleza si romana)
+

- data
- an
   Am facut si 2 filmulete:

joi, 22 decembrie 2022

Ceas analogic NTP pe afisaj P3 64x64 cu ESP32 (2)

     Fata de ceasul prezentat in prima parte, am mai facut mici modificari, in primul rand am testat cum sa fac reglajul intensitatii, deoarece pe timp de noapte e deranjanta intensitatea maxima a culorilor.

test control intensitate la afisaj led P3 64x64 cu ESP32

test for control the brightness at P3 64x64 led display

apoi am adaugat o fotorezistenta intr-un circuit de divizor rezisitv ca in articolul ESP32 - light sensor 
si programul meu de test a fost Analog_Clock_NTP_P3_BMZ_1b.ino, in care am pastrat conectarea divizorului rezistiv de la 3.3V la pinulGPIO 36 (adica ADCO0):
adica alimentare de la 3,3V a fotorezistentei, conectare la pinul 36 (GPIO36), apoi rezistenta de 10kΩ la masa (GND).
    Cele 2 filmulete de test sunt:
apoi am realizat ca limba de ora este ascunsa de cea de minute, asa ca am modificat programul, ca limba de secunde sa fie afisata prima, apoi cea de minute si peste cea de ore;
 programul modificat devine Analog_Clock_NTP_P3_BMZ_1c.ino.
   Am vrut sa implementez reglajul orei de vara/iarna de pe o pagina locala web, ca la alte ceasuri, dar am avut ceva dificultati, asa ca din lipsa de timp, am implementat reglajul cu ajutorul unui comutator,care muta pinul 23 la +3.3V pentru ora vara (DST)
-\respectiv la masa (GND) la ora iarna

  Despre ora de vara, respectiv de iarna puteti gasi multe informatii in articolul de la wikipedia.org/wiki/Ora_de_vara .
   Programul modifcat este Analog_Clock_NTP_P3_BMZ_1d.ino si filmuletele, care arata modul de functionare sunt:

duminică, 18 decembrie 2022

Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led (cifra 3 intoarsa)


     Ceasul prezentat in continuare a fost ideea dlui Ghita Georgel, deoarece indica mai frumos secundele si deriva din ceasurile prezentate in anii trecuti, in articolul Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led

sau Ceas cu reglaj manual al orei si datei, alarma si termometru cu higrometru si afisaj multiplexat cu 4 cifre led (3)
   Schema acestui ceas, desenata de dl Georgel, este
si se pastreaza masurarea temperaturi cu o simpla dioda (1N4148) si reglajul automat al intensitatii luminoase functie de lumina ambianta (doar ca acum divizorul rezistiv format din fotorezistenta si rezistenta de 10kΩ este alimentat din tensiunea de referinta de 1,1V).
    Avem si o simulare 3D (randare) a montajului si a cablajului:
   Real, montajul, in versiunea de teste, arata asa:
   Dupa incarcarea prgramului main/multiplexedclock5_1.ino, pe ecran avem
- ora:
- data (zi.luna)
- an
- temperatura
   De asemenea, programul permite posibilitatea reglajului orei de alarma (alarma activa este indicata de un punct afisaj in dreapta), dar si activarea si dezactivarea ei din meniu.
    A ramas in lista de imbunatatiri, cel putin, corectarea temperaturii din meniu, o facilitate sugerata de dl Georgel.
   In curand o sa postez si niste filmulete si un link catre proiectul cablajului.

PS1: Modificarea alimentarii divizorului rezistiv fotorezistenta - rezistenta de la 5V la 1,1V a trebuit facuta deoarece, pentru marirea preciziei la citirea temperaturii folosesc referinta de 1,1V asa ca si tensiunea de pe orice intare analogica trebuie sa fie maxim 1,1V... pana acum am folosit niste fotorezistente IPRS de prin anii '90 care avea o rezistenta mare chiar si la flux luminos mare pe ele, ceea ce facea ca tensiunea pe pinul Arduino sa fie pana in 1,1V.. acum am terminat "rezerva" si am constatat ca afisajul avea luminozitate maxima indiferent de nivelul intensitatii luminoase din preajma fotorezistentei, asa ca ma masurat tensiunea pe pin si era peste limita de 1,1V asa ca am schimbat ca divizorul rezistiv sa fie alimentat la maxim 1,1V...
   Ca idee, primele fotorezistente erau ca cele de pe randul de jos, cele noi cam ca cele de pe primul rand: