duminică, 29 octombrie 2023

Ceas RTC cu RP2040-Zero pe afisaj 8x32 cu leduri adresabile (2)

    La ceasul prezentat anterior, ce foloseste biblioteca RTClib, o solutie rapida de schimbare a orei de iarna de cea de vara si invers este aceea de a reincarca programul cu linia de luare a orei calculatorului si ca mai repede a programului cu linia comentata (pentru a pierde cat mai putine secunde din ora corecta).

  ->   

1) activare linie


2) incarcare program

3) dezactivare (comentare linie)
4) reincarcare program

sâmbătă, 28 octombrie 2023

Ceas NTP cu tranzitii animate si date meteo pe afisaj P5 RGB 64x32 cu ESP8266 (4)

    Dupa ce am vazut ca acest tip de ceas este stabil, a ramas, din teste, ca ceas de casa, doar ca, in speranta, ca nu se va mai face tranzitie ora vara/iarna, nu am mai modificat nimic la el.. acum dupa 2 ani jumatate, a trebuit sa gasesc o solutie rapida si aceasta a fost sa folosesc pinul analog A0 ca selectie de ora vara iarna, la GND sa fie ora de iarna si la 3.3V la ora de vara, similar ca la un semnal logic.

   Schema de conectare e ca in celelate articole:

Ceas NTP cu tranzitii animate si date meteo pe afisaj P5 RGB 64x32 cu ESP8266

Ceas NTP cu tranzitii animate si date meteo pe afisaj P5 RGB 64x32 cu ESP8266 (continuare)

Ceas NTP cu tranzitii animate si date meteo pe afisaj P5 RGB 64x32 cu ESP8266 (3)

doar am adaugat selectorul de ora vara/iarna (DST) la pinul analog A0.

- ora iarna (A0 -> GND)

- ora vara (A0 -> 3,3V)

   Programul modificat este MorphingClockRemix2 si cu el am realizat 2 scurte filmulete:

ceas cu tranzitii si selector ora vara/iarna pe afisaj P5 RGB 64x32 (Morphing clock)

Morphing clock (other remix) with DST (summer/winter switch)

joi, 26 octombrie 2023

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

    Dupa ce am testat ceasul NTP, am zis sa incerc, mai intai o statie meteo, ce preia informatiile de pe serverul openweathermap.

   Am folosit aceeasi schema
doar modificat programul folosind rezultatele obtinute anterior si acesta este Openweathermap_RP2040_ESP8266_01_i2c_1602_v1_2 si cu el am urmatoarele informatii, pe randul 2 (de jos):
- daca nu s-au actualizat inca datele
- vremea, in general
- temperatura
- umiditatea relativa din aer
- presiunea atmosferica
   In filmulele urmatoare se vad mai bine informatiile prezentate:

joi, 19 octombrie 2023

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

    Dupa primele teste in care am conectat o placa Raspberry Pi Pico la un modul cu ESP8266-01, am zis sa realizez ceva "palpabil", un ceas, sa il pot urmari timp mai indelungat, pentru stabilitate. 

   Liber a fost un afisaj LCD1602 cu interfata i2c, asa ca am realizat o schema de conectare, pentru un ceas cu comutare ora vara/iarna (DST) si buton extern de reset

   Am incercat mai multe biblioteci, deoarece comenzile AT si modul de asteptare raspuns nu au fost multumitoare. Am ramas la biblioteca khoih-prog/ESP8266_AT_WebServer, care a necesitat alte 2 mai mici: marcusrugger/functional-vlpp si khoih-prog/DoubleResetDetector_Generic.
   Pimul program UdpNTPClient_2_1 este derivat dintr-un exemplu ce prelua la 10 secunde ora de pe un server NTP, eu am schimbat sa fie preluata ora la 1s (de asta apar uneori salturi de 2 secunde, ca nu sunt primite imediat informatiile, asa ca am schimbat ulterior la 900ms)., dar in cele 2 filmulete programul nu este corectat:
   Ulterior, in programul UdpNTPClient_2_2, am apelat serverul NTP mai rar (in filmulete la 1 mint), si am pus un numarator care indica secundele de la ultima actualizare a orei de la server. 
   De asemenea, apare un semn > cand este apelat serverul NTP si = daca a raspuns, dupa cum se vede in cele 2 filmulete:
   Dupa cum se observa, este comandat si ledul intern de la pinul 25 de pe placa Raspberry Pi Pico.

miercuri, 18 octombrie 2023

Conectare placa de dezvoltare cu RP2040 la un modul cu ESP8266-01

     Deoarece placile de dezvoltare cu microcontroler RP2040 sunt ieftine, putem sa le adaugam facilitatea de conectare la internet  prin adaugarea unui modul cu ESP8266-01. Conectarea se face la port UART (serial) si comunicarea e cu comenzi AT. 

    In trecut am mai experimentat, cu placa Arduino (Uno/Nano sau Mega) si modul cu ESP8266-05:

Modulul de retea "uairles" ESP8266-05 si Arduino

Prezentare si stocare date pe pagina ThingSpeak (3) - folosind Arduino si ESP8266-05
Pagina de net (webserver) cu modul WiFi ESP8266-05
   Pentru a ma refamiliariza cu comenzile AT de control ale lui ESP8266-01, am conectat un Arduino Uno la ESP8266-01 prin intermediul unei interfete de nivel logic.
