Страница 1 из 1

Мультиметр с Bluetooth OWON B35Т

Добавлено: 16 ноя 2019, 16:13
Turb0user
Всем привет.
Есть необходимость вывода показкний только напряжения мультиметра ВТ35Тчерез Bluetooth на экран ардуино.
Такой вот тестер[spoiler]
digital-bluetooth-multimeter-owon-b35t-plus.jpg
[/spoiler]
Что сделано:
-через сом порт 3, Bluetooth модуль НМ-10 соединен с ардуино АТМЕГА2560.
- Управляется штатными АТ командами, успешно соединяется с тестером
- обнаруживает устройства[spoiler]
5eac208d-1446-4fe0-9fea-696ca54f22b8.jpg
[/spoiler]
-благополучно соединяется
-С тестера в сом порт с блока Прием из UART (строки) идет сырой код (как я понимаю 6 байт в 16ричой системе счисления)
Красивый вывод данных в телефон[spoiler]
4457db76-05c1-487d-bcaf-014f43935532.jpg
[/spoiler]
-На экран ардуино выводится это[spoiler]
0b9cea3a-9296-413a-a656-ba0ad2172a9d.jpg
[/spoiler]
В терминале на РС нормальный вид т.к. стоит вывод hexademical формат.
Расшифровка протокола передачи данных - еще то адово действо :moil:
Путем танцев с бубном было определено, что что первый байт это место знака запятой на дисплее. Пятый байт содержит данные измерений-это главное. Перевести это в десятичный формат дело математики.

Теперь собственно говоря вопрос: как получить нужные байты (первый и пятый) из строки. Какими инструментами блоков пользоваться. Подскажите кто знает.

Мультиметр с Bluetooth OWON B35Т

Добавлено: 16 ноя 2019, 16:37
Sancho
[ref]Turb0user[/ref], Блок получение данных из уарт, байты. Выход новые данные на счётчик и через таймер tof, на время = 1..3 байтам, зависит от скорости порта, инвертировав сигнал , на его обнуление. байты в массив по индексу со счётчика.
Потом, после того, как выход tof в 0(приём закончен) , обрабатывай одноразово, по сигналу с триггера, массив.
Ньюанс будет с расположением в массиве....
Как-то так.
Пример[spoiler]
screenshot_19-11-16_16-30-40.png
[/spoiler]

Отправлено спустя 6 минут 11 секунд:
А вот так будет без нюансов - первый принятый байт в нулевой ячейке :)
[spoiler]
screenshot_19-11-16_16-35-53.png
[/spoiler]
Почему - подумать и сравнить два варианта.

Мультиметр с Bluetooth OWON B35Т

Добавлено: 16 ноя 2019, 23:29
Turb0user
Sancho спасибо за совет.
Только на выходе блока сом порта не чистый byte (с нулями и единицами 10110111), а string в шестнадцатеричном формате (1A 70 F0 00 1C 52). Чтобы его поместить в массив byte, нужно его обработать, то есть поймать именно формат (1A 70 F0 00 1C 00), потом перевести в byte потом в массив потом в десятичный формат. Хотя наверно можно сразу в десятичный на лету. Только вот в терминале компьютера есть чек бокс-HEX OUTPUT[spoiler]
кекс.png
[/spoiler] а в блоке UARTa нет. Может я что-то не так понимаю? Какие будут мысли?

Мультиметр с Bluetooth OWON B35Т

Добавлено: 17 ноя 2019, 20:18
Turb0user
Sancho вот ссылка на файлы проекта на линукс[spoiler]https://github.com/DeanCording/owonb35[/spoiler]

Мультиметр с Bluetooth OWON B35Т

Добавлено: 18 ноя 2019, 10:02
Sancho
Попробуй для начала

Мультиметр с Bluetooth OWON B35Т

Добавлено: 18 ноя 2019, 15:30
Turb0user
Еще до соединения с тестером при передаче АТ команд в переменной РЕЗУЛЬТАТ ИЗМЕРЕНИЯ появляется значение (минус 14.000) и больше не меняется при любых манипуляциях пределов измерений тестера.

Мультиметр с Bluetooth OWON B35Т

Добавлено: 18 ноя 2019, 16:34
Sancho
[ref]Turb0user[/ref],
По ссылке:
Пакет состоит из трех номеров uint16_t.
Первое число кодирует функцию, масштаб и десятичные знаки.
Второе число кодирует тип считывания.
Третье число-это цифры измерения в виде двоичного числа со знаком величины (msb-знаковый бит).
Можно тестовый проект? можно в лс.