blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
PHP, Arduino programátor
deadawp



Webportál - Vykurovanie cez internet - otvorený hardvér
pridal deadawp 24.3. 2019 o 17:19



Dnes by som rád predstavil projekt, ktorému sa dlhšie venujem a malými krôčkami ho vylepšujem. Projekt je stále vo fáze vývoja a priebežne sa počas chodu aktualizuje a pridávajú sa doň ďalšie funkcionality, ktoré nenarúšajú chod webaplikácie, ani zmeny v používateľskom hardvéri. Teda ten, kto portál aktívne prevádzkuje, nepotrebuje nič inštalovať ani meniť zdrojový kód vo svojom mikrokontroléri.

Webaplikácia ponúka centrálny webový portál, ktorý slúži ako zberná brána pre dáta od používateľov s dôrazom na využitie otvoreného hardvéru. K portálu má prístup každý registrovaný používateľ a taktiež aj jeho hardvér, ktorý s webom komunikuje. Portál je navrhnutý v jazyku PHP s využitím MySQL databázy. Portál prijíma 6 teplôt od používateľa a dokáže vrátiť 1 výstup ZAP/VYP pre relé na riadenie kotla, ktorý je možné aplikovať skrz relé.

Používateľ pri registrácii na webovú stránku vyplní formulár s prihlasovacím menom, heslom  a navolí si riadiaici hardvér a senzory, ktoré chce použiť. Ich ďalšia zmena nie je počas využívania portálu možná.

Pre mikrokontroléry je na výber:

  • Arduino Uno/Mega + Ethernet shield Wiznet W5100
  • Arduino Uno/Mega + Ethernet modul Wiznet W5500
  • ESP8266 (NodeMCU, Wemos, D1, Wavgat, modul...)
  • ESP32 (Devkit v1-v4, WROOM a ďalšie)

Na výber z teplotných senzorov je v súčasnosti iba jeden variant:

  • 6x DS18B20 na OneWire zbernici

Po stránke funkcnosti portál umožňuje:

  • Prihlásenie
  • Zaznamenávať až 6 teplôt digitálnymi senzormi DS18B20 na OneWire zbernici
  • V reálnom čase dáta reprezentovať používateľovi cez AJAX-ové volania PHP výpisu
  • Funkcia izbového termostatu s voliteľným teplomerom, referenčnou teplotou a voliteľnou hysterézou
  • Funkcia manuálneho zapnutia ZAP/VYP pre výstup na dobu neurčitú
  • História meraní v prehľadnej tabuľke (1000 záznamov)
  • Vizualizácia nameraných dát v čiarovom grafe
  • Vizualizácia aktivity výstupu (ZAP/VYP) v area grafe
  • Generátor zdrojového kódu pre mikrokontróler
  • Zmena prihlasovacieho hesla, zmena názvov teplomerov, navolenie teplomera riadiaceho kúrenie
  • Real-time chat medzi registrovanými používateľmi
  • Odhlásenie

Každý používateľ a jeho hardvér je jednoznačne identifikovaný vlastným tokenom, Token s používateľským menom využíva aj mikrokontróler, ktorý sa týmto preukazuje na webserveri pri predávaní dát. Overuje sa teda token a zároveň i používateľské meno a vzťahom medzi nimi.

Systém sa udržiava autonómne v chode pri pripájaní mikrokontroléra, prípadne aj používateľom na webe. Autonómne riadenie spočíva vo vykonávaní logiky pri príjme dát od mikrokontroléra, kedy sa overuje nastavený režim termostatu (automat/manual). V prípade automatu sa kontroluje riadiaca teplota, vybraný teplomer pre riadenie a hysteréza, v prípade zmeny stav zo ZAP na VYP, alebo opačne sa zmena prejaví zápisom do databázy. Každý request so zápisom dát potvrdí úspešnosť aj mikrokontroléru výpisom.

V prípade, že nie je dostupná webstránka, alebo konektvita z používateľovej siete, kde mikrokontróler prevádzkuje, automaticky vypne relé výstupu pre kotol a čaká určitý čas. Po čase sa opätovne skúša pripojiť na webserver. V prípade, že sa pripojí, okamžite sa s ním synchronizuje a riadi sa podľa neho. Do platforiem Arduino a ESP32 už bol implemetovaný aj watchdog, ktorý je tiež vygenerovaný vrámci kódu pre dané mikrokontroléry a v prípade zaseknutia mikrokontroléru vykoná jeho reset.

Nechcem zachádzať do všetkých funkcionalít, ktoré web ponúka. Obsahuje aj niekoľko funkcionalít, ktoré zatiaľ nie sú "viditeľné" používateľom. Jedná sa o rôzne štatistické nástroje teplôt, tendencií... Existujú v ňom aj administrátorske nástroje, ktoré umožňujú blokovať používateľov v prípade, že sa v chate nevyhodne vyjadrujú, alebo upravili vygenerovaný zdrojový kód, ktorý spamuje portál a pod. Administrátor v monitoringu vidí početnosť zápisov do databázy od každého používateľa a jeho správy v chate. Môže jednotlivých používateľov napomínať, zablokovať ich na permaban, či určitú dobu.

Po stránke mikrokontrolérov je nutné vedieť, že Arduino s Ethernet shieldom, respektíve modulom podporuje iba HTTP konektivitu a ESP zariadenia ESP8266, ESP32 podporuje HTTPS spojenia. ESP8266 vyžaduje fingerprint HTTPS certifikátu a ESP32 vyžaduje Root CA certifikát. ESP32 je možné napojiť aj do podnikových WiFi sietí pod protokolom 802.1x (WPA/WPA2 Enterprise). 

Do portálu chcem ďalej implementovať:

  • Doplniť ďalší riadiaci hardvér
  • Doplniť prenosové technológie (Sigfox, NB-IoT)
  • Doplniť rôzne voliteľné variácie senzorov
  • Obmedzenie max. 1 zariadenia na 1 IP
  • Zablokovanie používateľa na základe IP, alebo jeho mikrokontróler
  • Výpis používateľovi v JSON formáte históriu dát pre jeho mikrokontróler
  • Prispôsobiť chat pre vkladanie obrázkov
  • Implementovať rôzne nástroje pre štatistiku (úniky tepla, výkon, efektivita, atď.)
  • Implementovať platené funkcionality
  • Po dokončení portál umiestniť na vlastnú doménu
  • Implementovať POST metódu zberu dát
  • Upozornenie používateľov e-mailom na zmeny, vypadnutie senzorov a pod.

Ak sa o projekt zaujímate, môžete nájsť o ňom viac informácii na adrese: https://arduino.php5.sk/vykurovanie-online.php
V súčasnosti vyvíjam aj multiuser ekvivalent pre meteostanice: https://arduino.php5.sk/meteostanice-online.php

Do portálu sa môžete zaregistrovať a vyskúšať s vašim mikrokontrolérom.



Prístupov 1163
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
Mastermind - Logik - cez Arduino a LCD
[ 22.8.2019] (príspevkov 0)
Bicyklovanie po Google mapách - Arduino ...
[ 23.6.2019] (príspevkov 0)
Nerov (v)zostup v Caldárii
[ 3.6.2019] (príspevkov 0)
Prepočet atmosférického tlaku na hladinu...
[ 17.5.2019] (príspevkov 0)
Včelárska váha - Arduino + HX711
[ 6.5.2019] (príspevkov 0)
Hladinomer - Arduino, ESP32, ESP8266 + u...
[ 29.4.2019] (príspevkov 0)
Meteostanica - ESP32 - Webclient
[ 19.4.2019] (príspevkov 0)
Webportál - Vykurovanie cez internet - o...
[ 24.3.2019] (príspevkov 0)
Capture points (DOMINATION) - Arduino + ...
[ 23.2.2019] (príspevkov 0)
Notifikátor udalostí cez mikrokontróler
[ 22.2.2019] (príspevkov 0)