Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2018:nordic-bluetooth

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2018:nordic-bluetooth [2019/01/14 18:44]
Jáchym Macura [Firmware nRF52832]
2018:nordic-bluetooth [2019/01/14 21:44] (aktuální)
Jáchym Macura [Závěr]
Řádek 103: Řádek 103:
 </​code>​ </​code>​
  
-----+Uvádět zde inicializaci a nastavení pro vytvoření vlastního servisu a charakteristiky by v mém podání určitě nebyla ta nejlepší možnost. Přikládám raději odkaz na výborné tutoriály, podle kterých jsem postupoval já. 
 +https://​devzone.nordicsemi.com/​tutorials/​b/​bluetooth-low-energy 
 + 
 +Funkce pro odesílání dat po Bluetooth(tato slouží pro odeslání informací o nastavených LED diodách):​ 
 +<code c> 
 +void led_characteristic_update(ble_service_data_t *p_our_service) 
 +
 +    // Update characteristic value 
 +    //Check if Connected and if notification is ON 
 +    if ((p_our_service->​conn_handle != BLE_CONN_HANDLE_INVALID) &&  
 +        (p_our_service->​fs_t.f_notifi_LED_ON == true)) 
 +    { 
 +        uint32_t ​ err_code; 
 +        uint16_t ​ len = 1; 
 +        uint32_t ​ port_state = nrf_gpio_port_out_read(NRF_GPIO);​ 
 +        uint8_t ​  data = (~(port_state >> 18)) & 7; 
 +        ble_gatts_hvx_params_t hvx_params;​ 
 +        memset(&​hvx_params,​ 0, sizeof(hvx_params));​ 
 +         
 +        hvx_params.handle = p_our_service->​char_led_handle.value_handle;​ 
 +        hvx_params.type ​  = BLE_GATT_HVX_NOTIFICATION;​ 
 +        //​hvx_params.type ​  = BLE_GATT_HVX_INDICATION;​ 
 +        hvx_params.offset = 0; 
 +        hvx_params.p_len ​ = &len; 
 +        hvx_params.p_data = &​data; ​  
 +         
 +        err_code = sd_ble_gatts_hvx(p_our_service->​conn_handle,​ &​hvx_params);​ 
 +        SEGGER_RTT_printf(0,​ "HVX led status: %d\n", err_code);​ 
 +        APP_ERROR_CHECK(err_code);​ 
 +    } 
 +
 +</​code>​ 
 ===== Firmware Raspberry Pi ===== ===== Firmware Raspberry Pi =====
-FW - RPI +Pro vizualizaci dat a snadnější ovládání,​ bylo vytvořeno velice jednoduché GUI pomocí Pythonu a konkrétně knihovny PyQt. Pro komunikaci po Bluetooth na Raspberry Pi byla použita knihovna ​Bluepy. Z Gui je možnost ovládat LED diody, využít Bluetooth UART a prohlížet si grafy s naměřenou teplotou a napětí na baterii. ​ 
-  *Bluepy +{{ :​2018:​bluetooth:​gui.png?​nolink&​600 |}}
-  *PyQt+
  
 ---- ----
Řádek 115: Řádek 146:
 {{ youtube>​lJ0eoUvo_P8?​medium }} {{ youtube>​lJ0eoUvo_P8?​medium }}
 \\ \\
 +----
 +====== Zdrojový kód ======
 +Zdrojový kód pro Nordic: https://​github.com/​xmacur06/​MPOA2018_NORDIC \\
 +Zdrojový kód pro GUI: {{ :​2018:​bluetooth:​mpoa_gui_final.zip |}}
 +----
 +====== Závěr ======
 +Jelikož nešlo o projekt, ve kterém by měl vzniknout nějaký finální produkt, ale spíše se seznámit s mikroprocesory Nordic s integrovaným Bluetooth stackem, tak se dá zhodnotit, že zadání bylo splněno. Byla vytvořena vzorová aplikace, ve která byla pro mód Bluetooth periferie využita téměř každá fičura. Myslím, že do budoucna může tento projekt sloužit jako kostra (template) pro další projekty. ​
 ---- ----
 ====== Zdroje ====== ====== Zdroje ======
Řádek 120: Řádek 158:
   *https://​github.com/​pyqt   *https://​github.com/​pyqt
   *https://​github.com/​IanHarvey/​bluepy   *https://​github.com/​IanHarvey/​bluepy
 +  *https://​devzone.nordicsemi.com/​tutorials/​b/​bluetooth-low-energy
2018/nordic-bluetooth.1547487887.txt.gz · Poslední úprava: 2019/01/14 18:44 autor: Jáchym Macura