duminică, 27 iunie 2021

Ceas NTP pe afisaj P5 RGB 64x32 cu ESP8266

     Acest ceas preia ora de la un server NTP, i se poate seta ora locala si intensitatea luminoasa de pe o pagina web locala, afiseaza temperatura + umiditate relativa aer de la un senzor DHT22 + un text predefinit.

    Proiectul de la care m-am inspirat este cel prezentat intr-un filmulet numit ESP8266 WebServer Weather Station DHT22 RGB Matrix P4 Clock care are in descriere si articolul ESP8266 DHT22 RGB Matrix P4 Weather Station Clock Web Server

   Eu am folosit afisaj P5, care are ledurile mai mari decat versiunea P4.

   Autorul foloseste schema, pe care o voi folosi si eu:

iar pagina web locala arata cam asa

   In articolul original, se scria un text si se alegea viteza acelui text, eu am modificat sa mi se poata modifica doar intensitatea luminoasa. 
in zona asta
am pastrat partea de reglaj ora locala
  In plus, la pornirea ceasului apare si adresa IP locala pe ecran, adresa necesara necesara pentru a avea acces la pagina web pentru reglaje, in materialul original, trebuia folosit un program sa gasesti ESP-ul ceasului.
   Cu ajutorul lui Cristi Vasilache, am modificat afisarea gradului Celsius intr-un singur caracter
cu un grad si litera C
    Cel mai bine se vede in cele 2 filmulete;
   Programul adaptat de mine, care inca mai are mult pana sa fie optim, este ESP8266_DHT22_RGB-Matrix-P5_1a1.ino necesitand si fisierul (modificat de mine pentru semnul de grad) kongtext4pt7b.h ce trebuie pus in interiroul subdirectorului librariei grafice Adafruit_GFX_library

   Deoarece nu am avut un senzor DHT22, am introdus o variabila fakeDHT ce trebuie sa fie 1 pentru un senzor real montat


Compensare iluminat natural cu becuri

    Montajul de baza este foloseste un sistem cu fotorezistenta sau un buton, o comanda sau contact de la un senzor extern pentru a compensa cu un bec sau 4 becuri reducerea luminii naturale la apunerea soarelui si apoi cresterea la rasaritul soarelui.


    Montajul de test, facut de mine deriva din cel al instalatiei electrice pentru o jucarie si am facut mici modificari, doar la comanda, unde am pus o rezistenta de 10k la plus si buton la masa, pinul comun fiind la A0. In mod optim ar fi o fotorezistenta pusa la plus si o rezistenta de 10k la masa, pinul comun fiind la A2, montajul este un divizor rezistiv si pentru cazul cand lumina solara pe fotorezistenta este suficienta, tensiunea pe pinul analog A0 este crescuta deoarece rezistanta senzorului este mica, iar noaptea, pe pinul analogic este tensiune redusa, deparece rezistenta senzorului este foarte mare, deci la apasarea butonului pot simula conditiile de noapte.

   Schema initiala era cam asa, ea findu-mi trimisa de cineva de pe facebook, in care cele 4 leduri controlau 4 rezistente ce intrau in circuitul de comanda al unui triac/tiristor. Din pacate, trimitandu-i sketch-ul testat mi-a raspuns ca nu functioneaza, fapt ce m-a determinat sa-i zic cateva cuvinte de "multumire" si sa-l blochez... ulterior nu am mai dat de el, dar nu cred ca e o pierdere mare pentru mine 😇, dar mi-am adus aminte ca modul de iluminare ca acesta e util pentru acvarii sau sisteme de sere pentru a mari viteza de crestere a plantelor, asa ca am zis ca e util cuiva, canva...

    Schema testata de mine este
    Prima varianta, este aceea cand am folosi un sistem de a controla 4 becuri de putere diferite, gen primul de 15-25W, al doilea de 50W, al treilea 75W si ultimul de 100-120W sau un bec de 100-120W cu control in 4 trepte. Programul scris de mine este autolight_4ch_ldr.ino si daca este ziua, nu este nici un bec aprins, apoi scade nivelul de iluminare pe senzor sub pragul impus, se aprinde primul bec, la 10 minute, se stinge primul, aprinzandu-se al doilea, dupa inca 10 minute, se sringe al doilea bec si se aprinde al treilea, la 10 minute se stinge al treilea si se aprinde al patrulea, ramanand aprins pana trecerea la nivelul de zi, cand se repeta procesul, dar invers.
    In cele 2 filmulete se vede mai bine modul de lucru, doar ca timpii i-am pus la 2 secunde, in loc de 10 minute
   Ulterior, am zis ca ar merge sa se foloseasca 4 becuri identice, asa ca se vor aprinde, una, doua, trei sau 4 simultan, in acest caz programul folosit este autolight_4ch_ldr2.ino si modul de functionare se vede in cele 2 filmulete:
    O varianta mai frumoasa este cea cu control PWM al unor becuri sau comanda unghiului de comanda a unui triac, dar asta cu alta ocazie.

PS: timpul de tranzitie se face din variabila tpled
- 10 minute (echivalentul in ms)
- 2 secunde (echivaletul in ms)

Instalatie electrica pentru macheta auto/moto

    Pentru cei ce sunt pasionati de machete realistice, va prezint o instalatie electrica comandata de o placa Arduino Uno (sau Nano, ProMini, etc), care controleaza:

- semnalizare stanga / dreapta (optional si avarie)

- lumina de pozitie / frana

- faza scurta / faza lunga

   Aceast montaj de test a fost realizat la cererea prietenului meu George Dacin, 

    Schema testata de mine este simpla, folosindu-se 5 butoane fara retinere si 5 leduri cu rezistente de limitate curent:

    Dupa alimentarea montajului, se vor aprinde, de verificare, pe rand toate cele 5 leduri, ramanand aprins la o intensitate redusa becul de pozitie/frana.
    La apasarea butonului de semnalizare stanga, se aprinde cu intermitenta ledul de semnalizare stanga, aceeasi functionalitate este si pentru butonul de semnalizare dreapta, doar ca se aprinde cu intermitenta ledul de semnalizare dreapta. daca se apasa simultam butoanele de semnalizare, efectul este de lumina de avarie.
    La o prima apasare a butonului de lumini, se aprinde ledul de faza scurta, daca se mai apasa o data, aceasta se stinge. Daca atunci cand este aprinsa faza scurta se apasa butonul de faza lunga, ledul de faza lunga se aprinde, cel faza scurta se stinge se aprinde; la o noua apasare a butonului de lumini (faza scurta( se trece pe faza scurta, iar la o noua apasare se stinge si aceasta.
    Pentru frana, sunt 3 versiuni de functionare, functie de ce program este incarcat:
- varianta 1 (clasica), la apasarea butonului de frana, ledul de pozitie/frana se aprinde la valoare maxima (programul folosit este moto_0a1.ino)
- varianta 2, la apasarea butonului de frana, ledul de pozitie/frana se aprinde la valoare maxina, dar pentru scurt timp se aprind si ledurile de semnalizare stanga/dreapta (programul folosit este moto_0b.ino)
- varianta 3, la apasarea butonului de frana, ledul de pozitie/frana se aprinde la valoare maxina, dar pentru un timp se aprind cu intermitenta si ledurile de semnalizare stanga/dreapta (programul folosit este moto_0b1.ino)
    Am realizat cate 2 filmulete, pentru fiecare versiune:
    Pentru o macheta mai mare sau chiar o motocicleta unicat, trebuie folosite module cu relee sau tranzistori (bipolari sau mosfet) pentru semnalizari, faza scurta / faza lunga si neaparat tranzistor (bipolar sau mosfet) pentru lumina de pozitie / frana.