From e73423cc2374e06eaa0be9f51e9dab21909abbfa Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Tue, 12 Nov 2024 13:34:43 +1000 Subject: [PATCH] examples: enviro_sensor: Initial commit Signed-off-by: Alistair Francis --- examples/enviro_sensor/Makefile | 11 ++++++ examples/enviro_sensor/README.md | 5 +++ examples/enviro_sensor/main.c | 65 ++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 examples/enviro_sensor/Makefile create mode 100644 examples/enviro_sensor/README.md create mode 100644 examples/enviro_sensor/main.c diff --git a/examples/enviro_sensor/Makefile b/examples/enviro_sensor/Makefile new file mode 100644 index 000000000..cfe30ad8e --- /dev/null +++ b/examples/enviro_sensor/Makefile @@ -0,0 +1,11 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../.. + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/enviro_sensor/README.md b/examples/enviro_sensor/README.md new file mode 100644 index 000000000..faeca5395 --- /dev/null +++ b/examples/enviro_sensor/README.md @@ -0,0 +1,5 @@ +Environment Sensor +================== + +A simple example application that reads sensor data from the kernel and +prints it in a loop. diff --git a/examples/enviro_sensor/main.c b/examples/enviro_sensor/main.c new file mode 100644 index 000000000..d4b1fe953 --- /dev/null +++ b/examples/enviro_sensor/main.c @@ -0,0 +1,65 @@ +#include +#include + +#include +#include +#include +#include +#include + +int main(void) { + bool temp_exists = false; + bool humi_exists = false; + bool lux_exists = false; + bool mois_exists = false; + int humi = 0; + int temp = 0; + int lux = 0; + int mois = 0; + + printf("Probing data from sensors.\r\n"); + + if (libtock_temperature_exists()) { + printf("Temperature sensor exists.\r\n"); + temp_exists = true; + } + + if (libtock_humidity_exists()) { + printf("Humidity sensor exists.\r\n"); + humi_exists = true; + } + + if (libtock_ambient_light_exists()) { + printf("Ambient Light sensor exists.\r\n"); + lux_exists = true; + } + + if (libtock_moisture_exists()) { + printf("Moisture sensor exists.\r\n"); + mois_exists = true; + } + + while (1) { + if (temp_exists) { + libtocksync_temperature_read(&temp); + printf("Temperature: %dmC\r\n", temp); + } + + if (humi_exists) { + libtocksync_humidity_read(&humi); + printf("Humidity: %dm%%\r\n", humi); + } + + if (lux_exists) { + libtocksync_ambient_light_read_intensity(&lux); + printf("Ambient Light Intensity: %dlx\r\n", lux); + } + + if (mois_exists) { + libtocksync_moisture_read(&mois); + printf("Moisture: %dm%% \r\n", mois); + } + + libtocksync_alarm_delay_ms(4000); + } +}