Temperature, humidity, altitude, pressure, and CO2 measurement IoT firmware for ESP8266.
- A BME280/BMP280 (or compatible) sensor
- An SGP-30 sensor (optional)
- Adafruit Sensor, BME280 and SGP30 libraries
- WiFiManager library
ESP D1 -> BME280 SCL ESP D2 -> BME280 SDA ESP 3V3 -> BME280 VIN ESP GND -> BME280 GND
If you have an SGP-30 too: ESP D1 -> SGP30 SCL ESP D2 -> SGP30 SDA ESP 3V3 -> SGP30 VIN (make sure your board has a voltage regulator, since the chip is 1.8V) ESP GND -> SGP30 GND
On first boot, WifiManager will start. Configure your WiFi settings.
Then, you can reach the board on it's IP logged in serial/set in the static IP settings. Port 80 will get you a JSON with the data acquired by the board:
- temperature: Temperature in celsius
- humidity: Humidity percentage
- pressure: Pressure in hPa
- altitude: Altitude from sea level in meters
- co: CO2 level in ppm (only with SGP-30)
- tvco: indoor total VOC (only with SGP-30)
Note that some sensors may need to be calibrated.
IMPORTANT: You may need to change the I2C address of the BME280 specified in bme.begin
.
You can configure the following variables in roomstats.ino:
- Static IP address: Change
STATIC_IP
,STATIC_GATEWAY
andSTATIC_MASK
. Comment them out to enable DHCP. - I2C address of BME280: Change
0x76
inbme.begin
call.
You can 3D print the Box.stl
and Box Lid.stl
files to make a housing for the board. The box is designed around the Apple iPhone charger (slim version, EU version, not sure if there's a difference).
You can solder on a USB jack to the ESP's 5V and GND pins, or you can use a really short microUSB cable.