Skip to content

PyPI version Total Downloads PyPI Downloads per Month License: GPL v3 CI

async-httpd-data-collector

Note

This is an older university project and is not actively maintained. It works as-is, but is not extensively tested.

A Python library that acts as an asynchronous gateway between IoT sensor devices and InfluxDB. It fetches JSON readings from a device (like a NodeMCU/ESP8266) over HTTP, parses them, and stores them as time-series data. You can then query the data back as pandas DataFrames.

Started as a university project to get hands-on with async Python, asyncio, aiohttp, and time-series databases.

What it does

  • Fetches sensor data from a device over HTTP (expects a specific JSON format)
  • Parses and stores readings in InfluxDB as time-series points
  • Runs a background daemon process for continuous data collection
  • Queries data back as pandas DataFrames with timezone-adjusted timestamps

The hardware side

The device that produces the data is a NodeMCU (ESP8266) board running custom firmware: arduino-air-state-server. It has several environmental sensors attached:

Sensor Measures
MQ135 CO, CO2, alcohol, NH4, acetone, toluene (ppm)
BMP180 temperature, pressure, altitude
DHT22 temperature, humidity
DS18B20 temperature (up to 8 sensors on one wire)

The board connects to WiFi and exposes a /circumstances HTTP endpoint returning all sensor readings as JSON.