S_BUDS3 Advertisement S_BUDS3 Advertisement S_BUDS3 Advertisement

IoT prakticky - BBC Micro:bit s WiFi modulom pre internet vecí .

Mikrokontroléry
0

Populárna mikropočítačová doska Micro:bit má na čipe integrovaný modul na bezdrôtovú komunikáciu, avšak ten umožňuje „len“ prepojenie viacerých (aj niekoľko desiatok) dosiek Micro:bit medzi sebou, takže je možné napríklad vytvoriť viacznakový displej tak, že každý Micro:bit zobrazuje jeden znak. Prípadne môžete rádiový modul nakonfigurovať tak, aby ste mohli komunikovať zo smartfónom cez bluetooth. Pripojením na WiFi doska Micro:bit nedisponuje.  

K dispozícii je však modul IoT: bit pre Micro:bit, ktorý umožňuje pripojenie k WiFi, takže z Micro:bitu sa stane plnohodnotná platforma pre internet vecí (IoT). Budete môcť na diaľku ovládať rôzne zariadenie alebo merať požadované veličiny a posielať ich do cloudu na ďalšie spracovanie.

Takže v reálnom IoT riešení budete riešiť tri okruhy problémov: „čo budete posielať“, „ako to budete posielať“ a „kamto budete posielať“. 

Čo – potrebujete získať požadované údaje, napríklad pomocou senzorov pripojených na zbernicu mikropočítačovej dosky. 

Ako – potrebujete vytvoriť pripojenie mikropočítačovej dosky k internetu

Kam – potrebujete mať používateľský účet vo vhodnej cloudovej službe, kde sa budú údaje spracovávať, ukladať a analyzovať

V prvých príkladoch môžete pre jednoduchosť reálne údaje simulovať napríklad generátorom náhodných čísel nastaveným na vhodný rozsah. Po odladení môžete začať posielať reálne údaje napríklad z integrovaného akcelerometra, čidla na meranie teploty, ktoré meria teplotu mikrokontroléra, alebo z externých senzorov.  

Na pripojenie do internetu použijeme modul IoT: bit pre Micro:bit, ktorý umožňuje pripojenie cez integrovaný WiFi modul ESP12F. Tento modul využíva populárny obvod ESP8266, ktorý mimochodom je možné samostatne programovať a využiť tak WiFi modul na riadenie jednoduchých zariadení. Platformu ESP sme predstavili v článku 

V krátkosti pripomenieme, že ESP8266 je 32bitový mikrokontrolér s RISC jadrom, ktorý je primárne určený na doplnenie Wi-Fi konektivity k existujúcim zariadeniam riadeným inými mikroprocesormi, ktoré komunikujú cez sériové rozhranie pomocou AT príkazov. To je presne náš prípad, kedy ESP8266 zabezpečuje WiFi konektivitu pre Micro:bit.

My to v článkoch venovaných platforme Micro:bit nevyužijeme, ale je užitočné vedieť, že ESP8266 vďaka svojim pinom rozhraní môže aj sám fungovať ako mikrokontrolér.  Možnosť bezdrôtovej komunikácie, cena čipov pod jeden dolár a vývojových dosiek s cenou 3 – 5 dolárov a taktiež možnosť programovať tento mikrokontrolér vo vývojovom prostredí pre Arduino rýchlo vystrelilo tento čip na vrchol rebríčkov popularity u hobby konštruktérov.  Stačí doplniť firmvér pre WiFi komunikáciu o ovládanie vstupno – výstupných pinov a môžete ovládať rôzne konštrukcie a zariadenia. Do ESP8265 sa dá nahrať aj interpreter jazyka Micro Python a potom môžete túto dosku programovať aj v Pythone. Čip ESP8266 využíva štandardne taktovaciu frekvenciu 80 MHz, ale úspešne funguje aj pri takmer dvojnásobnom pretaktovaní, samozrejme za cenu vyššej spotreby. Tento čip však vie byť aj veľmi energeticky úsporný, samozrejme program musí správne využívať prechody do režimov s nízkou spotrebou. K dispozícii je 11 digitálnych vstupov a výstupov a 1 analógový vstup s 10 bitovým prevodníkom. Takmer všetky piny majú alternované funkcie pre komunikačné rozhrania  K dispozícii sú komunikačné rozhrania 2 x SPI, I2C, 2 x UART

