Se afișează postările cu eticheta termometru. Afișați toate postările
Se afișează postările cu eticheta termometru. Afișați toate postările

miercuri, 21 februarie 2024

Ceas google cu data si termometru (3)

    In 2019 realizasem impreuna cu Mihai un ceas cu 6 matrici ce avea implementat modul de schimbare automata a orei de vara/iarna,

   Cautand acum ceva similar si usor de implementat am gasit 2 materiale identice publicate pe site-uri diferite, ce foloseau partea de calcul ca si primul meu ceas (am avut acelasi material de inspiratie, https://github.com/schreibfaul1/ESP8266-LED-Matrix-Clock):
   Studiind informatiile, am gasit formula de calcul pentru datele de schimbare ale orei de vara si de iarna, programul rezultat este BIG_Clock_ESP8266_DeskClock1h
   Schema folosita este identica
 
ca si montajul
   Am facut si 2 filmulete:

marți, 23 ianuarie 2024

Ceas google cu data si termometru

     Am primit de la un vechi cititor al blogurilor mele si al canalului de youtube o solicitare sa modific un program de ceas ce preia ora de pe un server google, astfel incat sa arate si data, programul are si un termometru cu senzor DS18B20.

   Am cautat un pic pe net, dar nu am gasit prea multe exemple, doar ESP8266 Animated Clock on 8x8 LED Matrices mi-a inspirat suficiente informatii.

   Apoi am dat de biblioteca HTTP-DateTime, care e usor de folosit, (programul modificat de mine este Google_clock_serial.ino) si prezentarea informatiilor este in ecranul de monitorizare seriala, dupa cum se vede in filmuletele:
apoi am revenit la ceasul cu prezentarea informatiei pe 4 matrici de 8x8 leduri controlate cu MAX7219.
    Desi am tot testat diverse modele de ceas NTP, am vrut sa extrag singur informatiile (fara biblioteca), doar ca m-am inspirat in biblioteca prezentata mai sus.
   Primul ceas ce are si informatii despre data este prezentat in filmuletele:
care foloseste programul BIG_Clock_ESP8266_DeskClock1c (de fapt sunt 3 fisiere)
apoi am modificat programul sa poata afisa si versiunea ceasului in format de 12 ore, cum se foloseste in zona Asiei, asa ca am mai facut 2 filmulete, folosind programul BIG_Clock_ESP8266_DeskClock1e
   Schema este simpla, eu realizand un montaj pe un breadboard (o placa de dezvoltare Wemos D1 mini, un modul cu DS18B20 si un modul de afsare cu 4 matrici de 8x8 cu MAX7219:
Conectarea afisajului este 
similar schemei
folosind afisajul din dreapta (model nou)
iar senzorul DS18B20 la D4 (GPIO2) fiind alimentat la +5V si GND
PS: O desenez, cand prind un pic de timp liber schema folosita de mine.

18.02.2024
   Am reusit sa gasesc un pic de timp sa desenez schema ceasului, pentru a fi mai usor reprodusa de incepatori.

duminică, 5 martie 2023

Termometru/higrometru cu senzor AHT20 pe afisaj IPS de 1.3" cu ST7789

   Dearece am un senzor AHT20 si tocmai am testat un termometru/higtometru cu senzorul GY-21 pe un afisaj de 1.3"cu driver ST7789, am zis sa adaptez programului pentru senzorul AHT20.

   Am gasit un articol bun, ce foloseste similar senzorul (ca si precedentul), din care am aflat si caracteristicile principale:

- tensiune de alimentare: 2,0..5,5V

- umiditate relativa masurata: 0..100% RH

- temperatura masurata: -40..+85℃

- precizia de masusa a umiditatii relative: ±2% RH (la +25℃)

- precizia de masura a temperaturii: ± 0,3 ℃

- rezolutie masura pentru umiditatea relativa: 0,024% RH

- rezolutie masura pentru temperatura: 0,01 ℃

- adresa i2c: 0x38

    Biblioteca folosita este Seeed_Arduino_AHT20 asa ca programul adaptat de mine este AHT20_ST7789_0c.ino ce foloseste schema (similara cu cea a senzorului GY-21):

   Prima deosebire sesizata intre GY-21 si AHT20, este aceea ca cel din urma este mult mai lent in initializare si trebuie interogat mai rar pentru valori corecte, mai ales ale umiditatii relative.

    Ca si termometrul/higrometrul anterior, pe ecranul de 33mm (1,3") putem vedea:

- modul 1:

    - temperatura si umiditatea cu caractere mari

    - temperatura cu caractere mari si un grafic al variatiei si umiditatea relativa cu caractere mai mici

    - umiditatea relativa cu caractere mari si un grafic al variatiei si temperatura cu caractere mai mici

- modul 2 (cu informatii in partea de jos, in stanga pentru temperatura si in mijloc pentru umiditatea relativa, pe primul rand valoarea medie, apoi valoare minima, respectiv valoarea maxima, pe randul de jos)

    - temperatura si umiditatea

    - temperatura cu caractere mari si umiditatea relativa cu caractere mai mici

    - umiditatea relativa cu carctere mari si temperatura cu caractere mai mici

Am facut si 2 filmulete:

Termometru/higrometru cu AHT20 pe afisaj IPS de 1.3" cu ST7789

AHT20 Thermometer/Hygrometer on 1.3" IPS ST7789 display

sâmbătă, 4 martie 2023

Termometru/higrometru cu senzor GY-21 pe afisaj IPS de 1.3" cu ST7789 (2)

     Dupa ce am testat, cu bune rezultate, termometrul si higrometrul prezentat in articolul precedent, am dat de un video cu prezentare frumoasa

   Am adaptat programul care se poate descarca din descrierea filmuletului, pentru senzorul GY-21 (SHT21) folosind aceeasi configuratie din schema anterioara (doar ca butonul fara retinre nu are nici o functie aici):
acesta devenind ST7789_GY21_Temp_humidity_0.ino.
   Dupa incarcarea programului, prima impresie e ca imaginea si cifrele sunt foarte mici (fata de cum era prezentat in cel precedent)
ceea ce mi-a dat un pic de cap cu telefonul folosit, ca nu are macro so nici stabilizare optica, dar mai bine vedeti filmuletele

luni, 23 ianuarie 2023

Ceas NTP si termometru/higrometru (senzor DHT22/11) pe afisaj led din 4 caractere a 14 segmente fiecare cu interfata i2c (HT16K33)

    Bazandu-ma pe ce am testat cu ceasul NTP si termometrul/higrometrul ce folosesc un modul cu afisaj led din 4 caractere a 14 segmente fiecare , am realizat un "ceas NTP si termometru/higrometru".

   Schema este aceasi cu cea a termometrului/higrometrului

si, in prima faza, indicatiile sunt simple:
- ceas, cu secunda clipitoare (bate secunda)
- numele zilei (o data in engleza, o data in romana), cu text deplasabil din dreapta in stanga
- data (zi si luna)
- an
- temperatura
- umiditatea relativa a aerului
   Programul rezultat este NTP_clock_on_HT16K33_v3.ino ce a folosit in filmuletele
    Ulterior, am mai lucrat la niste animatii, pe care le voi prezenta intr-un articol ulterior.


vineri, 28 octombrie 2022

Termometru/higrometru cu DHT22/11, Wemos D1 si afisaj led cu TM1637

 

  Am vrut sa folosesc aceeasi biblioteca pentru afisaj ca cea folosita la ceasul NTP pe afisaj led cu TM1637 (reglaj de pe pagina web locala) pentru a-mi fi usor de implementat in codul acestuia.

   Schema este simpla, ce deriva din cea a ceasului si foloseste doar placa Wemos D1, modulul de afisaj led cu TM1637 si senzorul DHT22 (sau DHT11):

   Pentru a afisa temperatura, am ales modul acesta (valoare si grad Celsius)
iar pentru umiditatea relativa a aerului (valoare si procent)
    Am adaptat, initial programul de il testasem cu o placa Arduino, folosind clasica librarie DHT (weatherstation2.ino), apoi am adaptat prgramul pentru o librarie dedicata a fi folosita pentru placile cu microcontroler ESP8266/ESP32 (weatherstation2a.ino).
   Am realizat 2 filmulete:

sâmbătă, 16 mai 2020

Multimetru de panou cu protectii

    Impreuna cu zvonacfirst de pe elforum, am realizat un multimetru de panou cu protectii, realizat dupa ideea dansului ca un sandvis (din 3 placi: placa de baza la mijloc, afisaj LCD1602 si placa auxiliara), dupa cum se vede in imaginile de mai jos,
dar mai ales in filmuletul urmator:
    Modulul trebuie sa faca urmatoarele:
- sa masoare tensiunea de intrare pana la cca. 55V
- sa masoare curent consumat pana la cca 10A
- sa calculeze puterea consumata
- sa masoare temeperatura cu un senzort LM35
- in functie de temperatura masurata sa porneasca cu turatie scazuta ventilatorul, ulterior sa o creasca pana la maxim
- daca temperatura este redusa se poate cupla releul si astfel se alimenteaza sarcina (consumatorul)
- daca temperatura este prea mare se decupleaza consumatorul si nu se mai poate face reconectarea decat dupa ce scade temperatura
- daca se depaseste curentul maxim se decupleaza consumatorul
- poate functiona si fara placa auxiliara comportandu-se ca un simplu multimetru de panou
    Schema a suferit ceva modificari, incercand sa implementam pe 2 versiuni mari, cea a lui Georgel, cu un ATmega8 ce foloseste referinta interna de 2,56V, eu preferand pe un ATmega328 cu referinta externa cu TL431 la 2,495, deoarece dar merge si cucea interna e doar 1,1V si trebuiau deoarece nu trebuie multe modificari. In functie de compilare, se poate folosi cuartul extern sau cel intern. Ideea e(ra) sa se poate folosi ce e la indemana, dar pe parcurs, versiunea cu ATmega8 e (deja) la limita cu spatiul.
    In mare, pe placa principala se gasesc:
- microcontrolerul cu oscilator cu cuart (in functie de preferinta, acesta poate lipsi)
- stabilizator de 5V, cu alimentare de la o sursa exterioara de 8-12V pentru ca se foloseste un LM7805 in capsula TO-220
- un divizor rezistiv pentru masurarea tensiunii
- un sunt de 10mOhmi si un sistem de amplificare cu operational, care a suferi mai multe modificari.
- senzor LM35
- referinta externa (doar la versiunea cu ATmega328 este strict necesara)
    Pe placa auxiliara se gasesc:
- tranzistor de comanda + releu de cuplare/decuplare consumatori
- tranziator pentru alimentare ventilator
- avertizor sonor (buzzer activ)
   Dupa incarcarea softului la modulul lui zvonacfirst, pe ecran apare urmatoarele informatii:
  Cateva poze cu cablajele primului prototip de placa de baza, proiectate si realizate de zvonacfirst:
  Dupa  ce am primit si eu cablajele, am inceput sa pun piesele:
   Eu am am mai facut mici modificari in schema, dar mari in program, facand si 2 filmulete:
indicator de panou cu protectii
multimeter with protection systems
   Dupa ce am testat prototipul, am adaugat niste noi masuratori pentru autocorectie in vederea reducerii influentei traseelor cablajului si faptului ca tensiunea pe sunt e foarte mica.
   Acum, la pornire, modulul isi face un test si isi configureaza anumite valori:
- prezentare
 - mesaj pentru deconectarea oricarui consumator de la borne;
- o masurare de offset (tensiune de iesire operational, fata de ce se estimase)
- masurare influenta alimentare releu
- masurare influenta alimentare ventilator la turatie maxima
- masurare influenta alimentare ventilator la turatie medie (PWM)
- masurare influenta alimentare releu si ventilator la turatie maxima
- masurare influenta alimentare releu si ventilator la turatie medie (PWM)
 - mesaj pentru ca se poate conecta un consumator de la borne;
- daca nu este conectata alimentarea la conectorul modulului
- daca se conecteaza alimentarea (releul are contactul deschis, aparand semnul !)
- daca se apasa lung pe buton, releului conecteaza intrarea la iesire si consumatorul poate fi si el alimentat (releul are contactul inchis, aparand semnul =)
   Am facut inca 2 filmulete, care arata cum se face autocalibrarea:
   Curand voi posta schemele si programul.

17.05.2020
    Dupa cum scriam mai la inceput, schemele de baza sunt:
1) cu ATmega8 si referinta interna, cand aceasta este de 2,56V
2) cu ATmega328 si referinta interna, cand aceasta este de 1,1V
3) cu ATmega8 sau ATmega328 cu referinta externa cu TL431 de 2,495V.
   Schema cu ATmega8/Atmega328 cu referinta interna este Schematic_Voltmetru-de-panou-cu-Atmega-8_V2.pdf, respectiv cea cu referinta externa: Schematic_VA-metru-cu-ATmega328_niq_V4.pdf cu modificarile de mai jos.
   Pentru versiunea 2, tensiunea de referinta e de valoare apropiata si divizorul rezistiv pentru masurare tensiune poate avea valori: R1 = 47..56kΩ si R2 = 1kΩ 
