mirror of
https://github.com/timmbogner/Farm-Data-Relay-System
synced 2024-11-10 07:10:42 +00:00
4805072969
- added a modified ThingPulse oled library. - made "sensor_config" "node_config" - made - made "fdrs_functions.h" "fdrs_gateway.h"
68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
#include <Wire.h>
|
|
#include <Adafruit_Sensor.h>
|
|
#include <Adafruit_TSL2561_U.h>
|
|
|
|
#include "fdrs_node_config.h"
|
|
#include <fdrs_node.h>
|
|
|
|
Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);
|
|
|
|
|
|
/**************************************************************************/
|
|
/*
|
|
Configures the gain and integration time for the TSL2561
|
|
*/
|
|
/**************************************************************************/
|
|
void configureSensor(void)
|
|
{
|
|
/* You can also manually set the gain or enable auto-gain support */
|
|
// tsl.setGain(TSL2561_GAIN_1X); /* No gain ... use in bright light to avoid sensor saturation */
|
|
// tsl.setGain(TSL2561_GAIN_16X); /* 16x gain ... use in low light to boost sensitivity */
|
|
tsl.enableAutoRange(true); /* Auto-gain ... switches automatically between 1x and 16x */
|
|
|
|
/* Changing the integration time gives you better sensor resolution (402ms = 16-bit data) */
|
|
tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS); /* fast but low resolution */
|
|
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_101MS); /* medium resolution and speed */
|
|
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS); /* 16-bit data but slowest conversions */
|
|
|
|
}
|
|
|
|
/**************************************************************************/
|
|
/*
|
|
Arduino setup function (automatically called at startup)
|
|
*/
|
|
/**************************************************************************/
|
|
void setup(void)
|
|
{
|
|
beginFDRS();
|
|
/* Initialise the sensor */
|
|
//use tsl.begin() to default to Wire,
|
|
//tsl.begin(&Wire2) directs api to use Wire2, etc.
|
|
if(!tsl.begin())
|
|
{
|
|
DBG("Ooops, no TSL2561 detected ... Check your wiring or I2C ADDR!");
|
|
while(1);
|
|
}
|
|
configureSensor();
|
|
}
|
|
|
|
void loop(void)
|
|
{
|
|
sensors_event_t event;
|
|
tsl.getEvent(&event);
|
|
if (event.light)
|
|
{
|
|
DBG(String(event.light) + " lux");
|
|
loadFDRS(float(event.light), LIGHT_T);
|
|
sendFDRS();
|
|
sleepFDRS(10); //Sleep time in seconds
|
|
}
|
|
else
|
|
{
|
|
/* If event.light = 0 lux the sensor is probably saturated
|
|
and no reliable data could be generated! */
|
|
Serial.println("Sensor overload");
|
|
}
|
|
delay(250);
|
|
}
|