From 5c25ec4d11080bd558c450ba883bcf0efde6605a Mon Sep 17 00:00:00 2001 From: Robert Olsson Date: Fri, 16 Sep 2016 09:34:14 +0200 Subject: [PATCH] Example modified to use BME280 --- examples/avr-rss2/hello-sensors/Makefile | 1 + .../avr-rss2/hello-sensors/hello-sensors.c | 18 +++++++ .../avr-rss2/hello-sensors/project-conf.h | 2 + platform/avr-rss2/dev/bme280-arch.h | 47 +++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 platform/avr-rss2/dev/bme280-arch.h diff --git a/examples/avr-rss2/hello-sensors/Makefile b/examples/avr-rss2/hello-sensors/Makefile index 0d1d41b9f..22c0f611c 100644 --- a/examples/avr-rss2/hello-sensors/Makefile +++ b/examples/avr-rss2/hello-sensors/Makefile @@ -8,6 +8,7 @@ PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min PRINTF_LIB = $(PRINTF_LIB_FLT) CLIBS = $(PRINTF_LIB) +MODULES += dev/bme280 CUSTOM_RULE_LINK = 1 %.$(TARGET): %.co $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) contiki-$(TARGET).a diff --git a/examples/avr-rss2/hello-sensors/hello-sensors.c b/examples/avr-rss2/hello-sensors/hello-sensors.c index 42be6109e..256efe3d9 100644 --- a/examples/avr-rss2/hello-sensors/hello-sensors.c +++ b/examples/avr-rss2/hello-sensors/hello-sensors.c @@ -49,6 +49,7 @@ #include "dev/temp_mcu-sensor.h" #include "dev/light-sensor.h" #include "dev/pulse-sensor.h" +#include "dev/bme280/bme280-sensor.h" #ifdef CO2 #include "dev/co2_sa_kxx-sensor.h" #endif @@ -83,6 +84,22 @@ read_values(void) #ifdef CO2 printf(" CO2=%-d", co2_sa_kxx_sensor.value( CO2_SA_KXX_CO2)); #endif +#if STD_API + printf(" BME280_TEMP=%-d", bme280_sensor.value(BME280_SENSOR_TEMP)); + printf(" BME280_RH=%-d", bme280_sensor.value(BME280_SENSOR_HUMIDITY)); + printf(" BME280_P=%-d", bme280_sensor.value(BME280_SENSOR_PRESSURE)); +#else + /* Trigger burst read */ + (void *) bme280_sensor.value(BME280_SENSOR_TEMP); + printf(" T_BME280=%5.2f", (double)bme280_mea.t_overscale100 / 100.); + printf(" RH_BME280=%5.2f ", (double)bme280_mea.h_overscale1024 / 1024.); +#ifdef BME280_64BIT + printf(" P_BME280=%5.2f ", (double)bme280_mea.p_overscale256 / 256.); +#else + printf(" P_BME280=%5.2f ", (double)bme280_mea.p); +#endif +#endif + printf("\n"); } /*---------------------------------------------------------------------------*/ @@ -95,6 +112,7 @@ PROCESS_THREAD(hello_sensors_process, ev, data) SENSORS_ACTIVATE(temp_mcu_sensor); SENSORS_ACTIVATE(light_sensor); SENSORS_ACTIVATE(pulse_sensor); + SENSORS_ACTIVATE(bme280_sensor); #ifdef CO2 SENSORS_ACTIVATE(co2_sa_kxx_sensor); #endif diff --git a/examples/avr-rss2/hello-sensors/project-conf.h b/examples/avr-rss2/hello-sensors/project-conf.h index 8d1bc434f..72163ce4e 100644 --- a/examples/avr-rss2/hello-sensors/project-conf.h +++ b/examples/avr-rss2/hello-sensors/project-conf.h @@ -42,6 +42,8 @@ #ifndef PROJECT_CONF_H_ #define PROJECT_CONF_H_ +/* #define BME280_32BIT */ + #define NETSTACK_CONF_RDC nullrdc_driver #define NETSTACK_CONF_MAC nullmac_driver diff --git a/platform/avr-rss2/dev/bme280-arch.h b/platform/avr-rss2/dev/bme280-arch.h new file mode 100644 index 000000000..7c84e93ba --- /dev/null +++ b/platform/avr-rss2/dev/bme280-arch.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2015, Copyright Robert Olsson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + * + * Author : Robert Olsson rolss@kth.se/robert@radio-sensors.com + * Created : 2016-09-14 + */ + +#ifndef BME280_ARCH_H +#define BME280_ARCH_H + +/** + * \file + * Architecture-specific definitions for the BME280 sensor for avr-rss2 + * \author + * Robert Olsson + */ + + +#endif