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:

duminică, 18 februarie 2024

Ceas google cu data si termometru (2)

     Deoarece ceasul a avut succes, am modificat programul ca valoarea temperaturii sa se opreasca din rulare un timp, pentru a fi usor citita. 

    Schema folosita este aceeasi:
   Programul modificat este BIG_Clock_ESP8266_DeskClock1f caruia i se adauga si cele 2 fisiere ajutatoare

Am facut 2 filmulete demonstrative:

ceas google cu data si termometru (3)

google clock with date (day,month,year) and DS18B20 thermometer (3)

   Ulterior, am primit o solicitare sa adaug si numele zilei din saptamana si numele lunii, asa ca am adaugat asta, dar bilingv (o data in romana, o data in engleza), 
programul devenind BIG_Clock_ESP8266_DeskClock1g
   Am facut alte 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.

miercuri, 10 ianuarie 2024

Ceas NTP cu Raspberry Pi Pico W pe afisaj de 8x32 leduri adresabile (3)

   Ceasul actual este o imbunatatire a versiunilor 1 si 2 si are mai multe modificari ale programului, astfel incat sa fie cat mai stabil pe timp lung (sa nu se blocheze) si sa indice corect si temperaturile negative.

   Schema este aceeasi

   Partea cu temperatura negativa de -4,4℃, ce aparea -4,-4℃ sau cea de -0,5℃ ca 0,-5℃ s-a rezolvat destul de simplu

adica
        extrainfo = extrainfo + " (clouds: " + nori + "%)";
        extrainfo = extrainfo + ", temperature: ";
        if (temperatura > 0) extrainfo = extrainfo + "+";
        if (temperatura < 0) extrainfo = extrainfo + "-";
        if (tempint < 0) tempint = -tempint;
        if (temprest < 0) temprest = -temprest;
        extrainfo = extrainfo + tempint + ","+ temprest;
   Ultima versiune de programul este NTPclock_8x32_v2_19c.ino si ceasul se prezinta astfel:

14.01.2024
    Am realizat ca uneori datele meteo de pe ecran nu sunt actualizate corect, chiar daca aceastea sunt primite corect, asa ca am mai facut o modicare, reinitializand sirul (string-ul) result de fiecare data.
adica
 Programul NTPclock_8x32_v2_19c.ino este deja actualizat.

sâmbătă, 4 noiembrie 2023

Ceas NTP si statie meteo cu RP2040-Zero si ESP8266-01 pe afisaj i2c LCD1602 (2)

   Dupa ce am testat mai mult timp ceasul cu date meteo prezentat in articolul anterior, si dupa ce am mutat montajul de pe breadboard pe un cablaj de test (mai ok), am constatat ca daca nu primeste informatii de la serverul NTP, ora "incremeneste", dar informatiile meteo se modifica ca si cum ar functiona normal, asa ca am modificat programul si daca nu sunt primite informatii de la serverul NTP sau de la openweathermap (era deja), ceasul sa functioneze normal.

    Montajul dupa transferul pe cablajul de test (cu gaurele) arata destul de bine

   Dupa primele teste, am constatat ca testul de schimbare ora vara/iarna, programul reporneste ca si cum s-ar opri alimentarea. Dupa cateva masuratori, am constatat ca comutatorul nu face tranzitie brusca intre mijloc si camele si are un mic moment cand toate trei sunt conectate, asa ca am adaugat o rezistenta de 12kΩ intre +3,3V si capatul comutatorului si, in cel mai rau caz, pentru foarte scurt timp creste consumul pe ramura de 3,3V cu 300μA, dar asta nu deranjeaza deloc.
   Schema actualizata arata asa:
   Revenind, dupa ce am constatat ca ora ramane mai mult timp statica intre schimbari de informatii meteo daca nu mai e conexiune la reteaua wi-fi, am modificat programul, acesta devenind NTP_weatherstation_RP2040_ESP8266_i2c_1602_v3_6, cu el incarcat, am facut 2 filmulete:
Am facut si cateva modificari sa "palpaie" ledul multicolor, iar daca ceasul n se conecteaza la serverul NTP, apare un semnul exclamarii in dreapta, iar daca nu se conecteaza nici la serverul de vreme si in stanga lui, daca informatiile sunt actualizate apar "=="
 dar nu era versiunea optima, asa ca am modificat un pic programul, care a devenit NTP_weatherstation_RP2040_ESP8266_i2c_1602_v3_6a si acum ledul multicolor (adresabil) palpaie secundele corect si se schimba si culoarea.
   Cu ultima versiune de program, am facut intai 2 filmulete:
apoi, dupa a doua zi, am refacut filmuleltele, constatand ca programul/sketch-ul este stabil, asa ca am mai incarcat 
   

joi, 2 noiembrie 2023

Ceas NTP si statie meteo cu Raspberry Pi Pico (RP2040) si ESP8266-01 pe afisaj i2c LCD1602

   Dupa ce am testat, cu succes, statia meteo, am zis sa adaug si partea de ceas NTP.. schema de conectare este identica cu a ceasului

   Primul sketch cu rezultate bune este NTP_weatherstation_RP2040_ESP8266_i2c_1602_v3_0 si cu el incarcat, am facut 2 filmulete:
apoi am mai adaugat ora ultimei actualizari pentru informatiile meteo si procentul de nori, daca exista, programul devenind NTP_weatherstation_RP2040_ESP8266_i2c_1602_v3_4.
    Am realizat inca 2 filmulete:

Ceas NTP si statie meteo cu RP2040-Zero si ESP8266-01 pe afisaj i2c LCD1602

  Am schimbat la ceasul anterior, placa de dezvoltare Raspberry Pi Pico cu una RP2040-Zero, deoarece e mai mica si are, in plus, butonul de reset inclus.

  Schema este similara, doar ca a trebuit sa conectez comutatorul de ora de bara/iarna la GP8 ca GP22 este sub placa si greu de conectat... schema este desenata intr-o versiune mai veche de Eagle si apoi infrumusetata in MS Paint

    Partea de conectare dintre placa RP2040-Zero si ESP8266-01 este mai usor de intuit din desenul urmator:
    Am folosit acelasi program/sketch (NTP_weatherstation_RP2040_ESP8266_i2c_1602_v3_4)
 doar ca am modicat linia cu definirea pinului pentru comutator:
si am realizat si 2 filmulete: