Tartalomjegyzék:

Szobatermosztát - Arduino + Ethernet: 3 lépés
Szobatermosztát - Arduino + Ethernet: 3 lépés

Videó: Szobatermosztát - Arduino + Ethernet: 3 lépés

Videó: Szobatermosztát - Arduino + Ethernet: 3 lépés
Videó: Magnet attack on mechanical water meter 2024, Július
Anonim
Szobatermosztát - Arduino + Ethernet
Szobatermosztát - Arduino + Ethernet

A hardver tekintetében a projekt a következőket használja:

  • Arduino Uno / Mega 2560
  • Ethernet pajzs Wiznet W5100 / Ethernet modul Wiznet W5200-W5500
  • DS18B20 hőmérséklet -érzékelő a OneWire buszon
  • SRD-5VDC-SL-C relé kazánkapcsoláshoz

1. lépés: Az Ethernet termosztát leírása

Az Ethernet termosztát leírása
Az Ethernet termosztát leírása

Az Arduino egy praktikus embeeded platform, amely például szobatermosztát építésére használható, amelyet ma bemutatunk. A termosztát a LAN -hálózatból érhető el, amelyben található, miközben fel van szerelve egy webes interfésszel, amely a termosztát összes elemének konfigurálására szolgál. A webes felület közvetlenül az Arduino -n fut webszerver módban. A webszerver több független HTML -oldal futtatását teszi lehetővé, amelyek informatívak vagy akár funkcionálisak is lehetnek. A webszerver a 80 -as porton fut -

A projektben használt SRD-5VDC-SL-C elektromágneses relé lehetővé teszi a 10A-ig történő kapcsolást 230V-on-2300W teljesítményen. Egyenáramú áramkör (terhelés) kapcsolása esetén lehetőség van 300W (10A 30V DC) kapcsolásra. Alternatív megoldásként az OMRON G3MB-202P SSR relé teljes mértékben kompatibilis a kapcsolási rajzzal, amely csak nem induktív terhelésekre és kizárólag váltakozó áramkörökre alkalmas. Maximális kapcsolási teljesítmény 460W (230V, 2A). Az Arduino fogyasztása Ethernet-pajzzsal és más perifériákkal 100-120 mA, nyitott relével. Zárt állapotban 200mA alatt 5V tápellátásnál.

2. lépés: Webes felület

Webes felület
Webes felület

A termosztát webes kezelőfelülete lehetővé teszi:

  • Tekintse meg a valós idejű hőmérsékletet a DS18B20 érzékelőből
  • Tekintse meg a valós idejű relé állapotát a dinamikus kimeneti változással az oldalon
  • Módosítsa a célhőmérsékletet (referencia) 5 és 50 ° C között 0,25 ° C lépéssel
  • Módosítsa a hiszterézist 0 és 10 ° C között 0,25 ° C lépéssel

A webes felületet úgy tervezték, hogy nagyobb és kisebb képernyőket is befogadjon. Érzékeny, támogatja a szélesvásznú nagyfelbontású képernyőket, de a mobileszközöket is. Az interfész a Bootstrap keretrendszer importált CSS-stílusait használja egy külső CDN-kiszolgálóról, amely betölti az ügyféloldali eszközt az Arduino-n futó oldal megnyitásakor. Mivel az Arduino Uno memóriakorlátozott, csak néhány kB méretű oldalakat tud futtatni. A CSS stílusok külső szerverről történő importálásával csökken az Arduino teljesítménye és memóriaterhelése. A szoftver megvalósítása (Arduine Uno esetén) a flash memória 70% -át (32 kB - 4 kB Bootloader) és 44% RAM memóriát (2 kB) használ.

A weboldal statikus részei (HTML dokumentumfejléc és lábléc, Bootstrap CSS linkelés, metacímkék, HTTP válaszfejléc, tartalomtípus, űrlap és egyebek) közvetlenül az Arduino flash memóriájában tárolódnak, ami jelentősen csökkentheti a felhasználó által felhasznált RAM mennyiségét -generált tartalom. A webszerver így stabilabb, és egyszerre képes kezelni a hálózat több eszközének összeköttetését.

Annak érdekében, hogy a beállított értékek áramkimaradás után is megmaradjanak, ezeket az Arduino EEPROM memóriájában tárolja. A referenciahőmérséklet a 10 eltoláshoz, a hiszterézis a 100 eltoláshoz. Mindegyik érték maximum 5B -t foglal el az EEPROM memóriában. Az EEPROM átírási korlátja 100 000 átirat. Az adatok felülírása csak a HTML űrlap elküldésekor történik. Abban az esetben, ha a készülék az első indításkor nem tárolt semmit az említett EEPROM -eltolásokon, az automatikus írás az alapértelmezett értékekkel történik - hivatkozás: 20,25, hiszterézis 0,25 ° C

A Refresh metacímke 10 másodpercenként frissíti a teljes Arduino oldalt. Ekkorra be kell írni a termosztát változását, különben a bemeneti ablakok visszaállnak az oldal frissítésekor. Mivel az Ethernet könyvtár nem tartalmazza az aszinkron webszerver használatát, a teljes oldalt újra kell írni. A főként változó dinamikus adatok a kimenet aktuális értéke - Be / Ki.

3. lépés: Hálózati szerveren futó HTML -oldalak, vázlatok, forráskód

Weblapon futó HTML -oldalak, Sémák, Forráskód
Weblapon futó HTML -oldalak, Sémák, Forráskód

Az Arduino -n futó HTML -oldalak:

  • / - gyökéroldal, amely tartalmazza az űrlapot, az aktuális logikai kimeneti listát a reléhez, a hőmérsékletet
  • /action.html - feldolgozza az értékeket az űrlapról, beírja az EEPROM memóriába, visszairányítja a felhasználót a gyökéroldalra
  • / get_data/ - adatokat továbbít az aktuális hőmérsékletről, referenciahőmérsékletről és hiszterézisről harmadik félnek (számítógép, mikrovezérlő, más kliens …) JSON formátumban

Ennek a termosztátnak van egy kiterjesztett változata is, amely a következőket tartalmazza:

  • Kézi üzemmód relékhez (korlátlan ideig, kemény BE / KI)
  • Watchdog időzítő
  • További érzékelők, például: SHT21, SHT31, DHT22, BME280, BMP280 és mások
  • Hűtési mód
  • Vezérlés és konfigurálás RS232 / UART -on keresztül, Ethernet -től függetlenül
  • PID hőmérséklet -szabályozás termosztáthoz
  • ESP8266, ESP32 platformok használata termosztáthoz

A projekt program megvalósítása megtalálható a következő címen: https://github.com/martinius96/termostat-ethernet/ Az implementáció az Ethernet pajzshoz rendelt statikus/dinamikus IPv4 cím programjait tartalmazza.

A termosztát csak beltéri hőmérsékleten használható! (0 ° C felett), amelyhez a rendszer logikája alkalmazkodik. Lehetőség van egy meglévő szobatermosztát termosztáttal történő cseréjére, a hűtőszekrényben lévő termosztát ideiglenes cseréjére, a terráriumban állandó hőmérséklet fenntartására és hasonlókra.

Ajánlott: