Skip to content

jfm92/everAliveSensor

Repository files navigation

everAlive Sensor

Experimental project — not production-ready. This is a personal experiment. If you decide to build it, you do so at your own risk.

An ultra-low-power environmental sensor beacon that runs on solar energy — including indoor ambient light. With a 50 F supercapacitor as its energy reservoir, the device can operate for up to 19 days without any light source, and has the potential for indefinite lifetime under normal indoor illumination.

Device

Device

How it works

On every cycle the device:

  1. Wakes from deep sleep.
  2. Reads temperature, humidity, and pressure from the BME680 sensor.
  3. Broadcasts the data as a BLE advertisement for ~20 ms.
  4. Goes back to deep sleep for 5 minutes.

The aggressive duty cycle (20 ms active out of every 300 s) keeps average current consumption low enough to be sustained by an indoor solar panel.

Key specs

Parameter Value
MCU ESP32 (ESP-IDF + NimBLE)
Sensor Bosch BME680 (temperature, humidity, pressure)
Communication BLE non-connectable advertising
BLE device name EnvSensor
Advertising window 20 ms
Sleep interval 300 s (5 min)
Energy source Solar panel (indoor-capable)
Energy storage 50 F supercapacitor
Autonomy (no light) ~19 days

BLE payload (Manufacturer Specific Data)

Bytes Field Type Unit
0–1 Company ID (0x0CDE) uint16_t
2–3 Temperature int16_t °C × 100
4–5 Humidity uint16_t %RH × 100
6–7 Pressure uint16_t hPa × 10

Schematics

Schematics

PCB — Front

PCB Front

PCB — Back

PCB Back

Repository structure

everAliveSensorProject/
├── everAlive_Firmware/     # ESP-IDF firmware for the sensor node
│   ├── main/
│   │   ├── main.c          # Entry point — sensor read + BLE advertise + deep sleep
│   │   ├── gap.c / gap.h   # BLE advertising logic
│   │   └── sensor/         # BME680 driver wrapper
│   └── components/
│       └── bme680x/        # Bosch BME680 sensor library
├── everAlive_Enclosure/    # 3D-printable enclosure (STL files)
│   ├── everAlive_Enclosure_Top.stl
│   └── everAlive_Enclosure_Bottom.stl
├── demo/
│   └── BLERouter/          # ESP32-C6 demo receiver — scans and logs sensor data over serial
└── Images/                 # Device photos, PCB renders, and schematics

Building the firmware

The firmware uses the ESP-IDF build system.

cd everAlive_Firmware
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor

Demo receiver (BLERouter)

The demo/BLERouter directory contains a companion project for an ESP32-C6 that passively scans for EnvSensor advertisements, decodes the payload, and prints timestamped readings to the serial monitor (time is obtained from NTP on boot).

See demo/BLERouter/README.md for setup instructions.

Enclosure

The enclosure is designed to be 3D printed in two parts (top and bottom). The STL files are in everAlive_Enclosure/.

License

This project is licensed under the terms found in LICENSE.

About

Solar-powered BLE environmental sensor (temp, humidity, pressure) with a 50F supercapacitor — potentially infinite lifetime, 19-day dark autonomy. ESP32 + BME680. Experimental.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors