Se afișează postările cu eticheta ACS712. Afișați toate postările
Se afișează postările cu eticheta ACS712. Afișați toate postările

sâmbătă, 19 octombrie 2019

Vizualizare parametrii panou solar pe server Thingspeak

   Dupa ce am rezolvat partea de multimetru (citire tensiune si curent) de la un alimentator (panou solar), informatii ce pot fi citite in articolele 1 si 2, am continuat si cu trimiterea datelor catre serverul Thingspeak.
   Schema este aceeasi:
   Am folosit datele din articolele anterioare, adaugand partea de trimtere date pe un "SoftwareSerial", respectand schema de mai sus
   Trimiterea datelor se face astfel; *abcdefgh#, unde literele sunt cifre, primele 4 patru pentru tensiune si ulrmatoarele 4 pentru curent,
   Montajul are deja conectate placile de dezvoltare, asa ca pentru a programa placa cu ESP8266, trebuie ca sa nu avem transmisie dinspre Arduino, asa ca am incarcat programelul BLINK in Arduino Nano
altfel rimim mesaj de eroare
dupa modificare, mesajul e mult mai prietenos:
   Dupa incarcarea programelor vedem urmatoarele informatii:

iar pe serverul Thingspeak
   Programul pentru placa Arduino Nano este vaw_tx1.ino, cel pentru placa cu ESP8266 este vaw_rx1.ino, iar modul de functionare se vede in filmulele:
20.10.2019
   Am adaugat si "indicatoare analogice" pe server:
   Niste capturi de ecran mai frumoase:
Mentiune: Am adaugat un fel de "screensaver" cu un punct ce se plimba pe ecran, in loc de ecran stins, prin modificarea programului de pe placa Arduin Nano in vaw_tx1a.ino, cel de pe placa cu ESP8266 ramane tot vaw_rx1.ino
    Comportamentul sistemului se vede in cele 2 filmulete:
    In mare, modificarea este din
in


Multimetru de panou pe afisaj OLED (2)

   Am completat multimetrul prezentat in articolul precedent cu functionalitatea de a proteja afisajul OLED prin aprinderea lui doar o anuminta perioata, prin apasarea unui buton fara retinere.
   La prima apasare, apar tensiunea, curentul si puterea, la o noua apasare, apare doar tensiunea, la urmatoarea apasare curentul, iar daca se apasa iar puterea. La o noua apasare se reia partea cu cele 3 valori, In orice "meniu" ar fi, dupa timpul impus in program, afisajul se stinge.
   Prin folosirea programului (sketch-ului) vaw_3b2.ino, multimetrul functioneaza cum am descris mai sus, dar puteti vedea si in filmuletele:

joi, 19 septembrie 2019

Multimetru de panou pe afisaj OLED

    Am testat partea de voltmetru, ampermetru si wattmetru pentru un sistem de monitorizare parametrii panou solar, ce are schema completa prezentata anterior (din care am folosit doar partea de Arduino Nano, divizorul rezistiv, senzorul Hall de curent ACS712-30 si afisajul OLED de 0.96")
adica:
   Pentru inceput, am cautat adresa afisajului, care are comunicatie i2c, folosind programul consacrat i2c_scanner, deoare montajul nu este al meu, ci al lui Mircea. un coleg de servici:
si am testat un exemplul dintr-o librarie SD1306:
   Nu am mai inventat apa calda si am cautat pe internet dand de articolul 3D Printed Arduino OLED Watt Meter adaptand programul de voltmetru, ampermetru si wattmetru, acesta devenind vaw_1.ino.
   Am folosit un alimentator reglabil si o banda de leduri albe, obtinand pe rand, pe ecranul OLED:
- tensiunea
- curentul:
- puterea
    In filmuletele urmatoare se vede modul de afisare:


   Banda led, alimentata cu tensiune mai mica, in intuneric:
- tensiune
- curent
- putere
21.09.2019
   Deoarece am realizat ca e mai util sa vad toate 3 informatiile simultan, am modificat programelul, acesta devenind vaw_2.ino si pe ecran avem informatiile, ce sunt asezate pe verticala, la stanga:
22.09.2019
    Am facut si 2 filmulete, cu noua versiune:

miercuri, 22 mai 2019

Masurare tensiune si curent cu ESP8266 pentru monitorizare panou solar

    Microcontrolelere ESP8266 si, implicit, placile de dezvoltare echipate cu ele, gen WeMos, NodeMCU au doar o intrare de masura analogica, care are maxim 1,0V in cazul microcontrolerului si 3,3V pentru placile de dezvoltare datorita unui divizor (uzual 220k/100k). A se vedea ce am scris in articolul Ceas matriceal animat cu ESP8266 si RTC (DS3231) cu informatii despre temperatura si umiditate (3)
   Aceste informatii sunt din articolul NodeMCU ADC with Arduino IDE
   Pentru a monitoriza, de exemplu, un panou solar de cca 300W, vom folosi un divizor rezistiv R2 = 43k cu R1 = 1k1, respectiv un senzor de curent cu ACS712-20 (sau ACS712-30)... in caz extrem se poate folosi si un senzor ACS712-05B, deoarece senzorul permite un supracurent de pana la 12-13A. De asemenea, vom folosi un divizor rezistiv R4 = 3k3 cu R3 = 1k1.
   Dupa cum se observa, sunt 2 iesiri, care nu se pot masura direct cu ESP8266, asa ca vom folosi un comutator CMOS, eu alegand comutatorul cvadruplu CD4066,
 
din care voi folosi 2 comutatoare (A si B)
   Deoarece placile de dezvoltare cu ESP8266 lucreaza cu tensiunea de 3,3V se alimenteza integratul cu aceea tensiune. Cand se masoara tensiunea de pe A'0 se comanda pinul 13 pentru a coneca pinul 1 cu 2, iar daca se masoara tensiunea de la iesirea senzorului ACS712 se comanda pinul 5 pentru a conecta pinul 3 cu 4. Pinii 2 si 4 sunt conectati impreuna, deci acolo vom lega pinul de masura analogic ADC0 sau AN0 (A0) al placii.
   Senzorii de curent ACS712 i-am prezentat in articolele Senzorul de curent ACS712 (I) si Senzorul de curent ACS712 (II)
care au in repaus pe ieisire 2,5V crescand aceasta tensiune (sau scazand, functie de sensul de conectare) cu 0,185V/A pentru sensorul de 5A, 0,1V/A pentru senzorul de 20A, respectiv 0.066V/A la cel de 30A
   Folosind divizorul nostru, vom avea pentru 3,3V la intrarea lui
   De test, daca nu s-ar conecta senzorul de curent si am lega iesirea divizorului R4-R3 la un voltmetru, am avea urmatoarele valori:
   Daca am conecta un pinul ce ar corespunde ieisirii senzorui de curent de 5A (ACS712-05B) pentru tensiunile de test (3,3V si 0V) am avea corespondenta curentilor
asta trebuie sa obtinem daca incarcam un sketch de test.
    Pentru a testa functionarea partii de masura curent, ne folosim de informatiile din articolul The ACS712 Current Sensor with an Arduino doar ca am adaptat ptrogramul pentru cazul meu, cand am acel divizor 3k3-1k1 si tensiunea de referinta de 3,3V (de fapt e tensiunea maxima pe intrarea placilor cu ESP8266). Programul de test este test_ACS712_esp8266.ino si in ecranul de monitorizare seriala vom observa ceva de genul (test cu 4,9V la intrare)
   Cu valorile din schema, pentru conectarea pinului de masura la 3,3V vom obtine la intrarea pinului A0 de pe placa de dezvoltare cu ESP8266:
    De test, daca am lega iesirea divizorului R2-R1 la un voltmetru, am avea urmatoarele valori:
    Pentru testarea partii de divizor la partea  de masura tensiune, se folosesc informatiile din articolul Arduino 25V Voltage Sensor Module User Manual, programul de test fiind test_voltagedivider_esp8266.ino.
   In ecranul de monitorizare seriala, vom gasi ceva de genul
   Pentru teste reale, impreuna cu amicul Alex, incepem si niste teste reale...
   Pasul urmator este cel de testare a masuratorilor de tensiune si curent conform schemei indicate la inceputul articolului si pentru asta am adaugat comanda pe rand a comutatoarelor din CD4066, dupa cum se vede in programul test_VA_esp8266.ino.
   Pentru valorile lui si o calibrare bruta, Alex a obtinut:
23.05.2019
    Deoarece initial ma gandisem sa testeam pe un ESP8266 "chior", am dimensionat divizoarele pentru tensiunea maxima pe intrarea analogica de 1,0V, apoi testele au fost facute pe placa cu ESP8266 cu tensiune maxima de 3,3V, asa ca tensiunile maxime sunt