Cum trimitem date de pe un senzor de temperatura si de pe un server NTP la o boxa Google Nest Mini

Discutii despre placile de dezvoltare compatibile Arduino
User avatar
Levy
Gold User
Posts: 1538
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Cum trimitem date de pe un senzor de temperatura si de pe un server NTP la o boxa Google Nest Mini

Unread postby Levy » 22 Apr 2022 18:44

Pentru realizarea acestui mic montaj am folosit un senzor de temperatura DHT22, model care a fost fabricat in formatul Wemos D1 mini

Image

Si un ESP8266 in format Wemos D1 mini

Image

si bineinteles gogoasa de le Google, boxa google nest mini.

Libraria pe care am folosit-o pentru conectarea cu Google nest o puteti descarca de aici.

Codul este o adunatura de coduri adaptate pentru a ne folosi pentru a trimite date catre boxa de la google, care sa le spuna ca notificari.
Practic cu ajutorul acestui montaj si acestui cod puteti face ca datele de pe senzorii dumneavoastra sa poata fi spuse de boxa Google Nest Mini.

Codul pe care l-am scris se poate gasi aici.

Pentru partea de citire ora exacta de pe internet m-am inspirat de aici



Trebuie sa completati in cod datele dumneavoastra referitoare la SSID-ul si parola retelei wifi pe care vreti sa conectati montajul, trebuie sa fie aceeasi retea in care aveti difuzorul nest mini. Daca nu sinteti din Romania si vreti ca ora exacta sa fie in alt Time Zone, va trebui sa modificati si acela, atentie este in secunde !
Nu uitati sa modificati si numele speakerului in cod, altfel nu-l va gasi in retea si nu va functiona deloc.

Functionarea.
Dupa conectarea la reteaua WIFI, va cauta daca exista numele pe care l-am dat speakerului. Daca-l gaseste totul este ok, va si afisa asta in consola seriala, asta doar daca va intereseaza, pe moment m-am axat doar pe transmiterea datelor catre difuzor.

In cod se stabileste intervalul orar intre care vor functiona notificarile, asta ca sa nu se apuce noaptea sa va povesteasca :haha: In cod am setat acestea de la ora 9 dimineata la 21 seara.
Si tot acolo sint setate intervalele orare la care sa trimita date catre speaker. Codul pe care l-am pus la dispozitia dumneavoastra trimite notificari la ora exacta, la ora exacta + 15 minute, la jumatate si la 45 de minute. Aaaa, si era sa uit. La pornire, daca totul este ok se va prezenta, si va va spune ca va transmite date despre ora exacta, ziua, data, temperatura si umiditate la fiecare 15 minute. :haha: Era sa uit ce era mai important :haha:

In cod am inclus si o portiune de cod, unde din 20 in 20 de secunde, va verifica conexiunea la internet (cred ca am exagerat aici, dar si acest timp are un motiv bine intemeiat), iar daca constata ca s-a deconectat de la reteaua Wifi, va incerca sa se reconecteze din nou. Deocamdata nu am testat asta, dar este o portiune de cod pe care am testat-o mai demult la un alt montaj si a functionat foarte corect.

Am facut un scurt video cu functionarea si felul in care arata jucaria.



Realizarea lui nu cred ca poate pune probleme cuiva, in afara de cositorirea baretelor pe module, care sint relativ marunte. Bine, nu se compara cu un modul RDA 5907, unde sa cositoresti firele, e chiar o pedeapsa nemiloasa ! :haha:

Image

Problemele mai mari la realizare le-am intalnit in momentul in care vroiam sa transmita date de pe senzorul DHT22. Desi datele erau corecte nu erau in formatul pe care i-l accepta libraria.
Senzorul DHT22, cel putin acesta pe care-l am eu, este sub orice critica, am impresia ca datele sint departe de realitate, dar pe moment nu am avut timp sa-l compar cu altele. Cred ca au reusit chinezii sa cloneze si astea astfel incat sa-l faca "ieftin si bun". :haha: :drink2: Acesta pe care-l am eu cred ca este doar ieftin, nu si bun ! :haha:

Si ce este intr-adevar important era sa uit !
Pentru ca sa aveti DATA, ZIUA, ANUL extrase din serverul NTP corecte, trebuie sa faceti downgrade la BOARD MANAGER!
In Arduino IDE, mergeti la Tools > Board > Boards Manager. Cautati dupa ESP8266. Si faceti downgrade la versiunea 2.7.4.
Daca nu faceti acest pas, la prima citire a datelor de catre speaker o sa aveti o surpriza enorma. :haha:


Spor la bricolat !
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !

Image
User avatar
Levy
Gold User
Posts: 1538
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Cum trimitem date de pe un senzor de temperatura si de pe un server NTP la o boxa Google Nest Mini

Unread postby Levy » 23 Apr 2022 19:39

Ca urmare a unui post pe Facebook, in grupul Arduino Romania, comentariul lui Csaba Papp, m-a ajutat sa fac ca Wemos D1 mini sa transmita notificari despre temperatura, umiditate, date si ora in limba romana si in limba maghiara. Multumesc si pe aceasta cale autorului comentariului ! Codurile modificate pentru limba Romana si limba Maghiara le gasiti aici in descrierea acestui videoclip.



In mod cu totul interesant caracterele romanesti si cele maghiare sint destul de corect redate pe speakerul Nest Mini. :drink2:
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !

Image
User avatar
Levy
Gold User
Posts: 1538
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Cum trimitem date de pe un senzor de temperatura si de pe un server NTP la o boxa Google Nest Mini

Unread postby Levy » 24 Jul 2022 13:03

Pentru ca am observat ca Wemos se incinge destul de bine in timp, incat sa incalzeasca si senzorul DHT22, am facut putine modificari. Am asezat senzorul DHT22 departe de Wemos D1 mini si nu peste el cum este in acest video, am adaugat un senzor BMP280, ca sa pot citi si presiunea atmosferica, si am adaugat si un ecran 1602, pe care am afisat ora exacta, temperatura, umiditatea si presiunea atmosferica.

Codul modificat pentru limba romana i-l puteti vedea aici:


pentru limba maghiara aici:


Nu am facut inca un video cu felul in care arata acum, pentru ca vreau sa-i adaug un webserver asincron, pe care sa fie afisate aceste date, si daca reusesc, acest webserver sa aiba un TAB, unde se vor putea face cateva setari. De exemplu reglarea fusului orar, afisarea temperaturii in C sau F, stingerea backlighului intre anumite ore etc...Dar pe moment timpul liber nu-mi permite asta. Probabil doar in viitorul apropiat.

Image
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !

Image
User avatar
Levy
Gold User
Posts: 1538
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Cum trimitem date de pe un senzor de temperatura si de pe un server NTP la o boxa Google Nest Mini

Unread postby Levy » 28 Jul 2023 18:10

Pentru ca Google a modificat ceva la Voice Notification, am rescris variantele in limba Romana si limba Maghiara a codului pe care l-am incarcat pe dispozitiv, astfel s-a corectat notificarea vocala care era cu probleme de la inceputul acestei saptamani.

De exemplu, in loc sa spuna ora "optsprezece" de vre-o saptamana spunea "este ora unu opt". :haha:
In mod ciudat minutele le spunea corect: "si patruzeci si cinci de minute." :haha:

Asa ca m-am apucat de cautat sa vad cum sa fac sa spuna corect ora exacta.

Codul modificat pentru limba Romana este urmatorul:



Codul modificat pentru limba Maghiara este urmatorul:



Spor la bricolat!
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !

Image

Return to “Arduino”

Who is online

Users browsing this forum: No registered users and 13 guests