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, Srpanj
Anonim
Sobni termostat - Arduino + Ethernet
Sobni termostat - Arduino + Ethernet

Što se tiče hardvera, projekt 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 služi za uključivanje kotla

Korak 1: Opis Ethernet termostata

Opis Ethernet termostata
Opis Ethernet termostata

Arduino je zgodna 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 izravno na Arduinu u načinu rada web poslužitelja. Web poslužitelj omogućuje pokretanje nekoliko neovisnih 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ćuje 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 pri 30 V DC). Alternativno, relej OMRON G3MB-202P SSR potpuno je kompatibilan sa shemom ožičenja, koja je prikladna samo za neinduktivna opterećenja i isključivo za izmjenične strujne krugove. Maksimalna sklopna snaga 460W (230V, 2A). Potrošnja Arduina s Ethernet štitom i ostalim perifernim uređajima je na razini 100-120mA s otvorenim relejem. Kad je zatvoren, ispod 200mA na 5V napajanju.

Korak 2: Web sučelje

Web sučelje
Web sučelje

Web sučelje za termostat omogućuje:

  • Pregledajte temperaturu u stvarnom vremenu sa senzora DS18B20
  • Prikaz statusa releja u stvarnom vremenu s 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 dizajnirano je za prilagođavanje većih i manjih zaslona. Odzivan je, podržava ekrane visoke razlučivosti širokog zaslona, ali i mobilne uređaje. Sučelje koristi uvezene CSS stilove Bootstrap okvira s vanjskog CDN poslužitelja, koji učitava uređaj na strani klijenta pri otvaranju stranice 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 flash memoriju Arduina, što može značajno smanjiti količinu RAM -a koju koristi korisnik -generirani sadržaj. Web poslužitelj je tako 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 razini 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 pomacima EEPROM -a 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 tada je potrebno upisati promjenu za termostat, inače će se prozori za unos vratiti na zadano kad se stranica osvježi. Budući da knjižnica Ethernet ne uključuje upotrebu asinkronog web poslužitelja, 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 poslužitelju, sheme, izvorni kod

HTML stranice rade na web poslužitelju, sheme, izvorni kod
HTML stranice rade na web poslužitelju, 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 memoriju EEPROM -a, preusmjerava korisnika natrag na korijensku stranicu
  • / get_data/ - distribuira podatke o trenutnoj temperaturi, referentnoj temperaturi i histerezi trećoj strani (računalo, mikrokontroler, drugi klijent …) u JSON formatu

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

  • Ručni način rada releja (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

Implementaciju programa za projekt možete 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 unutarnje temperature! (iznad 0 ° C), na što je prilagođena logika sustava. Moguće je zamijeniti postojeći sobni termostat termostatom, moguće je privremeno zamijeniti termostat u hladnjaku, održavati stalnu temperaturu u terariju i slično.

Preporučeni: