Цель данной статьи — объяснить, какие работы были выполнены с помощью устройства управления данными SmartDtu компании Bluestone? Какие возможности были реализованы на платформе EC600S от Quectel? Почему эта платформа является настоящим спасением для разработчиков аппаратной части?
Нашей основной целью было освобождение рук широкого круга разработчиков аппаратной части, предоставив им готовое решение в области встраиваемых систем, которое позволит сосредоточиться именно на аппаратной стороне.
Основные функции нашего программного обеспечения и платформы включают поддержку базовых возможностей платформы EC600S, таких как таймеры, температура/влажность, PWM, GPIO, UART и FOTA.
Управление ресурсами осуществляется через программную платформу с использованием команд по протоколу MQTT и через последовательный порт, что позволяет удалённо собирать данные и контролировать устройство. Это включает возможность удалённого запуска таймеров для сбора данных о температуре и влажности, а также управления состоянием GPIO-пинов.
Платформа Tencent Cloud используется в качестве промежуточного звена для соединения между аппаратной частью EC600S и решением Bluestone. Это обеспечивает надёжное взаимодействие при работе с большими объёмами данных, а также гарантирует безопасность передачи данных и связи.
Наши программы выполняются на платформе EC600S от Quectel, используя язык программирования QuecPython, который был разработан компанией Quectel на основе MicroPython для использования в проектах по созданию встраиваемых систем. Язык QuecPython отличается легкостью и удобством для разработчиков, снижая барьеры входа в разработку.
Название | Инструмент | Примечание |
---|---|---|
Visual Studio Code | QuecPython | Разработка |
QCOM | Инструмент для COM-порта | Отладка COM-порта |
QPYcom | Инструмент для записи и исполнения кода | Разработка и отладка |
bluestone_common.py
Этот файл является общим файлом для всего проекта и включает методы для получения состояния сети, установки состояния сети, проверки существования файла и проверки пути на соответствие URL.
bluestone_config.py Этот файл предназначен для управления параметрами, используемыми при нормальной работе системы. Включает чтение параметров из файла, запись параметров в файл и конфигурацию по умолчанию.2. bluestone_daemon.py Демон-процесс, предназначенный для обеспечения здоровья встроенной системы во время её работы. При возникновении аномального прерывания или отключения связи без возможности восстановления система будет попытаться перезапуститься. На данный момент находится в процессе разработки.
bluestone_fota.py Управление обновлением программного обеспечения и прошивок. Поддерживает несколько путей файлов для программного обеспечения и один путь для обновления прошивки.
bluestone_gpio.py Управление всеми GPIO-пинами в системе, включая чтение и запись состояний.
bluestone_main.py Входной файл системы, который запускает демона сети, инициализирует конфигурационные и данные файлы, инициализирует сервисы системы, MQTT, последовательные порты, таймеры и сервис watchdog.
bluestone_mqtt.py Инструмент управления клиентом MQTT, который запускает MQTT, слушает обратные вызовы и анализирует параметры обратных вызовов, выполняет команды на основе анализа.
bluestone_mqtt_tencent.py Инструмент управления клиентом MQTT для Tencent, который запускает MQTT, слушает обратные вызовы и анализирует параметры обратных вызовов, выполняет команды на основе анализа.
bluestone_pwm.py Логика управления PWM, которая открывает и закрывает порты PWM, что позволяет имитировать эффект дыхания.9. bluestone_socket.py Инициализация TCP/IP сокета, соединение с клиентом и прием/передача команд. Разработка продолжается.
bluestone_temperature.py Получение данных с бортовых датчиков температуры и влажности.
bluestone_timer.py Управление таймерами, запуск и остановка таймеров по заданным параметрам.
bluestone_uart.py Управление последовательными портами, запуск портов по переданным параметрам, чтение параметров порта и анализ команд, выполнение команд при наличии подходящих условий, включая перезапуск системы.
bluestone_config.json Конфигурационный файл по умолчанию, содержащий параметры UART0-2 и параметры запуска Tencent MQTT. Пользователи могут настроить его в соответствии со своими требованиями.
{
"uart2": {
"parity": 0,
"baud_rate": 115200,
"flow_control": 0,
"stop_bits": 1,
"data_bits": 8
},
"mqtt_tencent": {
"product_id": "введите ваш продукт ID на Tencent Cloud",
"pub_topic": "event",
"product_secret": "введите ваш секретный ключ продукта с Tencent Cloud",
"sub_topic": "control"
},
"uart1": {
"parity": 0,
"flow_control": 0,
"baud_rate": 115200,
"stop_bits": 1,
"data_bits": 8
},
"uart0": {
"baud_rate": 115200,
"parity": 0,
"flow_control": 0,
"stop_bits": 1,
"data_bits": 8
}
}
Пример команды:
{
"timer1": {
"status": 1,
"period": 5000,
"mode": 1,
"callback": "aht10"
}
}
```- **timer1**: Устройство EC600S имеет четыре таймера — timer0, timer1, timer2 и timer3. Timer0 используется системой и недоступен для конфигурации; доступны только timer1, timer2 и timer3;
- **status**: Статус задачи таймера; 0 указывает на отключение, а 1 — на включение;
- **period**: Интервал выполнения таймера, измеряется в миллисекундах; допустимый диапазон значений составляет от 5000 до 30000 миллисекунд;
- **mode**: Режим работы таймера; 0 указывает на одноразовое выполнение, а 1 — на периодическое выполнение;
- **callback**: Название функции, которая будет вызвана при каждом цикле выполнения таймера; в настоящее время поддерживаются только "aht10" и "gpio", что соответственно означает сбор данных температуры и влажности или чтение состояния GPIO-пинов; несколько функций могут быть указаны через запятую.Замечание: После успешной конфигурации параметров таймера система автоматически перезагружается.
<a id="jump_5"></a>
## 5 Температура и влажность
Сбор данных о температуре и влажности осуществляется с помощью таймера. В соответствии с вышеописанным примером, достаточно указать "aht10" в поле callback.
<a id="jump_6"></a>
## 6 GPIO
Пример команды:
```json
{
"gpio": {
"gpio1": 1,
"gpio2": 1,
"gpio3": 0,
"gpio4": 1,
"gpio5": 1,
"gpio6": 1,
"gpio7": 1,
"gpio8": 1,
"gpio9": 0,
"gpio10": 1,
"gpio11": 0,
"gpio12": 1,
"gpio13": 1,
"gpio14": 1
}
}
Пример команды:
{
"uart1": {
"baud_rate": 115200,
"data_bits": 8,
"flow_control": 0,
"parity": 0,
"stop_bits": 1
}
}
Замечание: После успешной конфигурации параметров UART системы система автоматически перезагружается.
Пример команды:
{
"fota": {
"mode": 0,
"url": "http://app.com/download"
}
}
```- **fota**: Обозначает параметры конфигурации обновления.
```- **mode**: 0 указывает на обновление приложения; в этом режиме url может содержать несколько адресов, разделённых запятой; 1 указывает на обновление прошивки; в этом режиме допускается только один url.
- **url**: адрес приложения или прошивки; поддержка протокола https отсутствует.
Примечание: после успешного обновления система автоматически перезапустится.
<a id="jump_9"></a>
## 9 Использование системыНиже будет продемонстрирована методика использования системы с момента создания продукта до данных устройств через восемь этапов.
[Платформа SmartDtu компании BlueStone](https://dtu.lantsang.net), логин: dtu, пароль: d123qwe
### 9.1 Создание продукта
1. Нажмите на левое меню, чтобы перейти на страницу списка продуктов.</br>
! [Переход на страницу списка продуктов](https://bluestone.oss-cn-beijing.aliyuncs.com/images/вход-в-лист-продуктов.png)
2. Нажмите "Создать", чтобы открыть окно создания продукта и заполнить информацию о продукте.</br>
! [Нажмите "Создать"](/images/нажмите-создать.png)
! [Заполнение информации о продукте](https://bluestone.oss-cn-beijing.aliyuncs.com/images/заполнение-информации-о-продукте.png)
3. Успешное создание продукта.</br>
! [Успешное создание продукта](https://bluestone.oss-cn-beijing.aliyuncs.com/images/успешное-создание-продукта.png)
### 9.2 Настройка аппаратной части устройства
#### 9.2.1 Установка драйвера
Перейдите на страницу [официальной загрузки](https://python.quectel.com/download) компании Quectel, скачайте `USB driver`, как показано ниже.
! [Страница загрузки драйвера USB Quectel](https://bluestone.oss-cn-beijing.aliyuncs.com/images/установка-драйвера.png)
Обратите внимание на операционную систему; на данный момент нет доступных драйверов для `Mac` и `Linux`; пока неясно, являются ли они недоступными или вообще не требуются.
Двойным щелчком установите драйвер.* **Проверка установки**
Подключите компьютер к плате разработки; вы заметите, что светодиод питания загорается (красный цвет); затем нажмите кнопку включения и удерживайте её около пяти секунд; примерно через пять секунд начнут мигать светодиоды NET (драйвер COM-порта Quectel, интервал около двух секунд); перейдите в `Устройства и принтеры` вашего компьютера и проверьте наличие `портов COM и LPT`; если вы видите устройство, как показано на следующем изображении, значит установка завершена успешно!

> **Примечание:** В официальной документации этот процесс описан довольно кратко; там указано, что после подключения платы разработки к компьютеру можно увидеть устройство; однако было замечено, что если не включить плату, устройство не будет видно! Кроме того, **официальная документация содержит схему, показывающую три устройства, но фактически было найдено только два**, а также отсутствует указанный в схеме **порт последовательного соединения для команд управления**. Причиной этого явления является то, что при выпуске устройство было прошито не firmware для Python, после установки firmware для Python эти порты становятся видимыми.
#### 9.2.2 Установка графического инструмента QPYcomПерейдите на страницу официальных загрузок [Quectel](https://python.quectel.com/download), чтобы скачать `QPYcom графический инструмент`. Пример страницы загрузки:

После завершения загрузки получится архив, который следует распаковать. Дважды щелкните на файл `QPYcom.exe`, чтобы запустить его.
> **Подсказка**: После выполнения программы она создаст несколько других файлов в том же каталоге, таких как `Config.ini`. Рекомендуется организовать эти файлы в пустую папку по вашему выбору.
Результат работы программы QPYcom представлен ниже:

#### 9.2.3 Настройка оборудования
Выберите последовательный порт, как указано на схеме:

Откройте страницу загрузки и нажмите кнопку "Создать", чтобы создать новый проект:

Перейдите на страницу официальных загрузок [Quectel](https://python.quectel.com/download), чтобы скачать `файлы прошивки`.

После загрузки распакуйте архив `QPY_V0004_EC600S_FW.zip` и выберите нужную прошивку:

Нажмите кнопку **Загрузить прошивку** для загрузки файла прошивки на платформу разработки:

Перейдите на страницу загрузки [программы управления](https://gitee.com/lantsang/smart-dtu), чтобы скачать **программу управления**, затем распакуйте её:

Передайте `bluestone_config.json` файл, который содержит `product_id` и `product_secret`. Замените их на новые значения ID продукта и секретного ключа (полученные с страницы списка продуктов).


Импортируйте выбранный вами файл кода:



Нажмите **Скачать скрипт**, чтобы скачать управляемую программу на платформу разработки:

Нажмите **Файл**, закройте последовательный порт и снова откройте его, как показано на следующем рисунке, чтобы запустить устройство:
### 9. 3 Создание нового устройства
Данная система использует логику динамической регистрации; после настройки параметров устройства вам не потребуется создавать или импортировать устройство вручную при его подключении.
### 9. 4 Управление устройствами
Щелкните по пункту меню слева **Список устройств**. После перехода на страницу со списком устройств нажмите кнопку управления рядом с нужным устройством.

#### 9. 4. 1 Редактирование устройства
Как показано на рисунке, щелкните по кнопке редактирования, чтобы отредактировать устройство. В настоящее время можно редактировать только примечания к устройству.

#### 9. 4. 2 Удаление устройства
Щелкните по кнопке удаления, чтобы удалить устройство.

> Примечание: Из-за использования динамической регистрации, если устройство всё ещё существует после удаления, оно будет заново зарегистрировано при получении сигнала устройства. Поэтому перед удалением устройства убедитесь, что оно было физически удалено.
#### 9. 4. 3 Сброс состояния
Щелкните по кнопке сброса состояния, чтобы вернуть состояние устройства в неактивное состояние.
#### 9.4.4 Отключение устройства
Нажмите переключатель включения/отключения устройства, чтобы изменить состояние активности устройства. При отключении устройства, сбор данных с него прекращается.

### 9.5 Управление температурой и влажностью устройств
Щелкните по меню слева **Список устройств**. После перехода на страницу списка устройств нажмите кнопку **Температура и влажность** рядом с нужным устройством, чтобы начать управление температурой и влажностью устройства.

> **Примечание**: Управление температурой и влажностью недоступно при состоянии устройства "выключен" или "неактивирован".
#### 9.5.1 Просмотр данных о температуре и влажности устройства

#### 9.5.2 Просмотр графика изменения температуры и влажности
Щелкните по кнопке графика данных в верхнем левом углу, чтобы перейти к представлению графиков и просмотреть изменения температуры и влажности устройства.

#### 9.5.3 Настройка сбора данных о температуре и влажностиПри изменении параметров сбора данных и последующем применении настроек можно регулировать отправку данных устройством или период отправки данных (минимальное значение — 60 секунд, максимальное — 15 минут).
### 9.6 Управление GPIO устройств
Щелкните по меню слева **Список устройств**. После перехода на страницу списка устройств нажмите кнопку **GPIO** рядом с нужным устройством, чтобы начать управление GPIO устройством.

> Примечание: Управление GPIO недоступно при состоянии устройства "выключен" или "неактивирован".
Щелкните по переключателю GPIO или нажмите кнопки **вкл/выкл**, чтобы изменить состояние GPIO устройства.

### 9.7 Управление UART устройств
Щелкните по меню слева **Список устройств**. После перехода на страницу списка устройств нажмите кнопку **UART** рядом с нужным устройством, чтобы начать управление UART устройством.

> Примечание: Управление UART недоступно при состоянии устройства "выключен" или "неактивирован".
> Примечание: Для использования функции UART требуется подключение UART к модулю TTL-USB. Подробнее см. [официальную документацию](https://python.quectel.com/doc/doc/Advanced_development/zh/QuecPythonSub/UART.html#-10).
#### 9.7.1 Данные UART устройства[Данные UART устройства]
#### 9.7.2 Настройка UART последовательного соединения устройства
Как показано на рисунке, перейдите в настройки параметров UART.

Выберите последовательное соединение, измените параметры и сохраните изменения, чтобы модифицировать настройки UART последовательного соединения устройства.

#### 9.7.3 Отправка пользовательского JSON данных через UART устройства
Перейдите на страницу официального сайта [скачивания](https://python.quectel.com/download) Quectel, скачайте `QCOM последовательное соединение отладочное средство`, как показано ниже:
Распакуйте архив и дважды щелкните по файлу `QCOM_V1.6.exe`, чтобы запустить его. Начальная страница представлена ниже:
Далее проведите тестирование согласно официальному руководству.
В разделе `Устройства управления` -> `Порт (COM и LPT)` найдите значение порта `Quectel USB AT Port` и выберите соответствующий порт в `QCOM`, откройте его и отправьте команду тестирования `AT+GMR`. Обратите внимание, что **не следует менять другие настройки**.
Как показано ниже:
> **Подсказка**: если при попытке открыть порт возникают ошибки, нажмите кнопку сброса, затем повторите попытку после сброса. При получении нового устройства без других изменений, возможно, не удастся установить соединение, поэтому требуется сброс.Результаты тестирования

Как видно выше, если возвращается номер версии прошивки, это указывает на успешное завершение тестирования!
Далее отправьте пользовательский JSON-данные через UART. В разделе **Устройства управления** -> **Порт (COM и LPT)** найдите значение порта **USB-SERIAL CH340** и выберите соответствующий порт в **QCOM**, откройте его,

Возвратитесь на страницу настроек параметров UART, введите случайный JSON, нажмите "Отправить",


Отправка пользовательских данных успешно выполнена### 9.8 Данные устройства
#### 9.8.1 Исторические данные устройства
Щелкнув по левой панели меню **Данные устройства**, вы можете просмотреть все исторические сообщения устройства.

#### 9.8.2 Главная статистика
Обзор количества

Динамика изменения количества

Топ-лист

<a id="jump_10"></a>
## 10 Информация о правах[MIT](https://gitee.com/lantsang/smart-dtu/blob/master/LICENSE)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )