vineri, 6 noiembrie 2015

Pagina de net (webserver) cu modul WiFi ESP8266-05

   In articolul anterior (Modulul de retea "uairles" ESP8266-05 si Arduino) am facut teste cu comenzi AT si cu conectarea la un server sa citesc ora. In acelele experimente, am folosit o placa Arduino Mega si un adaptor de nivel logic de la 5V cu cat lucreaza placa Arduilo la 3,3V cu cat lucreaza ESP8266.
   M-am gandiot sa fac o pagina de net, in care sa vad, pentru inceput, temperatura si umiditatea din camera.
   Montajul cu Arduino Mega, o interfata de nivel logic si un senzor DHT11 (DHT22 era ocupat):
   Am zis sa folosesc si un Arduino Uno, asa ca a trebuit sa reduc viteza de lucru la o valoare mai mica de 115200bps, deoarece librariile de emuleaza alte seriale nu lucreaza bine cu frecvente mari... din teste 19200bps e ok.
   Montajul este similar, doar ca nu am legat la Rx2-Tx2, cum e la Arduino mega, ci la D10 si D11:
   Schema de conectare este similara cu cea de jos, doar ca senzorul este conectat la D8, nu la A2, si nu e acel led:
respectiv
   In unele sketch-uri, am pus reset periodic, asa ca exist ao legatura intre D7 si RESET, cal si la Arduino Mega.
   Primele teste le-am facut cu exemple gesite pe net, la care am facut mici modificari, cum e cel materialul de la PetesTechProjects: "Mini Server on Arduino + ESP8266". Sketch-ul adaptat de mine este esp8266_dht_apwebserver_1m0.ino si se obtine pe eran:
conectandu-ma la "serverul" lui ESP8266:
   In exemplul de mai sus, modulul ESP8266 este in mod AP (Acces Point), dar poate fi si ca un "client" intr-o retea de WiFi, sau poate fi si si :)
   Intre timp am gasit la PetesTechProjects: "LED’s Control Through ESP8266 + Arduino Web Page" si Adding LED States to Web Page (LED’s Control Through ESP8266 + Arduino Web Page) in care se foloseste stilul Ajax, in care pagina e "statica", schimbandu-se periodic sau la cerere doar niste valori..
 
si am filmuletul numit pagina web cu ESP8266 si comenzi Ajax
   Tot "sapand", am dat de un material de forumul Arduino, in care se folosesc niste libarii noi, obtinand o pagina de net cu comenzi Ajax foarte stabila, in care folosesc sketch-ul esp8266_ajax_forum_dht_1m3_uno.ino:
   Ulterior, am pus si un senzor de temperatura DS18B20, deoarece DHT11 nu e asa precis, iar sketch-ul este esp8266_ajax_forum_dht11_18B20_ver1m5.ino:
   Schema este:
cu mentiunea ca mai este o legatura de la D7 la RESET, pentru a reseta din ora in ora placa si serverul.. 
   Am si 2 filmulete:


miercuri, 4 noiembrie 2015

Termostat controlat de pe o pagina web (2)

   Fata de articolul anterior, in care am folosit o placa Arduino Mega si o placa de retea de tip shield cu W5100, care creeea pagina de fiecare data, acum folosesc stilul Ajax, adica pagina web este statica si se schimba periodic sau la cerere parti din pagina, astfel placa de retea este putin utilizata si apar cazuri de "blocare" mai rar sau.. deloc...
   Schema folosita este aceeasi:
doar ca pagina, respectiv fisierul index.html este memorat pe cardul micro SD, deci folosesc incriptorul de pe placa de retea, cum este prezentat in articolul SD Card Web Server I/O, care avea o interfata de genul:
  Eu am incercat sa folosesc stilul anterior:
iesindu-mi:
apoi, am mai lucrat la pagina, care reseteaza din ora in ora placa Arduino si placa de retea (prin legarea pinului D7 la pinul RESET); pagina este asa: 
   Schema cu legarea pinului D7 la RESET:
   Am pus pe canalul de github, cele 2 versiuni in directorul webthermostat_ajax...
   Am facut si un filmulet, numit web termostat cu Ajax si Arduino

marți, 3 noiembrie 2015

Afisaj matriceal din 8x8 leduri controlat de MAX7219 (3)

   Am reluat testele cu statia meteo si ceas care prezinta datele pe un afisaj cu rezolutie de 32x8 leduri (compus din 4 afisaje 8x8 leduri rosii), contorlate de integrate MAX7219, de data asta am afisajele montate intr-o carcasa, iar ca placa de dezvoltare, am folosit un Arduino Mega, ca era disponibil. Pentru temperatura se foloseste un senzor DHT11, iar pentru temperatura un DS18B20.
- ora:
 - umiditate:
 - temperatura:
 - data (e text miscator, ca nu incape):.
   Schema este aceeasi:
   Am modificat sketch-ul, fata de cel din articolul anterior, astfel incat sa nu mai am partea de text (temperatura, umiditate, data, ora), devenind maxmatrix_ds18b20_dht_4module_ver7m2.ino.
   Am facut si 2 filmulete:
- statie meteo si ceas cu data pe afisaj led de 32x8 leduri (5)
- weather station on 32x8 led display drived by MAX7219

marți, 6 octombrie 2015

Pagina web cu "indicatoare analogice" folosind Ajax

   In articolul Two Gauge Arduino Web Server este prezentata o pagina web cu 2 "indicatoare analogice" (gauges).
si este si un filmulet numit Arduino Web Server with Two Analog Gauges
   Acolo se foloseste o placa Arduino cu o placa de retea tip shield, care are si cititor de carduri SD (versiunea oficiala cu W5100). Pe card se va incarca fisierul index.htm care include partea de indicatoare, iar placa Arduino trimite din cand in cand, doar daca e solicitata, date care sunt puse in pagina..
  Eu am adaptat sketch-ul si fisierul sa primesc date despre temperatura si umiditatea relativa a aerului citite de un senzor DHT22 (AM12302):
  Sketch-ul este eth_webserv_SD_Ajax_2_gauge_dht22.ino, iar fisierul, care trebuie scris pe cardul micro SD este index.htm.
  O captura de ecran (print screen) a paginii calculatorului:
si o poza a ecranului:
,
respectiv o poza a telefonului:
 Am facut un filmulet numit pagina web cu "indicatoare analogice" folosind Ajax

Termostat controlat de pe o pagina web

   Fata de termostatele clasice, de data asta folosesc o placa Arduino Mega si o placa de retea cu W5100 tip "shield" pentru a avea un "webthermostat"... 
   Am incercat variante cu grafica frumoasa, dar am revenit la afisare clasica cu pagina html, in care am comandat un LED (care poate comanda o placa cu releu, care la randul lui comanda o centrala sau un calorifer, dar se poate adapta si la un sistem de racire).
   Cazurile sunt:
- led stins manual
- led aprins manual
- led aprind automat (cand temperatura e mai scazuta decat cea setata)
- led stins automat (cand temperatura e mare decat cea setata)
   Pentru a avea mica animatie, cand se trece cu mouse-le peste "butoane", am schimnat culoare textului.
   Schema de conectare este simpla:
   In teste, nu am pus rezistenta de 4k7, dar pentru functonare indelungata e bine sa fie montata.
   Am facut un filmulet, cu o versiune mai veche de sketch 
apoi cu ultima versiune de schech, am facut 2 filmulete:
   Eu am alocat IP-ul in reteaua mea ca 19.168.2.199, iar portul este 8081, pentru a-l putea "scoate in lume"...
  Am folosit un serviciu al providerului de net, unde mi-am alocat un nume de domeniu virtual (dns dinamic) si anume tehniq.go.ro,
asa ca in sketch am pus:
pentru reimprospatare pagina (refresh), respectiv pentru apasarea butoanele:
  Daca se foloseste doar intr-o retea locala se pune adresa alocata peste tot..

joi, 1 octombrie 2015

Afisaj P20F04D-12L cu rezolutie 16x8 pixeli 2R1G1B (continuare)

   Dupa ce in partea intai am reusit sa "aprind" un panou dintr-un ecran stradal de tip P20F04D-12L cu interfata HUB40A cu ajutorul unei placi Arduino (Nano in cazul meu), am zis sa pun inca unul sa pot afisa informatii, gen temperatura si umiditate...
   Pentru a putea afisa un mesaj, intai am desenat un text cu rezolutia ecranului compus din cele 2 panouri (32x8) si am pus manual in siruri, in stilul de afisare:
obtinand pe ecran:

   In filmuletul afisaj 2R1G1B cu interfata HUB40A controlat de Arduino (8) se vede modul de afisare in diverse culori si cu viteze diferite de "aparitie" a textului:

   Am desenat un alt "text":
si am creat un sir cu 512 numere:
apoi am convertit in siruri mici pentru a fi afisate pe ecran:
   Am desenat inca un "text":
si am creat un alt sir cu 512 numere:
apoi am convertit in siruri mici pentru a fi afisate pe ecran:
   In filmuletul afisaj 2R1G1B cu interfata HUB40A controlat de Arduino (9) se vede modul cu se afiseaza cele 2 "imagini":

   Pasul urmator a fost sa realizez o ministatie meteo care indica temperatura si umiditatea. Aceste date sunt citite de un senzor AM2302 (DHT22), sunt prelucrate de Arduino si trimise afisajelor.
   Schema de conectare este:
iar sketch-ul este hub40a_test4m1s1.ino !
   Am facut 2 filmulete, in care si placa Arduino Nano este alimentata din sursa externa de 5V/40A: