четверг, 14 февраля 2019 г.

Настройка ttyUSB переходника

Для опытов с HM-10 понадобился USB переходник  последовательного порта. Переходник был приобретён  и подключен к компютеру.

egorka@hm:~$ ls -l /dev/ttyU*
ls: невозможно получить доступ к '/dev/ttyU*': Нет такого файла

egorka@hm:~$ ls -l /dev/ttyU*
crw-rw---- 1 root dialout 188, 0 фев 14 19:05 /dev/ttyUSB0
Устройство появилось в системе, но доступа к нему нет...
egorka@hm:~$ stty raw -echo 9600 < /dev/ttyUSB0
bash: /dev/ttyUSB0: Отказано в доступе

egorka@hm:~$ cutecom

opening failed
Есть вариант настроить "как следует", но сейчас воспользуюсь быстрым способом, который придётся повторять каждый раз после подключения устройства или перезагрузки компютера. Сделать как надо  http://idoka.ru/linux-com-port/
 egorka@hm:~$ sudo chmod a+rwx /dev/ttyUSB0



Запускаем cutecom, инструкция http://ra3xdh.blogspot.ru/2014/07/linux.html
И пробуем ответы от блютуф модуля, настройки подключения
dev/ttyUSB0
9600 8 N1   

запрос   AT CR/LF
ответ     OK

запрос   AT+HELP
ответ
********************************************************************
* Command Description\0x09\0x09\0x09 *
* ---------------------------------------------------------------- *
* AT Check if the command terminal work normally *
* AT+RESET Software reboot\0x09\0x09\0x09\0x09 *
* AT+VERSION Get firmware, bluetooth, HCI and LMP version *
* AT+HELP List all the commands\0x09\0x09 *
* AT+NAME Get/Set local device name *
* AT+PIN Get/Set pin code for pairing *
* AT+PASS Get/Set pin code for pairing *
* AT+BAUD Get/Set baud rate\0x09\0x09 *
* AT+LADDR Get local bluetooth address\0x09\0x09 *
* AT+ADDR Get local bluetooth address\0x09\0x09 *
* AT+DEFAULT Restore factory default\0x09\0x09\0x09 *
* AT+RENEW Restore factory default\0x09\0x09\0x09 *
* AT+STATE Get current state\0x09\0x09\0x09\0x09 *
* AT+PWRM Get/Set power on mode(low power) \0x09\0x09 *
* AT+POWE Get/Set RF transmit power \0x09\0x09 *
* AT+SLEEP Sleep mode \0x09\0x09 *
* AT+ROLE Get/Set current role.\0x09 *
* AT+PARI Get/Set UART parity bit. *
* AT+STOP Get/Set UART stop bit. *
* AT+START System start working.\0x09\0x09\0x09 *
* AT+IMME System wait for command when power on.\0x09 *
* AT+IBEA Switch iBeacon mode.\0x09 *
* AT+IBE0 Set iBeacon UUID 0. \0x09 *
* AT+IBE1 Set iBeacon UUID 1. \0x09 *
* AT+IBE2 Set iBeacon UUID 2. \0x09 *
* AT+IBE3 Set iBeacon UUID 3. \0x09 *
* AT+MARJ Set iBeacon MARJ . \0x09 *
* AT+MINO Set iBeacon MINO . \0x09 *
* AT+MEA Set iBeacon MEA . \0x09 *
* AT+NOTI Notify connection event . *
* AT+UUID Get/Set system SERVER_UUID . \0x09 *
* AT+CHAR Get/Set system CHAR_UUID . \0x09 *
* -----------------------------------------------------------------*
* Note: (M) = The command support slave mode only. \0x09\0x09 *
* For more information, please visit http://www.bolutek.com *
* Copyright@2013 www.bolutek.com. All rights reserved.\0x09\0x09 *
********************************************************************



Немного о настройке USB-Bluetooth свистка
Общая настройка блютуф в ubuntu https://losst.ru/nastrojka-bluetooth-ubuntu-16-04

Подключаем устройство и проверяем

egorka@hm:~$ sudo rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: no вот он и не заблокирован
Hard blocked: no



