[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 20.12.24
Príspevky: 451
Témy: 198 | 198
Bydlisko: Poprad-okolie

Arduino je šikovná embeeded platforma, ktorú je možné využiť napríklad aj na stavbu izbového termostatu, ktorý si dnes ukážeme. Termostat je prístupný z LAN siete v ktorej sa nachádza, pričom 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 webservera. Webserver umožňuje beh niekoľkých na sebe nezávislých HTML stránok, ktoré môžu mať informatívny, alebo aj funkcionálny charakter. Webserver beží na porte 80 - HTTP.

Po hardvérovej stránke projekt využíva:
    Arduino Uno / Mega 2560
    Ethernet shield Wiznet W5100 / Ethernet modul Wiznet W5200-W5500
    Teplotný senzor DS18B20 na OneWire zbernici
    Relé SRD-5VDC-SL-C slúžiace na spínanie kotla
Elektromagnetické relé SRD-5VDC-SL-C, ktoré je v projekte použité umožňuje spínať až 10A pri 230V - výkon 2300W. V prípade spínania jednosmerného obvodu (záťaže) je možné spínať 300W (10A pri 30V DC). Prípadne je pre schému zapojenia plne kompatibilné aj SSR relé OMRON G3MB-202P, ktoré je vhodné iba pre neindukčnú záťaž a výhradne pre obvod so striedavým napätím. Maximálny spínaný výkon 460W (230V, 2A). Spotreba Arduina s Ethernet shieldom a ostatnými perifériami je na úrovni 100-120mA pri rozopnutom relé. Pri zopnutom stave pod 200mA pri 5V napájaní.

Webové rozhranie pre termostat umožňuje:
    Prehliadať v reálnom čase teplotu zo senzora DS18B20
    Prehliadať v reálnom čase stav relé s dynamickou zmenou výstupu na stránke
    Modifikovať cieľovú (referenčnú) teplotu v rozsahu 5 až 50°C s 0,25°C krokom
    Modifikovať hysterézu v rozsahu 0 až 10°C s 0,25°C krokom

ZAP/VYP regulácia kotla v čase:
Izbový termostat - Arduino + Ethernet

Webové rozhranie je navrhnuté pre prispôsobenie sa väčším i menším obrazovkám. Je reponzívne, podporuje širokouhlé obrazovky s vysokým rozlíšením, ale aj mobilné zariadenia. Rozhranie využíva importované CSS štýly Bootstrap frameworku z externého CDN servera, ktorý načíta client-side zariadenie pri otvorení stránky bežiacej na Arduine. Nakoľko je Arduino Uno limitované pamäťou, dokáže spustiť iba stránky s veľkosťou pár kB. Importovaním CSS štýlov z externého servera umožní žnížiť výkonové a pamäťové zaťaženie Arduina. Programová implementácia (pri 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ätička HTML dokumentu, linkovanie Bootstrap CSS, meta tagy, HTTP response hlavička, Content Type, formulár a ďalšie) sú uložené priamo vo flash pamäti Arduina, čo dokáže výrazne redukovať veľkosť používanej RAM pamäte pre obsah generovaný používateľovi. Webserver je tak stabilnejší a zvláda aj multi-pripojenie viacerých zariadení v sieti súčasne.

Aby ostali nastavené hodnoty zachované aj po výpadku napájania, sú uložené do EEPROM pamäte Arduina. Referenčná teplota na offset 10, hysteréza na offset 100. Každá z hodnôt zaberá maximálne 5B v EEPROM pamäti. Limit prepisov EEPROM je na úrovni 100-tisíc prepisov. Dáta sa prepisujú iba pri odoslaní HTML formulára. V prípade, že zariadenie pri prvom spustení nemá nič uložené na spomenutých EEPROM offsetoch, vykoná sa automatický zápis s predvolenými hodnotami - referencia: 20,25, hysteréza 0,25°C

Prostredníctvom meta tagu Refresh vykonáva obnovu celej stránky Arduino každých 10 sekúnd. Do tohto času je potrebné stihnúť zapísať zmenu pre termostat, inak sa input okná resetujú pri obnovení stránky. Nakoľko knižnice Ethernet neobsahuje využitie asynchrónneho webservera, je nutné prepisovať celú stránku. Dynamický údaj, ktorý sa predovšetkým mení je aktuálna hodnota výstupu- Zapnutý / Vypnutý.

Formulár pre zápis cieľovej - referenčnej teploty a hysterézy:
Izbový termostat - Arduino + Ethernet
Izbový termostat - Arduino + Ethernet

Priebeh spracovania zadaných údajov (presmerovanie používateľa):
Izbový termostat - Arduino + Ethernet

Ukážkový výstup do Serial (UART) monitoru:
    Používateľ na stránke action.html vykoná zmenu pre termostat (relé prechádza zo stavu VYP do ZAP).
    Logika relé sa vykonáva nezávisle na webovom rozhraní každých 10 sekúnd
Izbový termostat - Arduino + Ethernet

HTML stránky bežiace na Arduine:
    / - root stránka obsahujúca formulár, aktuálny výpis logického výstupu pre relé, teplotu
    /action.html - spracúvava hodnoty z formulára, zapisuje ich do EEPROM pamäte, presmeruje používateľa späť na root stránku
    /get_data/ - distribuuje dáta o aktuálnej teplote, referenčnej teplote a hysteréza tretej strane (počítač, mikrokontróler, iný klient...) v JSON formáte

Rozšírená verzia tohto termostatu obsahuje navyše:
    Manuálny režim pre relé (neobmedzená doba, natvrdo ZAP/VYP)
    Watchdog timer
    Dostupné senzory SHT21, SHT31, DHT22, BME280, BMP280 a iné
    Režim chladenia
    Ovládanie a konfigurácia po RS232 / UART nezávisle na Ethernete
    PID regulácia teploty pre termostat
    Možnosť využitia platforiem ESP8266, ESP32 pre termostat

Schéma zapojenia:
Izbový termostat - Arduino + Ethernet

Programovú implementáciu pre základnú verziu projektu je možné nájsť na: https://github.com/martinius96/termostat-ethernet/ Implmentácia obsahuje programy pre statickú / dynamickú IPv4 adresu priradenú k Ethernet shieldu Wiznet W5100 / modulu Wiznet W5200 - W5500.

Termostat je určený iba pre interiérové teploty! (nad 0°C), čomu je prispôsobená aj logika systému. Termostatom je možné nahradiť už existujúci izbový termostat, možno dočasne nahradiť termostat v chladničke, udržiavať stálu teplotu v teráriu a podobne.


 [ Príspevok: 1 ] 


Izbový termostat - Arduino + Ethernet



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Escape Room - Webclient - Arduino + Ethernet

v Články

0

971

27.11.2019 22:35

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino + Ethernet - Webserver - formuláre - EEPROM

v Články

0

966

05.04.2020 23:58

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Monitor teplôt, vlhkostí - Arduino Mega + Ethernet W5100

v Články

0

923

21.02.2020 22:42

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266

v Články

0

1500

21.02.2020 23:13

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Byt v BA 3 izbový

v Život, životný štýl, móda, bývanie

3

663

05.09.2014 10:06

ac.milan

V tomto fóre nie sú ďalšie neprečítané témy.

4-Port Ethernet Switch HWIC with Power Over Ethernet, Cisco,

v Siete

2

1323

06.01.2009 16:04

Cruel

V tomto fóre nie sú ďalšie neprečítané témy.

Bezdrôtový termostat

v Ostatné

4

762

10.01.2016 0:37

ivann1

V tomto fóre nie sú ďalšie neprečítané témy.

Inteligentny termostat z Ciny

v Ostatné

6

527

27.03.2023 10:40

Johnnny

V tomto fóre nie sú ďalšie neprečítané témy.

Wifi termostat vs Smart zásuvka.

v Život, životný štýl, móda, bývanie

12

713

22.11.2019 18:29

maiob

V tomto fóre nie sú ďalšie neprečítané témy.

Bezdrôtový termostat k plynovému kotlu

v Život, životný štýl, móda, bývanie

0

438

16.11.2020 11:51

Joeyeti

V tomto fóre nie sú ďalšie neprečítané témy.

ZigBee termostat na el. podlahove vykurovanie + RPI + SMARTPHONE

v Mikropočítače

3

698

02.10.2018 15:22

eon5

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino

v Assembler, C, C++, Pascal, Java

6

743

05.04.2018 17:25

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino komunikácia

v Mikropočítače

0

1447

27.10.2022 15:39

miluk

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino 8bit computer

v Mikropočítače

1

886

20.02.2015 13:34

jankalman

V tomto fóre nie sú ďalšie neprečítané témy.

C a arduino

v Assembler, C, C++, Pascal, Java

0

639

30.04.2018 17:37

Dolpi

V tomto fóre nie sú ďalšie neprečítané témy.

I/K: Arduino Uno

v Kúpim

0

475

13.12.2015 22:49

werwest



© 2005 - 2024 PCforum, edited by JanoF