Obsah:

Pokojový termostat - Arduino + Ethernet: 3 kroky
Pokojový termostat - Arduino + Ethernet: 3 kroky

Video: Pokojový termostat - Arduino + Ethernet: 3 kroky

Video: Pokojový termostat - Arduino + Ethernet: 3 kroky
Video: Подключение ethernet модуля ENC28J60 к Arduino 2024, Červenec
Anonim
Pokojový termostat - Arduino + Ethernet
Pokojový termostat - Arduino + Ethernet

Pokud jde o hardware, projekt používá:

  • Arduino Uno / Mega 2560
  • Ethernetový štít Wiznet W5100 / ethernetový modul Wiznet W5200-W5500
  • Snímač teploty DS18B20 na sběrnici OneWire
  • Relé SRD-5VDC-SL-C používané pro spínání kotle

Krok 1: Popis ethernetového termostatu

Popis ethernetového termostatu
Popis ethernetového termostatu

Arduino je šikovná embeeded platforma, kterou lze použít například ke stavbě pokojového termostatu, který si dnes ukážeme. Termostat je přístupný ze sítě LAN, ve které je umístěn, a je vybaven webovým rozhraním, které slouží ke konfiguraci všech prvků termostatu. Webové rozhraní běží přímo na Arduinu v režimu webového serveru. Webový server umožňuje provozování několika nezávislých stránek HTML, které mohou být informativní nebo dokonce funkční. Webový server běží na portu 80 -

Elektromagnetické relé SRD-5VDC-SL-C, které je v projektu použito, umožňuje spínání až 10A při 230V-výkon 2300W. V případě spínání stejnosměrného obvodu (zátěže) je možné přepnout 300 W (10 A při 30 V DC). Alternativně je relé OMRON G3MB-202P SSR plně kompatibilní se schématem zapojení, které je vhodné pouze pro neinduktivní zátěže a výhradně pro střídavé obvody. Maximální spínací výkon 460W (230V, 2A). Spotřeba Arduina s ethernetovým štítem a dalšími periferiemi je při rozepnutém relé na úrovni 100-120mA. V zavřeném stavu pod 200mA při napájení 5V.

Krok 2: Webové rozhraní

Webové rozhraní
Webové rozhraní

Webové rozhraní termostatu umožňuje:

  • Zobrazte teplotu v reálném čase ze senzoru DS18B20
  • Zobrazení stavu relé v reálném čase s dynamickou změnou výstupu na stránce
  • Upravte cílovou (referenční) teplotu v rozmezí 5 až 50 ° C s krokem 0,25 ° C
  • Upravte hysterezi v rozsahu 0 až 10 ° C krokem 0,25 ° C

Webové rozhraní je navrženo tak, aby pojalo větší i menší obrazovky. Je responzivní, podporuje širokoúhlé obrazovky s vysokým rozlišením, ale také mobilní zařízení. Rozhraní používá importované styly CSS rámce Bootstrap z externího serveru CDN, který načte zařízení na straně klienta při otevření stránky spuštěné na Arduinu. Protože Arduino Uno má omezenou paměť, může provozovat pouze stránky o velikosti několika kB. Importem stylů CSS z externího serveru sníží výkon a zatížení paměti Arduina. Softwarová implementace (pro Arduine Uno) využívá 70% flash paměti (32kB - 4kB Bootloader) a 44% RAM paměti (2kB).

Statické části webové stránky (záhlaví a zápatí dokumentu HTML, propojení Bootstrap CSS, metaznačky, záhlaví odpovědi HTTP, typ obsahu, formulář a další) jsou uloženy přímo ve flash paměti Arduina, což může výrazně snížit množství RAM použité pro uživatele -generovaný obsah. Webový server je tak stabilnější a zvládne více připojení více zařízení v síti současně.

Aby byly nastavené hodnoty zachovány i po výpadku napájení, jsou uloženy v paměti EEPROM Arduina. Referenční teplota na offset 10, hystereze na offset 100. Každá z hodnot zabírá v paměti EEPROM maximálně 5B. Limit přepisu EEPROM je na úrovni 100 000 přepisů. Data jsou přepsána pouze při odeslání formuláře HTML. V případě, že zařízení nemá při prvním spuštění nic uloženo na uvedených offsetech EEPROM, proběhne automatické zapisování s výchozími hodnotami - reference: 20,25, hystereze 0,25 ° C

Metaznačka Refresh obnovuje každých 10 sekund celou stránku Arduino. Do této doby je nutné zapsat změnu pro termostat, jinak se vstupní okna resetují při aktualizaci stránky. Protože ethernetová knihovna nezahrnuje použití asynchronního webového serveru, musí být přepsána celá stránka. Dynamickými daty, která se hlavně mění, je aktuální hodnota výstupu - Zapnuto / Vypnuto.

Krok 3: Stránky HTML běžící na webovém serveru, schémata, zdrojový kód

Stránky HTML běžící na webovém serveru, schémata, zdrojový kód
Stránky HTML běžící na webovém serveru, schémata, zdrojový kód

HTML stránky běžící na Arduinu:

  • / - kořenová stránka obsahující formulář, výpis aktuálních logických výstupů pro relé, teplota
  • /action.html - zpracovává hodnoty z formuláře, zapisuje je do paměti EEPROM, přesměruje uživatele zpět na kořenovou stránku
  • / get_data/ - distribuuje data o aktuální teplotě, referenční teplotě a hysterezi třetí straně (počítač, mikrokontrolér, jiný klient …) ve formátu JSON

Existuje také rozšířená verze tohoto termostatu, která obsahuje:

  • Manuální režim pro relé (neomezený čas, pevné zapnutí / vypnutí)
  • Časovač hlídacího psa
  • K dispozici více senzorů, například: SHT21, SHT31, DHT22, BME280, BMP280 a další
  • Režim chlazení
  • Ovládání a konfigurace přes RS232 / UART nezávisle na ethernetu
  • PID regulace teploty pro termostat
  • Možnost použít pro termostat platformy ESP8266, ESP32

Implementaci programu pro projekt lze nalézt na: https://github.com/martinius96/termostat-ethernet/ Implementace obsahuje programy pro statickou/dynamickou adresu IPv4 přiřazenou ethernetovému štítu.

Termostat je určen pouze pro vnitřní teploty! (nad 0 ° C), čemuž je přizpůsobena logika systému. Je možné nahradit stávající pokojový termostat termostatem, je možné dočasně vyměnit termostat v chladničce, udržovat konstantní teplotu v teráriu a podobně.

Doporučuje: