mbed Weather Platform post to Pachube

Dependencies:   mbed NetServices

Committer:
okini3939
Date:
Wed Dec 01 15:13:50 2010 +0000
Revision:
0:126d52039477

        

Who changed what in which revision?

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