Pre implementáciu hlasovo ovládaného auta som použil ako aj pri predchádzajúcich projektoch využívajúcich ovládanie hlasom technológiu Webkit. Technológia je od Googlu, to znamená, že pre ovládanie hlasom je nutné používať iba prehliadač Chrome. Projekt je viazaný na webaplikáciu, ktorá umožňuje hlasové zadávanie príkazov, rovnako tak obsahuje aj zdrojový kód pre mikrokontróler vrátane kontroly s logom posledných príkazov.
Technológiu je možné použiť s akýmkoľvek svetovým jazykom - aj slovenčinou, češtinou, či anglickými regiónmi. Napríklad en-US, en-CA, en-AU a ďalšie... Prehliadač Chrome vyžaduje, aby webová stránka, kde prebieha hlasové zadávanie príkazov fungovala pod HTTPS protokolom. V opačnom prípade Chrome nedovolí zapnúť mikrofón a nahrávať hlas.
V mojej implementácii som sa rozhodol pre anglický jazyk. Vyhotovil som prototyp programu pre hlasové ovládanie auta. Pre ovládanie motorov som využil dosku NodeMCU verzie 2, ku ktorej je kompatibilný L293D Motor shield.
Tento shield, či skôr base kit je vytvorený iba pre verziu NodeMCU 2! Verzia 3, verzia 1 je väčšia a do tohto shieldu sa nezmestí.
Porovnanie NodeMCU V3 (vľavo) a V2 (vpravo) - kompatibilná pre L293D Motor shield:NodeMCU v2 neobsahuje VU pin, teda 5V výstup z USB napájania ako je to napríklad u veľmi populárnej verzie NodeMCU v3. Shield je vybavený driverom L293D, ktorý umožňuje regulovať dva DC motory. Shield obsahuje svorkovnice pre samostatné napájanie motorov, teda sa napájanie neťahá z ESP8266 (NodeMCU) a jeho regulátora.
Do webového rozhrania som implementoval tieto príkazy:NodeMCU sa vie pripojiť k webovému rozhraniu po HTTPS protokole s knižnicou WiFiClientSecure. Programová implementácia vyžaduje zadanie správneho HTTPS odtlačku certifikátu - fingerprintu. Testovací sketch bol vytvorený pre verziu 2.5.2 pre Arduino core - vložené do Arduino IDE.
Hotová implementácia ovládaného auta môže vyzerať napríklad takto:NodeMCU komunikuje s webserverom a pri načítaní stavu pre pohyb (po zadaní hlasového príkazu) vykoná príkaz a zmaže aktuálny príkaz. Následne vyčakáva na ďalší príkaz. Používateľ vo webovom rozhraní vidí aj aktuálny stav, ktorý na pozadí aktualizuje AJAX. Vie overiť, či ESP vykonalo príkaz. Odozva je veľmi rýchla na serverovo orientované spojenie. Program pre ESP8266 je plne kompatibilný pre všetky verzie NodeMCU, pre Wemos D1 Mini a príbuzné ESP8266 vývojové kity a dosky.
Základný zdrojový kód (bez ovládania motorčekov a schémy zapojenia) je dostupný zdarma na adrese, kde je možné odtestovať v reálnom čase aj samotný hlasové ovládanie.
Implementácia: https://arduino.php5.sk/php_car/ K programovým implementáciám som doplnil rovnaký program i pre ESP32 a pre Arduino s Ethernet shieldom. Pri Arduine platí, že podporuje iba HTTP protokol. Vyžaduje sa teda aj verzia webu po HTTP.
Viac o projekte je možné nájsť na adrese: https://arduino.php5.sk/voice-car-esp8266.php