×

Внимание

Форум находится в режиме только для чтения.

YUGE NBIoT/GSM LPM2100-bm. BLE-Сервер. Передача сообщений клиент-сервер.

3 года 5 мес. назад - 3 года 5 мес. назад #6374 от AEfimov
Не так давно компания Yuge Information Technologies выпустила новый eMTC/NB-IOT/EGPRS модуль LPM2100-bm. Помимо основных функций, данный модуль работает с GPS/GLONASS/BeiDou/Galileo/QZSS, а также имеет поддержку Bluetooth.

Рассмотрим один из занимательных вариантов применения данной функции модуля на отладке NB_EVB_v1.2, а именно организацию BLE - сети, включающей в себя Сервер с установленным ПО и клиентские устройства, передающие и получающие данные от сервера, организующему и протоколирующему их работу.

Данное решение реализовано на предоставленном разработчиком SDK для чипа RDA8909B и предполагает соединение модуля по Bluetooth c клиентским устройством и передачу тестового сообщения от клиента серверу, а также прием клиентом сообщения от сервера. Далее детально опишем процесс подготовки системы, компиляции прошивки, ее загрузки на модуль, а также процесс запуска сервера и непосредственно обмена информацией.

В данном случае передача данных демонстрируется как функционал, исходный код BLE-сервера демонстрирует саму принципиальную возможность обмениваться информацией по Bluetooth между клиентским устройством и сервером на LPM2100-bm, практическая же реализация данной функции максимально вариативна, - это может быть отладка удаленного устройства по UART, загрузка прошивки, дистанционное управление или сбор логов. Итак преступим к реализации BLE-сервера.

1. Компиляция прошивки.

Производитель предоставляет пакет SDK, в который входит компилятор, исходный код, утилиты и средства отладки. Скачать архив можно здесь:

drive.google.com/file/d/1xPIQpstnl-uBVde...45a/view?usp=sharing

На компьютере для успешной сборки также должен быть установлен Microsoft Visual C++.

1.1. В первую очередь нам необходимо установить кросс-компилятор. Для этого заходим в папку RDA и распаковываем архив.
"csdtk4.2_20180111.rar"

Далее создадим папку с названием CSDTK4 в корневом каталоге диска C:\.

1.2. Создадим папку “Projects” в корневой директории диска D:\ (желательно создать рабочую папку не на системном диске)

1.3. Далее копируем содержимое папки SDK в папку Projects.

1.4. Чтобы задать тестовое сообщение от сервера клиенту необходимо внести следующие изменения в исходный код:

Правим файл testbt.c, находящийся в директории D:\projects\rda8909b_sdk\soft\demo\testbt
Чтобы задать сообщение находим строку №654

 strcpy(bt_cust2_val, "test-message-from-server");

Где выделенный текст является тем сообщением, которое сервер передает клиенту. Мы можем задать здесь любую последовательность символов. Процесс считывания сообщения клиентским устройством будет описан ниже.

1.5. Теперь скомпилируем CSTDK4 при помощи git, для этого предварительно скачаем пакет с сайта:

git-scm.com/download/win

1.6. Переходим в директорию D:\projects\, нажимаем правой клавишей мыши на папку rda8909b_sdk и применяем действие “GitBash Here”.

1.7. Далее откроется терминальное окно Git, вводим следующие команды:

<1> export PROJ_ROOT=$(cygpath -au d:/projects) 
<2> source $(cygpath -au c:/CSDTK4/CSDTKvars.sh) 
<3> work <project> # "<project>" Это название нашей рабочей папки.
<4> . env/launch.sh

1.8. После выполнения скрипта с помощью команды cd переходим в директорию
/d/projects/rda8909b_sdk/soft/demo/testbt и запускаем команду ctmake.
1.9. После успешной компиляции бинарный файл прошивки будет находится в директории D:\projects\ rda8909b_sdk \soft\hex\8909b_dualmode_modem_p1_test_debug\


2. Подключение отладки к ПК, загрузка прошивки.


