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

luni, 23 septembrie 2019

Statie meteo cu Esp8266 pe TFT 2,8 240X320 ILI9341

Am testat funcționarea unei stații meteo pe display TFT cu rezoluția de 240x320 ce are ca driver ILI9341 legat la un  ESP8266. Sursa de inspirație a fost https://www.instructables.com/id/ESP8266-Colored-Weather-Station/ .
Mai multe detalii se găsesc pe site-ul de inspirație, iar mai departe fac doar un rezumat scurt.
TFT-ul la ESP8266 l-am legat astfel:
CS-GPIO5, RST-RST, DC-GPIO16, MOSI-GPIO13, SCK-GPIO14, LED-+3,3V, MISO-GPIO12
Partea de touch am lasat-o deocamdata în aer, iar LED-ul TFT-ului l-am legat direct la +3,3V 
Definițiile pentru DC și CS le-am pus direct aici în tab-ul principal:
ILI9341_SPI tft = ILI9341_SPI(5, 16); pentru că nu a vrut să le ia din settings.h.
Apoi mi-am facut un cont free pentru a obține un api_key pentru  meteo: https://docs.thingpulse.com/how-tos/openweathermap-key/ , iar aici am căutat ID-ul pentru Iași: https://openweathermap.org/city/675810. În linia 65 de la settings.h am modificat :
#define UTC_OFFSET +1
înlocuind 1 cu 2 pentru a obține ora României.
Tot aici, în liniile:
#define WIFI_SSID "your-ssid"
#define WIFI_PASS "your-wifi-password" 
am trecut setările mele de wifi.
Apoi am început să caut lib-urile necesare. Pe github am pus o arhiva ce contine folderul Arduino cu codul si lib-urile necesare, folosite de mine. Practic trebuie redenumit dosarul curent, și copiat conținutul arhivei în locul acestuia. În poza de mai jos este screen-ul de la macbook unde am testat din nou proiectul, verificând astfel daca nu mi-a scăpat ceva la arhivarea de pe Ubuntu.

După compilarea finală  a ieșit ca mai jos:

duminică, 8 septembrie 2019

Statie meteo cu ESP8266 pe TFT

Am folosit informatiile de aici, pentru a testa functionarea unui TFT de 2" cu ILI9225 cu rezolutie 160x220 pe un modul cu ESP8266-12. Mai jos sint imaginile cu ESP-ul si TFT-ul. TFT-ul testat pe Atmega 328 este enervant de lent, insa aici legat cu ESP8266-12 mi s-a parut ceva mai rapid.


Pentru programare am folosit informatiile de aici, iar pinout-ul este mai jos:
Programarea se face ca in schema de mai jos:

iar ideea este urmatoarea: pentru a intra in modul programare se leaga GPIO0 la masa apoi se pune reset la masa, se revine  cu resetul apoi cu GPIO0, acum se poate face upload la cod, cind se termina de incarcat se apasa din nou reset dupa care ruleaza codul incarcat.
Display-ul este legat astfel, conform liniei de cod
UTFT myGLCD ( ILI9225B, 13, 14, 15, 2, 12 );//SDI (MOSI), SCK, CS, RESET, DC / GPIO13,14,15,2,12
Am evitat conectarea la GPIO0 (asa cum este pe blogul de inspiratie) deoarece la punerea sub tensiune intra automat in mod programare (cel putin asa se comporta modulul testat acum).
TFT-ul meu avind rezolutia mai mica (160x220 fata de 240x320) a trebuit sa redimensionez afisarea.
Informatiile meteo se iau de pe site-ul https://yandex.ru/pogoda/omsk/informer , iar pentru Iasi a rezultat 15090 conform cu ceea ce se vede mai jos:
Nr este util in linia de aici:

Link = "/bar/reginfo.xml?region=15090";

<a href="https://clck.yandex.ru/redir/dtype=stred/pid=7/cid=1228/*https://yandex.ru/pogoda/15090" target="_blank"><img src="https://info.weather.yandex.net/15090/1_white.ru.png?domain=ru" border="0" alt="Яндекс.Погода"/><img width="1" height="1" src="https://clck.yandex.ru/click/dtype=stred/pid=7/cid=1227/*https://img.yandex.ru/i/pix.gif" alt="" border="0"/></a>
Codul meu modificat pentru ILI9225, si lib-urile utilizate sint pe github.
A iesit ca mai jos:
 T_loc este temperatura furnizata de catre DS3231 (GPIO4=SDA, GPIO5=SCL), celelalte date sint culese de pe site-ul rusesc.
ESP-ul actual l-am folosit tot cu o placa adaptoare recuperata de la un alt test unde a decedat ESP-ul.
Am adoptat  lipirea firelor, datorita uzurii avansate a breadboard-urilor din dotare.
La ceea ce se vede mai sus consumul de resurse se poate vedea mai jos:


sâmbătă, 9 decembrie 2017

Priza WIFI cu ESP8266 pe pagina Cayenne

Pornind de la articolul lui Nicu, am refacut testul lui insa folosind un alt model de placa dar care are la baza tot ESP8266-12. Mai exact placa mea arata ca cea de mai jos:
Cu placa in aceasta forma este dificil de lucrat mai ales ca are pinii la 2mm distanta, asa ca am folosit o placa adaptoare care are si rezistentele pe ea:
Asamblata iese asa:

Pentru programare este necesara schema de mai jos si aici se poate vedea rolul rezistentelor de pe placa adaptoare;
Modulul l-am alimentat separat dintr-o sursa externa reglata la 3,3V, iar pentru programare am folosit un adaptor obisnuit USB-serial unde TX-ul l-am dus la RX-ul lui ESP si RX-ul USB-ului la TX-ul lui ESP fara nici un convertor de nivel. Detalii aici
Pentru a nu esua programarea, se tin apasate ambele butoane (reset si flash), se conecteaza alimentarea de 3,3V dupa care intii se elibereaza reset, apoi flash, apoi upload.
Placa folosita de Nicu are probabil alta schema, motiv pentru care a reusit s-o programeze cu led-ul conectat la GPIO0. De fapt se poate programa cu ledul conectat la GPIO0 insa la reconectarea alimentarii intra automat in mod programare.
Am pornit cu testul lui la care am schimbat pinul LED-ului, si a iesit ceva ca mai jos:
 aici este testul initial cind am pus TX si RX prin convertor de nivel.
Dupa citeva zile de teste am observat ca se comporta foarte bine de pe PC. De pe telefon (Android) aplicatia are o oarece intirziiere. Rezolvarea consta in inchiderea fortata si repornirea ei. De fapt valorile temperaturii si umiditatii pareau sa faca refresh imediat insa actionarea butonului era intirziiata.
Astfel am trecut la ceea ce voiam de fapt sa fac: comanda remote a unei prize de 220Vca.
Pentru asta am creat un proiect nou ce urma sa aiba doar un singur buton:
Pentru asta in partea stinga sus m-am dus la add new-device/widget
si aici am ales custom widgets
dupa care am ales button-ul
l-am configurat (vedeti in dreapta)
si in final am dat add widget
a rezultat butonul (aici apar 2 pentru ca aveam deja unul creat)
In caz ca nu s-au notat la crearea proiectului, informatiile necesare pentru cod, se pot afla de aici
Pentru moment m-a interesat actionarea remote doar a unei singure prize, insa modulul mai are pini disponibili. Pentru asta se poate adauga un buton nou pe un alt canal, iar in cod se adauga definitiile corespunzatoare acestuia.
Prototipul care este deja casetat intr-un jgheab OBO (prizele sint cele specifice fixarii pe jgheab) arata ca mai jos:
 Pentru a face 12V necesari releului initial am vrut sa pun un 7812, dar nu am reusit sa gasesc punga, si am utilizat un modul step-down 360. Transformatorul este 220/14 recuperat de pe undeva. 

 Pentru alimentarea cu 3,3V am folosit un Lm117-3,3 care functioneaza foarte rece: (spre final am repozitionat firele, dar nu mai am poza)


Amplificator ultra simplu cu MOS 40W/8Ohm la 2x30V

 Am început construcția unui amplificator cu tranzistori MOS după o schemă proiectată de Ionel Epure , care se împacă foarte bine cu boxele ...