Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr.h>
#include <device.h>
#include <sensor.h>
#include <stdio.h>
#include <misc/util.h>

void main(void)
{
	struct sensor_value temp, hum;
	struct device *dev = device_get_binding("HTS221");

	if (dev == NULL) {
		printf("Could not get HTS221 device\n");
		return;
	}

	while (1) {
		if (sensor_sample_fetch(dev) < 0) {
			printf("Sensor sample update error\n");
			return;
		}

		if (sensor_channel_get(dev, SENSOR_CHAN_TEMP, &temp) < 0) {
			printf("Cannot read HTS221 temperature channel\n");
			return;
		}

		if (sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY, &hum) < 0) {
			printf("Cannot read HTS221 humidity channel\n");
			return;
		}

		/* display temperature */
		printf("Temperature:%.1f C\n", sensor_value_to_double(&temp));

		/* display humidity (converted from millipercent) */
		printf("Relative Humidity:%.0f%%\n",
		       sensor_value_to_double(&hum) / 1000);

		k_sleep(2000);
	}
}