respectiv pentru versiunea 2 de R1 = 22kΩ si 1kΩ, pentru a acoperi 55V pe intrare.
   Pentru variantele cu referinta de 2,56V (referinta interna la ATmega8) si rezistentele R1 = 22kΩ,  R2 = 1kΩ, tensiunea maxima pe intrare este de aproximativ 59V, iar daca R1 = 47kΩ,  R2 = 1kΩ de 123V.
   Pentru variantele cu referinta de 2,495V (referinta externa cu TL431) si rezistentele R1 = 22kΩ,  R2 = 1kΩ, tensiunea maxima pe intrare este de aproximativ 57V, iar daca R1 = 47kΩ,  R2 = 1kΩ de 120V.
   Pentru versiunea cu referinta de 1,1V (referinta internal ATmega328) se poate folosi doar versiunea de minim R1 = 47kΩ,  R2 = 1kΩ, pentru care tensiunea maxima este de 53V, recomandandu-se R1 = 51kΩ,  R2 = 1kΩ, pentru care tensiunea maxima este de 57V sau eu as recomanda R1 = 56kΩ,  R2 = 1kΩ, pentru care tensiunea maxima este de 64V.
    Pentru masurarea curentului, schema initiala este
 eu am preferat schema cu ridicarea nivelului tensiunii pe intrarea suntului, deci si pe iesirea operationalului:
  Pentru a face, cel putin, pentru moment, se masoara tensiunea pe iesirea operationalului la curent 0 (fara consumator) si apoi la un curent cunoscut, de aceea in program, exista configurare versiuni:
