Uživatelské nástroje

Nástroje pro tento web


sensor.community_fw_airrohr

Sensor.Community (FW airRohr)

Používáte-li firmware airRohr (https://github.com/opendata-stuttgart/airrohr-firmware-flasher), máte možnost odesílat data ven na API ve formátu JSON přes HTTP POST a TMEP umí tato data zpracovat. Firmware data posílá přes HTTP POST s v hlavičce definovaným „application/json“, validním JSONem v těle requestu. TMEP poté ze struktury bere a páruje všechny dvojice value_type a value pod uzlem sensordatavalues.

Neměříte ještě kvalitu ovzduší? Podívejte se výborný projekt https://www.senzorvzduchu.cz - mají skvěle zpracovaný návod jak na to, krok za krokem.

Právě „value_type“ následně můžete v nastavení čidla na TMEPu vyplnit do GUID (1-3) pro ukládání jejich hodnot do naší služby.

Nastavení

airRohr

V konfiguraci pod „APIs“ zaškrtněte zasílání dat na custom API:

Server: Vyplňte doménu pro zasílání hodnot, kterou naleznete v nastavení čidla na TMEPu.
Path: /
Port: 80

TMEP

Na TMEPu následně můžete u čidla jako GUID (tedy měřenou hodnotu pro ukládání) použít libovolný parametr, který zařízení zasílá.

Níže naleznete příklad volání se senzorem ovzduší Sensirion SPS30. Libovolný value_type můžete použít do GUID, tedy v našem případě (viz příklad volání níže) můžete vyplnit:

SPS30_P0
SPS30_P2
SPS30_P4
SPS30_P1
SPS30_N05
SPS30_N1

SPS30_N25
SPS30_N4
SPS30_N10
SPS30_TS
BME280_temperature
BME280_pressure

BME280_humidity
samples
min_micro
max_micro
interval
signal

TMEP převede signal automaticky na rssi, aby byla vidět síla signálu na Wi-Fi.

V případě jiného čidla bude pojmenování hodnot rozdílné. Např. Nova SDS011 posílá dvě hodnoty pro kvalitu ovzduší a sice SDS_P1 a SDS_P2.

Typické nastavení pro PM10, PM2.5 a teplotu:

V nastavení Základní údaje u typu čidla zvolte nějaké dvou/tří hodnotové, pokud budete využívat více než jednu hodnotu (tedy např. teplota/vlhkost/tlak). Případně můžete přepsat názvy hodnot a jejich jednotek na záložce Zasílané hodnoty, kde vyplňujete i právě GUID. Nezapomeňte pod Korekce hodnot nastavit max. povolenou hodnotu pro uložení na např. 2000 ppm, ať hodnota není jen 100 (která je typicky dostatečná pro měření teploty).

Měření více než tří hodnot - nastavení přeposílačů

Chcete ukládat a grafovat více než tři hodnoty? Pak je potřeba založit více čidel a hodnoty do nich přerozdělit přeposílačem hodnot, což je funkce kterou TMEP za tímto účelem disponuje. Je to lehce komplikovanější, ale funkční.

Hodnoty vám už chodí na nějaké čidlo a u něj potřebujete definovat, jak mají být přerozdělené. Založte rovnou nové čidlo, kam chcete ukládat další hodnoty. Pokud existuje u nějakého čidla přeposílač, tak je potřeba přeposílač založit nejen pro další čidlo a přeposílané hodnoty, ale i pro to stávající. Je to totiž buď a nebo - buď mi na doménu chodí měření, která mám na ní, nebo řeším přeposílače a pak je potřeba příchozí měření rozdělit do patřičných domén včetně té aktuální.

V našem případě si necháme na jednu doménu ukládat čistě měření částic a na druhou si budeme grafovat teplotu, vlhkost a tlak z připojeného čidla BME280.

Vložte nový přeposílač, který bude ukládat chodící hodnoty do stávajícího čidla:

  • Doména, kam přijde měření: test (tam mi chodí hodnoty)
  • Proměnná, která musí existovat při volání domény: SPS30_P0 (libovolná z názvů hodnot)
  • Doména, kam se měření následně uloží: moje aktuální doména
  • Názvy proměnných s měřenou hodnotou, vlhkostí a tlakem: to, co jsem měl jako GUID nastaveno nyní nebo to co teprve chci ukládat, jedná se o až tři měřené parametry

Pokud nemáte, tak založte další čidlo a vložte další přeposílač:

  • Doména, kam přijde měření: test (stále ta samá doména, kam chodí hodnoty)
  • Proměnná, která musí existovat při volání domény: SPS30_P0 (libovolná z názvů hodnot)
  • Doména, kam se měření následně uloží: moje druhé čidlo
  • Názvy proměnných s měřenou hodnotou, vlhkostí a tlakem: další až tři parametry, v našem případě z čidla BME280 (viz obrázek)

Příklad volání HTTP POST JSONu

{
    "esp8266id": "123456",
    "software_version": "NRZ-2020-133",
    "sensordatavalues": [
        {
            "value_type": "SPS30_P0",
            "value": "49.56"
        },
        {
            "value_type": "SPS30_P2",
            "value": "54.98"
        },
        {
            "value_type": "SPS30_P4",
            "value": "57.12"
        },
        {
            "value_type": "SPS30_P1",
            "value": "58.20"
        },
        {
            "value_type": "SPS30_N05",
            "value": "337.65"
        },
        {
            "value_type": "SPS30_N1",
            "value": "391.93"
        },
        {
            "value_type": "SPS30_N25",
            "value": "395.14"
        },
        {
            "value_type": "SPS30_N4",
            "value": "395.55"
        },
        {
            "value_type": "SPS30_N10",
            "value": "395.65"
        },
        {
            "value_type": "SPS30_TS",
            "value": "0.59"
        },
        {
            "value_type": "BME280_temperature",
            "value": "7.03"
        },
        {
            "value_type": "BME280_pressure",
            "value": "100267.53"
        },
        {
            "value_type": "BME280_humidity",
            "value": "58.01"
        },
        {
            "value_type": "samples",
            "value": "4898709"
        },
        {
            "value_type": "min_micro",
            "value": "29"
        },
        {
            "value_type": "max_micro",
            "value": "7016"
        },
        {
            "value_type": "interval",
            "value": "145000"
        },
        {
            "value_type": "signal",
            "value": "-76"
        }
    ]
}