Zpět na články

ESP32 a InfluxDB – ukládání IoT dat do časové databáze

Jak posílat data z ESP32 do InfluxDB a ukládat IoT měření pro grafy a analýzu.

ESP32 a InfluxDB – ukládání IoT dat do časové databáze

Pokud vytváříš IoT projekt, často potřebuješ ukládat měření ze senzorů po delší dobu. Jednou z nejlepších databází pro tento účel je InfluxDB, která je navržena pro práci s časovými daty (time-series data).

V tomto článku si ukážeme, jak propojit ESP32 s databází InfluxDB a ukládat do ní data přes Wi-Fi.

Co je InfluxDB

ESP32 Blog image

InfluxDB je open-source databáze optimalizovaná pro ukládání dat s časovou značkou. To znamená, že každý uložený údaj má přiřazený přesný čas, kdy byl zaznamenán. Díky tomu je ideální pro ukládání dat ze senzorů, například teploty, vlhkosti nebo spotřeby energie.

InfluxDB zvládne ukládat velké množství dat za sekundu a často se používá v IoT projektech nebo monitorovacích systémech.

Databázi můžeš provozovat dvěma způsoby:

  • InfluxDB Cloud – běží na serverech poskytovatele
  • lokální instalace – například na počítači nebo Raspberry Pi

Základní pojmy v InfluxDB

Než začneš databázi používat, je dobré znát několik základních pojmů.

Bucket
Bucket je místo v databázi, kde se ukládají data. Každý bucket má nastavenou dobu uchování dat (retention period). Starší data se po této době automaticky smažou.

Point
Point je jeden záznam v databázi. Obsahuje konkrétní hodnotu, metadata a časovou značku.

Measurement
Measurement je typ měření – například teplota, vlhkost nebo stav WiFi signálu.

Tag
Tag je metadata popisující data, například název zařízení nebo síť. Tagy jsou indexované, takže je lze rychle filtrovat při dotazech.

Field
Field obsahuje samotnou naměřenou hodnotu (například číslo nebo text). Na rozdíl od tagů nejsou fieldy indexované.

Vytvoření účtu v InfluxDB

Nejjednodušší způsob je použít InfluxDB Cloud.

Postup je následující:

  1. vytvoř účet na stránce InfluxDB Cloud
ESP32 Blog image
  1. vyber region serveru
ESP32 Blog image
  1. zvol bezplatný plán
ESP32 Blog image
  1. otevři panel pro správu databáze

Poté je potřeba vytvořit nový bucket, kam se budou ukládat data ze zařízení.

Získání potřebných údajů

Pro připojení ESP32 k databázi budeš potřebovat několik údajů z nastavení databáze:

  • URL serveru InfluxDB
  • API token
  • název organizace
  • název bucketu

Tyto údaje použiješ později v programu pro ESP32.

Instalace knihovny

Pro komunikaci s databází se používá knihovna InfluxDB Arduino Client.

V Arduino IDE ji nainstaluješ takto:

  1. otevři Library Manager
  2. vyhledej knihovnu InfluxDB
  3. nainstaluj knihovnu vytvořenou Tobiasem Shürgem

Tato knihovna funguje jak s ESP8266, tak i s ESP32.

ESP32 Blog image

Ukázkový program pro ESP32

Následující program odesílá do databáze informaci o síle Wi-Fi signálu (RSSI).

influx.cpp
1#include <WiFiMulti.h> 2#include <InfluxDbClient.h> 3#include <InfluxDbCloud.h> 4 5WiFiMulti wifiMulti; 6 7#define WIFI_SSID "SSID" 8#define WIFI_PASSWORD "PASSWORD" 9 10#define INFLUXDB_URL "INFLUXDB_URL" 11#define INFLUXDB_TOKEN "TOKEN" 12#define INFLUXDB_ORG "ORG" 13#define INFLUXDB_BUCKET "ESP32" 14 15InfluxDBClient client(INFLUXDB_URL, INFLUXDB_ORG, INFLUXDB_BUCKET, INFLUXDB_TOKEN); 16 17Point sensor("wifi_status"); 18 19void setup() { 20 21 Serial.begin(115200); 22 23 WiFi.mode(WIFI_STA); 24 wifiMulti.addAP(WIFI_SSID, WIFI_PASSWORD); 25 26 while (wifiMulti.run() != WL_CONNECTED) { 27 delay(500); 28 } 29 30 sensor.addTag("device", "ESP32"); 31 sensor.addTag("SSID", WiFi.SSID()); 32} 33 34void loop() { 35 36 sensor.clearFields(); 37 sensor.addField("rssi", WiFi.RSSI()); 38 39 if (!client.writePoint(sensor)) { 40 Serial.println("Write failed"); 41 } 42 43 delay(10000); 44}

Program odešle každých 10 sekund novou hodnotu do databáze.

Vizualizace dat

Po odeslání dat můžeš otevřít Data Explorer v InfluxDB.

Zde můžeš:

  • filtrovat data podle zařízení
  • zobrazit hodnoty v tabulce
  • vytvořit graf měření

Například můžeš zobrazit graf síly Wi-Fi signálu v čase.

Využití v IoT projektech

InfluxDB se často používá v kombinaci s mikrokontrolery pro ukládání dat ze senzorů.

Typické použití:

  • meteorologické stanice
  • monitorování kvality vzduchu
  • chytré domácnosti
  • energetický monitoring
  • průmyslové senzory

Databáze se také často kombinuje s nástrojem Grafana, který umožňuje vytvářet přehledné dashboardy.

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.