- pentru dzvonacfirst, ATmega8 cu referinta interna, R1 de 56kΩ
- pentru mine, ATmega328 cu referinta externa cu TL431 si R1 de 22kΩ
- pentru zvonacfirst, ATmega328 cu referinta interna si R1 de 47kΩ
   In functie de amprenta releului sau cum este legat contactul COM-NC sau COM-NO, se modifica comanda acestuia din program
   Curentul maxim la care se decupleaza consumatorul se modifica din linia:
   Configurarile se aleg functie de "persoana", adica de variabila model:
   Initial se va face corectia curentului, modificand variabila ka pana indicatiile de curent sunt corecte (valoarea optima se obine in mai multi pasi), apoi kv pentru tensiune (valoarea optima se obine in mai multi pasi), sunt configurabile in zona de setup() 
Cand ma refeream ca "valoarea optima se obine in mai multi pasi', procedura e urmatoarea: daca se masoara pe aparatul de masura, considerat etalon ca avem un curent de 223mA (adica 0,223A), iar pe indicatorul nostru este 0,19A, coeficientul profilului nostru e ka = 1.014, noul coeficient va avea valoarea de 1,014 * 0,223 / 0.19 = 1.19.. s eincarca din nou programul cu noua valoare si trebuie sa se obtina 0,22A, apoi se masoara la alta valoare de curent pana sunteti multumiti de indicatii. Similar, se face si pentru coeficientul pentru tensiune.
    Trebuie sa recomand folosirea, pentru referinta externa, a unui TL431 cu terminatia B (precizie 0,5%) sau A (1%), deoarece 2% il are si referinta interna a micocontrolerului:
   Cam atat e de prezentat despre programul din versiunea actuala, care este indicator_panou_0c0f.ino.
   Ca de obicei, si schema si programul pot fi imbunatatite, dar pentru moment, cam asta am testat si eu si zvonacfirst, care mi-a trimis masuratori pe un domeniu mai larg,din care se vede precizia de masura: