Talaan ng mga Nilalaman:

Room Therostat - Arduino + Ethernet: 3 Hakbang
Room Therostat - Arduino + Ethernet: 3 Hakbang

Video: Room Therostat - Arduino + Ethernet: 3 Hakbang

Video: Room Therostat - Arduino + Ethernet: 3 Hakbang
Video: Arduino home central heating thermostat and Room Arduino Digital Thermostat Controller 2024, Hulyo
Anonim
Room Therostat - Arduino + Ethernet
Room Therostat - Arduino + Ethernet

Sa mga tuntunin ng hardware, gumagamit ang proyekto ng:

  • Arduino Uno / Mega 2560
  • Ethernet kalasag Wiznet W5100 / Ethernet module Wiznet W5200-W5500
  • Ang sensor ng temperatura ng DS18B20 sa OneWire bus
  • Relay SRD-5VDC-SL-C na ginagamit para sa paglipat ng boiler

Hakbang 1: Paglalarawan ng Ethernet Therostat

Paglalarawan ng Ethernet Thermostat
Paglalarawan ng Ethernet Thermostat

Ang Arduino ay isang madaling gamiting platform na maaaring magamit, halimbawa, upang bumuo ng isang termostat sa silid, na ipapakita namin ngayon. Ang termostat ay naa-access mula sa LAN network kung saan ito matatagpuan, habang ito ay nilagyan ng isang web interface na ginagamit upang i-configure ang lahat ng mga elemento ng termostat. Direkta na tumatakbo ang web interface sa Arduino sa mode ng web server. Pinapayagan ng web server ang pagpapatakbo ng maraming mga independiyenteng pahina ng HTML, na maaaring maging kaalaman o kahit na gumagana. Tumatakbo ang web server sa port 80 -

Ang electromagnetic relay SRD-5VDC-SL-C, na ginagamit sa proyekto, ay nagbibigay-daan sa paglipat ng hanggang sa 10A sa 230V - lakas 2300W. Sa kaso ng paglipat ng isang DC circuit (load) posible na lumipat 300W (10A sa 30V DC). Bilang kahalili, ang OMRON G3MB-202P SSR relay ay ganap na katugma para sa diagram ng mga kable, na angkop lamang para sa mga hindi nagpapahiwatig na pag-load at eksklusibo para sa mga AC circuit. Maximum na switching power 460W (230V, 2A). Ang pagkonsumo ng Arduino na may Ethernet shield at iba pang mga peripheral ay nasa antas na 100-120mA na bukas ang relay. Kapag sarado, sa ibaba 200mA sa 5V supply.

Hakbang 2: Web Interface

Interface sa Web
Interface sa Web

Pinapayagan ng web interface para sa termostat ang:

  • Tingnan ang real-time na temperatura mula sa sensor ng DS18B20
  • Tingnan ang katayuan ng relay na real-time na may pagbabago ng pagbabago ng output sa pahina
  • Baguhin ang target (sanggunian) na temperatura sa saklaw na 5 hanggang 50 ° C na may hakbang na 0.25 ° C
  • Baguhin ang hysteresis sa saklaw na 0 hanggang 10 ° C na may hakbang na 0.25 ° C

Ang web interface ay dinisenyo upang mapaunlakan ang mas malaki at mas maliit na mga screen. Ito ay tumutugon, sinusuportahan ang mga screen ng mataas na kahulugan ng widescreen, ngunit pati na rin mga mobile device. Gumagamit ang interface ng na-import na mga estilo ng CSS ng balangkas ng Bootstrap mula sa isang panlabas na server ng CDN, na naglo-load ng aparato sa panig ng client kapag binubuksan ang isang pahina na tumatakbo sa Arduino. Dahil ang Arduino Uno ay limitado sa memorya, maaari lamang itong magpatakbo ng mga pahina ng ilang kB sa laki. Sa pamamagitan ng pag-import ng mga estilo ng CSS mula sa isang panlabas na server, babawasan nito ang pagganap at pag-load ng memorya ng Arduino. Ang pagpapatupad ng software (para sa Arduine Uno) ay gumagamit ng 70% ng flash memory (32kB - 4kB Bootloader) at 44% ng memorya ng RAM (2kB).

