Námetom miniseriálu je ovládanie zariadenia s mikrokontrolérom ESP32 pomocou mobilnej aplikácie, ktorá komunikuje s ESP 32 cez bluetooth. V predchádzajúcich dvoch častiach sme riešili jednoduché ovládanie dvoch LED. Ako dočasné riešenie na zadávanie povelov z mobilnej aplikácie do zariadenia hotovú aplikáciu Serial Bluetooth Terminal, ktorú môžete použiť aj na ladenie v úvodnej fáze vývoja aplikácie pre ESP32. Samozrejme skôr, či neskôr je potrebné vytvoriť špecializovanú aplikáciu šitú na mieru na ovládanie príslušného zariadenia.
Video s príkladom, kde je ukázaný postup vytvorenia
Z technického pohľadu má Android aplikácia na ovládanie zariadenia s ESP32 tri úlohy:
Ponúknuť používateľovi zoznam párovaných Bluetooth zariadení
Pripojiť sa k vybranému zariadeniu
Komunikovať so zariadením, posielať povely a parametre a prijímať údaje zo zariadenia
Tak ako sme krok za krokom ukázali vývoj jednoduchej aplikácie pre ESP32 na ovládanie niekoľkých LED diód, ukážeme aj kompletný postup Android aplikácie na komunikáciu s ESP 32, tak aby ste mohli aplikáciu vytvoriť a spustiť. V pokračovaní vysvetlíme fungovanie kódu.
K vývojárskemu počítaču môžete mať súčasne pripojený Android smartfón aj zariadenie s ESP32 a mať spustené vývojové prostredia Android Studio a Arduino IDE
Vo vývojom prostredí Android Studio vytvorte aplikáciu a z ponuky typov aktivít vyberte Empty Activity.
V príklade budeme používať programovací jazyk Java. Aplikáciu sme pomenovali BluetoothTest3.
Pre jednoduchosť tento úvodný príklad využíva len jednosmernú komunikáciu z aplikácie do zariadenia s ESP32. Neskôr ho rozšírime, aby aplikácia mohla prijímať údaje zo zariadenia
Aplikácia bude využívať dve aktivity. Aktivita je určená k tomu, aby zobrazovala používateľské rozhranie a zachytávala interakcie používateľa cez toto rozhranie. Cez aktivitu sa implementuje viac, alebo menej komplexná čiastková úloha, ktorú má používateľ realizovať. Po spustení aplikácie sa zobrazí prvá aktivita, ktorá umožní vybrať zo zoznamu spárovaných zariadení zariadenie, s ktorým bude aplikácia komunikovať. V našom prípade to bude zariadenie ovládané mikrokontrolérom ESP32.
Po výbere zariadenia sa zobrazí druhá aktivita, ktorá obsahuje používateľské rozhranie. Aktivita je definovaná v dvoch súboroch. V súbore s príponou .xml je definované používateľské rozhranie a v súbore s príponou .java programový kód.
Začneme definíciou používateľského rozhrania aktivity na výber spárovaného zariadenia.
Je to hlavná aktivita, ktorej súbory boli vytvorené zároveň s projektom. Treba ich upraviť takto
Intent i = new Intent(MainActivity.this, Ovladanie.class);
//prepnutie na aktivitu Ovladanie, odovzdá sa adresa BT zariadenia
i.putExtra(EXTRA_ADDRESS, address);
startActivity(i);
}
};
}
Aktivitu Ovládanie vytvoríte v AndroidStudiu cez menu File – New – Activity – Empty Activity. Následne prepíšte jej xml a Java súbory. Okrem tlačidiel na ovládanie LED má táto aktivita aj posuvný ovládací prvok na ovládanie periférií kde sa nastavujú parametre, napríklad na nastavenie intenzity svietenia LED, otáčok motora a podobne
protected void onPostExecute(Void result) //kontrola po pripájaní
{
super.onPostExecute(result);
if (!jePripojene)
{
oznamToast("Chyba BT pripojenia.");
finish();
}
else
{
oznamToast("Pripojené.");
pripojenieBT = true;
}
priebehPripajania.dismiss();
}
}
}
Aby aplikácia mohla využívať bluetooth komunikáciu, je potrebné túto funkcionalitu povoliť. Do manifestu aplikácie AndroidManifest.xml, ktorý je v zložke manifests je potrebné pridať oprávnenie pre bluetooth (pridajte podčiarknuté riadky).
Ako úplne prvý krok k tomu aby ste mohli vytvoriť a spustiť aplikáciu na vašom zariadení, bez ohľadu na to, či sa jedná o smartfón, alebo tablet musíte aplikovať tento postup. V aplikácii Nastavenie aktivujte položku Informácie o zariadení a následne vyhľadajte položku Číslo zostavy. V niektorých nadstavbách Androidu je táto položka vnorená na obrazovke Informácie o softvéri. Ďalší postup sa vám bude zdať značne prvoaprílový, ale ubezpečujeme vás, že nie je. Začnite na položku Číslo zostavy rýchlo ťukať. Musíte kliknúť až 7x. Ak napríklad po šiestom ťuknutí prestanete, Android vás povzbudí, že sa jedná o seriózny postup, aby sa z vás stal vývojár a zobrazí vám oznam „Teraz ste už len jeden krok od toho aby z vás bol vývojár“, ktorý vám avizuje koľkokrát je potrebné ešte ťuknúť. Po poslednom ťuknutí sa zobrazí oznam Vývojársky režim bol zapnutý a v nastavení pribudne položka Možnosti pre vývojárov.
Vývojársky režim totiž umožňuje priame zavedenie aplikácie z vývojárskeho PC do Android zariadenia cez USB a to môže byť v prípade aplikácie z neznámeho, až podozrivého zdroja hodne riskantné. V prípade vývoja vlastnej aplikácie nič neriskujete, viete presne akú aplikáciu ste vytvorili a čo bude robiť.
V budúcom pokračovaní vysvetlíme kľúčové časti kódu