Se afișează postările cu eticheta RPi Pico W. Afișați toate postările
Se afișează postările cu eticheta RPi Pico W. Afișați toate postările

marți, 20 august 2024

Ceas cu date meteo (Rpi Pico W si afisaj LCD1602 pe i2c) - MicroPhython (3)

    Dupa ce am tot constatat ca la ceasul cu informatii meteo informatiile de pe ecran  nu se mai actualizau dupa cateva zeci de ore (se bloca sau adormea efectiv microcontrolerul de pe placa Raspberry Pi Pico W), am adaugat functia de autodeblocare (watchdog).

   Nu eram prea incantat de introducerea functiei WDT care nu a functionat multumitor cu limbajul Arduino si a trebuit sa testez un watchdog extern (vezi articolul), am zis totusi sa incerc versiunea software ce implica doar 3 linii

   Programul actualizat este Weatherstatio_clock_RPiW_i2c_LCD1602_v5
   Am facut 2 filmulete:
   Partea frumoasa e ca initial am pus un timp de 2 secunde pana se restarteaza daca e ceva in neregula, dar pana sa se conecteze la retea se reseta in continuu si nu mai reuseam sa ma conectez la placa, asa ca a trebuit sa sterg continutul din memorie.
  Din articolul How to Reset Raspberry Pi Pico & Pico W – 4 Easy Ways am folosit metoda 3, adica am copiat fisierul flash_nuke.uf2 pe unitatea virtuala creata daca tin apasat butonul BOOT in timp ce conectez placa la USB, 
  Acum timpul este aproape de valoare maxim admisa, adica este 8 secunde.
  Intre timp, am reusit sa pozez vreme cu nori, ploaie si chiar furtuna:

duminică, 3 martie 2024

Ceas Google cu data si termometru ce foloseste Raspberry Pi Pico W

    Dupa ce am testat cu succes un ceas ce preia ora de la un server google, am schimbat placa Wemos D1 Mini (ESP8266) cu una Raspberry Pi Pico W.

   Schema cu ESP8266 era
iar cea cu Raspberry Pi Pico W este similara, doar am schimbat pinii dupa cum am gasit in articolul Raspberry Pi Pico – MAX7219 8x8 Dot Matrix Scrolling Display

adaugand si sensorul de temperatura DS18B20 la pinul 22 (GP22), rezultand

   Programul adaptat dupa ultima versiune cu un senzor (pentru ESP8266) este BIG_Clock_RPpPicoW_DeskClock2h (compus din 3 fisiere)
si cu el am facut 2 filmulete:
  Dupa cum se observa, ora este fixa o perioada de timp, apoi apare un text deplasabil si valoarea temperaturii oprita pentru un timp:

07.03.2024
   La ceva timp am observat ca ora este corecta, dar nu se actualizase data, asa ca am banuit ca Raspberry Pi Pico W se deconecteaza de la reteaua wi-fi, asa ca am odiifcat programul, acesta devenind BIG_Clock_RPpPicoW_DeskClock2h1. Programul este compus din 3 fisiere
  Si de data asta am facut 2 filmulelte
   Am schimbat sa folosesc biblioteca pentru wifi folosita de ESP32 nu cea de la ESP8266 si periodic interoghez daca este conectat sau nu.. daca nu e, aprin ledulul de pe placa, daca se reconecteaza la reteaua wifi, ledul se stinge. Daca dupa 10 incercari la fiecare 10 minute placa nu este conectata sau la schimbarea zilei, daca placa este deconectata indiferent de numarul de teste nereusite, isi da repornire.
- placa deconectata de la reteaua wifi
- placa conectata la reteaua wifi
  Programarea placii Raspberry Pi Pico W a fost facuta cum am citit in articolul Programming Raspberry Pi Pico with Arduino IDE (Pico W compatible) si am prezentat si pe blog in Placa de dezvoltare RP2040-Zero programata cu mediu Arduino.
   Compilarea programului in Arduino IDE versiunea 1.8.19 arata asa:
si configurarea placii:

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.

miercuri, 18 octombrie 2023

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.

marți, 26 septembrie 2023

Ceas NTP simplu cu Raspberry Pi Pico W programat cu mediu Arduino

     Dupa ce a sosit si o placa Raspberry Pi Pico W, am zis sa fac un prim test cu placa (care nu avea pini lipiti), asa ca am adaptat un program de ceas NTP, care arata informatia pe ecranul de monitorizare seriala a programului Arduino IDE.

    Placa Raspberry Pi Pico W este deja instalata (vedeti cum am procedat in articolul Placa de dezvoltare RP2040-Zero programata cu mediu Arduino)

asa ca am adaptat un program de ceas NTP cu ESP8266, ce a fost prezentat in articolul ESP8266 NodeMCU NTP Client-Server: Get Date and Time (Arduino IDE) tinand cont si de informatiile din articolul WiFi (Raspberry Pi Pico W) Support in care am gasit ca multe biblioteci sunt compatibile.
    Am adaugat si clipirea ledului de pe placa, asa ca programul este ntp_test_serial.ino si vom obtine
    Am facut si 2 filmulete
   Ulterior, am lipit si baretele cu pini, urmand sa fac teste pe breadboard.