Arduino Bezdrôtový Termostat: Vlastná Inteligentná Regulácia Teploty

V dnešnej dobe sa inteligentné domácnosti stávajú čoraz dostupnejšími a populárnejšími. Jedným z kľúčových prvkov takejto domácnosti je aj termostat, ktorý umožňuje efektívne riadenie vykurovacieho systému. Hoci komerčne dostupné smart termostaty ponúkajú pokročilé funkcie, ich cena môže byť vysoká a často sú viazané na proprietárne ekosystémy. V tomto článku sa zameriame na alternatívu, ktorá umožňuje vytvoriť si vlastný inteligentný termostat pomocou platformy Arduino.

Arduino je flexibilná a prístupná platforma, ktorá je ideálna pre rôzne projekty, vrátane stavby vlastného izbového termostatu. Tento projekt vám umožní vytvoriť si zariadenie s možnosťami vizualizácie a konfigurácie podľa vašich potrieb. Jednou z možností je využitie Ethernet modulu, konkrétne shieldu od Wiznetu, ktorý sprístupní termostat vo vašej lokálnej sieti (LAN).

Ilustračná schéma zapojenia Arduino termostatu s Ethernet shieldom

Funkcionalita a Výhody Vlastného Termostatu

Vytvorenie vlastného termostatu s Arduinom prináša viaceré výhody. Predovšetkým ide o open-source prístup, ktorý vám umožňuje naprogramovať si akúkoľvek funkčnosť podľa vašich predstáv. Môžete si napríklad nastaviť, aby sa ohrev zapol pri poklese teploty pod určitú hranicu, s výnimkou konkrétnych dní alebo situácií.

Tento typ termostatu má vlastnú databázu, backend softvér a frontend rozhranie, čo umožňuje takmer neobmedzené možnosti správania. Všetko je možné vďaka použitému hardvéru, ktorý zahŕňa:

  • Arduino MKR WiFi 1010 board (alebo Arduino Uno s Ethernet shieldom)
  • Senzory na meranie teploty
  • Relé modul na spínanie vykurovacieho systému
  • OLED displej pre vizualizáciu
  • Real-time clock (RTC) pre presné časovanie

Webové rozhranie termostatu je navrhnuté tak, aby bolo responzívne a prispôsobilo sa rôznym veľkostiam obrazoviek, od širokouhlých displejov s vysokým rozlíšením až po mobilné zariadenia. Rozhranie využíva CSS štýly z frameworku Bootstrap, ktoré sú načítavané z externého CDN servera. Toto riešenie znižuje pamäťové a výkonové zaťaženie Arduina, keďže CSS štýly nemusia byť fyzicky uložené v jeho pamäti.

Pre zachovanie nastavených hodnôt aj po výpadku napájania sú dáta ukladané do EEPROM pamäte Arduina. Týmto spôsobom sa zabezpečí, že termostat si pamätá referenčnú teplotu a hystereziu aj po reštarte.

Hardvérové Komponenty a Zapojenie

Základom projektu je mikrokontrolér Arduino. V závislosti od konkrétneho prevedenia a požiadaviek na pripojenie k sieti sa môže použiť napríklad Arduino Uno s Ethernet shieldom (Wiznet W5100 alebo W5500) alebo Arduino MKR WiFi 1010 pre bezdrôtové pripojenie.

Pre spínanie vykurovacieho systému sa používa elektromagnetické relé, napríklad typ SRD-5VDC-SL-C. Toto relé je schopné spínať až 10A pri 230V (výkon 2300W), čo je pre bežné vykurovacie systémy viac než dostatočné. V prípade potreby je možné použiť aj SSR relé, ako napríklad OMRON G3MB-202P, avšak toto je vhodné len pre nízkoprúdové a striedavé obvody.

Pre meranie teploty sa používajú vhodné snímače teploty, ktoré sú kompatibilné s platformou Arduino. Pre vizualizáciu hodnôt a konfiguráciu môže byť pridaný OLED displej.

Detailné schémy zapojenia relé modulu a senzorov k Arduino

Softvérová Implementácia a Nahrávanie Firmvéru

Softvérová časť projektu zahŕňa program v jazyku C/C++, ktorý je možné nahrať do Arduina pomocou nástrojov ako AVRDUDE alebo XLoader. Nahrávanie firmvéru je rýchle a jednoduché.

XLoader je užívateľsky prívetivý nástroj, ktorý nevyžaduje inštaláciu a umožňuje jednoduché nahrávanie firmvéru (.hex súborov) do Arduino platforiem. Stačí vybrať príslušný COM port a súbor s firmvérom.

Strojové kódy projektu sú kompilované pre cieľové platformy ako Arduino Uno s Ethernet shieldom Wiznet W5100/W5500. Tieto kódy môžu byť rozdelené na základe pridelenia IP adresy:

  • Statická IP adresa: Priradená priamo v zdrojovom kóde (napr. 192.168.4.1 alebo 192.168.1.254 s 24-bit maskou).
  • Dynamická IP adresa: Priradená prostredníctvom DHCP servera v sieti.

Programová implementácia pre Arduino Uno využíva približne 70% flash pamäte (z dostupných 32kB, po odpočítaní bootloadera) a 44% RAM pamäte (2kB). Statické časti webovej stránky sú uložené priamo vo flash pamäti pomocou makra F(), čím sa redukuje zaťaženie RAM.

Obnovovanie stránky Arduino prebieha každých 10 sekúnd pomocou meta tagu Refresh. Počas tohto intervalu je potrebné stihnúť odoslať zmeny v nastaveniach prostredníctvom HTML formulára, inak sa vstupne polia pri obnove resetujú.

Ako nahrať súbor .HEX na dosku Arduino

Možnosti Konfigurácie a Ovládania

Webové rozhranie umožňuje nielen vizualizáciu aktuálnej teploty, ale aj konfiguráciu kľúčových parametrov termostatu, ako sú:

  • Cieľová teplota: Želaná teplota v miestnosti.
  • Hysterezia: Rozdiel teplôt, pri ktorom sa zapína alebo vypína vykurovací systém, aby sa predišlo častému spínaniu.

Nastavené hodnoty sa ukladajú do EEPROM pamäte, čím sa zabezpečí ich perzistencia. Pri prvom spustení, ak nie sú v EEPROM žiadne dáta, sa automaticky zapíšu predvolené hodnoty (napr. referenčná teplota 20.25°C a hysterezia 0.25°C).

Termostat je určený primárne pre interiérové teploty (nad 0°C), čomu je prispôsobená aj logika systému.

Ukážka responzívneho webového rozhrania Arduino termostatu na rôznych zariadeniach

tags: #arduino #bezdratovy #termostat