Ang mga static na bahagi ng isang web page (header at footer ng dokumento ng HTML, pag-link ng Bootstrap CSS, mga meta tag, HTTP na header ng pagtugon, Uri ng Nilalaman, form at higit pa) ay nakaimbak nang direkta sa memorya ng flash ng Arduino, na maaaring makabuluhang mabawasan ang dami ng ginamit na RAM para sa gumagamit -nilikha ng nilalaman. Sa gayon ang web server ay mas matatag at maaaring hawakan ang multi-koneksyon ng maraming mga aparato sa network nang sabay.

Upang mapanatili ang mga itinakdang halaga kahit na pagkatapos ng pagkabigo sa kuryente, nakaimbak ang mga ito sa memorya ng EEPROM ng Arduino. Ang temperatura ng sanggunian upang mabawi ang 10, hysteresis upang mabawi ang 100. Ang bawat isa sa mga halagang sumasakop sa maximum na 5B sa memorya ng EEPROM. Ang limitasyon ng transkripsyon ng EEPROM ay nasa antas ng 100, 000 na mga transcript. Ang data ay nai-o-overtake lamang kapag ang form na HTML ay isinumite. Kung sakaling ang aparato ay walang nakaimbak sa nabanggit na mga EEPROM na offset sa unang pagsisimula, ang awtomatikong pagsulat ay isasagawa na may mga default na halaga - sanggunian: 20.25, hysteresis 0.25 ° C

Ang Refresh meta tag ay nagre-refresh ng buong pahina ng Arduino bawat 10 segundo. Sa oras na ito kinakailangan na isulat ang pagbabago para sa termostat, kung hindi man ang mga input windows ay mai-reset kapag ang pahina ay nai-refresh. Dahil ang Ethernet library ay hindi kasama ang paggamit ng isang asynchronous web server, ang buong pahina ay dapat na muling isulat. Ang pabago-bagong data na pangunahing nagbabago ay ang kasalukuyang halaga ng output - On / Off.

Hakbang 3: Tumatakbo ang Mga Pahina ng HTML sa Webserver, Schematics, Source Code

Tumatakbo ang Mga Pahina ng HTML sa Webserver, Schematics, Source Code
Tumatakbo ang Mga Pahina ng HTML sa Webserver, Schematics, Source Code

Mga pahina ng HTML na tumatakbo sa Arduino:

  • / - root page na naglalaman ng form, kasalukuyang listahan ng output ng lohika para sa relay, temperatura
  • /action.html - pinoproseso ang mga halaga mula sa form, isinusulat ang mga ito sa memorya ng EEPROM, nai-redirect ang gumagamit pabalik sa root page
  • / get_data / - namamahagi ng data sa kasalukuyang temperatura, temperatura ng sanggunian at hysteresis sa isang third party (computer, microcontroller, iba pang kliyente…) sa format na JSON

Mayroon ding pinalawig na bersyon ng termostat na ito na may kasamang:

  • Manu-manong mode para sa mga relay (walang limitasyong oras, mahirap ON / OFF)
  • Watchdog timer
  • Magagamit na higit pang mga sensor, halimbawa: SHT21, SHT31, DHT22, BME280, BMP280 at iba pa
  • Mode ng paglamig
  • Kontrolin at pagsasaayos sa pamamagitan ng RS232 / UART na independyente sa Ethernet
  • Pagkontrol sa temperatura ng PID para sa termostat
  • Posibilidad na gumamit ng mga platform ng ESP8266, ESP32 para sa termostat

Ang pagpapatupad ng programa para sa proyekto ay maaaring matagpuan sa: https://github.com/martinius96/termostat-ethernet/ Naglalaman ang pagpapatupad ng mga programa para sa static / dynamic IPv4 address na nakatalaga sa kalasag ng Ethernet.

Ang termostat ay inilaan lamang para sa mga panloob na temperatura! (sa itaas 0 ° C), kung saan ang system logic ay inangkop. Posibleng palitan ang isang mayroon nang termostat sa silid na may termostat, posible na pansamantalang palitan ang isang termostat sa isang ref, panatilihin ang isang pare-pareho na temperatura sa isang terrarium at mga katulad nito.

Inirerekumendang: