Arduino schéma - arduino.sk

WEB-portál - Vykurovanie cez internet - otvorený hardvér

Kompletné projekty s návodom a zdrojovým kódom
Príspevky: 69
Registrovaný: Uto 23. Dec 2014 2:15:50

WEB-portál - Vykurovanie cez internet - otvorený hardvér

Poslaťod martinius96 » Ned 24. Mar 2019 19:31:22

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 od prvého dňa behu webaplikácie, nepotrebuje nič inštalovať ani meniť zdrojový kód vo svojom mikrokontroléri počas celej doby vývoja doteraz.
Obrázok
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é.
Obrázok
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 funkčnosti 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ú - upozornenie hláškou pri zapnutí
    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.
Obrázok
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.
Obrázok
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.
Obrázok
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.
    Vlastnú šablónu
    Lokalizáciu do viacerých jazykov
    Ovládanie hlasom v slovenčine a ďalších jazykov cez WebKit

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.

Späť na Hotové projekty