From c484056cf0b756f34751d910c32950811808310b Mon Sep 17 00:00:00 2001 From: Mihai Tudor Panu Date: Mon, 8 May 2017 17:52:46 -0700 Subject: [PATCH] htu21d: add js and py samples, put sensor on known limitations list Signed-off-by: Mihai Tudor Panu --- docs/knownlimitations.md | 8 ++++--- examples/javascript/htu21d.js | 45 +++++++++++++++++++++++++++++++++++ examples/python/htu21d.py | 43 +++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 examples/javascript/htu21d.js create mode 100644 examples/python/htu21d.py diff --git a/docs/knownlimitations.md b/docs/knownlimitations.md index d7957b4b..7cc62fb5 100644 --- a/docs/knownlimitations.md +++ b/docs/knownlimitations.md @@ -53,11 +53,11 @@ such sensors and known workarounds if they exist. * **Grove BLE** (HM-11) does not return data on the Intel Galileo board due to known UART limitation. * **Grove Hall Sensor** (A11X) if the base shield is set to 3V on Intel Edison, - it will trigger continous callbacks when the sensor is not reading anything. + it will trigger continuous callbacks when the sensor is not reading anything. * **Grove RTC** (DS1307) is not compatible with the Intel Edison Arduino board but will work with the Mini-breakout. - * **Grove Tempture & Humidity (High-Accuracy & Mini) Sensor** (TH02) only works - with the Intel Edison Arduino board when powered from the 3.3V rail. + * **Grove Temperature & Humidity (High-Accuracy & Mini) Sensor** (TH02) only + works with the Intel Edison Arduino board when powered from the 3.3V rail. #### Adafruit Sensors @@ -78,6 +78,8 @@ This affects the **DS18B20**, **DS2413** and **DFREC** drivers. #### Other Sensors + * **HTU21D** is unstable on the Intel Edison with the Arduino breakout and + will throw an error when it can't complete an update call. * **MLX90614** is not compatible with the Intel Galileo due to the inability to change the I2C bus speed to 100 KHz. * **MICSV89** is not compatible with the Intel Galileo due to the inability to diff --git a/examples/javascript/htu21d.js b/examples/javascript/htu21d.js new file mode 100644 index 00000000..1ec055cd --- /dev/null +++ b/examples/javascript/htu21d.js @@ -0,0 +1,45 @@ +/* + * Author: Mihai Tudor Panu + * Copyright (c) 2017 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//Load the library +var upm = require('jsupm_htu21d'); + +//Create a sensor instance +var sensor = new upm.HTU21D(0); + +//Update sensor data and print the values every second +var ival = setInterval(function () { + sensor.sampleData(); + console.log("Relative Humidity: " + sensor.getHumidity() + "%"); + console.log("Compensated RH: " + sensor.getCompRH() + "%"); + console.log("Temperature: " + sensor.getTemperature() + "C"); + console.log("Dew Point: " + sensor.getDewPoint() + "C"); +}, 1000); + +//Clear interval and exit on ^C +process.on('SIGINT', function() +{ + clearInterval(ival); + process.exit(0); +}); diff --git a/examples/python/htu21d.py b/examples/python/htu21d.py new file mode 100644 index 00000000..eb3869c3 --- /dev/null +++ b/examples/python/htu21d.py @@ -0,0 +1,43 @@ +from __future__ import print_function +# Author: Mihai Tudor Panu +# Copyright (c) 2017 Intel Corporation. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +from time import sleep +from upm import pyupm_htu21d as htu21d + +def main(): + # Create an I2C sensor object + sensor = htu21d.HTU21D(0) + + # Loop indefinitely, updating data and printing values + while True: + sensor.sampleData() + print("Relative Humidity: %f %%" % sensor.getHumidity()) + print("Compensated RH: %f %%" % sensor.getCompRH()) + print("Temperature: %f C" % sensor.getTemperature()) + print("Dew Point: %f C" % sensor.getDewPoint()) + + # Sleep for 1 s + sleep(1) + +if __name__ == '__main__': + main()