AM2321 Temperature and Humidity Sensor mbed library

Dependents:   AM2321_Example mbed_vfd_thermometer

/media/uploads/tomozh/am2321_1.png/media/uploads/tomozh/p5061476.jpg

Import programAM2321_Example

AM2321 Temperature and Humidity Sensor mbed library Example

Import library

Public Member Functions

AM2321 (PinName sda, PinName scl)
Constructor.
bool poll ()
Read current temperature and humidity from AM2321 .
float getTemperature (void) const
Get last read temperature value.
float getHumidity (void) const
Get last read humidity value.
Committer:
tomozh
Date:
Tue May 06 10:21:11 2014 +0000
Revision:
0:d1c0dbf5e5a6
1st release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tomozh 0:d1c0dbf5e5a6 1 /**
tomozh 0:d1c0dbf5e5a6 2 * AM2321 (Aosong Guangzhou Electronics)
tomozh 0:d1c0dbf5e5a6 3 * Temperature and Humidity Sensor mbed library
tomozh 0:d1c0dbf5e5a6 4 * Last update : 2014/05/06
tomozh 0:d1c0dbf5e5a6 5 */
tomozh 0:d1c0dbf5e5a6 6
tomozh 0:d1c0dbf5e5a6 7 #ifndef __AM2321_H__
tomozh 0:d1c0dbf5e5a6 8 #define __AM2321_H__
tomozh 0:d1c0dbf5e5a6 9
tomozh 0:d1c0dbf5e5a6 10 /** AM2321 (Aosong Guangzhou Electronics)
tomozh 0:d1c0dbf5e5a6 11 * Temperature and Humidity Sensor mbed library
tomozh 0:d1c0dbf5e5a6 12 *
tomozh 0:d1c0dbf5e5a6 13 * Example:
tomozh 0:d1c0dbf5e5a6 14 * @code
tomozh 0:d1c0dbf5e5a6 15 * #include "mbed.h"
tomozh 0:d1c0dbf5e5a6 16 * #include "AM2321.h"
tomozh 0:d1c0dbf5e5a6 17 *
tomozh 0:d1c0dbf5e5a6 18 * Serial pc(USBTX, USBRX); // Tx, Rx
tomozh 0:d1c0dbf5e5a6 19 * AM2321 am2321(p28, p27); // SDA, SCL
tomozh 0:d1c0dbf5e5a6 20 *
tomozh 0:d1c0dbf5e5a6 21 * int main()
tomozh 0:d1c0dbf5e5a6 22 * {
tomozh 0:d1c0dbf5e5a6 23 * while(1)
tomozh 0:d1c0dbf5e5a6 24 * {
tomozh 0:d1c0dbf5e5a6 25 * if(am2321.poll())
tomozh 0:d1c0dbf5e5a6 26 * {
tomozh 0:d1c0dbf5e5a6 27 * pc.printf(":%05u,%.1f,%.1f\n"
tomozh 0:d1c0dbf5e5a6 28 * , count++
tomozh 0:d1c0dbf5e5a6 29 * , am2321.getTemperature()
tomozh 0:d1c0dbf5e5a6 30 * , am2321.getHumidity()
tomozh 0:d1c0dbf5e5a6 31 * );
tomozh 0:d1c0dbf5e5a6 32 * }
tomozh 0:d1c0dbf5e5a6 33 *
tomozh 0:d1c0dbf5e5a6 34 * wait(0.5);
tomozh 0:d1c0dbf5e5a6 35 * }
tomozh 0:d1c0dbf5e5a6 36 * }
tomozh 0:d1c0dbf5e5a6 37 * @endcode
tomozh 0:d1c0dbf5e5a6 38 */
tomozh 0:d1c0dbf5e5a6 39 class AM2321
tomozh 0:d1c0dbf5e5a6 40 {
tomozh 0:d1c0dbf5e5a6 41 private:
tomozh 0:d1c0dbf5e5a6 42 typedef struct tagRESULT
tomozh 0:d1c0dbf5e5a6 43 {
tomozh 0:d1c0dbf5e5a6 44 float temperature;
tomozh 0:d1c0dbf5e5a6 45 float humidity;
tomozh 0:d1c0dbf5e5a6 46 }RESULT;
tomozh 0:d1c0dbf5e5a6 47
tomozh 0:d1c0dbf5e5a6 48 public:
tomozh 0:d1c0dbf5e5a6 49 /** Constructor
tomozh 0:d1c0dbf5e5a6 50 * @param sda [in] I2C Pin name (SDA)
tomozh 0:d1c0dbf5e5a6 51 * @param scl [in] I2C Pin name (SCL)
tomozh 0:d1c0dbf5e5a6 52 */
tomozh 0:d1c0dbf5e5a6 53 AM2321(PinName sda, PinName scl);
tomozh 0:d1c0dbf5e5a6 54
tomozh 0:d1c0dbf5e5a6 55 /** Read current temperature and humidity from AM2321
tomozh 0:d1c0dbf5e5a6 56 * @return result (true=success)
tomozh 0:d1c0dbf5e5a6 57 */
tomozh 0:d1c0dbf5e5a6 58 bool poll();
tomozh 0:d1c0dbf5e5a6 59
tomozh 0:d1c0dbf5e5a6 60 /** Get last read temperature value
tomozh 0:d1c0dbf5e5a6 61 * @return temperature value (degress)
tomozh 0:d1c0dbf5e5a6 62 */
tomozh 0:d1c0dbf5e5a6 63 float getTemperature(void) const;
tomozh 0:d1c0dbf5e5a6 64
tomozh 0:d1c0dbf5e5a6 65 /** Get last read humidity value
tomozh 0:d1c0dbf5e5a6 66 * @return humidity value (%RH)
tomozh 0:d1c0dbf5e5a6 67 */
tomozh 0:d1c0dbf5e5a6 68 float getHumidity(void) const;
tomozh 0:d1c0dbf5e5a6 69
tomozh 0:d1c0dbf5e5a6 70 private:
tomozh 0:d1c0dbf5e5a6 71 float getLogicalValue(uint16_t regVal) const;
tomozh 0:d1c0dbf5e5a6 72 uint16_t calcCRC16(const uint8_t* src, int len) const;
tomozh 0:d1c0dbf5e5a6 73
tomozh 0:d1c0dbf5e5a6 74 I2C _i2c;
tomozh 0:d1c0dbf5e5a6 75 RESULT _result;
tomozh 0:d1c0dbf5e5a6 76 };
tomozh 0:d1c0dbf5e5a6 77
tomozh 0:d1c0dbf5e5a6 78
tomozh 0:d1c0dbf5e5a6 79 #endif // __AM2321_H__