GP v30 07: Luxes sensor

This is the basic code to manage and read the luxes sensor.

Required Materials

1 x Waspmote 1 x Battery 1 x Gases PRO board v30 1 x Luxes Accuracy Sensor

Notes

- Remember to connect the battery to Waspmote for proper operation. - The connection of the sensor is described in the Gases PRO v30 technical guide. - Cycle time: 30 seconds

Code

/*  
 *  ------------  [GP_v30_07] - Luxes sensor  -------------- 
 *  
 *  Explanation: This is the basic code to manage and read the 
 *  luxes sensor.Cycle time: 30 seconds
 *  
 *  Copyright (C) 2017 Libelium Comunicaciones Distribuidas S.L. 
 *  http://www.libelium.com 
 *  
 *  This program is free software: you can redistribute it and/or modify  
 *  it under the terms of the GNU General Public License as published by  
 *  the Free Software Foundation, either version 3 of the License, or  
 *  (at your option) any later version.  
 *   
 *  This program is distributed in the hope that it will be useful,  
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 *  GNU General Public License for more details.  
 *   
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>. 
 *
 *  Version:		        3.1
 *  Design:             David Gascón
 *  Implementation:     Alejandro Gállego
 */

#include <WaspSensorGas_Pro.h>
#include <TSL2561.h>

/*
 * Waspmote OEM. Possibilities for this sensor:
 * 	- CENTRAL SOCKET
 * P&S! Possibilities for this sensor:
 * 	- SOCKET_E
 */

void setup() 
{
    USB.println(F("Luxes sensor example"));
	// Configures the I2C isolator
	pinMode(GP_I2C_MAIN_EN, OUTPUT);  
}

void loop()
{
    ///////////////////////////////////////////
    // 1. Turn on the sensor
    /////////////////////////////////////////// 

    // Power on the 3v3.
    PWR.setSensorPower(SENS_3V3, SENS_ON);
    // Enable the communication with the board
    digitalWrite(GP_I2C_MAIN_EN, HIGH);	
    // Power on the sensor.
    TSL.ON();

    ///////////////////////////////////////////
    // 2. Read sensor
    ///////////////////////////////////////////  

    // Read the luminosity sensor
    TSL.getLuminosity();

    // And print the value via USB
    USB.println(F("***************************************"));
    USB.print(F("Luminosity: "));
    USB.print(TSL.lux);
    USB.println(F(" luxes"));

    ///////////////////////////////////////////
    // 3. Power off sensor
    ///////////////////////////////////////////   

	  // Disable the communication with the board
		digitalWrite(GP_I2C_MAIN_EN, LOW);
    // Power off the sensor. 
	  PWR.setSensorPower(SENS_3V3, SENS_OFF);

    ///////////////////////////////////////////
    // 4. Sleep
    /////////////////////////////////////////// 

    // Go to deepsleep	
    // After 30 seconds, Waspmote wakes up thanks to the RTC Alarm
    PWR.deepSleep("00:00:00:30", RTC_OFFSET, RTC_ALM1_MODE1, ALL_OFF);
}

Output

H#
Luxes sensor example
***************************************
Luminosity: 15 luxes
***************************************
Luminosity: 18 luxes
***************************************
Luminosity: 16 luxes
***************************************
Luminosity: 20 luxes

Last updated