Cuprins:

Termostat de cameră - Arduino + Ethernet: 3 pași
Termostat de cameră - Arduino + Ethernet: 3 pași

Video: Termostat de cameră - Arduino + Ethernet: 3 pași

Video: Termostat de cameră - Arduino + Ethernet: 3 pași
Video: Arduino thermostat schema lui Nicu Florica. 2024, Iulie
Anonim
Termostat de cameră - Arduino + Ethernet
Termostat de cameră - Arduino + Ethernet

În ceea ce privește hardware-ul, proiectul folosește:

  • Arduino Uno / Mega 2560
  • Scut Ethernet Wiznet W5100 / modul Ethernet Wiznet W5200-W5500
  • Senzor de temperatură DS18B20 pe magistrala OneWire
  • Releu SRD-5VDC-SL-C utilizat pentru comutarea cazanului

Pasul 1: Descrierea termostatului Ethernet

Descrierea termostatului Ethernet
Descrierea termostatului Ethernet

Arduino este o platformă încorporată la îndemână, care poate fi utilizată, de exemplu, pentru a construi un termostat de cameră, pe care îl vom arăta astăzi. Termostatul este accesibil din rețeaua LAN în care este situat, în timp ce este echipat cu o interfață web care este utilizată pentru a configura toate elementele termostatului. Interfața web rulează direct pe Arduino în modul server web. Serverul web permite rularea mai multor pagini HTML independente, care pot fi informative sau chiar funcționale. Serverul web rulează pe portul 80 -

Releul electromagnetic SRD-5VDC-SL-C, care este utilizat în proiect, permite comutarea până la 10A la 230V - putere 2300W. În cazul comutării unui circuit de curent continuu (sarcină) este posibilă comutarea 300W (10A la 30V DC). Alternativ, releul SSR OMRON G3MB-202P este pe deplin compatibil cu schema de cablare, care este potrivită doar pentru sarcini neinductive și exclusiv pentru circuite de curent alternativ. Puterea maximă de comutare 460W (230V, 2A). Consumul de Arduino cu ecran Ethernet și alte periferice este la nivelul de 100-120mA cu releul deschis. Când este închis, sub 200mA la alimentare 5V.

Pasul 2: interfață web

Interfață web
Interfață web

Interfața web pentru termostat permite:

  • Vizualizați temperatura în timp real din senzorul DS18B20
  • Vizualizați starea releului în timp real cu schimbarea dinamică a ieșirii pe pagină
  • Modificați temperatura țintă (de referință) în intervalul de la 5 la 50 ° C cu o etapă de 0,25 ° C
  • Modificați histerezisul în intervalul 0-10 ° C cu o etapă de 0,25 ° C

Interfața web este concepută pentru a găzdui ecrane mai mari și mai mici. Este receptiv, acceptă ecrane cu ecran lat de înaltă definiție, dar și dispozitive mobile. Interfața folosește stiluri CSS importate ale cadrului Bootstrap de pe un server CDN extern, care încarcă dispozitivul din partea clientului la deschiderea unei pagini care rulează pe Arduino. Deoarece Arduino Uno are o memorie limitată, acesta poate rula doar pagini cu o dimensiune de câțiva kB. Prin importarea stilurilor CSS de pe un server extern, acesta va reduce performanța și încărcarea de memorie a Arduino. Implementarea software-ului (pentru Arduine Uno) folosește 70% din memoria flash (32kB - 4kB Bootloader) și 44% din memoria RAM (2kB).

Părțile statice ale unei pagini web (antet și subsol document HTML, legătură Bootstrap CSS, metaetichete, antet de răspuns HTTP, tip de conținut, formular și multe altele) sunt stocate direct în memoria flash Arduino, ceea ce poate reduce semnificativ cantitatea de RAM utilizată pentru utilizator -conținut generat. Serverul web este astfel mai stabil și poate gestiona simultan mai multe conexiuni ale mai multor dispozitive din rețea.

Pentru a păstra valorile setate chiar și după o pană de curent, acestea sunt stocate în memoria EEPROM a Arduino. Temperatura de referință pentru a compensa 10, histerezis pentru a compensa 100. Fiecare dintre valori ocupă maximum 5B în memoria EEPROM. Limita de transcriere EEPROM este la nivelul de 100 000 de transcrieri. Datele sunt suprascrise numai atunci când este trimis formularul HTML. În cazul în care dispozitivul nu are nimic stocat pe offset-urile EEPROM menționate la prima pornire, scrierea automată va fi efectuată cu valori implicite - referință: 20,25, histerezis 0,25 ° C

Metaeticheta Reîmprospătare reîmprospătează întreaga pagină Arduino la fiecare 10 secunde. În acest moment, este necesar să scrieți modificarea termostatului, altfel ferestrele de intrare vor fi resetate când pagina este actualizată. Deoarece biblioteca Ethernet nu include utilizarea unui server web asincron, întreaga pagină trebuie rescrisă. Datele dinamice care se schimbă în principal sunt valoarea curentă a ieșirii - Pornit / Oprit.

Pasul 3: Pagini HTML care rulează pe Webserver, Scheme, Cod sursă

Pagini HTML care rulează pe Webserver, Scheme, Cod sursă
Pagini HTML care rulează pe Webserver, Scheme, Cod sursă

Pagini HTML care rulează pe Arduino:

  • / - pagina rădăcină care conține formularul, listarea curentă a ieșirii logice pentru releu, temperatura
  • /action.html - procesează valorile din formular, le scrie în memoria EEPROM, redirecționează utilizatorul înapoi la pagina rădăcină
  • / get_data / - distribuie date despre temperatura curentă, temperatura de referință și histerezis către o terță parte (computer, microcontroler, alt client …) în format JSON

Există, de asemenea, o versiune extinsă a acestui termostat care include:

  • Mod manual pentru relee (timp nelimitat, ON / OFF greu)
  • Cronometru de supraveghere
  • Mai mulți senzori disponibili, de exemplu: SHT21, SHT31, DHT22, BME280, BMP280 și altele
  • Mod de răcire
  • Control și configurare prin RS232 / UART independent de Ethernet
  • Controlul temperaturii PID pentru termostat
  • Posibilitatea de a utiliza platforme ESP8266, ESP32 pentru termostat

Implementarea programului pentru proiect poate fi găsită la: https://github.com/martinius96/termostat-ethernet/ Implementarea conține programe pentru adresa IPv4 statică / dinamică atribuită scutului Ethernet.

Termostatul este destinat numai temperaturilor interioare! (peste 0 ° C), la care este adaptată logica sistemului. Este posibil să înlocuiți un termostat de cameră existent cu un termostat, este posibil să înlocuiți temporar un termostat într-un frigider, să mențineți o temperatură constantă într-un terariu și altele asemenea.

Recomandat: