Kazalo:

Sobni termostat - Arduino + Ethernet: 3 koraki
Sobni termostat - Arduino + Ethernet: 3 koraki

Video: Sobni termostat - Arduino + Ethernet: 3 koraki

Video: Sobni termostat - Arduino + Ethernet: 3 koraki
Video: Improving My Central Heating with Arduino - PART 2 2024, November
Anonim
Sobni termostat - Arduino + Ethernet
Sobni termostat - Arduino + Ethernet

Kar zadeva strojno opremo, projekt uporablja:

  • Arduino Uno / Mega 2560
  • Ethernetni ščit Wiznet W5100 / Ethernetni modul Wiznet W5200-W5500
  • Temperaturni senzor DS18B20 na vodilu OneWire
  • Rele SRD-5VDC-SL-C se uporablja za preklapljanje kotla

1. korak: Opis termostata Ethernet

Opis termostata Ethernet
Opis termostata Ethernet

Arduino je priročna vdelana platforma, ki jo lahko na primer uporabimo za izdelavo sobnega termostata, kar bomo danes pokazali. Termostat je dostopen iz omrežja LAN, v katerem se nahaja, medtem ko je opremljen s spletnim vmesnikom, ki se uporablja za konfiguracijo vseh elementov termostata. Spletni vmesnik deluje neposredno na Arduinu v načinu spletnega strežnika. Spletni strežnik omogoča izvajanje več neodvisnih strani HTML, ki so lahko informativne ali celo funkcionalne. Spletni strežnik deluje na vratih 80 -

Elektromagnetni rele SRD-5VDC-SL-C, ki se uporablja v projektu, omogoča preklop do 10A pri 230V-moč 2300W. V primeru preklopa enosmernega tokokroga (obremenitev) je možno preklopiti 300 W (10A pri 30 V DC). Druga možnost je, da je rele OMRON G3MB-202P SSR popolnoma združljiv s shemo ožičenja, ki je primerna samo za neinduktivne obremenitve in izključno za vezja AC. Največja preklopna moč 460W (230V, 2A). Poraba Arduina z Ethernet ščitom in drugimi zunanjimi napravami je pri odprtem releju na ravni 100-120 mA. Ko je zaprt, pod 200mA pri 5V napajanju.

Korak: Spletni vmesnik

Spletni vmesnik
Spletni vmesnik

Spletni vmesnik za termostat omogoča:

  • Oglejte si temperaturo v realnem času s senzorja DS18B20
  • Oglejte si stanje releja v realnem času z dinamično spremembo izhoda na strani
  • Ciljno (referenčno) temperaturo spremenite v območju od 5 do 50 ° C s korakom po 0,25 ° C
  • Histerezo spremenite v območju od 0 do 10 ° C s korakom 0,25 ° C

Spletni vmesnik je zasnovan za večje in manjše zaslone. Odziven je, podpira širokozaslonske zaslone visoke ločljivosti, pa tudi mobilne naprave. Vmesnik uporablja uvožene sloge CSS ogrodja Bootstrap iz zunanjega strežnika CDN, ki naloži strankino stran, ko odpre stran, ki se izvaja v Arduinu. Ker je Arduino Uno omejen s pomnilnikom, lahko izvaja le strani velikosti nekaj kB. Z uvozom slogov CSS iz zunanjega strežnika bo zmanjšala zmogljivost in obremenitev pomnilnika Arduina. Programska oprema (za Arduine Uno) uporablja 70% pomnilnika flash (32kB - 4kB Bootloader) in 44% pomnilnika RAM (2kB).

Statični deli spletne strani (glava in noga dokumenta HTML, povezovanje Bootstrap CSS, metaoznake, glava odziva HTTP, vrsta vsebine, obrazec in drugo) so shranjeni neposredno v pomnilniku Arduino, kar lahko znatno zmanjša količino RAM -a, uporabljenega za uporabnika. -ustvarjena vsebina. Spletni strežnik je tako bolj stabilen in lahko hkrati upravlja več povezav več naprav v omrežju.

Da bi ohranili nastavljene vrednosti tudi po izpadu napajanja, so shranjene v pomnilniku EEPROM Arduina. Referenčna temperatura za odmik 10, histereza za odmik 100. Vsaka od vrednosti zavzame največ 5B v pomnilniku EEPROM. Omejitev prepisa EEPROM je na ravni 100 000 prepisov. Podatki se prepišejo le, ko je predložen obrazec HTML. V primeru, da naprava pri prvem zagonu nima shranjenih nič na omenjenih odmikih EEPROM, bo izvedeno samodejno pisanje s privzetimi vrednostmi - sklic: 20,25, histereza 0,25 ° C

Metaoznaka Refresh osveži celotno stran Arduino vsakih 10 sekund. Do takrat je treba zapisati spremembo termostata, sicer se vnosna okna ponastavijo, ko se stran osveži. Ker knjižnica Ethernet ne vključuje uporabe asinhronega spletnega strežnika, je treba celotno stran prepisati. Dinamični podatki, ki se večinoma spreminjajo, so trenutna vrednost izhoda - Vklop / Izklop.

3. korak: strani HTML, ki se izvajajo na spletnem strežniku, sheme, izvorna koda

Strani HTML, ki se izvajajo na spletnem strežniku, sheme, izvorna koda
Strani HTML, ki se izvajajo na spletnem strežniku, sheme, izvorna koda

Strani HTML, ki se izvajajo na Arduinu:

  • / - korenska stran, ki vsebuje obrazec, seznam trenutnih logičnih izhodov za rele, temperaturo
  • /action.html - procesira vrednosti iz obrazca, jih zapiše v pomnilnik EEPROM, uporabnika preusmeri nazaj na korensko stran
  • / get_data/ - posreduje podatke o trenutni temperaturi, referenčni temperaturi in histerezi tretji osebi (računalnik, mikrokrmilnik, drug odjemalec …) v formatu JSON

Obstaja tudi razširjena različica tega termostata, ki vključuje:

  • Ročni način za releje (neomejen čas, močno vklop / izklop)
  • Časovnik čuvaj
  • Na voljo več senzorjev, na primer: SHT21, SHT31, DHT22, BME280, BMP280 in drugi
  • Način hlajenja
  • Nadzor in konfiguracija prek RS232 / UART neodvisno od Etherneta
  • PID regulacija temperature za termostat
  • Možnost uporabe platform ESP8266, ESP32 za termostat

Izvedbo programa za projekt najdete na: https://github.com/martinius96/termostat-ethernet/ Izvedba vsebuje programe za statični/dinamični naslov IPv4, dodeljen Ethernetnemu ščitu.

Termostat je namenjen samo notranjim temperaturam! (nad 0 ° C), ki mu je sistemska logika prilagojena. Možno je zamenjati obstoječi sobni termostat s termostatom, možno je začasno zamenjati termostat v hladilniku, vzdrževati konstantno temperaturo v terariju in podobno.

Priporočena: