In acest proiect vă propun un termometru cu ceas care are la bază o plăcuţă Arduino, un modul wifi ESP8266 pentru sincronizarea ceasului si un senzor de temperatura si umiditate DHT11. Am realizat acest proiect pentru sotia mea, care avea nevoie de un termometru de camera, cu scopul de a nu da banii pe o chinezarie ieftina din comert.

Componentele necesare

cov

 Display 1.8 TFT

tft1.8

Este un display TFT color cu o rezoluţie de 128×160 pixeli, 256K culori si dimensiuni foarte reduse (50x34mm). Acesta dispune şi de un slot microSD în cazul în care doriţi să afişaţi poze pe el. Conexiunea cu plăcuţa Arduino se realizează prin interfata SPI cu 7 fire (2 sunt VCC/GND) iar alimentarea poate fi făcută atât cu 5V cât şi cu 3.3V.

Pentru programarea display-ului recomand folosirea următoarelro librarii:

Senzor DHT11

DHT11_Pins

 

Senzor de temperatură şi umiditate. Performanţele acestui senzor nu sunt foarte strălucite. Acesta poate să măsoare temperatura în intervalul 0-50 cu o acurateţe de ±2°C şi umiditatea în intervalul 20-80% cu o acurateţe de 5%. Totusi daca nu sunteţi foarte pretenţioşi pretul recomandă acest senzor.

Pentru programare recomand libraria celor de la AdafruitŞ

Modul ESP8266

esp8266_pinout_h-569x236

Exista tot felul de variante pentru a lega plăcuţa arduino la internet. Din experienţa mea de pâna acum pot sa va zic că aceasta este cea mai ieftină şi nu este foarte greu de folosit. Oferă conexiune WIFI 802.11 b/g/n iar comunicarea cu arduino poate fi facută prin UART. Este open source, ceea ce înseamnă că firmware-ul poate fi modificat după bunul plac.

Caracteristici ce trebuiesc menţionate:

  • 802.11 b/g/n
  • Wi-Fi 2.4 GHz cu WPA/WPA2
  • 11.5 x 11.5mm
  • 10-bit ADC
  • protocol TCP/IP integrat
  • +20dBm in modul 802.11b
  • 32-bit MCU
  • SDIO 2.0, SPI, UART, I2C
  • STBC, 1×1 MIMO, 2×1 MIMO

În cazul meu am folosit modulul ES8266 pentru a sincroniza ceasul dispozitivului cu ceasul acestui server. Iniţial am încercat să folosesc un server NTP dar fără succes.

Codul PHP al paginii citite de dispozitiv este următorul:

Realizarea conexiunilor

termometru_bb

 Programare

Cum arată al meu

Termometru cu ceas bazat pe Arduino si ESP8266
Etichetat pe:                        

