During my weekend hacking, I came up with a simple library that aggregates the tasks of fetching values from sensors and shipping them for further processing/storage:
https://github.com/suda/SensorReporter
It makes gathering data super simple:
#include "application.h"
// Step 1: Include and instantiate SensorReporter
#include "sensor_reporter.h"
SensorReporter sensorReporter;
void setup()
{
// Step 2: Initalize all sensors and reporters
sensorReporter.begin();
}
void loop()
{
// Step 3: Keep reporting
sensorReporter.loop();
}
You configure the library with a header file:
#define SAMPLE_PREFIX "outside_"
#define REPORTING_INTERVAL 10000
#define SENSOR_ANALOG_PIN_1 A0
#define SENSOR_ANALOG_PIN_1_NAME "soil"
#define SENSOR_HTU21D
#define SENSOR_PMS3003
#define REPORTER_SERIAL_BAUDRATE 9600
#define REPORTER_PARTICLE
For now, it only supports ADC, HTU21D, PMS3003 & soil moisture as sensors and serial port and Particle event as reporters but if anyone feels like implementing custom sensors or reporters please do!
Changelog
0.1.2 16 Oct 2018
- Add PMS3003 sensor support
0.1.1 15 Oct 2018
- Add soil moisture sensor