Na uloženie programu je k dispozícii kapacita pamäti typu flash 4 MB.  Kapacita RAM je 96 kB, avšak na program sa dá využiť menej ako polovica, pretože zvyšok využíva firmvér pre WiFi. Aplikácie sa dajú programovať v jazyku C, Pythone, prípadne v programovacou jazyku Lua. Pri vývoji kódu si musíte uvedomiť, že sa o mikrokontrolér delíte s WiFi modulom preto je nutné stále odovzdávať riadenie programu firmvéru pre WiFi. Tento je implementovaný ako BLOB, čiže ako blok binárneho kódu, takže nemáte možnosť ho modifikovať. Od tejto starosti vás však aspoň spočiatku, kým programovanie ESP 8266 nezvládnete bravúrne odbremenia knižnice.

Vráťme sa však k modulu IoT: bit pre Micro:bit, ktorý má ešte jednu dôležitú funkciu obvod reálneho času.  Už pri prvom pohľade na dosku zistíte, že má držiak na miniatúrnu batériu. Tá nenapája Micro:bit, ale obvod reálneho času DS1307 RTC. Batéria CR1220 je potrebná len ak chcete zálohovať obvod reálneho času. Ostatné funkcie dosky vrátane WiFi pripojenia fungujú aj bez nej. Na doske je aj bzučiak, konektory GVS a taktiež konektor zbernice I2C na pripojenie displeja, snímača barometrického tlaku BME280, prípadne iných I2C zariadení. Montážne otvory na skrutky sú kompatibilné s platformou LEGO Technic 7 x 5.

Aby ste mohli využiť funkcie modulu IoT: bit pre Micro:bit, je potrebné do online vývojového prostredia MakeCode doplniť rozširujúcu knižnicu Enviroment-and-Science-IoT

V prvom príklade otestujeme modul reálneho času

input.onButtonPressed(Button.A, function () {
    RTC_DS1307.DateTime(
    2019,
    8,
    31,
    11,
    31,
    0
    )
})
 
basic.forever(function () {
    basic.showNumber(RTC_DS1307.getTime(RTC_DS1307.TimeType.SECOND))
})

Skôr než začnete posielať cez WiFi údaje, musíte si vytvoriť konto vo vhodnej cloudovej platforme, kam budete údaje posielať. Knižnica pre modul IoT :bit podporuje cloudovú platformu ThinkSpeak https://thingspeak.com.  

Na bežné účelu vám stačí bezplatné konto. To umožňuje poslať ročne až 3 milióny správ, čo je 8 200 správ denne. Interval na update správy je 15 sekúnd. Môžete využívať 4 kanály a 3 MQTT subskripcie. Na bežné projekty sú to viac než dostatočné parametre.

Po úspešnej registrácii

si vytvoríte nový kanál a vhodne ho pomenujete, napríklad Microbit meranie 1. V rovnakom formulári ešte vyplníte názvy jednotlivých polí, napríklad: Teplota °C,  Zrychlenie X a podobne. Po potvrdení sa zobrazí Write API key, ktorý použijete ako parameter v príkaze setdata() 

 

Najskôr ukážeme základnú šablónu kódu na posielanie údajov do cloudovej platformy ThinkSpeak. Ako prvý krok je potrebné iniciovať pripojenie Micro:bitu k WiFi sieti. Je potrebné zadať porty priradené signálom RX a TX. Priradenie nájdete v pravom hornom rohu dosky IoT:bit. Signál RX je pripojený na port P8 a TX na port P12.

 Ako parametre funkcie connectWifi sa sadáva identifikátor siete a prístupové heslo. Nasleduje pripojenie do cloudovej platformy ThingSpeak, vytvorenie správy a jej odoslanie. Správa obsahuje api_key a osem údajov. Samozrejme nemusíte využiť všetkých osem, môžete posielať len jednu, alebo niekoľko hodnôt.   

ESP8266_IoT.initWIFI(SerialPin.P8, SerialPin.P12, BaudRate.BaudRate115200)

ESP8266_IoT.connectWifi("your_ssid", "your_pw")
basic.forever(function () {
    ESP8266_IoT.connectThingSpeak()
    ESP8266_IoT.setdata(
    "your_write_api_key",
    Math.randomRange(0, 10),
    Math.randomRange(0, 10),
    0,
    0,
    0,
    0,
    0,
    0
    )
    ESP8266_IoT.uploadData()
    ESP8266_IoT.wait(5000)
})

Micro:bit bude priebežne posielať údaje, ktoré si vhodne vizualizované môžete na stránke ThingSpeak pozrieť v záložke Private View. Posielanie reálnych údajov a ich vyhodnocovanie a zobrazovanie bude námetom budúceho pokračovania.

 

Zobrazit Galériu

Luboslav Lacko

Všetky autorove články
IoT micro:bit BBC micro:bit ESP8266 WiFi ThingsSpeak

Pridať komentár