blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
PHP, Arduino 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.

 

Ďalšie zaujímavé projekty môžete nájsť na: https://arduino.php5.sk/ 
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 2736
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
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
Ovládanie Arduina cez UART z počítača
[ 19.11.2020] (príspevkov 0)
ArduinoJson - knižnica pre parsovanie JS...
[ 15.11.2020] (príspevkov 0)
Overenie kradnutých vozidiel - Arduino +...
[ 11.11.2020] (príspevkov 0)
Hladinomer + Zrážkomer - Arduino / ESP82...
[ 2.11.2020] (príspevkov 0)
RFID vrátnik - update Október 2020
[ 29.10.2020] (príspevkov 0)
Digitálny potenciometer, prerušenie, deb...
[ 28.10.2020] (príspevkov 0)
Integrácia zrážkomera RG-11 do projektu ...
[ 22.10.2020] (príspevkov 0)
WiFi Termostat - ESP8266 - WiFiManager -...
[ 28.9.2020] (príspevkov 0)
Izbový termostat - Portovanie programu -...
[ 22.9.2020] (príspevkov 0)
RFID vrátnik - Ukončenie projektu
[ 9.9.2020] (príspevkov 0)