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

vineri, 11 septembrie 2026

Ceas NTP cu alarma si administrare pe pagina web

 De curând am găsit și mi-a plăcut un proiect de ceas NTP cu alarmă și timer cu administrare dintr-o pagină web. Cum nu aveam acea plăcuță l-am solicitat pe Gemini AI să mă ajute cu conversia la placa mea:

Și a ieșit așa:
Apoi am început să testez diferite font-uri rotunjite și diferite culori


Informațiile de stare accesibile la apăsarea lui BOOT0


Pagina web
Ulterior am mai găsit 2 afișaje mai mari ca dimensiune, dar mai mici ca rezoluție, iar Gemini, ghidat de mine, nu a avut nici o problemă cu conversia codului. 

Functionează foarte bine și stabil de mai mult de o săptămână, iar arhiva proiectului este free și se află pe github.
Un filmuleț demonstrativ pentru versiunea originală dar cu explicații în limba română este pe YT-ul lui Nicu Florică.



marți, 1 septembrie 2026

Internet radio

 Zilele trecute mi-a atras atenția un proiect de internet radio care folosește un site de unde extrage posturile dorite fără a mai fi nevoie de căutarea și editarea manuală a acestora cum este la yoradio. Proiectul original este prezentat aici, cu codul aici.

M-am hotărât să-l testez cu PCM5102 pe un display similar 128/160 dar cu chip ILI9341.

Pentru a pregăti PCM-ul de funcționare trebuie citit aici.



ESP32-ul trebuie pregătit ca în poze:

Mie nu mi-a funcționat pe o versiune mai mare de 2.0.18

În final am reușit să-l compilez cu sunet, însă numărul posturilor găsite era destul de redus față de ceea ce citisem pe site, iar tipul posturilor nu se prea potrivea cu gusturile mele, așa că am abuzat de Gemini AI PRO la care oricum am abonament, care m-a luminat după care care am conlucrat la eliminarea filtrului cu extensiile acceptate, adăugarea de noi tipuri de posturi și includerea României în lista țărilor. 
Cum display-ul era cam static, i-am solicitat lui Gemini să pună și un vu-metru în locul cu cel mai mult spațiu liber.
Legăturile au trebuit modificate față de codul original pentru că placa mea cu ESP32 avea alti pini disponibili în exterior și se pot vedea și în codul adaptat de mine ce este urcat pe github.

#define I2S_DOUT 26
#define I2S_BCLK 25
#define I2S_LRCK 22

#define TFT_SCK 18
#define TFT_MOSI 23
#define TFT_DC 4
#define TFT_RST 2
#define TFT_CS 5

#define ENC_CLK 32
#define ENC_DT 33
#define ENC_SW 27

Și a ieșit ca mai jos:

Deocamdată e depus pe un raft în siguranță ca să nu sară sârmele și l-am lăsat în teste pe o boxă portabilă.
Până acum am observat că nu are întreruperi deloc, iar dacă sunt probleme cu stream-ul trece automat pe următorul post.
Dacă se dovedește stabil îl voi aduna pe un PCB.

Update-11-sep-2026

Având mai multe afișaje LCD128x64 am testat portarea codului pe un astefel de display, iar deocamdata pare OK:
I-am mai adăugat un ceas pe mijloc (știe de oră vară/iarnă), am făcut un scroll la info post/melodie și am mutat grafica pe un CPU și sunetul pe celălalt. Codul este urcat pe github.




joi, 31 august 2017

Ceas pe LCD ST7920 CU REGLAJ

Am pornit de la articolul de aici unde mi-a placut realizarea acestuia. Initial am testat codul omului, a functionat insa cercul in realitate arata rau de tot, mai ales daca e privit de aproape, asa ca am renuntat la el. Asta datorita rezolutiei ecranului.
Ulterior m-am hotarit sa fac un ceas mai serios cu cifre cit mai mari si reglaj manual ca sa nu depind de calculator la trecerile ora vara/iarna, eventual alarma daca mai raminea memorie disponibila, si din pacate nu a mai ramas.
Pentru display este folosita o biblioteca U8glib cu care m-am "imprietenit" mai greu (pe link este cea folosita de mine.).
Modul de conectare al display-ului la arduino este descris cu foarte multe detalii de Nicu Florica la el pe blog , si nu voi repeta aici.
I-am adaugat un DS1307, un DS18B20 si trei butoane :
#define meniu 9 
#define minus 10
#define plus 11 
#define ONE_WIRE_BUS 8
La scrierea codului m-am inspirat de aici pentru ca foloseste tot U8GLIB si a iesit ca mai jos:
Am marit atit cit a fost posibil fontul orei iar restul informatiilor le-am incadrat la dimensiunea maxima acceptata de rezolutia ecranului.

 Aici se poate vedea modul de reglaj imediat dupa Duminica  . Am vrut sa sterg ecranul in modul reglaj insa codul depasea marimea maxima a lui Arduino micro (pe asta l-am folosit spre final), si astfel singurul loc liber era cel imediat dupa afisarea zilei.
La rutina de reglaj m-am inspirat tot de la Nicu, ca mi s-a parut foarte simpla de implementat.

(Sketch uses 29814 bytes (97%) of program storage space. Maximum is 30720 bytes.)



Codul final si bibliotecile folosite sint aici:
Consumul este sub 100mA


 Modelul de senzor e temporar pina soseste unul in capsula TO-92
update:34-iul-2018
Dupa varianta lui Nicu realizata cu encoder, am adaptat codul pentru 3 butoane (nu am avut disponibil nici un encoder):
Functionalitatile in mare au ramas cele descrise de Nicu Florica pe blog-ul lui.
Codul pentru poza din stinga este pe github iar pentru cel din dreapta tot pe github. La varianta din dreapta am corectat afisarea secundelor analogice pentru ca era o mica abatere fata de cele numerice.
In plus fata de ce a testat Nicu Florica am adaugat un senzor DS18B20. Fonturile utilizate ocupa foarte multa memorie si am incercat sa fac un compromis pentru o afisare cit mai vizibila.

update 11-aug-2019
A sosit zilele astea display-ul de mai jos pe care am facut citeva teste:


Pentru a functiona a trebuit sa fac upgrade la u8glib, iar driverul a functionat cu:
U8GLIB_DOGM128 u8g(8, 9, 5, 7); // SPI Com: SCK , MOSI, CS, A0
RST-ul LCD-ului l-am legat la pinul reset al lui arduino.
Neajunsul este ca are un offset pe x de -4 puncte.
Codul de test aferent pozelor de mai jos este pe github.
Ecran luminat
Neajunsul cu offset-ul se poate distine usor in partea dreapta unde aprinde pixeli in mod aleatoriu. Mai exact, zona de lucru este de la 4(x=0) la 124, diferenta de 4 pixeli apare aleatoriu in dreapta la pornirea tensiunii de alimentare
Fara lumina de fundal
O alta clona modificata, cod pe github
Update: 22-ian-2022
Cam acelasi cod dar de data asta cu arduino mega si un display 240x64 DG24064 cu T6963




Legaturile se deduc foarte usor din codul postat pe github pentru prima varianta si tot pe github si pentru a doua.

SMPS cu TNY180 pe EF20 12V cu 2,5A

 Am testat zilele acestea o sursă cu TNY180 pe diverse miezuri ca în final să ramân la EF20 făcut de MYRRA cu codul 74080 . Montajul de te...