Веб-приложение

Оборудование Вега-Абсолют, не относящееся ни к одному из разделов
Ответить
stupid_student
Мимо проходил
Сообщения: 4
Зарегистрирован: Чт, 28 апр 2022 11:25

Веб-приложение

Сообщение stupid_student » Чт, 28 апр 2022 11:43

Всем доброго времени суток, я являюсь студентом 3 курса и работаю над проектом в рамках обучения (в одном Томском ВУЗе есть такая фишка). Суть проекта в сборе климатических параметров (температура, влажность, давление). В качестве базовой станции выступает у нас БС 2.2, в качестве оконечных устройств мы используем своё устройство, для которого пишем сами прошивку. Само устройство состоит из микроконтроллера Nucleo STM32, приемопередатчик RAK811, который сажается на переходник XBee, сам сенсор для сбора параметров - UMDK-THP от компании unwired devices.
Так вот, проблема состоит в том, что Vega Pulse не поддерживает оконечные устройства от других компаний. Руководитель проекта мне поставил задачу написать веб-приложение, в котором можно будет добавлять оконечные устройства (как это делается в AdminTool); запрашивать с определенным периодом данные с оконечного устройства; возможность авторизоваться различным пользователям, которые создаются в AdminTool; Синхронизировать данные с БД сервера; Иметь возможность отправки команды на оконечное устройство для того, чтобы тот отправил данные прямо сейчас, анализировать пришедшие данные в виде графика.
Я понимаю, что это только моя проблема, но я совсем не понимаю с чего начать, кроме как использовать API документацию. Какой язык использовать лучше, что как связать. А может вообще уже есть готовые решения...
Помогите! :?
Заранее спасибо всем

petrov_ab
Иногда пишу
Сообщения: 370
Зарегистрирован: Вт, 16 июл 2019 16:42
Откуда: Подмосковье

Re: Веб-приложение

Сообщение petrov_ab » Чт, 28 апр 2022 12:15

Добрый день!
Ну самый "просто2 способ - взять сам Pulse (он в исходниках) и переделать.
А вообще получается, что вам таким же образом придется переписывать и Admin Tools и другие утилиты.
А ваше устройство соответственно должно будет "играть по правилам" протокола LoraWAN.
Полностью взаимодействие описано в API (вроде бы последняя версия 23). Язык уж выбирайте сами. Опять же, пока ваше устройство не будет нормально взаимодействовать с сервером (Данные в БД как раз сервер обновляет) смысла писать отображение не вижу.
В любом случае, взаимодействие устройства с сервером - это одно (это дело прошивки), а отображение данных - совсем другое (API, WebSock).

stupid_student
Мимо проходил
Сообщения: 4
Зарегистрирован: Чт, 28 апр 2022 11:25

Re: Веб-приложение

Сообщение stupid_student » Чт, 28 апр 2022 16:45

Может есть здесь святой человек, который уже использовал API для написания своего приложения? :(

petrov_ab
Иногда пишу
Сообщения: 370
Зарегистрирован: Вт, 16 июл 2019 16:42
Откуда: Подмосковье

Re: Веб-приложение

Сообщение petrov_ab » Пт, 29 апр 2022 00:20

Конечно есть :)
Я крупного не писал, писал небольшие модули как правило для запросов к нестандартным устройствам через RS-485 на Python.
Ну вот например:
Запрос к метеостации МК-26 для выдачи текущего состояния (ModBus)
from websocket import create_connection
import json
import time

#### Data section
autreq = {"cmd":"auth_req", # Don't change!
"login": "root", # Login name
"password": "2019@Lora" # password
}
sendconfreq1 = {"cmd":"tx", # Don't change!
"status": "true", # Don't change!
"devEui": "3137353259386F10", # First meteo station - SI-13 DevEUI
"data": "04ff0400000038e406", # command - resd registers - Don't change!
"port": 0x02
}
sendconfreq2 = {"cmd":"tx", # Don't change!
"status": "true", # Don't change!
"devEui": "313735326038660C", # Second meteo station - SI-13 DevEUI
"data": "04ff0400000038e406", # command - resd registers - Don't change!
"port": 0x02
}
autresp1 = []
autresp2 = []

### Code section

ws = create_connection("ws://10.105.24.39:8002/") # IP Address xx-LNMS01 server
ws.send(json.dumps(autreq))
autresp = ws.recv()

ws.send(json.dumps(sendconfreq1))
autresp1 = ws.recv()

#print(autresp1)

time.sleep(10) # Pause between command send (10 second)

ws.send(json.dumps(sendconfreq2))
autresp2 = ws.recv()

#print(autresp2)

ws.close()

