Cum trimitem date de pe un senzor de temperatura si de pe un server NTP la o boxa Google Nest Mini
Posted: 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
Si un ESP8266 in format Wemos D1 mini
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 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. Era sa uit ce era mai important
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 !
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". Acesta pe care-l am eu cred ca este doar ieftin, nu si bun !
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.
Spor la bricolat !
Si un ESP8266 in format Wemos D1 mini
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 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. Era sa uit ce era mai important
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 !
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". Acesta pe care-l am eu cred ca este doar ieftin, nu si bun !
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.
Spor la bricolat !