2.1. Подключим плату NB_EVB_v1.2 c с модулем LPM2100-bm к USB-порту компьютера (маркировка micro-usb на плате - j400). В диспетчере устройств должно появиться два виртуальных USB-порта (COM & LPT) пронумерованных в соответствии текущей конфигурацией устройств. Например, USB Serial Port (COM3) и USB Serial Port (COM4). Порт первый по счету (COM3) – отладочный, второй по счету (COM4) предназначен для передачи AT-команд.



2.2. Переходим в директорию ..\RDA8909B_SDK_20200622\RDA8909B_SDK_20200622\Debug&download tools\fpdnloader-V11.01.06_20190625\ и запускаем fpupgrade.exe. В случае если вы не знакомы с китайским языком, рекомендуем поставить галочку у надписи English.

2.3. Выбираем Lod-файл во вкладке Lod и нажимаем Start. В случае успешной загрузки прошивки программа отобразит статус “Passed” выбранного для прошивки порта.



3. Запуск BLE-сервера.

3.1. Переходим в директорию DA8909B_SDK_20200622\RDA8909B_SDK_20200622\Debug&download tools\cooltools-win32_custom и запускаем coolwatcher.exe.

Coolwatcher, - это утилита для мониторинга и управления BLE- сервером, предоставленная разработчиком. С ее помощью мы сможем запустить BLE-сервер, а также осуществить трассировку и мониторинг событий.

3.2. В появившемся окне выбираем наш чипсет – 8909. Параметр defaultComBaud должен быть равен 921600 – это частота работы порта. Параметр lastcomport должен соответствовать номеру Debug-порта, в нашем примере это COM13.

3.3. При запуске Coolwatcher также запускается программа Coolhost, управляющая параметрами подключения по виртуальному COM-порту. Значок ее появляется в трее. Необходимо убедиться, что подключен именно отладочный порт (проверить его номер) и установить соединение, с указанными выше параметрами (в случае, если оно разорвано)
Если с соединением все хорошо, порт должен возвращать статус – «Open COM15 baud 921600 XON/XOFF 8N1»



3.4. Поднимаем сервер нажатием на зеленый значок с галочкой в левом верхнем углу экрана под вкладкой File.

3.5. Далее заходим во кладку Plugins, там – Activate tracer. В правой части окна программы появится секция трассировки. Нажимаем значок зеленого треугольника для запуска трассировки. Теперь все события на сервере отображаются в окне трассировки.



4. Настройка клиентского устройства – передача сообщений между клиентом и сервером.

В качестве клиентского устройства мы используем смартфон, чтобы организовать работу по Bluetooth воспользуемся одним из доступных бесплатных приложений – BLE-scanner. Скачать ее можно как в Google -play, так и в Appstore.

4.1. Запустим приложение BLE-Scanner на мобильном устройстве с поддержкой Bluetooth.

4.2. Найдем точку доступа с названием BAS_SS (именно так называется наш BLE-сервер) и подключимся к ней. Пароль доступа – 121212.

4.3. Теперь давайте попробуем передать сообщение от клиента серверу. Перейдем во вкладку CUSTOM CHARACTERISTIC - PRIMARY SERVICE в меню подключения. Выделенные кнопки с буквой N должны быть активны - зеленого цвета. Выберем последнюю в списке характеристику и нажмем кнопку W, - это интерфейс отправки текстового сообщения серверу (см.рис.). Вводим любое текстовое сообщение (на английском языке) и нажимаем кнопку SEND.



В окне трассировки появится событие, в описании которого мы сможем увидеть наше сообщение.



4.4. Чтобы считать сообщение с сервера нажимаем иконку R у указанной на картинке характеристики, в описании характеристики теперь мы можем увидеть сообщение, транслируемое сервером.



Клиент и сервер успешно обменялись сообщениями, на этом наш тест подходит к концу. Данное решение будет полезно для обмена данными с BLE-устройствами, управления ими, сбора информации об их работе и актуально для сетей, к примеру, устройств умного дома, с которыми по той или иной причине, затруднительно организовать прямое соединение.
Модераторы: Дмитрий
Время создания страницы: 0.081 секунд
Работает на Kunena форум