Taula de continguts:

Termòstat d'habitació - Arduino + Ethernet: 3 passos
Termòstat d'habitació - Arduino + Ethernet: 3 passos

Vídeo: Termòstat d'habitació - Arduino + Ethernet: 3 passos

Vídeo: Termòstat d'habitació - Arduino + Ethernet: 3 passos
Vídeo: Realiza un Control Tcp Ip con Arduino Ethernet y Android sin digitar ni una sola linea de código 2024, Juliol
Anonim
Termòstat d'habitació: Arduino + Ethernet
Termòstat d'habitació: Arduino + Ethernet

Pel que fa al maquinari, el projecte utilitza:

  • Arduino Uno / Mega 2560
  • Escut Ethernet Wiznet W5100 / Mòdul Ethernet Wiznet W5200-W5500
  • Sensor de temperatura DS18B20 al bus OneWire
  • Relé SRD-5VDC-SL-C utilitzat per a la commutació de caldera

Pas 1: descripció del termòstat Ethernet

Descripció del termòstat Ethernet
Descripció del termòstat Ethernet

Arduino és una pràctica plataforma incrustada que es pot utilitzar, per exemple, per construir un termòstat d'ambient, que mostrarem avui. El termòstat és accessible des de la xarxa LAN on es troba, mentre que està equipat amb una interfície web que s’utilitza per configurar tots els elements del termòstat. La interfície web s’executa directament a l’Arduino en mode servidor web. El servidor web permet executar diverses pàgines HTML independents, que poden ser informatives o fins i tot funcionals. El servidor web s'executa al port 80 -

El relé electromagnètic SRD-5VDC-SL-C, que s’utilitza en el projecte, permet canviar fins a 10A a 230V - potència de 2300W. En cas de commutar un circuit de corrent continu (càrrega), és possible canviar 300 W (10 A a 30 V de CC). Com a alternativa, el relé SSR OMRON G3MB-202P és totalment compatible per al diagrama de cablejat, que només és adequat per a càrregues no inductives i exclusivament per a circuits de corrent altern. Potència màxima de commutació 460W (230V, 2A). El consum d'Arduino amb blindatge Ethernet i altres perifèrics és del nivell de 100-120mA amb el relé obert. Quan està tancat, per sota de 200 mA a 5 V.

Pas 2: interfície web

Interfície web
Interfície web

La interfície web del termòstat permet:

  • Veure la temperatura en temps real des del sensor DS18B20
  • Veure l'estat del relé en temps real amb canvi de sortida dinàmic a la pàgina
  • Modifiqueu la temperatura objectiu (de referència) entre 5 i 50 ° C amb un pas de 0,25 ° C
  • Modifiqueu la histèresi en el rang de 0 a 10 ° C amb un pas de 0,25 ° C

La interfície web està dissenyada per allotjar pantalles més grans i més petites. És sensible, admet pantalles d'alta definició de pantalla ampla, però també dispositius mòbils. La interfície utilitza estils CSS importats del framework Bootstrap des d’un servidor CDN extern, que carrega el dispositiu del costat del client en obrir una pàgina que s’executa a Arduino. Com que l’Arduino Uno té una memòria limitada, només pot executar pàgines de pocs kB. En importar estils CSS des d’un servidor extern, reduirà el rendiment i la càrrega de memòria de l’Arduino. La implementació del programari (per a Arduine Uno) utilitza el 70% de la memòria flash (32kB - 4kB Bootloader) i el 44% de la memòria RAM (2kB).

Les parts estàtiques d’una pàgina web (capçalera i peu de pàgina HTML, enllaç Bootstrap CSS, metaetiquetes, capçalera de resposta HTTP, tipus de contingut, formulari i molt més) s’emmagatzemen directament a la memòria flash d’Arduino, cosa que pot reduir significativament la quantitat de RAM que s’utilitza per a l’usuari. -contingut generat. Per tant, el servidor web és més estable i pot gestionar la connexió múltiple de diversos dispositius de la xarxa alhora.

Per tal de mantenir els valors establerts fins i tot després d’una fallada d’alimentació, s’emmagatzemen a la memòria EEPROM de l’Arduino. Temperatura de referència per compensar 10, histèresi per compensar 100. Cadascun dels valors ocupa un màxim de 5B a la memòria EEPROM. El límit de transcripció EEPROM és de 100.000 transcripcions. Les dades només es sobreescriuen quan s’envia el formulari HTML. En cas que el dispositiu no tingui res emmagatzemat en les compensacions EEPROM esmentades a la primera posada en marxa, l'escriptura automàtica es realitzarà amb valors predeterminats - referència: 20,25, histèresi 0,25 ° C

La metaetiqueta Actualitza actualitza tota la pàgina d’Arduino cada 10 segons. En aquest moment, cal escriure el canvi del termòstat, en cas contrari, es restabliran les finestres d'entrada quan es refresqui la pàgina. Com que la biblioteca Ethernet no inclou l'ús d'un servidor web asíncron, s'ha de reescriure tota la pàgina. Les dades dinàmiques que canvien principalment són el valor actual de la sortida: activat / desactivat.

Pas 3: pàgines HTML que s'executen al servidor web, esquemes, codi font

Pàgines HTML que s’executen al servidor web, esquemes, codi font
Pàgines HTML que s’executen al servidor web, esquemes, codi font

Pàgines HTML que s'executen a Arduino:

  • / - pàgina arrel que conté el formulari, llista de sortida lògica actual del relé, temperatura
  • /action.html: processa els valors del formulari, els escriu a la memòria EEPROM, redirigeix l'usuari a la pàgina arrel
  • / get_data /: distribueix dades sobre temperatura actual, temperatura de referència i histèresi a un tercer (ordinador, microcontrolador, altre client …) en format JSON

També hi ha una versió ampliada d’aquest termòstat que inclou:

  • Mode manual per a relés (temps il·limitat, ON / OFF dur)
  • Temporitzador de vigilància
  • Hi ha més sensors disponibles, per exemple: SHT21, SHT31, DHT22, BME280, BMP280 i altres
  • Mode de refrigeració
  • Control i configuració mitjançant RS232 / UART independent d’Ethernet
  • Control de temperatura PID per termòstat
  • Possibilitat d'utilitzar plataformes ESP8266, ESP32 per a termòstat

La implementació del programa per al projecte es pot trobar a: https://github.com/martinius96/termostat-ethernet/ La implementació conté programes per a l'adreça IPv4 estàtica / dinàmica assignada a l'escut Ethernet.

El termòstat només està pensat per a temperatures interiors. (per sobre de 0 ° C), a la qual s’adapta la lògica del sistema. És possible substituir un termòstat d’habitació existent per un termòstat, és possible substituir temporalment un termòstat en una nevera, mantenir una temperatura constant en un terrari i similars.

Recomanat: