joi, 19 ianuarie 2017

Termostat dual cu Arduino Due si afisaj de 3,95" (10cm)

   In articolul precedent, am "pornit" un afisaj de 3,95" (10cm) pentru Raspberry Pi cu ajutorul unei placi de dezvoltare Arduino Due care permite conectarea directa deoarece lucreaza cu nivel logic de 3,3V, acum va prezint un termostat dual (doua zone), despre care am precizat si anterior.
   Schema de conectare este acceasi:
   Initial am conceput sketch-ul (programul) pentru se folosi o schema existenta cu 2 cronotermostate montate deja la o centrala, contactul pentru circuitul de apa calda al centralei, la care am adaugat un modul de ceas cu DS3231 ;i 3 senzori digitali de temperatura DS18B20 (unul afara pentru indicare temperatura exteriaora, unul pentru a citi temepratura dintr-o zona - parter si unul pentru a citi temepratura din cealalta zona - etaj), conform solicitarii lui Romica:
   Pe ecran apare ora, temperaturile din cele 3 zone, o icoana cu un robinet cand se foloseste circuitul de apa menajera, 2 icoane (triunghi-uri) pentru pornirea pompelor de circulatie aferente circuitului respectiv, care indica si faptul ca centrala functioneaza.
   Am pus pe canalul de youtube, mai multe filmulete cu aceasta versiune de (pseudo)termostat, in care am folosit sketch-ul thermostat_06a.ino
termostat dublu cu Arduino Due pe afisaj de 3.95" (4a)
Dual Thermostat with Arduino Due on 3.95" TFT display
   Ulterior, am discutat cu Romica sa facem un termostat adevarat, in sensul de comanda placa Arduino centrala, asa ca am modificat schema, pentru a avea si 3 butoane (MENIU, + si -) din care sa pot regla ceasul, data, limba (romana sau engleza), temperatura dorita din prina zona (parter), temperatura dorita din zona 2 (etaj) si histerezistul (diferenta de temperatura admisa).
  Valorile temperaturilor, cea a histerezisului si a limbii folosite sunt stocate in memoria EEPROM care se gaseste pe modulul de ceas cu DS3231, pentru ca microcontorlerul de pe Arduino Due nu are memorie EEPROM. Sketch-ul care face asta este thermostat_07.ino, iar modul de prezentare al datelor, modul de reglaj se vede din filmulete:
termostat dublu cu Arduino Due pe afisaj de 3.95" (5)
Dual Thermostat with Arduino Due on 3.95" TFT display (2)
03.02.2016
   Sketch-ul thermostat_08.ino functioneza mai bine, deoarece compara valori "reale" nu intregi...

22 de comentarii:

  1. Buna ziua. Ajutati-ma va rog sa sterg robinetul din codul : thermostat_07.ino (thermostat_08.ino nu functioneaza pe MEGA) . Vreau sa folosesc codul pentru automatizarea unei centrale pe lemne , am reusit sa fac ecranul sa arate alt fel , sa pun temperaturile in alte zone ale ecranului , sa mut triunghiurile si sa le micsorez dar nu reusesc sa sterg robinetul de acolo , inclusiv patratica neagra care il face sa dispara cand se deschide contactul (26-gnd). Va multumesc .

    RăspundețiȘtergere
    Răspunsuri
    1. buna ziua, din pacate, a trecut cam mult timp de atunci.. trebuie sa fie un nume cu robinet, ceva romanesc... sa-l comentati.... stau foarte rau cu timpul liber si nu stiu cand reusesc sa ma uit prin cod...

      Ștergere
    2. comentati liniile 616-623
      /*
      if (digitalRead(robinet1) == LOW)
      {
      robinet (ics1, igrec1);
      }
      else
      {
      stergere1 (ics1, igrec1);
      }
      */

      Ștergere
  2. nu vrea :
    C:\Users\User\Documents\Arduino\libraries\MCUFRIEND_kbv-master\MCUFRIEND_kbv.h:32:113: internal compiler error: Segmentation fault

    virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color) { fillRect(x, y, 1, h, color); }

    ^

    Please submit a full bug report,

    with preprocessed source if appropriate.

    See for instructions.

    lto-wrapper.exe: fatal error: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.19.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avr-gcc returned 1 exit status

    compilation terminated.

    c:/program files/windowsapps/arduinollc.arduinoide_1.8.19.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed

    collect2.exe: error: ld returned 1 exit status

    RăspundețiȘtergere
    Răspunsuri
    1. daca a mers pana acum ce am zis sa comentati nu influenteaza decat ca afisare... poate ati comentat prea mult sua prea putin

      Ștergere
  3. pe arduino uno se incarca dar nu am pini pentru ceas si senzori ... si imi mai apare ca memoria este foarte redusa , pot aparea probleme de stabilitate

    RăspundețiȘtergere
  4. Buna,cum ati reusit sa introduceti codul,eu nicicum nu reusesc,da numai erori...de ex #include No such file or directory,One Wire does not name a type etc. Ma ajuta cineva?
    Sunt incepator,si asi vrea sa montez la o folie pentru aerisire . Multumesc anticipat

    RăspundețiȘtergere
    Răspunsuri
    1. salut, erorile de care zici tu sunt datorate lipsei librarie spefice... eu as incepe cu proiecte mai simple, sunt termostate cu afisaje alfanumerice, asta e unul grafic destul de scump si greu de comandat... uite un articol de incepatori; https://nicuflorica.blogspot.com/2021/02/arduino-pentru-incepatori.html o sa pun curand si partea de instalare a unor librarii... pentru cazul concrtet al unui termostat simple, cum e cel de la https://nicuflorica.blogspot.com/2019/03/termostat-simplu.html

      Ștergere
    2. uite cum se instaleaza o librarie lipsa...https://www.arduino.cc/en/guide/libraries

      Ștergere
  5. Am incercat cu thermostat_07.ino

    RăspundețiȘtergere
    Răspunsuri
    1. trebuie sa incepi cu un proiect simplu, cum e termostatul de la https://nicuflorica.blogspot.com/2019/03/termostat-simplu.html

      Ștergere
  6. Multumesc pentru raspunsuri,deja am cumparat materialul necesar(arduino due,display TFT ,etc)Ma gindeam ca e usor daca ai programul pe net,dar am gresit.Ma ocup cu electronica,dar cu programare nu,si m-am gandit ca ar fi mai simplu cu arduino ,acuma e facut (sera)cu termometre digitale cu releu pentru actionarea geamurilor.Cu Arduino ar fi mai fain.

    RăspundețiȘtergere
    Răspunsuri
    1. unde ai gasit afisajul ? un link as vrea

      Ștergere
    2. Pe OLX am gasit in Decembrie anul trecut. Am vazut pe Emag,pinii sunt la fel dar nu stiu daca e compatibil cu ILI9844,dar cred ca da.

      https://www.emag.ro/display-pentru-raspberry-pi-tft-lcd-320x240-cu-touch-oky4032-1/pd/DPZN72MBM/?cmpid=87002&gclid=CjwKCAiAkJKCBhAyEiwAKQBCkrI3qtfGhY5xltMH-KXP019w5rLHBQ_3IpVQ0kMx4scP2wxL6SRIHxoCkRwQAvD_BwE

      Ștergere
    3. de asta am intrebat... pe unele magazine online apare ca driver ILI9486...

      Ștergere
  7. Multumesc inca o data ,acum am inteles,si am incercat cu unul mai simplu propus de tine,si chiar si acolo mi-a cerut librarii si l-am rezolvat. O seara frumoasa

    RăspundețiȘtergere
    Răspunsuri
    1. procefura nu e grea, dar trebuie sa te obisnuiesti cu ea si sa vezi pe montaje simple, pentru a intelege si a putea face mofificari

      Ștergere
    2. Buna ,ma ajuti sa adaptez displayul 3.5" Raspberry(Ili 9486)Modul LCD de 3.5'' cu Touchscreen - Controller ILI9486 și XPT2046 (320x480 px)
      ,sau display TFT 2.4" (ILI 9341)LCD TFT 2.4 inch ?
      Multumesc

      Ștergere
    3. uite un proiect apropiat cu afisaj cu driver ILI9341: http://nicuflorica.blogspot.com/2014/07/afisaj-grafic-color-qvga-de-22-cu_24.html

      Ștergere
    4. salut, din pacate nu am timp sa reiai acest proiect de acum peste 4 ani.. nu am niciunul din afisajele mentionate la indemana, am lucrat doar cu unul cu ILI9341..

      Ștergere