stupid_student
Мимо проходил
Сообщения: 4
Зарегистрирован: Чт, 28 апр 2022 11:25

Re: Веб-приложение

Сообщение stupid_student » Ср, 04 май 2022 22:13

Могу ли я с вами как-то связаться напрямую?

petrov_ab
Иногда пишу
Сообщения: 370
Зарегистрирован: Вт, 16 июл 2019 16:42
Откуда: Подмосковье

Re: Веб-приложение

Сообщение petrov_ab » Чт, 05 май 2022 00:55

a80808 на сервере yandex.ru

stupid_student
Мимо проходил
Сообщения: 4
Зарегистрирован: Чт, 28 апр 2022 11:25

Re: Веб-приложение

Сообщение stupid_student » Чт, 05 май 2022 11:25

petrov_ab писал(а):
Чт, 05 май 2022 00:55
a80808 на сервере yandex.ru
если я правильно вас понял, то это почта :?
но, если не правильно, то можете написать мне в телеграме по никнейму @blizkreg, пожалуйста?

Аватара пользователя
a.gerusenko
Сотрудник компании
Сообщения: 26
Зарегистрирован: Пт, 26 июл 2019 16:48

Re: Веб-приложение

Сообщение a.gerusenko » Ср, 25 май 2022 09:32

stupid_student писал(а):
Чт, 28 апр 2022 11:43
Всем доброго времени суток, я являюсь студентом 3 курса и работаю над проектом в рамках обучения (в одном Томском ВУЗе есть такая фишка). Суть проекта в сборе климатических параметров (температура, влажность, давление). В качестве базовой станции выступает у нас БС 2.2, в качестве оконечных устройств мы используем своё устройство, для которого пишем сами прошивку. Само устройство состоит из микроконтроллера Nucleo STM32, приемопередатчик RAK811, который сажается на переходник XBee, сам сенсор для сбора параметров - UMDK-THP от компании unwired devices.
Так вот, проблема состоит в том, что Vega Pulse не поддерживает оконечные устройства от других компаний. Руководитель проекта мне поставил задачу написать веб-приложение, в котором можно будет добавлять оконечные устройства (как это делается в AdminTool); запрашивать с определенным периодом данные с оконечного устройства; возможность авторизоваться различным пользователям, которые создаются в AdminTool; Синхронизировать данные с БД сервера; Иметь возможность отправки команды на оконечное устройство для того, чтобы тот отправил данные прямо сейчас, анализировать пришедшие данные в виде графика.
Я понимаю, что это только моя проблема, но я совсем не понимаю с чего начать, кроме как использовать API документацию. Какой язык использовать лучше, что как связать. А может вообще уже есть готовые решения...
Помогите! :?
Заранее спасибо всем
Добрый день.
Если правильно понял вам нужно написать веб приложение для визуализации данных с устройства. То есть у вас уже есть устройство которое передает данные на БС, у вас уже развернут наш сервер, на котором через AdminTool можно видеть телеметрию устройства.
Могу предложить вам изучить исходные коды(которые у нас открытые) уже написанных нами приложений, в помощь понимания как работать с API нашего сервера.
Начните с самого простого
https://github.com/VegaAbsolute/IotVegaTimeCorrector
или
https://github.com/VegaAbsolute/IotVegaLora2MQTT
Далее можно ознакомиться с
https://github.com/VegaAbsolute/IotVegaNotifierLite
Все примеры приложения node js, написаны на js. У многих кто выбирает js почему то возникают трудности работы с байтовыми протоколами...
Как удобно разбирать данные можно посмотреть тут
https://github.com/VegaAbsolute/IoTVegaParser
Приложения admintool и pulse - у них так же открытый исходный код, они демонстрируют, что для работы с нашим сервером не обязательно писать какой то бекенд для веб приложения.
Старший инженер-программист

Аватара пользователя
a.gerusenko
Сотрудник компании
Сообщения: 26
Зарегистрирован: Пт, 26 июл 2019 16:48

Re: Веб-приложение

Сообщение a.gerusenko » Ср, 25 май 2022 09:44

Есть способы проще чем писать полноценно веб приложение.
Например использовать Node-RED. Пример как работать с нашим сервером прикрепил.
Нужно.
1. Установить node-red
2. импортировать json файл который я прикрепил
3. установить в node-red модуль dashboard (например)
4. по аналогии с тем что прикрепил, написать парсер своего устройства, доделать функционал и тд.
Но не уверен что преподаватель примет такое решение. Но это очень быстрое решение.
Вложения
nodered_iotvega.json.zip
(4.71 КБ) 308 скачиваний
Старший инженер-программист

Ответить