This library enables you to create your own Do-It-Yourself BLE enabled sensor gadget on the ESP32 platform.
Note: The library has changed in version 1.0.0 and won't work with code using version 0.14.0 or earlier. For a detailed guide on how to migrate your code, click here.
Please see the examples provided as reference on how to use this library.
Important points to keep in mind:
writeValueToCurrentSample
writes the sensor values to the library. But the values are not published to the BLE stack until commitSample
has been calledhandleDownload
function within the loop.This project was developed and tested on Espressif ESP32 DevKitC hardware (see e.g. ESP32-DevKitC-32D)
Download the Sensirion MyAmbience CO2 App to monitor your gadget, plot the sensor values and share/export the data:
Download Arduino IDE and setup the environment for ESP32 platform
Follow this guide
Detailed Instructions for advanced users: Arduino-ESP32
Connect your ESP32 DevKit to your computer and launch the Arduino IDE
In the Arduino IDE, make sure you have the ESP32 Dev Module
selected and the PSRAM Disabled
Download the library's release zip and unpack it into your Arduino's library path.
Select File
→ Examples
→ Sensirion Gadget BLE Lib
→ Example 1
Click the upload button
Install PlatformIO Core by following the official instructions.
To install this library (in ~/.platformio/lib
), execute the following command in a terminal.
pio lib --global install "Sensirion Gadget BLE Arduino Lib"
To test an example (e.g Example1_MockedReadings
), navigate to the example directory,
cd ~/.platformio/lib/Sensirion\ Gadget\ BLE\ Arduino\ Lib/examples/Example1_MockedReadings
compile and Upload
pio run -t upload
and start the Serial monitor.
pio device monitor
In order to use this library in your project, add it to the lib_deps
in your platformio.ini
file and include Sensirion_Gadget_BLE.h
.
Follow the instructions in this tutorial.
When your code gets larger, you might run out of space on your board or run into weird behaviour caused by overflowing/colliding memory. This problem can be solved by modifying the size of the partition allocated to your program.
ESP32s come with a partition system to divide the available storage. Some partitions are more or less useful depending on the usecase.
You can read on the different partitions here.
On Arduino IDE, the partion scheme can easily be modified using Tools
→ Partition Scheme
as shown in the following picture:
On PlatformIO, on the other hand the process involves creating a .csv
configuration file.
We will not cover it in details here but you can refer to the following link for support.
If you want to retrieve the data of your new BLE gadget using your own device or application, you will need more information on the protocol used by this library.
Everything you will need should be available in the following document
See LICENSE.