Skip to content
Permalink
Browse files

samples: added sample for ti_hdc

Added a new sample for TI_HDC driver, tested with nucleo and hdc1080.

Signed-off-by: Nikos Oikonomou <nikoikonomou92@gmail.com>
  • Loading branch information...
nikooiko authored and MaureenHelm committed Feb 12, 2019
1 parent 8617df1 commit 3ae5b65503f93ff7aab2e34f9a64b6476ca3444f
@@ -0,0 +1,9 @@
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.13.1)

include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(ti_hdc)

FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})
@@ -0,0 +1,81 @@
.. _ti_hdc_sample:

TI_HDC Sample
##############

Description
***********

This sample application periodically takes Temperature and Humidity
using the ti_hdc sensor driver. The result is written to the console.

Requirements
************

This sample needs a compatible sensor like HDC1010 or HDC1080
connected to the target board's I2C connector.

Example Breakout Boards:

* Pmod HYGRO: Humidity and Temperature Sensor Breakout board


Wiring
******

This sample is tested with the STM32L496ZG nucleo and the Pmod HYGRO
Temp/RH breakout board.

The sensor operates at 3.3V and uses I2C to communicate with the board.

External Wires:

* Breakout **GND** pin <--> Nucleo **GND** pin
* Breakout **VCC** pin <--> Nucleo **3V3** pin
* Breakout **SDA** pin <--> Nucleo **CN7-D14** pin
* Breakout **SCL** pin <--> Nucleo **CN7-D15** pin

Building and Running
********************

This sample builds one application for the HDC1080 sensor.
Build/Flash Steps:

.. zephyr-app-commands::
:zephyr-app: samples/boards/nucleo_l496zg/sensors
:board: nucleo_l496zg
:goals: build flash
:compact:

Sample Output
*************
.. code-block:: console

Running on arm!
Dev 0x20001160 name HDC1080 is ready!
Fetching...
Raw Temp = 25144, Temp = 23.305053 C, Raw RH = 32292, RH = 49.273681 %
Fetching...
Raw Temp = 25148, Temp = 23.315124 C, Raw RH = 32424, RH = 49.475097 %
...

Build Testing
**************

.. code-block:: bash
$ZEPHYR_BASE/scripts/sanitycheck -T $ZEPHYR_BASE/samples/sensor/ti_hdc/ -p nucleo_l496zg --device-testing --device-serial /dev/ttyACM0 -t build
Target Testing
**************

.. code-block:: bash
$ZEPHYR_BASE/scripts/sanitycheck -T $ZEPHYR_BASE/samples/sensor/ti_hdc/ -p nucleo_l496zg --device-testing --device-serial /dev/ttyACM0 -t target
References
**********

.. _Nucleo STM32L496ZG board: https://www.st.com/en/evaluation-tools/nucleo-l496zg.html
.. _HDC1080 Breakout board: https://store.digilentinc.com/pmod-hygro-digital-humidity-and-temperature-sensor/
@@ -0,0 +1,15 @@
/*
* Copyright (c) 2019 Centaur Analytics, Inc
*
* SPDX-License-Identifier: Apache-2.0
*/

&arduino_i2c {

ti_hdc: ti_hdc@40 {
compatible = "ti,hdc","ti,hdc1080";
reg = <0x40>;
label = "HDC1080";
};

};
@@ -0,0 +1,5 @@
CONFIG_ASSERT=y # validation
CONFIG_I2C=y
CONFIG_GPIO=y
CONFIG_SENSOR=y
CONFIG_TI_HDC=y
@@ -0,0 +1,7 @@
sample:
name: TI HDC Humidity/Temperature Sensor
tests:
test_build:
build_only: true
depends_on: i2c
tags: build
@@ -0,0 +1,40 @@
/*
* Copyright (c) 2019 Centaur Analytics
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <zephyr.h>
#include <device.h>
#include <sensor.h>
#include <misc/printk.h>
#include <misc/__assert.h>
#include <logging/log.h>
#include <gpio.h>

void main(void)
{
printk("Running on %s!\n", CONFIG_ARCH);
struct device *dev = device_get_binding(DT_TI_HDC_0_LABEL);

__ASSERT(dev != NULL, "Failed to get device binding");

printk("Dev %p name %s is ready!\n", dev, dev->config->name);

struct sensor_value temp, humidity;

while (1) {
/* take a sample */
printk("Fetching...\n");
sensor_sample_fetch(dev);
sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY, &humidity);

/* print the result */
printk("Temp = %d.%06d C, RH = %d.%06d %%\n",
temp.val1, temp.val2, humidity.val1, humidity.val2);

/* wait for the next sample */
k_sleep(K_SECONDS(10));
}
}

0 comments on commit 3ae5b65

Please sign in to comment.
You can’t perform that action at this time.