Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze Poslední revize Obě strany příští revize | ||
2018:nordic-bluetooth [2019/01/14 18:47] Jáchym Macura [Firmware nRF52832] |
2018:nordic-bluetooth [2019/01/14 21:36] Jáchym Macura [Zdrojový kód] |
||
---|---|---|---|
Řádek 106: | Řádek 106: | ||
https://devzone.nordicsemi.com/tutorials/b/bluetooth-low-energy | 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 118: | Řá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 ====== | ||
+ | ss | ||
---- | ---- | ||
====== Zdroje ====== | ====== Zdroje ====== | ||
Řádek 123: | Řá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 |