Obsah:

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

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

Video: Izbový termostat - Arduino + Ethernet: 3 kroky
Video: Termostat - Arduino + Ethernet Wiznet W5100 + DS18B20 (OneWire) 2024, Júl
Anonim
Izbový termostat - Arduino + Ethernet
Izbový termostat - Arduino + Ethernet

Pokiaľ ide o hardvér, projekt používa:

  • Arduino Uno / Mega 2560
  • Ethernetový štít Wiznet W5100 / ethernetový modul Wiznet W5200-W5500
  • Snímač teploty DS18B20 na zbernici OneWire
  • Relé SRD-5VDC-SL-C slúži na spínanie kotla

Krok 1: Popis ethernetového termostatu

Popis ethernetového termostatu
Popis ethernetového termostatu

Arduino je šikovná embeedovaná platforma, ktorú je možné použiť napríklad na stavbu izbového termostatu, ktorý si dnes ukážeme. Termostat je prístupný zo siete LAN, v ktorej je umiestnený, a je vybavený webovým rozhraním, ktoré slúži na konfiguráciu všetkých prvkov termostatu. Webové rozhranie beží priamo na Arduine v režime webového servera. Webový server umožňuje beh niekoľkých nezávislých stránok HTML, ktoré môžu byť informatívne alebo dokonca funkčné. Webový server beží na porte 80 -

Elektromagnetické relé SRD-5VDC-SL-C, ktoré je použité v projekte, umožňuje spínanie až 10A pri 230V-výkon 2300W. V prípade spínania jednosmerného obvodu (záťaže) je možné prepnúť 300 W (10 A pri 30 V DC). Alternatívne je relé OMRON G3MB-202P SSR plne kompatibilné so schémou zapojenia, ktorá je vhodná iba pre neindukčné záťaže a výlučne pre striedavé obvody. Maximálny spínací výkon 460W (230V, 2A). Spotreba Arduina s ethernetovým štítom a ďalšími perifériami je na úrovni 100-120mA pri rozopnutom relé. V zatvorenom stave pod 200mA pri napájaní 5V.

Krok 2: Webové rozhranie

Webové rozhranie
Webové rozhranie

Webové rozhranie termostatu umožňuje:

  • Zobrazte teplotu v reálnom čase zo senzora DS18B20
  • Na stránke nájdete stav relé v reálnom čase s dynamickou zmenou výstupu
  • Upravte cieľovú (referenčnú) teplotu v rozsahu 5 až 50 ° C v kroku 0,25 ° C
  • Upravte hysteréziu v rozsahu 0 až 10 ° C krokom 0,25 ° C

Webové rozhranie je navrhnuté tak, aby pojalo väčšie aj menšie obrazovky. Je responzívny, podporuje širokouhlé obrazovky s vysokým rozlíšením, ale aj mobilné zariadenia. Rozhranie používa importované štýly CSS rámca Bootstrap z externého servera CDN, ktorý pri otvorení stránky spustenej na Arduine načíta zariadenie na strane klienta. Pretože Arduino Uno má obmedzenú pamäť, môže prevádzkovať iba stránky s veľkosťou niekoľko kB. Import štýlov CSS z externého servera zníži výkon a zaťaženie pamäte Arduina. Softvérová implementácia (pre Arduine Uno) využíva 70% flash pamäte (32kB - 4kB Bootloader) a 44% RAM pamäte (2kB).

Statické časti webovej stránky (hlavička a päta dokumentu HTML, prepojenie CSS bootstrapu, metaznačky, hlavička odpovede HTTP, typ obsahu, formulár a ďalšie) sú uložené priamo vo flash pamäti Arduina, čo môže výrazne znížiť množstvo RAM použitej pre používateľa -generovaný obsah. Webový server je tak stabilnejší a zvládne viacnásobné pripojenie viacerých zariadení v sieti súčasne.

Aby boli nastavené hodnoty zachované aj po výpadku napájania, sú uložené v pamäti EEPROM Arduina. Referenčná teplota na offset 10, hysterézia na offset 100. Každá z hodnôt zaberá v pamäti EEPROM maximálne 5B. Limit prepisu EEPROM je na úrovni 100 000 transkriptov. Údaje sa prepíšu iba vtedy, keď je odoslaný formulár HTML. V prípade, že zariadenie pri prvom spustení nemá nič uložené na uvedených offsetoch EEPROM, vykoná sa automatické zapisovanie s predvolenými hodnotami - referencia: 20,25, hysterézia 0,25 ° C

Meta tag Refresh obnoví celú stránku Arduino každých 10 sekúnd. Do tejto doby je potrebné zapísať zmenu pre termostat, inak sa po aktualizácii stránky obnovia vstupné okná. Pretože ethernetová knižnica nezahŕňa použitie asynchrónneho webového servera, musí byť prepísaná celá stránka. Dynamickými údajmi, ktoré sa hlavne menia, je aktuálna hodnota výstupu - Zap / Vyp.

Krok 3: Stránky HTML spustené na webovom serveri, schémy, zdrojový kód

Stránky HTML spustené na webovom serveri, schémy, zdrojový kód
Stránky HTML spustené na webovom serveri, schémy, zdrojový kód

Stránky HTML spustené na Arduino:

  • / - koreňová stránka obsahujúca formulár, zoznam aktuálnych logických výstupov pre relé, teplota
  • /action.html - spracováva hodnoty z formulára, zapisuje ich do pamäte EEPROM, presmeruje používateľa späť na koreňovú stránku
  • / get_data/ - distribuuje údaje o aktuálnej teplote, referenčnej teplote a hysterézii tretej strane (počítač, mikrokontrolér, iný klient …) vo formáte JSON

Existuje aj rozšírená verzia tohto termostatu, ktorá obsahuje:

  • Manuálny režim pre relé (neobmedzený čas, tvrdé zapnutie / vypnutie)
  • Časovač strážneho psa
  • K dispozícii je viac senzorov, napríklad: SHT21, SHT31, DHT22, BME280, BMP280 a ďalšie
  • Režim chladenia
  • Ovládanie a konfigurácia cez RS232 / UART nezávisle na ethernete
  • Regulácia teploty PID pre termostat
  • Na termostat je možné použiť platformy ESP8266, ESP32

Implementáciu programu pre projekt nájdete na: https://github.com/martinius96/termostat-ethernet/ Implementácia obsahuje programy pre statickú/dynamickú adresu IPv4 priradenú k ethernetovému štítu.

Termostat je určený iba pre vnútorné teploty! (nad 0 ° C), čomu je prispôsobená logika systému. Je možné nahradiť existujúci izbový termostat termostatom, je možné dočasne vymeniť termostat v chladničke, udržiavať konštantnú teplotu v teráriu a podobne.

Odporúča: