Sadržaj:

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

Video: Sobni termostat - Arduino + Ethernet: 3 koraka

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

Što se tiče hardvera, projekat koristi:

  • Arduino Uno / Mega 2560
  • Ethernet štit Wiznet W5100 / Ethernet modul Wiznet W5200-W5500
  • Senzor temperature DS18B20 na sabirnici OneWire
  • Relej SRD-5VDC-SL-C koristi se za uključivanje kotla

Korak 1: Opis Ethernet termostata

Opis Ethernet termostata
Opis Ethernet termostata

Arduino je praktična ugrađena platforma koja se može koristiti, na primjer, za izgradnju sobnog termostata, što ćemo danas pokazati. Termostatu je moguće pristupiti s LAN mreže u kojoj se nalazi, a opremljen je web sučeljem koje se koristi za konfiguriranje svih elemenata termostata. Web sučelje radi direktno na Arduinu u načinu rada web servera. Web server omogućava pokretanje nekoliko nezavisnih HTML stranica, koje mogu biti informativne ili čak funkcionalne. Web poslužitelj radi na portu 80 -

Elektromagnetski relej SRD-5VDC-SL-C, koji se koristi u projektu, omogućava uključivanje do 10A na 230V-snaga 2300W. U slučaju uključivanja istosmjernog kruga (opterećenje) moguće je uključiti 300 W (10A na 30 V DC). Alternativno, OMRON G3MB-202P SSR relej je potpuno kompatibilan sa shemom ožičenja, koja je pogodna samo za neinduktivna opterećenja i isključivo za AC krugove. Maksimalna sklopna snaga 460W (230V, 2A). Potrošnja Arduina sa Ethernet štitom i ostalim perifernim uređajima je na nivou 100-120mA sa otvorenim relejem. Kada je zatvoren, ispod 200mA na 5V napajanju.

Korak 2: Web sučelje

Web interfejs
Web interfejs

Web interfejs za termostat omogućava:

  • Pogledajte temperaturu u stvarnom vremenu sa senzora DS18B20
  • Pregledajte status releja u stvarnom vremenu sa dinamičkom promjenom izlaza na stranici
  • Promijenite ciljnu (referentnu) temperaturu u rasponu od 5 do 50 ° C s korakom od 0,25 ° C
  • Mijenjajte histerezu u rasponu od 0 do 10 ° C s korakom od 0,25 ° C

Web sučelje je dizajnirano za prilagođavanje većih i manjih ekrana. Odzivan je, podržava ekrane visoke definicije širokog ekrana, ali i mobilne uređaje. Sučelje koristi uvezene CSS stilove Bootstrap okvira s vanjskog CDN servera, koji učitava uređaj na strani klijenta pri otvaranju stranice koja se izvodi na Arduinu. Budući da je Arduino Uno ograničen memorijom, može pokretati samo stranice veličine nekoliko kB. Uvozom CSS stilova s vanjskog poslužitelja smanjit će se performanse i opterećenje memorije Arduina. Softverska implementacija (za Arduine Uno) koristi 70% flash memorije (32kB - 4kB Bootloader) i 44% RAM memorije (2kB).

Statični dijelovi web stranice (zaglavlje i podnožje HTML dokumenta, Bootstrap CSS povezivanje, meta oznake, zaglavlje HTTP odgovora, vrsta sadržaja, obrazac i drugo) pohranjuju se izravno u Arduino flash memoriju, što može značajno smanjiti količinu RAM -a koju koristi korisnik -generirani sadržaj. Web poslužitelj je stoga stabilniji i može se nositi s višestrukim povezivanjem više uređaja u mreži istovremeno.

Kako bi se zadržale zadane vrijednosti čak i nakon nestanka struje, pohranjuju se u EEPROM memoriju Arduina. Referentna temperatura za pomak 10, histereza za pomak 100. Svaka od vrijednosti zauzima najviše 5B u memoriji EEPROM -a. Ograničenje transkripcije EEPROM -a je na nivou od 100 000 transkripata. Podaci se prepisuju samo kada se pošalje HTML obrazac. U slučaju da uređaj nema ništa pohranjeno na spomenutim EEPROM pomacima pri prvom pokretanju, izvršit će se automatsko pisanje sa zadanim vrijednostima - referenca: 20,25, histereza 0,25 ° C

Metaoznaka Refresh osvježava cijelu Arduino stranicu svakih 10 sekundi. Do tog trenutka potrebno je napisati promjenu za termostat, inače će se prozori za unos vratiti na zadano kada se stranica osvježi. Budući da Ethernet biblioteka ne uključuje upotrebu asinhronog web servera, cijela stranica mora biti prepisana. Dinamički podaci koji se uglavnom mijenjaju su trenutne vrijednosti izlaza - Uključeno / Isključeno.

Korak 3: HTML stranice rade na web serveru, sheme, izvorni kod

HTML stranice rade na web serveru, sheme, izvorni kod
HTML stranice rade na web serveru, sheme, izvorni kod

HTML stranice na Arduinu:

  • / - korijenska stranica koja sadrži obrazac, trenutni popis logičkih izlaza za relej, temperaturu
  • /action.html - obrađuje vrijednosti iz obrasca, zapisuje ih u EEPROM memoriju, preusmjerava korisnika natrag na početnu stranicu
  • / get_data/ - distribuira podatke o trenutnoj temperaturi, referentnoj temperaturi i histerezi trećoj strani (računar, mikrokontroler, drugi klijent …) u JSON formatu

Postoji i proširena verzija ovog termostata koja uključuje:

  • Ručni način rada za releje (neograničeno vrijeme, teško uključivanje / isključivanje)
  • Mjerač vremena čuvara
  • Dostupno više senzora, na primjer: SHT21, SHT31, DHT22, BME280, BMP280 i drugi
  • Način hlađenja
  • Upravljanje i konfiguracija putem RS232 / UART neovisno o Ethernetu
  • PID regulacija temperature za termostat
  • Mogućnost korištenja ESP8266, ESP32 platformi za termostat

Implementacija programa za projekat može se pronaći na: https://github.com/martinius96/termostat-ethernet/ Implementacija sadrži programe za statičku/dinamičku IPv4 adresu dodijeljenu Ethernet štitu.

Termostat je namijenjen samo za sobne temperature! (iznad 0 ° C), na šta je sistemska logika prilagođena. Moguće je zamijeniti postojeći sobni termostat termostatom, moguće je privremeno zamijeniti termostat u hladnjaku, održavati konstantnu temperaturu u terarijumu i slično.

Preporučuje se: