blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Programátor
deadawp



QR skener - IoT dashboard
pridal deadawp 29.10. 2023 o 13:30 (naposledy upravené 19.10. 2024 o 23:03)



Dnes by som rád ukázal implementáciu, ktorú som využil pre možnosť získania dát z môjho IoT dashboardu pre hladinomer. Ide o vôbec moju prvú skúsenosť s konceptom QR skenovania, teda popis a rozsah nemusí každému sedieť.

QR skenery môžu existovať priamo pre smartfóny a ich operačný systém, najčastejšie Android a iOS, okrem toho je možné využiť túto technológiu aj pre web, čo umožní použitie tejto aplikácie v podstate akýmkoľvek zariadením. Webaplikáciu je možné pridať aj ako ikonu na plochu zariadenia, čo urýchli jej použitie v prípade potreby. V mojom prípade bol spúšťačom QR kód, ktorý obsahoval preddefinovaný text, avšak môže to byť pokojne aj URL z ktorého sa dáta budú získavať bude vnorený až niekde v scripte.

Pozor pri QR kódoch najmä nato, či sú statické, alebo dynamické. Niektoré QR kódy odkazujú na web tretej strany, kde ste si ho vytvorili a ten vás následne presmeruje na URL, resp. text, ktorý ste do systému zadali. Tieto stránky však ponúkajú túto službu na niekoľko dní a následne je už QR kód nefunkčný, nakoľko vás nepresmeruje tam, kde sa to vyžaduje. Google Chrome umožňuje vytvoriť statický QR kód priamo na link / text ktorý vyžadujete, teda ide o statický QR kód a ako bonus uvidíte aj dinosaura :-).

Na základe validácie vstupu (či je načítaný správny QR kód), som dokázal spustiť logiku, ktorá vykonala cez AJAX XHR request a získala HTML kód webstránky, ktorý obsahoval iba JSON výstup. Následným parsingom JSON štruktúry boli vyexportované dáta podľa príslušného kľúča pre výšku hladiny vody v studni a o objeme studne v litroch. Celý program je client-side a nevyužíva žiaden backend kód, čo je trochu nevýhoda, nakoľko túto aplikáciu môže následne ktokoľvek odkopírovať, záleží však, či bude môcť danú aplikáciu aj použiť, prípadne prerobiť pre jeho potreby, či pre formát dát, ktoré jeho systém používa.

Pre samotný scanning QR kódu a využitie kamery smartfónu som využil Instascan (HTML5 QR code scanner od Chrisa Schmicha), s niektorými pasážami po pomáhal aj Chat GPT. Pri prvom spustení webaplikácie sa spustila predná kamera smartfónu, teda bolo nutné pozmeniť parameter poľa kamier, aby som dokázal zapnúť zadnú kameru smartfónu. Testoval som na smartfóne Xiaomi Redmi 11. Po niekoľkých úpravách som dokázal poupraviť logiku systému pre moje požiadavky. Skener je možné používať pri orientácii zariadenia na výšku, ale aj na šírku. Chat GPT v aktuálnej verzii pomohol aj s pridaním tlačidiel, ktorých počet sa dynamicky mení v závislosti od smartfónu a počtu jeho fotoaparátov, teda je možné využiť akýkoľvek.

Po naskenovaní QR kódu sa mi zobrazia aktuálne dáta, ak prestanem QR kód načítavať, po 5 sekundách sa výpis odstráni z videa a môžem znova plnohodnotne skenovať QR kódy v okolí. Výhoda QR kódov je ich unikátnosť a tak môžem mať každý QR kód pre unikátne zariadenie v systéme. Po preskenovaní QR kódu uvidím dáta práve toho zariadenia bez možnosti ich zámeny.

To sa hodí najmä pri viacerých zariadeniach v priestore, či výrobnej hale, kedy môže technik, či pracovník vidieť aktuálne dáta bez potreby návštevy portálu. Používateľ môže získať posledné dáta aj bez autorizácie, prihlasovania sa do systému a pod. Nemá však možnosť a práva na pozmenenie dát, ich vymazanie, ale jeho rola je read-only. QR kód môže byť na zariadení nalepený ako nálepka. QR kód môže taktiež obsahovať aj určitý identifikátor zariadenia ako napr. MAC adresa, či interný index v databáze pre možnosť výstupných dát pre cieľové zariadenie. V tomto prípade však ukážka smeruje na portál, kde sa zbierajú dáta iba z jedného senzorového uzla, teda tu nie je potrebný žiadny identifikátor. Používateľ má tak k dispozícii dáta iba z daného senzora, ktorý skenuje. Taktiež z rozhrania, kde senzor ukladá dáta môžu byť získané aj iné dáta, ktoré môžu poukazovať na stav konektivity, posledný update dát, či zobrazenie dôležitých notifikácii.

Vyskúšajte projekt hladinomer s vašim hardvérom (Arduino, ESP32, ESP8266). Dostupných je niekoľko ukážkových zdrojových kódov v Arduino Core, alebo ESP-IDF. Taktiež je tu mnoho dostupných prenosových technológii pre priamy, alebo nepriamy zápis na portál (PHY Ethernet, WiFi, NB-IoT, LoRa, LoRaWAN, BLE Beacon): https://martinius96.github.io/hladinomer-studna-scripty/


Aktuálnu verziu QR skenera môžete vyskúšať na: https://martinius96.github.io/hladinomer-studna-scripty/QR/


QR kód nájdete vo webovom rozhraní hladinomera (otvorte si ho na PC, alebo vytlačte na papier, odkiaľ ho budete načítavať smartfónom: 
https://arduino.clanweb.eu/studna_s_prekladom/



Prístupov 6209
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
Update grafov, ukážkových kódov - Hladin...
[ 16.11.2024] (príspevkov 0)
XIAO ESP32-C6 od Seeed Studio
[ 10.11.2024] (príspevkov 0)
ESP-IDF v4.4.2 prechod na v5.2
[ 5.11.2024] (príspevkov 0)
Krabička pre RFID DOMINATOR 2.0
[ 18.10.2024] (príspevkov 0)
Známe neduhy - Ecotec 1.6E Opel/GM Chevr...
[ 8.10.2024] (príspevkov 0)
Cold-start BQ25570 vs BQ25504 od Texas I...
[ 2.8.2024] (príspevkov 0)
EG21-G - MQTT pripojenie na Thingsboard
[ 5.6.2024] (príspevkov 0)
Quectel EG21-G - HTTP request
[ 17.5.2024] (príspevkov 0)
Tip na darček k jubileu 60
[ 29.4.2024] (príspevkov 0)