Se afișează postările cu eticheta ESP8266-01. Afișați toate postările
Se afișează postările cu eticheta ESP8266-01. Afișați toate postările

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:

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):