Satura rādītājs:

Telpas termostats - Arduino + Ethernet: 3 soļi
Telpas termostats - Arduino + Ethernet: 3 soļi

Video: Telpas termostats - Arduino + Ethernet: 3 soļi

Video: Telpas termostats - Arduino + Ethernet: 3 soļi
Video: CS50 2014 – 7-я неделя 2024, Novembris
Anonim
Istabas termostats - Arduino + Ethernet
Istabas termostats - Arduino + Ethernet

Aparatūras ziņā projekts izmanto:

  • Arduino Uno / Mega 2560
  • Ethernet vairogs Wiznet W5100 / Ethernet modulis Wiznet W5200-W5500
  • DS18B20 temperatūras sensors OneWire kopnē
  • Relejs SRD-5VDC-SL-C, ko izmanto katla pārslēgšanai

1. darbība: Ethernet termostata apraksts

Ethernet termostata apraksts
Ethernet termostata apraksts

Arduino ir ērta embeeded platforma, ko var izmantot, piemēram, lai izveidotu telpas termostatu, ko mēs parādīsim šodien. Termostatam var piekļūt no LAN tīkla, kurā tas atrodas, bet tas ir aprīkots ar tīmekļa saskarni, ko izmanto, lai konfigurētu visus termostata elementus. Tīmekļa saskarne darbojas tieši Arduino tīmekļa servera režīmā. Tīmekļa serveris ļauj palaist vairākas neatkarīgas HTML lapas, kas var būt informatīvas vai pat funkcionālas. Tīmekļa serveris darbojas ar portu 80 -

Projektā izmantotais elektromagnētiskais relejs SRD-5VDC-SL-C ļauj pārslēgties līdz 10A pie 230V-jauda 2300W. Līdzstrāvas ķēdes (slodzes) pārslēgšanas gadījumā ir iespējams pārslēgt 300W (10A pie 30V DC). Alternatīvi, OMRON G3MB-202P SSR relejs ir pilnībā saderīgs ar elektroinstalācijas shēmu, kas ir piemērota tikai induktīvām slodzēm un tikai maiņstrāvas ķēdēm. Maksimālā pārslēgšanas jauda 460W (230V, 2A). Arduino ar Ethernet vairogu un citām perifērijas ierīcēm patēriņš ir 100-120 mA līmenī ar atvērtu releju. Aizverot, zem 200mA pie 5V barošanas.

2. darbība: tīmekļa saskarne

Tīmekļa saskarne
Tīmekļa saskarne

Termostata tīmekļa saskarne ļauj:

  • Skatiet reālā laika temperatūru no DS18B20 sensora
  • Skatiet reāllaika releja statusu ar dinamiskām izvades izmaiņām lapā
  • Mainiet mērķa (atsauces) temperatūru diapazonā no 5 līdz 50 ° C ar 0,25 ° C soli
  • Modificējiet histerēzi diapazonā no 0 līdz 10 ° C ar 0,25 ° C soli

Tīmekļa saskarne ir paredzēta lielākiem un mazākiem ekrāniem. Tas ir atsaucīgs, atbalsta platekrāna augstas izšķirtspējas ekrānus, bet arī mobilās ierīces. Saskarne izmanto Bootstrap ietvara importētos CSS stilus no ārējā CDN servera, kas ielādē klienta puses ierīci, atverot lapu, kas darbojas Arduino. Tā kā Arduino Uno ir ierobežota atmiņa, tas var palaist tikai dažas KB lielas lapas. Importējot CSS stilus no ārēja servera, tas samazinās Arduino veiktspēju un atmiņas slodzi. Programmatūras ieviešana (Arduine Uno) izmanto 70% zibatmiņas (32 KB - 4 KB sāknēšanas ielādētājs) un 44% RAM atmiņas (2 KB).

Tīmekļa lapas statiskās daļas (HTML dokumenta galvene un kājene, Bootstrap CSS saite, metatagi, HTTP atbildes galvene, satura veids, veidlapa un citas) tiek saglabātas tieši Arduino zibatmiņā, kas var ievērojami samazināt lietotājam izmantotās RAM apjomu. -ģenerēts saturs. Tādējādi tīmekļa serveris ir stabilāks un vienlaikus var apstrādāt vairāku tīkla ierīču vairāku savienojumu savienojumu.

Lai saglabātu iestatītās vērtības pat pēc strāvas padeves pārtraukuma, tās tiek saglabātas Arduino EEPROM atmiņā. Atsauces temperatūra līdz nobīdei 10, histerēze līdz 100. EEPROM transkripcijas limits ir 100 000 transkriptu līmenī. Dati tiek pārrakstīti tikai tad, kad tiek iesniegta HTML veidlapa. Gadījumā, ja ierīces pirmajā palaišanas reizē nekas nav saglabāts minētajos EEPROM nobīdēs, tiks veikta automātiska rakstīšana ar noklusējuma vērtībām - atsauce: 20,25, histerēze 0,25 ° C

Atjaunināšanas metatags atsvaidzina visu Arduino lapu ik pēc 10 sekundēm. Līdz tam laikam ir jāraksta termostata izmaiņas, pretējā gadījumā ievades logi tiks atiestatīti, kad lapa tiks atsvaidzināta. Tā kā Ethernet bibliotēka neietver asinhronā tīmekļa servera izmantošanu, visa lapa ir jāpārraksta. Dinamiskie dati, kas galvenokārt mainās, ir izejas pašreizējā vērtība - ieslēgta / izslēgta.

3. darbība: HTML lapas, kas darbojas tīmekļa serverī, shēmas, avota kods

HTML lapas, kas darbojas tīmekļa serverī, shēmas, avota kods
HTML lapas, kas darbojas tīmekļa serverī, shēmas, avota kods

HTML lapas, kas darbojas Arduino:

  • / - saknes lapa, kurā ir veidlapa, pašreizējais loģikas izejas saraksts relejam, temperatūra
  • /action.html - apstrādā vērtības no veidlapas, ieraksta tās EEPROM atmiņā, novirza lietotāju atpakaļ uz saknes lapu
  • / get_data/ - izplata datus par pašreizējo temperatūru, atsauces temperatūru un histerēzi trešajai pusei (datoram, mikrokontrolleram, citam klientam …) JSON formātā

Ir arī šī termostata paplašināta versija, kas ietver:

  • Manuālais režīms relejiem (neierobežots laiks, smaga ieslēgšana / izslēgšana)
  • Sargsuņa taimeris
  • Pieejami vairāk sensoru, piemēram: SHT21, SHT31, DHT22, BME280, BMP280 un citi
  • Dzesēšanas režīms
  • Vadība un konfigurācija, izmantojot RS232 / UART, neatkarīgi no Ethernet
  • PID temperatūras kontrole termostatam
  • Iespēja izmantot ESP8266, ESP32 platformas termostatam

Projekta programmas ieviešanu var atrast vietnē: https://github.com/martinius96/termostat-ethernet/. Īstenojumā ir programmas statiskajai/dinamiskajai IPv4 adresei, kas piešķirta Ethernet vairogam.

Termostats ir paredzēts tikai iekštelpu temperatūrai! (virs 0 ° C), kam ir pielāgota sistēmas loģika. Ir iespējams nomainīt esošo istabas termostatu pret termostatu, ir iespējams īslaicīgi nomainīt termostatu ledusskapī, uzturēt nemainīgu temperatūru terārijā un tamlīdzīgi.

Ieteicams: