This project uses an Adafruit Feather ESP32-S3 TFT board with a Sensirion SEN55 environmental sensor to monitor:
- Temperature
- Humidity
- Particulate Matter (PM2.5 and PM10)
- VOC Index
- NOx Index
The readings are displayed both on the TFT screen and served via a web interface with historical data graphs.
- Adafruit Feather ESP32-S3 TFT board
- Sensirion SEN55 Environmental Sensor
- USB-C cable for power and programming
- CircuitPython 9.x
- Required libraries (included in /lib):
- adafruit_display_text
- adafruit_httpserver
- adafruit_bus_device
- adafruit_datetime
-
Connect the SEN55 sensor to the ESP32-S3 board:
- VCC → 3.3V
- GND → GND
- SDA → SDA (GPIO3)
- SCL → SCL (GPIO4)
-
Copy the project files to your ESP32-S3 board:
/code.py /wifi_config.py /lib/ /static/
-
Create a
wifi_config.py
file with your WiFi credentials:WIFI_SSID = "your_wifi_ssid" WIFI_PASSWORD = "your_wifi_password" SERVER_PORT = 1234
-
The device will automatically:
- Connect to WiFi
- Initialize the SEN55 sensor
- Start the web server
- Begin collecting data every 5 minutes
The web interface is available at http://<device-ip>
and provides:
- Current sensor readings
- Historical data graphs for the last hour (12 data points at 5-minute intervals)
- Auto-refreshing data every 5 minutes
code.py
: Main CircuitPython codewifi_config.py
: WiFi configurationstatic/
: Web interface filesindex.html
: Main webpagestyle.css
: Stylingscript.js
: JavaScript for graphs and data handling
lib/
: Required CircuitPython libraries
The project uses git for version control. To contribute:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License