blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
Programátor
deadawp



Monitor teplôt, vlhkostí - Arduino Mega + Ethernet W5100
pridal deadawp 25.1. 2020 o 21:56



Dnes bližšie predstavím posledný realizovaný projekt, ktorý je dosť komplexný, čo sa týka funkčnosti, počtu využitých senzorov, Arduino dosiek, využitých dátových zberníc.  Projekt sa skladá z dvoch modulov. Fyzicky je každý z modulov zložený zo samostatného Arduina Mega 2560, Ethernet shieldu W5100 (R3 kompatibilný) a senzorov, ktoré využíva.

Každý modul komunikuje s webovým rozhraním na internete HTTP POST požiadavkami, ktorými webserveru predávajú dáta, prípadne si nejaké dáta vyžiadajú, napríklad cez GET požiadavku (iba modul 2). Webové rozhranie je doplnené a login systém, pričom do systému môže pristupovať celá rodina, ktorá sa do systém zaregistruje, každý so svojim menom a heslom. Jedná sa teda o multiuser aplikáciu, pričom každý člen rodiny má prehľad o oboch moduloch a môže vykonávať rôzne akcie - nastavenie referenčnej teploty, riadiaci teplomer, atď. Webové rozhranie je naprogramované v PHP, dáta sú ukladané do MySQL databázy. Každý z modulov má samostatnú tabuľku v databáze pre dáta.
Predstavme si bližšie jednotlivé moduly.

Modul 1 - BYT - hardvér:

  • Arduino Mega 2560
  • Ethernet shield Wiznet W5100
  • 8x teplotný senzor DS18B20 na OneWire zbernici - rozdelené na 4 OneWire zbernice (2,4,1,1)
  • 2x digitálny senzor teploty a vlhkosti DHT22 (AM2302)
  • 1x senzor teploty a vlhkosti SENSIRION SHT21 (Si7021)
  • 1x senzor teploty a vlhkosti (a tlaku vzduchu) BOSCH BME280
  • Odosiela dáta zo všetkých senzorov naraz v niekoľko minútových intervaloch (možno modifikovať)

Celý modul 1- BYT slúži iba ako monitor teplôt v jednotlivých miestnostiach, nemá žiadnu inú úlohu. Senzory DHT22 sa použili na dlhšiu vzdialenosť s využitím vhodného 10kohm pullup rezistora pre záznam vlhkosti v kúpelniach. Nakoľko BME280 a SHT21 komunikujú po I2C zbernici a tá je značne limitovaná, čo sa týka dĺžky vodičov zbernice, senzory sa používajú v blízkosti Arduina v miestnostiach.

Teplotné senzory DS18B20 boli rozdelené na 4 zbernice, nakoľko sa využívajú dva senzory vo vonkajšom vyhotovení, preto je jednoduchšie pripojiť ich na samostatné vývody Arduina a pri prípadnom vypadnutí senzora je ľahšia aj jeho výmena, nakoľko neochromí funkčnosť systému pri priradení nového senzora na zbernicu.

Napríklad v prípade jednej z týchto OneWire zberníc, na ktorej sú 4 senzory sú rozlíšené podľa indexu. Index sa viaže s fyzickou adresou teplomerov, teda v prípade zámeny jedného zo senzorov môže nový senzor figurovať na indexe 0 - začiatočnom, alebo aj 2, 3, či poslednom. Redukovaním počtu senzorov na zberniciach sa teda môžeme vyhnúť takejto komplikácii, ktorá môže nastať pri výmene senzora. 

Modul 2 - KOTOLŇA - hardvér:

  • Arduino Mega 2560
  • Ethernet shield Wiznet W5100
  • 16x teplotný senzor DS18B20 na OneWire zbernici - rozdelené na 7 OneWire zberníc (2,2,2,2,2,2,4)
  • 8x digitálny vstup
  • 8x digitálny výstup - pre solenoid / relé
  • Odosiela dáta zo všetkých senzorov naraz v niekoľko minútových intervaloch (možno modifikovať)
  • Číta z webového rozhrania stavy jednotlivých výstupov, aplikuje ich
  • Odosiela stavy digitálnych vstupov

Modul 2 - KOTOLŇA má okrem funkcie monitora  aj dôležitejšiu úlohu a to ovládanie solenoidov, respektíve relé pre ovládanie ventilov radiátorov. Modul pracuje nezávisle na kúrení v domácnosti. Modul nespína kúrenie, či kotol. Modul sa stará iba o otvorenie, uzavretie ventilu radiátorov, ak je v miestnosti požadovaná teplota nižšia / vyššia, ako nastavená - tzv. referenčná teplota. Ku každej miestnosti, kde sa riadi ventil radiátora je možné priradiť špecifický teplomer z modulu 2. Okrem tohto - automatického režimu existuje aj manuálny režim, kedy je možné ventil otvoriť / zatvoriť manuálne z webového rozhrania na dobu neurčitú - natvrdo. Digitálne vstupy môžu slúžiť na overenie, či sa daný solenoid / relé / ventil otvoril / zatvoril na základe požiadavky s Arduina - možnosť porovnať, či sa výstup rovná vstupu.

Pri oboch moduloch existuje aj grafická reprezentácia čiarovým grafom pre vývoj jednotlivých veličín - teplota, vlhkosť vzduchu za 24 hodín, 7 dní.  Webové rozhranie ponúka aj prezretie maximálnej / minimálnej, priemernej hodnoty za 24 hodín, 7 dní pre každý teplomer / vlhkomer.  V module 1 sa pôvodne uvažovalo o dvojici senzorov SHT21, ale nakoľko nemajú možnosť zmeny I2C adresy, bolo by nutné využiť multiplexer pre komunikáciu po jednej zbernici od dvoch senzorov s rovnakou I2C adresou. V prípade chybných dát zo senzorov sa uloží meno senzoru do logu, ktorý si môže správca systému kedykoľvek otvoriť a vykonať servisný zásah na OneWire zbernici a vymeniť napríklad chybný senzor.

Do Arduino programov bol implementovaný Watchdog, ktorý Arduino pri chybnej inicializácii, "zamrznutí", inej chybe bezpečne reštartuje a na začiatku programu vypne všetky výstupy až do nadviazania spojenia s webovým rozhraním, kde sa plne synchronizuje, čo sa týka výstupov, ktoré následne aplikuje.

Schémy zapojenia, programové implementácie pre Arduino Mega, technický popis modulov a zberníc je možné nájsť na adrese projektu: https://martinius96.github.io/Monitor-teploty-vlhkosti-kurenie/

Prispieť na kávu môžete na: https://www.paypal.me/chlebovec

Na záver fotogaléria častí systému:








Schémy zapojenia pre jednotlivé moduly BYT, KOTOLŇA:




Prístupov 9651
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Solárne napájanie ESP32 - WiFi / LoRaWAN
[ 15.9.2023] (príspevkov 0)
BLE Beacon na ESP32 - vysielanie vlastný...
[ 22.8.2023] (príspevkov 0)
Český Kickstarter ESP32 projekt a čo ma ...
[ 10.3.2023] (príspevkov 0)
Senzorový uzol pre hladinomer - ESP32 s ...
[ 25.12.2022] (príspevkov 0)
ESP-IDF v simulátore Wokwi - ESP32
[ 26.9.2022] (príspevkov 0)
Senzory pre záznam výšky hladiny vody
[ 2.9.2022] (príspevkov 0)
ESP32 - PHY Ethernet LAN8720
[ 1.9.2022] (príspevkov 0)
Sigfox končí? Všetko tomu nasvedčuje
[ 20.8.2022] (príspevkov 0)
Ako spustiť neefektívny program efektívn...
[ 21.6.2022] (príspevkov 0)
Wokwi - simulátor pre Arduino projekty
[ 14.4.2022] (príspevkov 0)