blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
PHP, Arduino programátor
deadawp



Ovládanie hlasom - Arduino + Ethernet shield
pridal deadawp 16.1. 2018 o 23:21



V minulosti som priniesol článok o ovládaní hlasom z internetu pre dosku NodeMCU. Nakoľko sa tiež programuje cez ArduinoIDE, chcel som urobiť totožný sketch pre Arduino s Ethernet shieldom. Problém bol v iných knižniciach a tak som musel urobiť niečo na štýl portu, čo sa mi aj podarilo. Využil som Arduino UNO a Ethernet shiled - najpoužívanejší, teda Wiznet W5100, ktorý sedí priamo na Arduino UNO. Web backend je totožný, plne kompatibilný pre obe dosky.

Práve preto som sa mohol plne zamerať už len na čítaciu časť. Veľkým problémom pri Ethernet shieldoch je, že nemajú funkciu pre odstránenie hlavičky, ktorá prichádza z čítania GET metódou. To znamená, že jednoduchou premennou nie je možné zistiť, či sa v súbore nachádza fráza ovládania hlasom, alebo nie. Celá HTTP hlavička sa do Arduina dostáva bajt po bajte, čo je veľmi náročné na čítanie, zvlášť pri niekoľko riadkovej response so špeciálnymi znakmi, lomítkami, bodkami, úvodzovkami. Preto bolo treba nechať vypísať celú hlavičku s našou premennou, hlavičku odstrihnúť, dopočítať počet riadkov a daný riadok prečítať, uložiť do premennej (parsovať ho) a porovnať s podmienkou v kóde.

Výsledkom je plnohodnotný systém pre ovládanie hlasom. Nakoľko je na Ethernet shielde absencia pinov 4, 11, 12, 13 kvôli SPI komunikácii + pinu pre SD kartu, tak sa možnosti použitia shieldu snižujú, čo sa týka počtu výstupov. Ale v prípade Arduino Mega je možné použiť ešte viac GPIO pinov, ktorými je možné postaviť plnohodnotnú aplikáciu, napríklad ovládanie domu hlasom v slovenčine, či inom svetovom jazyku.

Ako vidíme z obrázka vyššie, musíme odstrániť 12 riakov.. 1. riadok HTTP respose je HTTP/1.1 200 OK a 12-ty riadok je prázdny riadok pred našou premennou, ktorá sa vracia na konci response. Naša premenná je teda na 13. riadku. Nakoľko preklad (technológia Webkit) podporuje iba Chrome a HTTPS a Ethernet shield iba HTTP, je nutné mať web s oboma variantami (šifrovanú i nešifrovanú časť).
Tento projekt je možné nájsť na mojej stránke vrátane iných projektov: https://arduino.php5.sk

Web časť je univerzálna pre akýkoľvek mikropočítač/mikroprocesor, ktorý sa vie do internetu pripojiť a parsovať obsah textového/json súboru.



Prístupov 3089
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
Hasičské stopky cez Arduino s displejom
[ 8.12.2018] (príspevkov 0)
RFID systém so správou on-line
[ 3.12.2018] (príspevkov 0)
ESP32 pripojené do Eduroamu
[ 18.11.2018] (príspevkov 0)
Airsoft / Paintball DOMINATOR cez Arduin...
[ 18.11.2018] (príspevkov 0)
Riadenie závlahy cez internet s Arduinom
[ 2.11.2018] (príspevkov 0)
Web scraper cez mikrokontróler
[ 2.11.2018] (príspevkov 0)
Ovládanie hlasom v slovenčine pre mikrok...
[ 30.5.2018] (príspevkov 0)
Odosielanie e-mailov cez Arduino/NodeMCU...
[ 23.5.2018] (príspevkov 0)
Ovládanie 16x relé - Multiuser web aplik...
[ 1.3.2018] (príspevkov 0)
Ovládanie hlasom - Arduino + Ethernet sh...
[ 16.1.2018] (príspevkov 0)