doar ca am constatat ca daca vreau sa vad informatii pe ecranul serial trebuie sa folosesc o biblioteca SerialSerial, dar trebuie sa schimb viteza de comunicare din 115.200bps in 9.600bps, o alternativa ar fi fost o placa de dezvoltare Arduino Mega, dar nu am dat de ea, in prin cutii. 
   Am trecut direct la o placa Raspberry Pi Pico, deoarece pentru ele voiam sa am conectare la internet, ca sa am un RP2040 cu internet, mai ieftin ca Raspberry Pi Pico W.
   Oricum, avantajul fata de o placa Arduino cu procesor ATMega (Arduino Uno/Nano, Mega) este acela ca placile de dezvoltare cu RP2040 (Raspberry Pi Pico, RP2040-Zero, etc) functioneaza, ca si ESP8266-01 la 3,3V, nefiind nevoie de interfate de nivel logic 5V-3.3V. In plus, RP2040 are un port serial virtual pe USB, iar Serial1 pe pinii GP0 si GP1, asa ca am conectat simplu, ca in articolul Interface ESP8266 WiFi Module with Raspberry Pi Pico doar ca eu am folosit mediul Arduino IDE pentru programare, nu MicroPython
   Inspirat de informatiile din articolul Examples with the ESP8266-01. Wifi. LED on/off. Arduino. Standalone. MQTT am adaptat programul webserver_ledcontrol.ino sa pot controla ledul intern (pin 25, in cazul placii Raspberry Pi Pico) de pe o pagina web locala:
- led aprins
- led stins
   Ulterior, am adaugat un buton de RESET extern, adica un buton fara retinere intre GND si pinul 30 (RUN), cum mai prezentasem in articolul Sistem/montaj de repornire Raspberry Pico W (Arduino) blocat (inghetat), informatia fusese gasita in articolul How to Add a Raspberry Pi Pico Reset Button
   Am realizat si niste filmulete (in primele 2 sunetul este foarte scazut, din pacate):

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

     Dupa ce am observat ca informatiile meteo nu sunt preluate de fiecare data de la serverul openweathermap, am modifcat programul ceasului anterior sa imi arate si ora ultimei actualizari.

    Schema este aceeasi, 

   Programul NTPclock_8x32_v2_16.ino are mai multe modificari fata de versiunea anterioara: inlocuirea bibliotecii ESP8266WiFi cu WiFi (pentru ESP32), revenirea la biblioteca SolarCalculator pentru determinarea orelor de rasarit si apus de soare, neafisarea informatiilor meteo prea vechi, afisarea orei de preluare a datelor meteo, adaugarea unei culori pentru ledul de indicare stare informatii meteo (mov, daca nu s-au preluat de prea mult timp), o resetare pe timpul noptii, etc.
    Am realizat 2 filmuletele, in care se vede mai bine ce am realizat:

29.10.2023
    Am depistat o eroare in programul NTPclock_8x32_v2_16.ino.. in subrutina de calcul a orelor de rasarit si apus de soare.. variabila zi (care este ziua din saptamana)
trebuie inlocuita cu zi2 (ziua din luna)

duminică, 1 octombrie 2023

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

    Dupa ce am testat ceasul NTP simplu cu Raspberry Pico W ce prezenta infrmatiile pe ecranul de monitorizare seriala, am adaugat placii, pe care e Raspberry Pi Pico, afisajul cu 8x32 leduri adresabile si comutotorul de ora vara/iarna, 

schema fiind

in care am refolosit programul de la Alt ceas NTP pe afisaj din 8x32 leduri adresabile (2) in care este folosit un ESP8266 (Wemos D1 mini)
doar ca am scos parte de configurare usoara a retelei WiFi, deoarece nu e compatibila cu Raspberry Pi Pico W si am schimbat pinii, asa ca l-am salvat separat, NTPclock_8x32_v2_9.ino.
   In functie de pozitia comutatorului, avem ora de iarna (pinul de selectie la GND) sau de vara (pinul de lectie la +3,3V).
   Am realizat si niste filmulete:

   Am modificat programul, schimband si pinii, pentru a fi sigur ca nu sunt ei de vina, obtinand versiunea NTPclock_8x32_v2_12.ino care este combinata cu schema 
   Dupa ce am observat ca ceasul functioneaza dupa 48 ore, fara blocare,
 am facut 2 filmulte:
   Pentru a gasi motivul care care determina blocarea sau, mai bine zis, acum, activarea sistemului de repornire, am pus in stanga sus sa am un led ce e aprins in culoare verde cand ceasul este conectat la reteaua wifi si preia si ora de la serverul NTP, in culoarea albastra daca sistemul este ori deconectat de la retea ori nu preia ora de la serverul NTP, in culoarea rosie daca sistemul de transmisie/receptie wifi este deconectat/oprit. In partea dreapta, am un led care este verde daca s-au trimis si s-au preluat datele meteo de la serverul openweathermap, in culoarea albastra, daca s-au trimis datete catre server, dar nu s-au primit date si in rosu, daca nu s-au pututt trimite date, cel mai probabil sistem wifi oprit.
   Programul este NTPclock_8x32_v2_13.ino si sistemul functioneaza astfel:
02.10.2023
    Am realizat ca pe modulul de deblocare o dioda e in plus (D3), asa ca am eliminat-o si am redenumit pe D4 ca D3:
08.10.2023
   Ceasul functioneaza foarte bine, in sensul ca nu s-a mai blocat de la ultima incarcare a programului.