Skip to content

Hardware Setup

SQMeter runs on any standard ESP32 dev board. All sensors connect via I2C.


Wiring

Default I2C pins (configurable in settings):

ESP32 Pin Function Sensor Pins
GPIO 21 SDA SDA on all sensors
GPIO 22 SCL SCL on all sensors
3.3V Power VIN / VCC
GND Ground GND

All sensors share the same two-wire I2C bus. Wire them in parallel.

ESP32          TSL2591     BME280      MLX90614
 3V3  ─────────  VIN ──────  VCC ──────  VCC
 GND  ─────────  GND ──────  GND ──────  GND
 G21  ─────────  SDA ──────  SDA ──────  SDA
 G22  ─────────  SCL ──────  SCL ──────  SCL

I2C Addresses

Sensor Default Address Notes
TSL2591 0x29 Fixed
BME280 0x76 0x77 if SDO pulled high
MLX90614 0x5A Fixed

Address conflict

If you have multiple BME280s on the same bus, one must be wired with SDO to 3.3V to use address 0x77.


Sensor Placement

For accurate sky readings:

  • TSL2591 should have a clear, unobstructed view of the sky — point it straight up
  • MLX90614 measures cloud temperature and should also face the sky
  • BME280 should be shaded from direct sunlight and have airflow — don't enclose it tightly
  • Keep all sensors away from artificial light sources

Verified Hardware

Component Notes
ESP32 DevKit v1 30-pin or 38-pin, both work
Adafruit TSL2591 Breakout board recommended
Adafruit BME280 Breakout board recommended
Adafruit MLX90614 Optional — for cloud detection
u-blox NEO-6M GPS Optional — for location/time sync

Power

Power the ESP32 via USB or a 5V supply. The 3.3V regulator on most dev boards can comfortably drive all sensors simultaneously.