Наше локальное устройство (свисток в компютере)
egorka@hm:~$ hcitool dev
Devices:
hci0 00:15:83:41:63:76

 Поищем внешние блютуф устройства
egorka@hm:~$ sudo hcitool scan
Scanning ...
15:91:FC:87:62:50 n/a

Подключим ещё один блютуф модуль BLE 4.0
egorka@hm:~$ hcitool dev
Devices:
hci1 00:1A:7D:DA:71:11 4.0
hci0 00:15:83:41:63:76 2.0

Обычный блютуф не видит внешнее устройство 4.0

egorka@hm:~$ sudo hcitool scan
Scanning ...

А другой модуль находит ...
egorka@hm:~$ sudo hcitool lescan
LE Scan ...
00:15:83:00:7D:FB (unknown)
00:15:83:00:7D:FB =Me
00:15:83:00:7D:FB (unknown)





Попробуем передать что нибудь на устройство, для этого используем утилиту gatttool, туториал можно почитать здесь https://www.jaredwolff.com/blog/get-started-with-bluetooth-low-energy/


sudo gatttool -b 00:15:83:00:7D:FB -I

egorka@hm:~$ sudo gatttool -b 00:15:83:00:7D:FB -I
[00:15:83:00:7D:FB][LE]> connect
Attempting to connect to 00:15:83:00:7D:FB
Connection successful
[00:15:83:00:7D:FB][LE]> primary
attr handle: 0x0001, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0x000f uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x0010, end grp handle: 0x0022 uuid: 0000180a-0000-1000-8000-00805f9b34fb
attr handle: 0x0023, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
[00:15:83:00:7D:FB][LE]>


[00:15:83:00:7D:FB][LE]> char-desc
handle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0002, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
...
handle: 0x0023, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0024, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0025, uuid: 0000ffe1-0000-1000-8000-00805f9b34fb
handle: 0x0026, uuid: 00002902-0000-1000-8000-00805f9b34fb
handle: 0x0027, uuid: 00002901-0000-1000-8000-00805f9b34fb

[00:15:83:00:7D:FB][LE]> char-read-hnd 0x0025
Characteristic value/descriptor: 01

[00:15:83:00:7D:FB][LE]> char-write-req 0x0025 01
Characteristic value was written successfully
[00:15:83:00:7D:FB][LE]>


Опавялем байты в устройство по радио
[00:15:83:00:7D:FB][LE]> char-write-req 0x0025 0x010203040506070809
Characteristic value was written successfully
[00:15:83:00:7D:FB][LE]> char-write-req 0x0025 0x010203040506070809
Characteristic value was written successfully
[00:15:83:00:7D:FB][LE]> char-write-req 0x0025 0x010203040506070809
Characteristic value was written successfully

получаем от устройства через компорт
\0x00\0x01\0x02\0x03\0x04\0x05\0x06\0x07\0x08\0x09
\0x00\0x01\0x02\0x03\0x04\0x05\0x06\0x07\0x08\0x09
\0x00\0x01\0x02\0x03\0x04\0x05\0x06\0x07\0x08\0x09


Почитаем данные из устройства через блютуф соединение
[00:15:83:00:7D:FB][LE]> char-write-req 0x0025 F1
из порта \0xf1


[00:15:83:00:7D:FB][LE]> char-read-hnd 0x0025 (ffe1)
Characteristic value/descriptor: 00


wewewew
Notification handle = 0x0025 value: 77 65 77 65 77 65 77 0d 0a

0102030405060708
Notification handle = 0x0025 value: 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 0d 0a

[00:15:83:00:7D:FB][LE]> char-write-req 0x0025 0x123456789      отправили по радио
Characteristic value was written successfully
Notification handle = 0x0025 value: 31 30 31 30 31 30 0d 0a       101010 отправил с прибора


Ещё заметка  СтекОверфлоу про использование gatttool
https://stackoverflow.com/questions/34271217/connecting-to-a-bluetooth-smart-le-weight-scale-with-bluez-bluetoothctl-gatttool?rq=1

Gnokii для подключения телефона Nokia

Понадобилось скопировать контакты из телефона на компьютер. Программа Nokia PC suite неоступна с официального сайта, ставить  трояны желания...

тыц