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

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í:
- vytvoř účet na stránce InfluxDB Cloud

- vyber region serveru

- zvol bezplatný plán

- 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:
- otevři Library Manager
- vyhledej knihovnu InfluxDB
- nainstaluj knihovnu vytvořenou Tobiasem Shürgem
Tato knihovna funguje jak s ESP8266, tak i s ESP32.

Ukázkový program pro ESP32
Následující program odesílá do databáze informaci o síle Wi-Fi signálu (RSSI).
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.