30 de gânduri despre „Termometru cu ceas bazat pe Arduino si ESP8266

  • 28/12/2014 la 14:03
    Legătură permanentă

    Frumos realizat.
    Am vrut sa incerc si eu modului ESP8266 dar nu eram sigur ca functioneaza. Acum vad la tine ca merge si nici nu iti trebuie shield de internet, ba chiar se conecteaza prin 4 fire cu arduino.
    Dar nu vad nimic despre configurarea ip-ului ?
    ESP8266 este receptor/transmitator ?

    Răspunde
      • 28/12/2014 la 15:51
        Legătură permanentă

        Daca introduci in cod :

        IPAddress ip(192, 168, 1, 112);
        EthernetServer server(82);

        Functioneaza ?

        Intreb asta pentru ca ma gandesc sa folosesc arduino cu esp8266 pentru o masa de plastic in care sa bag niste leduri RGB si sa ma folosesc de telefon sa schimb culorile. Si trebuie sa am o conexiune de ip fix ca sa schimb datele cu netIO pentru control led.

        Răspunde
          • 28/12/2014 la 17:43
            Legătură permanentă

            am sa caut.
            pai nu poti sau cel putin nu stiu eu cum. Am multe chestii prin casa care au ip uri. tv, telefoane, 2 placi arduino, pc……din router faci doar forward la ipuri. daca stii mai multe, spune-mi.

        • 02/12/2015 la 19:16
          Legătură permanentă

          Se poate din router. Faci rezervare de IP dupa MAC si se va reconecta mereu cu acelasi IP care fiind rezervat nu va fi folosit de alt device.

          Răspunde
  • 23/02/2015 la 13:58
    Legătură permanentă

    de unde pot achzitina un display ca acela pe care l-ai folosit in proiectul „termometru cu ceas”…
    Multumesc anticipat

    Răspunde
  • 23/02/2015 la 15:58
    Legătură permanentă

    asi vrea sa fac o adaptare pt un carkit bluetooth caruia nu-i mai functoneaza diplayul,va intreb daca pot realiza o interfata cu display cu arduino micro+display folosite de dv la proictul „termometru cu ceas”

    Răspunde
  • 03/03/2015 la 11:33
    Legătură permanentă

    Buna ziua,
    Sunt in posesia unui tft 1.8 de la robofun.ro. Nu reusesc sa-l fac sa functioneze cu libraria adafruit. Cu cea TFT inclusa functioneaza, de asemenea si cu Ucglib. Am gresit undeva? Faina realizarea! Multumesc,

    Răspunde
  • 28/04/2015 la 21:12
    Legătură permanentă

    Salut
    Mă chinui de ceva timp să conectez modulul esp. Nu reușesc nici cum. Am încercat diverse metode pe care le-am găsit pe net. Am pus un stabilizator de tensiune de 3.3v . nu reușesc sa comunic cu el deloc. Am reușit o data când l-am flashuit. Am primit răspuns la comenzile AT , după care nimic. Nu înțeleg ce nu fac bine. Nu cred ca este prăjit pt ca uneori când decuplez vcc-ul primesc un mesaj pe serial : sistem ready. Si câteva caractere ciudate. Poate o părere din partea voastră m-ar ajuta. Ps. Folosesc arduino uno.mulțumesc

    Răspunde
      • 11/05/2015 la 15:19
        Legătură permanentă

        Salut
        Am rezolvat problema, Era prajit modulul. am luat altul.
        Am alte probleme acu legate de programare: imi ia ora decalata, cu o ora in urma, am folosit acest cod, plus ca nu imi merge counterul, adica prima valoare pe care o ia, aia ramane pe display.
        Tin sa cred ca e din cauza unui delay de 90000, pe care l-am pusin loop, pentru a sincroniza vremea de pe net odata la 15 min.

        Răspunde
  • 02/06/2015 la 10:09
    Legătură permanentă

    Thanks for the project, it works, but the time shows 1 hour less. How to change the code to show properly? Many thanks in advance!

    Răspunde
    • 04/06/2015 la 14:11
      Legătură permanentă

      Hi,

      You need to change line 147:pctime=pctime+7200;
      7200 represents the offset in seconds, so if you need to offset it an additional hour you should add another 3600s to than number.

      Răspunde
  • 04/06/2015 la 20:18
    Legătură permanentă

    Thank you very much for the answer, but I already figured out himself. The alarm function in this project is not going to do?

    Răspunde
  • 06/06/2015 la 11:30
    Legătură permanentă

    Aveți în proiectul de indicare a temperaturii până la sutimi de grad, ultimul semn întotdeauna „0”,- cum de a face schimb de marca „Cu”?

    Răspunde
  • 14/06/2015 la 21:59
    Legătură permanentă

    Salut! Eu încerc să fac și eu acest proiect, am cumpărat toate detaliile dar nu-s identice (spre exemplu folosesc o clonă a Arduino Nano), oricum am probleme cu codul… cînd incerc să compilez acest cod, primesc urmatorul mesaj:
    Arduino: 1.6.4 (Windows 8.1), Board: „Arduino Uno”

    Using library TextFinder in folder: C:\Users\Alex\Documents\Arduino\libraries\TextFinder (legacy)

    Using library Time in folder: C:\Users\Alex\Documents\Arduino\libraries\Time (legacy)

    Using library Timer-master in folder: C:\Users\Alex\Documents\Arduino\libraries\Timer-master (legacy)

    Using library Adafruit GFX Library in folder: C:\Users\Alex\Documents\Arduino\libraries\Adafruit-GFX-Library-master

    Using library Adafruit ST7735 Library in folder: C:\Users\Alex\Documents\Arduino\libraries\Adafruit-ST7735-Library-master

    Using library SPI in folder: E:\Programs\Arduino\hardware\arduino\avr\libraries\SPI

    Using library DHT sensor library in folder: C:\Users\Alex\Documents\Arduino\libraries\DHT-sensor-library-master

    E:\Programs\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10604 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IE:\Programs\Arduino\hardware\arduino\avr\cores\arduino -IE:\Programs\Arduino\hardware\arduino\avr\variants\standard -IC:\Users\Alex\Documents\Arduino\libraries\TextFinder -IC:\Users\Alex\Documents\Arduino\libraries\Time -IC:\Users\Alex\Documents\Arduino\libraries\Timer-master -IC:\Users\Alex\Documents\Arduino\libraries\Adafruit-GFX-Library-master -IC:\Users\Alex\Documents\Arduino\libraries\Adafruit-ST7735-Library-master -IE:\Programs\Arduino\hardware\arduino\avr\libraries\SPI -IC:\Users\Alex\Documents\Arduino\libraries\DHT-sensor-library-master C:\Users\Alex\AppData\Local\Temp\build6361234475182531577.tmp\sketch_jun14a.cpp -o C:\Users\Alex\AppData\Local\Temp\build6361234475182531577.tmp\sketch_jun14a.cpp.o

    sketch_jun14a.ino:37:20: error: ‘Serial1’ was not declared in this scope
    sketch_jun14a.ino: In function ‘void setup()’:
    sketch_jun14a.ino:49:3: error: ‘Serial1’ was not declared in this scope
    sketch_jun14a.ino: In function ‘void ClockSYNC()’:
    sketch_jun14a.ino:110:3: error: ‘Serial1’ was not declared in this scope
    ‘Serial1’ was not declared in this scope

    nu prea am experiență în C, iar Arduino l-am primit cîteva zile în urmă, deaceea am decis pentru început să utilizez acest code (consider proiectul destul de reușit), dar nu pot să compilez programul, am incercat să caut ceva despre errori (mai mute persoane au aceleași errori), dar nu am gasit nici o soluție care să meargă pentru mine, deaceea am decis să adresez această întrebare persoanelor care au mai multă experiență decît mine… aș fi foarte recunoscător dacă m-ai ajuta să fac ca și proiectul meu să funcționeze. Apropo, codul l-am copiat (Ctrl+C/Ctrl+V de aici), deaceea nu înțeleg de ce nu se înscrie (chiar dacă mai apoi ar putea să nu funcționeze ar trebui cel puțin să reușesc să-l înscriu).Mulțumesc anticipat!

    Răspunde
    • 15/06/2015 la 10:54
      Legătură permanentă

      La prima vedere pare ca nu ai selectat placa corect in meniul de placi Arduino IDE. Incearca sa selectezi ArduinoNano si ai sa vezi ca nu iti mai apare eroarea respectiva.
      Ce fel de colna ai?

      Răspunde
      • 19/06/2015 la 21:57
        Legătură permanentă

        Yo!
        Deci… am găsit care era problema… programul nu se compila pentru ca placa Arduino Nano nu are mai multe proturi seriale (Arduino Micro are 2 Serial0 și Serial1), deci am schimbat Serial1 cu Serial și programul s-a compilat și s-a instalat, deasemenea am schimbat sensorul DHT11 cu DHT22. Acum am altă problemă, eu am asamblat dispozitivul după schema de mai sus… dar nu am conectat modulul ESP8266 (nu am Wi-Fi acasă, deci nu îmi de folos oricum… cel puțin încă nu…), deci după asamblare am vrut să testez programul, l-am instalat, dar Display-ul nu arăta nimic… am decis să verific Display-ul, am încărcat graphics test din biblioteca Adafruit-ST7735, și la fel nu arăta nimic… nici măcar nu lumina… am conectat doar display-ul si lucreaza perfect, nu lucrează atunci cînd DHT22 este conectat… decit dacă nu-l conectez la 5V atunci merge… m-am gîndit că poate nu-i ajunge alimentare (alimentez placa de la USB), sau poate schema are ceva… dar la tine a mers… deaceia m-am gindit să-ți cer părerea…

        Răspunde

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *