ArduShop.ro

ArduShop.ro
cod tehnic.go.ro_02 reducere 5%, pentru vizitatorii paginilor mele !

luni, 17 iunie 2019

Prezentare si stocare date pe pagina ThingSpeak (3) - folosind Arduino si ESP8266-05 (o mica schimbare)

   Fata de modul de transmitere a unei temperaturi citite de un senzor DS18B20 de catre o placa de dezvoltare Arduino Nano (in cazul de fata este cu microcontroler ATmega168) la un canal ThingSpeak prin comenzi AT date unui modul Wi-Fi de tip ESP8266-05, cum am prezentat in articolul anterior din februarie 2016, acum ma reconectez la reteaua locala Wi-Fi a apartamentului la 20 de iteratii. Tinand cont ca o crestere a numarului ce contorizeaza se face la 5 minute, la 100 minute se va face reconectare, in caz ca pierde legatura, cum era cazul testelor anterioare, cand reconectarea fost facuta prin resetare sau realimentare modul...

    Programul (sketch-ul) folosit acum este ThingSpeak_arduino_esp8266_ds18b20_v2.ino, iar schema este aceeasi ca in articolul anterior
18.06.2019
  In 24 ore nu s-a pierdut nici o conectare, deci suntem pe drumul cel bun
19.06.2019
   In sfarsit, am gasit si o "buba" si faptul ca s-a reconectat dupa o ora de inactivitate
18.7.2019
    Pentru a nu apare si probleme de conectare datorita lui ESP8266, am pus sa am si o resetare periodica prin comanda AT+RST, dupa cum se vede in programul ThingSpeak_arduino_esp8266_ds18b20_v3.ino !

joi, 6 iunie 2019

