windown

Dependencies:   SDFileSystem WIZnetInterface mbed-src

Committer:
schenk
Date:
Mon Oct 05 06:42:59 2015 +0000
Revision:
0:1501dea8d383
window

Who changed what in which revision?

UserRevisionLine numberNew contents of line
schenk 0:1501dea8d383 1 /*
schenk 0:1501dea8d383 2 * DHT Library for Digital-output Humidity and Temperature sensors
schenk 0:1501dea8d383 3 *
schenk 0:1501dea8d383 4 * Works with DHT11, DHT21, DHT22
schenk 0:1501dea8d383 5 * SEN11301P, Grove - Temperature&Humidity Sensor (Seeed Studio)
schenk 0:1501dea8d383 6 * SEN51035P, Grove - Temperature&Humidity Sensor Pro (Seeed Studio)
schenk 0:1501dea8d383 7 * AM2302 , temperature-humidity sensor
schenk 0:1501dea8d383 8 * RHT01,RHT02, RHT03 , Humidity and Temperature Sensor (Sparkfun)
schenk 0:1501dea8d383 9 *
schenk 0:1501dea8d383 10 * Copyright (C) Wim De Roeve
schenk 0:1501dea8d383 11 * based on DHT22 sensor library by HO WING KIT
schenk 0:1501dea8d383 12 * Arduino DHT11 library
schenk 0:1501dea8d383 13 *
schenk 0:1501dea8d383 14 * Permission is hereby granted, free of charge, to any person obtaining a copy
schenk 0:1501dea8d383 15 * of this software and associated documnetation files (the "Software"), to deal
schenk 0:1501dea8d383 16 * in the Software without restriction, including without limitation the rights
schenk 0:1501dea8d383 17 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
schenk 0:1501dea8d383 18 * copies of the Software, and to permit persons to whom the Software is
schenk 0:1501dea8d383 19 * furished to do so, subject to the following conditions:
schenk 0:1501dea8d383 20 *
schenk 0:1501dea8d383 21 * The above copyright notice and this permission notice shall be included in
schenk 0:1501dea8d383 22 * all copies or substantial portions of the Software.
schenk 0:1501dea8d383 23 *
schenk 0:1501dea8d383 24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
schenk 0:1501dea8d383 25 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
schenk 0:1501dea8d383 26 * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
schenk 0:1501dea8d383 27 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
schenk 0:1501dea8d383 28 * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
schenk 0:1501dea8d383 29 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
schenk 0:1501dea8d383 30 * THE SOFTWARE.
schenk 0:1501dea8d383 31 */
schenk 0:1501dea8d383 32
schenk 0:1501dea8d383 33 #ifndef MBED_DHT_H
schenk 0:1501dea8d383 34 #define MBED_DHT_H
schenk 0:1501dea8d383 35
schenk 0:1501dea8d383 36 #include "mbed.h"
schenk 0:1501dea8d383 37
schenk 0:1501dea8d383 38 typedef enum eType eType;
schenk 0:1501dea8d383 39 enum eType {
schenk 0:1501dea8d383 40 DHT11 = 11,
schenk 0:1501dea8d383 41 SEN11301P = 11,
schenk 0:1501dea8d383 42 RHT01 = 11,
schenk 0:1501dea8d383 43 DHT22 = 22,
schenk 0:1501dea8d383 44 AM2302 = 22,
schenk 0:1501dea8d383 45 SEN51035P = 22,
schenk 0:1501dea8d383 46 RHT02 = 22,
schenk 0:1501dea8d383 47 RHT03 = 22
schenk 0:1501dea8d383 48 };
schenk 0:1501dea8d383 49
schenk 0:1501dea8d383 50 typedef enum eError eError;
schenk 0:1501dea8d383 51 enum eError {
schenk 0:1501dea8d383 52 ERROR_NONE = 0,
schenk 0:1501dea8d383 53 BUS_BUSY,
schenk 0:1501dea8d383 54 ERROR_NOT_PRESENT,
schenk 0:1501dea8d383 55 ERROR_ACK_TOO_LONG,
schenk 0:1501dea8d383 56 ERROR_SYNC_TIMEOUT,
schenk 0:1501dea8d383 57 ERROR_DATA_TIMEOUT,
schenk 0:1501dea8d383 58 ERROR_CHECKSUM,
schenk 0:1501dea8d383 59 ERROR_NO_PATIENCE
schenk 0:1501dea8d383 60 };
schenk 0:1501dea8d383 61
schenk 0:1501dea8d383 62 typedef enum eScale eScale;
schenk 0:1501dea8d383 63 enum eScale {
schenk 0:1501dea8d383 64 CELCIUS = 0,
schenk 0:1501dea8d383 65 FARENHEIT,
schenk 0:1501dea8d383 66 KELVIN
schenk 0:1501dea8d383 67 };
schenk 0:1501dea8d383 68
schenk 0:1501dea8d383 69
schenk 0:1501dea8d383 70 class DHT
schenk 0:1501dea8d383 71 {
schenk 0:1501dea8d383 72
schenk 0:1501dea8d383 73 public:
schenk 0:1501dea8d383 74
schenk 0:1501dea8d383 75 DHT(PinName pin, eType DHTtype);
schenk 0:1501dea8d383 76 ~DHT();
schenk 0:1501dea8d383 77 eError readData(void);
schenk 0:1501dea8d383 78 float ReadHumidity(void);
schenk 0:1501dea8d383 79 float ReadTemperature(eScale const Scale);
schenk 0:1501dea8d383 80 float CalcdewPoint(float const celsius, float const humidity);
schenk 0:1501dea8d383 81 float CalcdewPointFast(float const celsius, float const humidity);
schenk 0:1501dea8d383 82
schenk 0:1501dea8d383 83 private:
schenk 0:1501dea8d383 84 time_t _lastReadTime;
schenk 0:1501dea8d383 85 float _lastTemperature;
schenk 0:1501dea8d383 86 float _lastHumidity;
schenk 0:1501dea8d383 87 PinName _pin;
schenk 0:1501dea8d383 88 bool _firsttime;
schenk 0:1501dea8d383 89 eType _DHTtype;
schenk 0:1501dea8d383 90 uint8_t DHT_data[5];
schenk 0:1501dea8d383 91 float CalcTemperature();
schenk 0:1501dea8d383 92 float CalcHumidity();
schenk 0:1501dea8d383 93 float ConvertCelciustoFarenheit(float const);
schenk 0:1501dea8d383 94 float ConvertCelciustoKelvin(float const);
schenk 0:1501dea8d383 95 eError stall(DigitalInOut &io, int const level, int const max_time);
schenk 0:1501dea8d383 96
schenk 0:1501dea8d383 97 };
schenk 0:1501dea8d383 98
schenk 0:1501dea8d383 99 #endif