mirror of
https://github.com/eclipse/upm.git
synced 2025-03-23 17:00:03 +03:00

This library adds support for both the BMP280 and BME280 sesnors from Bosch. The BME is virtually identical to the BMP280 aside from some slight register changes and adding support for a humidity sensor. The BMP280 is an absolute barometric pressure sensor especially designed for mobile applications. The sensor module is housed in an extremely compact 8-pin metal-lid LGA package with a footprint of only 2.0 × 2.5 mm2 and 0.95 mm package height. Its small dimensions and its low power consumption of 2.7 μA @1Hz allow the implementation in battery driven devices such as mobile phones, GPS modules or watches. The BME280 is as combined digital humidity, pressure and temperature sensor based on proven sensing principles. The sensor module is housed in an extremely compact metal-lid LGA package with a footprint of only 2.5 × 2.5 mm2 with a height of 0.93 mm. Its small dimensions and its low power consumption allow the implementation in battery driven devices such as handsets, GPS modules or watches. The BME280 is register and performance compatible to the Bosch Sensortec BMP280 digital pressure sensor These drivers support both I2C and SPI operation. When using SPI on an Edison with the arduino breakout board, you must specify a CS of -1 to the constructor, and connect the chip's CS pin to arduino pin 10. Signed-off-by: Jon Trulson <jtrulson@ics.com> Signed-off-by: Noel Eck <noel.eck@intel.com>
296 lines
8.8 KiB
CMake
296 lines
8.8 KiB
CMake
# Extract module name from non-standard example name
|
|
macro(get_module_name example_name module_name)
|
|
string(LENGTH ${example_name} length)
|
|
string(FIND ${example_name} "-" index)
|
|
if (${index} GREATER 1)
|
|
string(SUBSTRING ${example_name} 0 ${index} substr)
|
|
set(${module_name} ${substr})
|
|
elseif (${example_name} MATCHES "^grove")
|
|
set (${module_name} "grove")
|
|
elseif ((${example_name} MATCHES "^mq" AND ${length} EQUAL 3) OR ${example_name} STREQUAL "tp401")
|
|
set (${module_name} "gas")
|
|
else()
|
|
set(${module_name} ${example_name})
|
|
endif()
|
|
endmacro()
|
|
|
|
# Set source file, include and linker settings for an example
|
|
# If example cannot be built, example_bin is cleared
|
|
macro(add_custom_example example_bin example_src example_module_list)
|
|
set(found_all_modules TRUE)
|
|
foreach (module ${example_module_list})
|
|
if (NOT EXISTS "${PROJECT_SOURCE_DIR}/src/${module}")
|
|
set(found_all_modules FALSE)
|
|
endif()
|
|
if (MODULE_LIST)
|
|
list(FIND MODULE_LIST ${module} index)
|
|
if (${index} EQUAL -1)
|
|
set(found_all_modules FALSE)
|
|
endif()
|
|
endif()
|
|
endforeach()
|
|
if (found_all_modules)
|
|
add_executable (${example_bin} ${example_src})
|
|
target_link_libraries (${example_bin} ${CMAKE_THREAD_LIBS_INIT})
|
|
foreach (module ${example_module_list})
|
|
set(module_dir "${PROJECT_SOURCE_DIR}/src/${module}")
|
|
include_directories (${module_dir})
|
|
if (${module} STREQUAL "lcd")
|
|
set(module "i2clcd")
|
|
endif()
|
|
target_link_libraries (${example_bin} ${module})
|
|
endforeach()
|
|
else()
|
|
MESSAGE(INFO " Ignored ${example_bin}")
|
|
set (example_bin "")
|
|
endif()
|
|
endmacro()
|
|
|
|
|
|
# Add specified example by name
|
|
# Note special case for grove based examples
|
|
macro(add_example example_name)
|
|
set(example_src "${example_name}.cxx")
|
|
set(example_bin "${example_name}-example")
|
|
get_module_name(${example_name} module_name)
|
|
set(module_dir "${PROJECT_SOURCE_DIR}/src/${module_name}")
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${example_src}"
|
|
AND EXISTS ${module_dir}
|
|
AND IS_DIRECTORY ${module_dir})
|
|
add_custom_example(${example_bin} ${example_src} ${module_name})
|
|
if ((NOT ${example_bin} STREQUAL "") AND (${module_name} STREQUAL "grove"))
|
|
set(grove_module_path "${PROJECT_SOURCE_DIR}/src/${example_name}")
|
|
if (EXISTS ${grove_module_path})
|
|
include_directories(${grove_module_path})
|
|
target_link_libraries (${example_bin} ${example_name})
|
|
endif()
|
|
endif()
|
|
else()
|
|
MESSAGE(INFO " Ignored ${example_bin}")
|
|
endif()
|
|
endmacro()
|
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/examples)
|
|
|
|
# Set the mraa include and link directories prior to adding examples
|
|
include_directories (${MRAA_INCLUDE_DIRS})
|
|
link_directories (${MRAA_LIBDIR})
|
|
|
|
# If your sample source file matches the name of the module it tests, add it here
|
|
# Exceptions are as follows:
|
|
# string after first '-' is ignored (e.g. nrf24l01-transmitter maps to nrf24l01)
|
|
# mq? will use module gas
|
|
# grove* will use module grove
|
|
add_example (hmc5883l)
|
|
add_example (groveled)
|
|
add_example (groverelay)
|
|
add_example (grovelight)
|
|
add_example (grovetemp)
|
|
add_example (grovebutton)
|
|
add_example (groverotary)
|
|
add_example (groveslide)
|
|
add_example (buzzer-sound)
|
|
add_example (nrf24l01-transmitter)
|
|
add_example (nrf24l01-receiver)
|
|
add_example (nrf24l01-broadcast)
|
|
add_example (hcsr04)
|
|
add_example (max44000)
|
|
add_example (mma7455)
|
|
add_example (st7735)
|
|
add_example (max31855)
|
|
add_example (bmpx8x)
|
|
add_example (stepmotor)
|
|
add_example (pulsensor)
|
|
add_example (mic)
|
|
add_example (mpu9150)
|
|
add_example (maxds3231m)
|
|
add_example (max31723)
|
|
add_example (max5487)
|
|
add_example (nrf8001-broadcast)
|
|
add_example (nrf8001-helloworld)
|
|
add_example (lpd8806)
|
|
add_example (mlx90614)
|
|
add_example (ecs1030)
|
|
add_example (mq2)
|
|
add_example (mq3)
|
|
add_example (mq4)
|
|
add_example (mq5)
|
|
add_example (mq6)
|
|
add_example (mq7)
|
|
add_example (mq8)
|
|
add_example (mq9)
|
|
add_example (tp401)
|
|
add_example (tcs3414cs)
|
|
add_example (th02)
|
|
add_example (ttp223)
|
|
add_example (lsm303)
|
|
add_example (joystick12)
|
|
add_example (lol)
|
|
add_example (tsl2561)
|
|
add_example (htu21d)
|
|
add_example (mpl3115a2)
|
|
add_example (ldt0028)
|
|
add_example (am2315)
|
|
add_example (itg3200)
|
|
add_example (enc03r)
|
|
add_example (adc121c021)
|
|
add_example (ds1307)
|
|
add_example (a110x)
|
|
add_example (gp2y0a)
|
|
add_example (grovemoisture)
|
|
add_example (groveehr)
|
|
add_example (ta12200)
|
|
add_example (grovelinefinder)
|
|
add_example (grovevdiv)
|
|
add_example (grovewater)
|
|
add_example (guvas12d)
|
|
add_example (mpr121)
|
|
add_example (ublox6)
|
|
add_example (yg1006)
|
|
add_example (wt5001)
|
|
add_example (ppd42ns)
|
|
add_example (mq303a)
|
|
add_example (grovespeaker)
|
|
add_example (rfr359f)
|
|
add_example (biss0001)
|
|
add_example (rotaryencoder)
|
|
add_example (adxl345)
|
|
add_example (rpr220)
|
|
add_example (rpr220-intr)
|
|
add_example (mma7660)
|
|
add_example (cjq4435)
|
|
add_example (adxl335)
|
|
add_example (hmtrp)
|
|
add_example (nunchuck)
|
|
add_example (otp538u)
|
|
add_example (grovecollision)
|
|
add_example (groveelectromagnet)
|
|
add_example (groveemg)
|
|
add_example (groveo2)
|
|
add_example (grovegsr)
|
|
add_example (ina132)
|
|
add_example (l298)
|
|
add_example (l298-stepper)
|
|
add_example (at42qt1070)
|
|
add_example (grovemd)
|
|
add_example (grovemd-stepper)
|
|
add_example (pca9685)
|
|
add_example (groveeldriver)
|
|
add_example (adafruitss)
|
|
add_example (adafruitms1438)
|
|
add_example (adafruitms1438-stepper)
|
|
add_example (hx711)
|
|
add_example (flex)
|
|
add_example (a110x-intr)
|
|
add_example (mhz16)
|
|
add_example (apds9002)
|
|
add_example (waterlevel)
|
|
add_example (tm1637)
|
|
add_example (zfm20)
|
|
add_example (zfm20-register)
|
|
add_example (uln200xa)
|
|
add_example (grovewfs)
|
|
add_example (isd1820)
|
|
add_example (sx6119)
|
|
add_example (si114x)
|
|
add_example (maxsonarez)
|
|
add_example (hm11)
|
|
add_example (ht9170)
|
|
add_example (h3lis331dl)
|
|
add_example (ad8232)
|
|
add_example (grovescam)
|
|
add_example (m24lr64e)
|
|
add_example (rgbringcoder)
|
|
add_example (hp20x)
|
|
add_example (pn532)
|
|
add_example (pn532-writeurl)
|
|
add_example (lsm9ds0)
|
|
add_example (loudness)
|
|
add_example (mg811)
|
|
add_example (wheelencoder)
|
|
add_example (sm130)
|
|
add_example (grovegprs)
|
|
add_example (lm35)
|
|
add_example (micsv89)
|
|
add_example (xbee)
|
|
add_example (urm37)
|
|
add_example (urm37-uart)
|
|
add_example (adxrs610)
|
|
add_example (bma220)
|
|
add_example (dfrph)
|
|
add_example (mcp9808)
|
|
add_example (groveultrasonic)
|
|
add_example (sx1276-lora)
|
|
add_example (sx1276-fsk)
|
|
add_example (ili9341)
|
|
if (OPENZWAVE_FOUND)
|
|
include_directories(${OPENZWAVE_INCLUDE_DIRS})
|
|
add_example (ozw)
|
|
endif()
|
|
add_example (nlgpio16)
|
|
add_example (ads1x15)
|
|
if (MODBUS_FOUND)
|
|
include_directories(${MODBUS_INCLUDE_DIRS})
|
|
add_example (t3311)
|
|
add_example (hwxpxx)
|
|
add_example (h803x)
|
|
endif()
|
|
add_example (hdxxvxta)
|
|
add_example (rhusb)
|
|
add_example (apds9930)
|
|
add_example (kxcjk1013)
|
|
add_example (ssd1351)
|
|
add_example (ds1808lc)
|
|
add_example (hlg150h)
|
|
add_example (lp8860)
|
|
add_example (max44009)
|
|
add_example (si1132)
|
|
add_example (si7005)
|
|
add_example (t6713)
|
|
add_example (cwlsxxa)
|
|
add_example (teams)
|
|
add_example (apa102)
|
|
add_example (tex00)
|
|
add_example (bmi160)
|
|
add_example (smartdrive)
|
|
if (HAVE_FIRMATA)
|
|
add_example (curieimu)
|
|
endif ()
|
|
if (BACNET_FOUND)
|
|
include_directories(${BACNET_INCLUDE_DIRS})
|
|
# we need access to bacnetmstp headers too
|
|
include_directories(${PROJECT_SOURCE_DIR}/src/bacnetmstp)
|
|
add_example (e50hx)
|
|
endif()
|
|
add_example (vcap)
|
|
add_example (ds2413)
|
|
add_example (ds18b20)
|
|
add_example (bmp280)
|
|
|
|
# These are special cases where you specify example binary, source file and module(s)
|
|
include_directories (${PROJECT_SOURCE_DIR}/src)
|
|
add_custom_example (groveled-multi-example groveled-multi.cxx grove)
|
|
add_custom_example (lcm1602-i2c-example lcm1602-i2c.cxx lcd)
|
|
add_custom_example (lcm1602-parallel-example lcm1602-parallel.cxx lcd)
|
|
add_custom_example (jhd1313m1-lcd-example jhd1313m1-lcd.cxx lcd)
|
|
add_custom_example (es08a-example es08a.cxx servo)
|
|
add_custom_example (ssd1306-oled-example ssd1306-oled.cxx lcd)
|
|
add_custom_example (ssd1308-oled-example ssd1308-oled.cxx lcd)
|
|
add_custom_example (ssd1327-oled-example ssd1327-oled.cxx lcd)
|
|
add_custom_example (sainsmartks-example sainsmartks.cxx lcd)
|
|
add_custom_example (eboled-example eboled.cxx lcd)
|
|
add_custom_example (mpu60x0-example mpu60x0.cxx mpu9150)
|
|
add_custom_example (ak8975-example ak8975.cxx mpu9150)
|
|
add_custom_example (mpu9250-example mpu9250.cxx mpu9150)
|
|
add_custom_example (groveledbar-example groveledbar.cxx my9221)
|
|
add_custom_example (grovecircularled-example grovecircularled.cxx my9221)
|
|
add_custom_example (temperature-sensor-example temperature-sensor.cxx "si7005;bmpx8x;bme280")
|
|
add_custom_example (humidity-sensor-example humidity-sensor.cxx "si7005;bme280")
|
|
add_custom_example (pressure-sensor-example pressure-sensor.cxx "bmpx8x;bme280")
|
|
add_custom_example (co2-sensor-example co2-sensor.cxx "t6713")
|
|
add_custom_example (adc-example adc-sensor.cxx "ads1x15")
|
|
add_custom_example (light-sensor-example light-sensor.cxx "si1132;max44009")
|
|
add_custom_example (light-controller-example light-controller.cxx "lp8860;ds1808lc;hlg150h")
|
|
add_custom_example (bme280-example bme280.cxx bmp280)
|