sâmbătă, 2 noiembrie 2019

Alta versiune de ceas animat cu date meteo (2)

   Fata de versiunea anterioara am adaugat sageti cu directii diferite pentru vant. O contributie inportanta o are unul din urmaritorii mei din strainatate (novax1/Antonio C.P), care a tot insistat si mi-a trimis un exemplu din care sa ma inspir.
   Am zis sa pastrez ce testasem eu si sa fac modificari in fisierele mele, dar am constatat ca apar probleme de conectare, de fapt, programul nu astepta suficient raspuns de la serverul openwhearmap.org care ofera informatiile pe baza unui chei unice si localitate (cititi articolul Ceas matriceal animat cu date meteo pentru detalii).
    Am schimbat in fisierul wheater.h sa astepte raspuns:
    Am facut un fisier Excel sa vad cum s-au creat celelalte caractere, ultimele mai ales;
   Dupa cum se observa, ce e in dreapta e in sus (rotire in stanga), asa ca am creat si celelalte "sageti", pentru NE, E, SE, E, SV, V si NV, deoarece am pentru N sageata in sus si pentru S sageata in jos.
      Am marit numarul de caractere acceptate in fisierul char.h
am definit caracterele speciale in fisierul fonts.h
apoi mi-am definit in fisierul weather.h unde pregatesc datele meteo si nume la caractere:
punand si conditiile de afisare
   Am facut si 2 filmulete, deoarece e mult mai usor de inteles ce am prezentat mai sus:
ceas "online" cu date meteo pe afisaj de 32x8 leduri (2)
"online" clock with weather data on 32x8 led display (2)
   Pentru a realiza acest tip de ceas cu date meteo trebuie sa incarcati toate fisierele din subdirectorul LEDMatrixV2ro3
iar in calculator trebuie sa aveti ceva de genul

schema este aceeasi:
adica legaturile sunt

4 comentarii:

  1. hello nicu florica.
    I leave the prognosis of the breezes and winds in case you want to add your code. the definitions are taken from wikipedia and compared to the openweather page.
    Regards.

    weatherString += ") : Anenometro : velocidad del Viento : "+ viento +" "+ String(3.6*windSpeed, 0) + " km/h ";
    if ((3.6*windSpeed>=0) && (3.6*windSpeed<=1)) weatherString +=" brisa muy Calma ";// very calm breeze
    if ((3.6*windSpeed>=1) && (3.6*windSpeed<=5)) weatherString +=" brisa Calma "; // calm breeze
    if ((3.6*windSpeed>=5) && (3.6*windSpeed<=11)) weatherString +=" Brisa muy debil "; // very weak breeze
    if ((3.6*windSpeed>=11) && (3.6*windSpeed<=19)) weatherString +=" Brisa lijera "; // light breeze
    if ((3.6*windSpeed>=20) && (3.6*windSpeed<=28)) weatherString +=" Brisa moderada "; // moderate breeze
    if ((3.6*windSpeed>=28) && (3.6*windSpeed<=38)) weatherString +=" Brisa fresca "; // Fresh breeze
    if ((3.6*windSpeed>=38) && (3.6*windSpeed<=49)) weatherString +=" Brisa fuerte"; // strong breeze
    if ((3.6*windSpeed>=49) && (3.6*windSpeed<=61)) weatherString +=" Viento fuerte"; // strong wind
    if ((3.6*windSpeed>=61) && (3.6*windSpeed<=74)) weatherString +=" viento duro "; // hard wind
    if ((3.6*windSpeed>=74) && (3.6*windSpeed<=88)) weatherString +=" Temporal fuerte"; // strong wind
    if ((3.6*windSpeed>=88) && (3.6*windSpeed<=102)) weatherString +=" Temporal "; // temporary
    if ((3.6*windSpeed>=102) &&(3.6*windSpeed<=117)) weatherString +=" Borrasca "; // storm
    if ((3.6*windSpeed>=117) &&(3.6*windSpeed<=118)) weatherString +=" Huracan"; // hurricane

    RăspundețiȘtergere
  2. Hi.
    some do not match because the openweathermap webpage speed is in m / s and in the combo we put * kmh.
    they are more tight

    RăspundețiȘtergere