UMDK-METEO

Позволяет получать температуру, влажность и давление воздуха с датчиков Bosch BME280, Sensirion SHT21, ST LPS331 или LM75, расположенных на порту I2C. Модуль сам определяет наличие датчиков в конкретном устройстве; при подключении одновременно нескольких датчик их показания комбинируются — так, LM75 + LPS331 дадут значения температуры и давления.

Команды

Устанавливает период автоматического опроса датчика. По умолчанию период опроса равен 1 минуте.

mosquitto_pub -t "devices/lora/NNNNNNNNNNNNNNN/meteo" -m "set_period 2"

Запрашивает текущие показания датчика. Результат — значение температуры в градусах Цельсия и относительной влажности в процентах.

mosquitto_pub -t "devices/lora/NNNNNNNNNNNNNNN/meteo" -m "get"

Сообщения

Информация с датчика:

devices/lora/NNNNNNNNNNNNNNN/meteo
{
    "data": {
        "temperature": 20.1,
        "humidity": 53,
        "pressure": 977
    },
    "status": {
        "devEUI" : "NNNNNNNNNNNNNNN",
        "rssi" : -16, 
        "temperature" : 30, 
        "battery" : 3300, 
        "date" : "2017-02-21T13:29:22.843900Z"
    }
}

Где

Ответ на установку периода автоматического опроса датчика:

devices/lora/NNNNNNNNNNNNNNN/meteo
{
    "data": {
        "msg": "ok"
    },
    "status": {
        "devEUI" : "NNNNNNNNNNNNNNN",
        "rssi" : -16, 
        "temperature" : 30, 
        "battery" : 3300, 
        "date" : "2017-02-21T13:29:22.843900Z"
    }
}

В случае указания некорректного параметра:

devices/lora/NNNNNNNNNNNNNNN/meteo
{
    "data": {
        "msg": "error"
    },
    "status": {
        "devEUI" : "NNNNNNNNNNNNNNN",
        "rssi" : -16, 
        "temperature" : 30, 
        "battery" : 3300, 
        "date" : "2017-02-21T13:29:22.843900Z"
    }
}

Формат пакетов LoRaWAN

Команда:

Байт Назначение Значение
0 ID модуля 0x11
1 Команда 0x01: установка периода опроса
0x02: опрос датчика
2 Период Период автоматического опроса датчика (в минутах)

Ответ на команду установки периода опроса:

Байт Назначение Значение
0 ID модуля 0x11
1 Команда 0x01: команда выполнена
0xFF: команда не выполнена

Пакет данных:

Байт Назначение Значение
0 ID модуля 0x11
1 Команда 0x00
3-4 Температура Температура в десятых долях градуса Цельсия
5-6 Влажность Относительная влажность в процентах
7-8 Давление Барометрическое давление в миллибарах

Все значения передаются в формате Big Endian sign-and-magnitude. Если один из датчиков недоступен, соответствующее значение будет равно 32767.

Подключение

К порту I2C (DIO29-DIO30).

Распространение

Модуль распространяется в исходных кодах и может входить в версии прошивок public и commercial.

Исходные коды: