mbed Weather Platform SD memory logger

Dependencies:   mbed

Committer:
okini3939
Date:
Wed Dec 01 14:27:29 2010 +0000
Revision:
1:14bf00e73e45
Parent:
0:88b426acd89c

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:88b426acd89c 1 /* mbed module to use a Sensirion SHT1x /SHT7x sensor
okini3939 0:88b426acd89c 2 * Copyright (c) 2007-2009 Stephen McGarry
okini3939 0:88b426acd89c 3 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:88b426acd89c 4 */
okini3939 0:88b426acd89c 5 #ifndef SHT_H
okini3939 0:88b426acd89c 6 #define SHT_H
okini3939 0:88b426acd89c 7
okini3939 0:88b426acd89c 8 #include "mbed.h"
okini3939 0:88b426acd89c 9
okini3939 0:88b426acd89c 10 enum SHT_acc {
okini3939 0:88b426acd89c 11 SHT_low=0,
okini3939 0:88b426acd89c 12 SHT_high=1
okini3939 0:88b426acd89c 13 };
okini3939 0:88b426acd89c 14
okini3939 0:88b426acd89c 15 typedef unsigned char byte;
okini3939 0:88b426acd89c 16
okini3939 0:88b426acd89c 17 class SHT : public Base {
okini3939 0:88b426acd89c 18 public:
okini3939 0:88b426acd89c 19 /* Constructor: SHT
okini3939 0:88b426acd89c 20 * Creates an SHT interface connected to specific pins.
okini3939 0:88b426acd89c 21 *
okini3939 0:88b426acd89c 22 */
okini3939 0:88b426acd89c 23 SHT(PinName p_sclk, PinName p_data, SHT_acc p_accuracy);
okini3939 0:88b426acd89c 24
okini3939 0:88b426acd89c 25 /* Functions
okini3939 0:88b426acd89c 26 */
okini3939 0:88b426acd89c 27 float get_temperature(); // get the most recent temp reading
okini3939 0:88b426acd89c 28 float get_humidity(); // get the most recent humidity reading
okini3939 0:88b426acd89c 29 float get_dewpoint(); // get the most recent dewpoint value
okini3939 0:88b426acd89c 30 void update(SHT_acc accuracy); // update stored values from sensor
okini3939 0:88b426acd89c 31
okini3939 0:88b426acd89c 32 protected:
okini3939 0:88b426acd89c 33 byte read_byte(bool send_ack);
okini3939 0:88b426acd89c 34 char write_byte(byte value);
okini3939 0:88b426acd89c 35 void trans_start(void);
okini3939 0:88b426acd89c 36 void connection_reset(void);
okini3939 0:88b426acd89c 37 char soft_reset();
okini3939 0:88b426acd89c 38 char read_status(byte &value);
okini3939 0:88b426acd89c 39 char write_status(byte value);
okini3939 0:88b426acd89c 40 char measure(int &value, byte mode);
okini3939 0:88b426acd89c 41 void calculate();
okini3939 0:88b426acd89c 42
okini3939 0:88b426acd89c 43 DigitalOut sclk;
okini3939 0:88b426acd89c 44 DigitalInOut data;
okini3939 0:88b426acd89c 45 SHT_acc accuracy; // will we use high or low accuracy mode on the sensor
okini3939 0:88b426acd89c 46
okini3939 0:88b426acd89c 47 float temperature; // calculated from sensor reading
okini3939 0:88b426acd89c 48 float humidity;
okini3939 0:88b426acd89c 49 float dewpoint;
okini3939 0:88b426acd89c 50 int temp,hum; // integer values from sensor before conversion
okini3939 0:88b426acd89c 51
okini3939 0:88b426acd89c 52 enum commands {
okini3939 0:88b426acd89c 53 com_read_status_reg=0x06,
okini3939 0:88b426acd89c 54 com_write_status_reg=0x07,
okini3939 0:88b426acd89c 55 com_measure_temp=0x03,
okini3939 0:88b426acd89c 56 com_measure_humid=0x05,
okini3939 0:88b426acd89c 57 com_reset=0x1E
okini3939 0:88b426acd89c 58 };
okini3939 0:88b426acd89c 59
okini3939 0:88b426acd89c 60 enum acks {
okini3939 0:88b426acd89c 61 no_ack=0,
okini3939 0:88b426acd89c 62 send_ack=1
okini3939 0:88b426acd89c 63 };
okini3939 0:88b426acd89c 64 };
okini3939 0:88b426acd89c 65
okini3939 0:88b426acd89c 66 #endif