Merge pull request #1957 from alignan/pull/bme280-sensor

sensors: bme280 weather sensor
This commit is contained in:
Antonio Lignan 2016-12-10 18:37:21 +01:00 committed by GitHub
commit ac2a31455e
17 changed files with 857 additions and 10 deletions

View file

@ -10,6 +10,7 @@ CONTIKI_TARGET_SOURCEFILES += temp-sensor.c
CONTIKI_TARGET_SOURCEFILES += enc28j60_avr.c
CONTIKI_TARGET_SOURCEFILES += co2_sa_kxx-sensor.c
CONTIKI_TARGET_SOURCEFILES += bme280-arch.c
CONTIKIAVR=$(CONTIKI)/cpu/avr
CONTIKIBOARD=.

View file

@ -0,0 +1,51 @@
/*
* Copyright (c) 2016, Zolertia
* 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 copyright holder 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 COPYRIGHT HOLDERS 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
* COPYRIGHT HOLDER 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.
*/
/*---------------------------------------------------------------------------*/
#include "contiki.h"
#include "i2c.h"
/*---------------------------------------------------------------------------*/
void
bme280_arch_i2c_init(void)
{
/* Does nothing */
}
/*---------------------------------------------------------------------------*/
void
bme280_arch_i2c_write_mem(uint8_t addr, uint8_t reg, uint8_t value)
{
i2c_write_mem(addr, reg, value);
}
/*---------------------------------------------------------------------------*/
void
bme280_arch_i2c_read_mem(uint8_t addr, uint8_t reg, uint8_t *buf, uint8_t bytes)
{
i2c_read_mem(addr, reg, buf, bytes);
}

View file

@ -224,5 +224,11 @@ i2c_probe(void)
probed |= I2C_CO2SA;
print_delim(p++, "CO2SA", del);
}
watchdog_periodic();
if(!i2c_start(I2C_BME280_ADDR)) {
i2c_stop();
probed |= I2C_BME280;
print_delim(p++, "BME280", del);
}
return probed;
}

View file

@ -40,12 +40,13 @@
/* Here we define the i2c address for dev we support */
#define I2C_AT24MAC_ADDR 0xB0 /* EUI64 ADDR */
#define I2C_SHT2X_ADDR (0x40 << 1) /* SHT2X ADDR */
#define I2C_BME280_ADDR (0x77 << 1) /* Alternative 0x76 */
/* Here we define a enumration for devices */
#define I2C_AT24MAC (1<<0)
#define I2C_SHT2X (1<<1)
#define I2C_CO2SA (1<<2) /* Sense-Air CO2 */
#define I2C_BME280 (1<<3)
#define I2C_READ 1
#define I2C_WRITE 0