Mesaje complexe intre placi Arduino pe comunicatie seriala (3)

    Am incercat sa transmit datele altfel, intr-un singur mesaj, de data asta cu numar fix de caractere, nu variabil ca in articolul precedent, dar am folosit aceeasi schema
   Am folosit informatiile din articolul How to Send Data to Thingspeak Using ESP8266.
   Pentru acelasi tip de mesaj, adica temperatura, stare senzor si procent, voi transmite, de datat asta,  intai un caracter de control(*), la starsit altul (#), temperatura multiplicata cu 10, apoi de zece ori semnul minus plus stare senzor si apoi procentul, dar, cu numar fix de caractere, astfel:
- temperatura -23,4 grade Celsius, senzor activat si 23% apa, voi transmite: *23411023#
- temperatura -5,7 grade Celsius, senzor dezactivat si 100% apa, voi transmite *05710100#
- temperatura 2,9 grade Celsius, senzor dezactivat si 34% apa, voi transmite *02900034#
- temperatura 29,4 grade Celsius, senzor dezactivat si 34% apa, voi transmite *29400034#
   Am facut 2 filmulete, care explica modul de codare/decodare:
Mesaje complexe intre placi Arduino pe comunicatie seriala (3)
Multiple Text Fields in Single Message using Arduino (3)
PS: Programul pentru emitator este tx_3.ino, iar pentru receptor este rx_3.ino !

miercuri, 5 iunie 2019

Releu de timp cu Arduino / ATitny

   Desi se poate folosi un clasic 555, cum am prezentat intr-un articol vechi,
ll 
se poate folosi si o placuta Arduino (sau un ATiny 25/45/85,vedeti articolul Programarea unui microcontroler ATtiny85 cu sketch Arduino).
    Schema de test, minimala este
si incarcand programul (sketch-ul) tempo0.ino vom avea starea de asteptare, cu led stins
iar daca se apasa butonul fara retinere, ledul sta aprins un timp determinat de pozitia tensiunii pe cursorul potentiometrului (semireglailului)
   Cel mai bine se vede functionarea sistemului in filmuletele:

marți, 4 iunie 2019

Sursa de alimentare chinezeasca PS-1502DD (15V/2A)

   Sunt un fan al surselor de alimentare liniare in era celor in comutatie, asa ca mi-am luat una de 15V si 2A... si e mica, cam ca cele in comutatie, dar greuta, deci pare ok, la prima vedere...
   Sursa are o un comutor ce are 5 trepte fixe
si o pozitie de reglare intre 0 si 15V
   Curentul maxim ce se poate regla este de 2A si apare doar cat se roteste potentiometrul aferent.
dupa ce am pus o rama foto ce consuma cca 600mA, in cca 20-30 secunde nu se poate tine mana pe tranzistorul final 2N3055, deoarece nu exista un radiator real, tranzistorul fiind pus prin intermediul unui izolator pe tabla acestui alimentator.
 
   Voltmetrul indica bine (destul de bine):
    Dupa ce am desfacut-o, am constatat ca se bazeaza pe "batranul" LM723, iar limitarea de curent e clasica cu tranzistor, nefolosindu-se protectia lui LM723 (schema si derivate ale ei sunt in partea finala a materialului).
  Am cautat un radiator (mai)  serios prin cutia cu maimute si am gasit unul care se preteaza mai mult pentru un tranzistor cu capsula TO-220, TO-3N, plata... asa ca am cumparat un 2SC5200 ca asta a fost pe stoc.

   Am scos tranzistorul 2N3055 si am dat gauri in radiator si apoi in tabla sursei, fixand distantieri.
Am trecut cele 3 fire prin gaurile de la 2N3055 si am lipit pinii la 2SC5200, respectand schema
   Dupa cum se observa, am pus tranzistorul pe radiator folosind pasta siliconica pentru transfer termic mai bun, am pus si izolatia din mica si iar pasta siliconica (ce se foloseste si la procesoarele calculatoarelor).
   Am fixat radiatorul de carcasa
si am testat in aceleasi conditii alimentatorul si l-am testat cam jumatate de ora, radiatorul ajungand la cca 45-50 grade Celsius... deci pare ok pentru a alimenta ceva de 1A sua pentru scurt timp de 1,5-2A.
    Am cautat date despre aceasta sursa de alimentare si am dat de schema ei desenata in mai multe feluri (posibil sa fie versiuni cu mici modificari, imbunatatiri)
   Articolele unde am gasit informatii utile despre aceasta sursa sunt:
https://www.drive2.ru/b/470457661977003315/
https://abrazifff.livejournal.com/1979.html
https://ru-radio-electr.livejournal.com/1221211.html
http://forum.cxem.net/index.php?/topic/159401-бп-кит-ps-1502dd-как-доработать-регулятор-тока/
https://www.elforum.info/topic/84699-modificare-sursa-laborator-performer-1502dd/page/2/
   In articolul http://anyram.net/blog_ru/?p=155 se prezinta o modificare interesanta pentru reducerea puterii disipate pe tranzistor, prin controlarea unei surse in comutatie sa aiba o tensiune de iesire cu putin mai mare decat tensiunea dorita:

sâmbătă, 1 iunie 2019

Mesaje complexe intre placi Arduino pe comunicatie seriala (2)

    Pentru a vedea utilitatea celor prezentate in articolul anterior am modificat programele sa transmit intr-un singur mesaj 3 valori alese aleator: o temperatura de genul -23.50C sau +23.50C, starea unui senzor (0 sau 1) si un procent (0 la 100).
   Schema de conectare este aceeasi
   Deoarece nu pot transmite decat valori intregi, ma voi folosi de un artificiu, voi trimite prima valoare un numar de 10 ori mai mare ca temperatura, a doua valoare va fi de un numar format din semnul temperaturii (1 pentru minus si zero pentru plus) inmultit cu 10 si starea vibratiei (0 sau 1) si procentul.
   De exemplu, daca am temperatura de +2,40C, starea senzorului activata (1) si procentul de 17%, voi transmite asa:
- primul numar va fi 24
- al doilea numar va fi 1, deoarece semnul temperaturii e plus si starea senzorului 1, deci 10*0+1=1
- al treilea numar 17.
   Daca al doilea Arduino primeste: 119,11,39, vom obtine:
- temperatura este -11,90C deoarece al doilea numar este 11 = 1*10 + 1, deci semn negativ, iar primul numar e 119 = 11,9*10;
- starea senzorului e activa 1, fiind cifra unitatilor de la al doilea numar
- procentul de umplere bazin e 39%, fiind chiar la treilea numar.
    Testul l-am realizat, ca si data trecuta, cu trimiterea datelor d eo placa Arduino Uno, care are un shield pe care este fixata o placa Arduino Nano:
   Programul pentru codare si transmitere este tx_2.ino, iar pentru receptie si decodare rx_2.ino !
   Am facut si 2 filmulete: