Playing with IoT sensors to learn about the climate in individual rooms and impact of weather
The system consists of the following components:
- Components
- Microcontroller: placed in each room, collects local measurement and sends it to database
- Raspberry Pi: hosting database and dashboard services
- Services
- InfluxDB: timeseries database to keep data from sensors and weather report
- Telegraf: Ingest plugin for InfluxDB to collect weather data and MQTT messages
- Mosquitto: mqtt broker between microcontroller(sender) and telegraf(consumer)
- Grafana: Dashboard for visualizing data
- traefik: Get SSL certificates for grafana domain and route traffic for individual subdomains to correct docker services
- wifi_probe: code for microcontrollers
- services: configs for individual services
- influxdb/init/: scripts to initialize influxdb databases & users
My setup has overgone several system changes, in chronological order:
- started with handwritten Arduino code (using InfluxDB lib) and InfluxCloud to measure temperature, humidity, TVOC
- migrated to locally hosted InfluxDB
- switched handwritten Arduino code to Tasmota firmware
- switched Tasmota firmware to ESPhome
- added Home Assistant Dashboard & Integrations
- added devices with IR remote control capability for Airconditioning
For setup of all used services see the docker-compose
configuration at anoff/docker-compose-influxdb-grafana.
Required configuration is stored in the services folder.
MQTT is running via mosquitto, to see what's running over the broker:
docker run --rm -it eclipse-mosquitto sh
mosquitto_sub -h 192.168.1.210 -u USER -P PASSWORD -v -t 'probrv2/#'
mosquitto_sub -h 192.168.68.210 -u writer -P exert.ominous.THIEVE.snapback -v -t 'probrv2/#'