sr501/BH1750/mq-2/dht11

Dependencies:   mbed

Fork of sensors_2 by w mx

Committer:
xmwmx
Date:
Fri Sep 14 10:52:15 2018 +0000
Revision:
3:31aec950f7dc
Parent:
2:cd0ea77c7d66
Child:
4:fe1e9f9c7b33
sr501/BH1750/mq-2/dht11

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Dennis_Yu 0:6dca851b4779 1 #ifndef SENSORS_H
Dennis_Yu 0:6dca851b4779 2 #define SENSORS_H
Dennis_Yu 0:6dca851b4779 3
Dennis_Yu 0:6dca851b4779 4 #include "mbed.h"
xmwmx 2:cd0ea77c7d66 5
xmwmx 1:1197997ae0ea 6 //+++++++++++++++++++++BH1750+++++++++++++++++++++++++++++
xmwmx 1:1197997ae0ea 7 #define BH1750_I2CADDR 0x46
xmwmx 1:1197997ae0ea 8 #define BH1750_POWER_DOWN 0x00 // No active state
xmwmx 1:1197997ae0ea 9 #define BH1750_POWER_ON 0x01 // Wating for measurment command
xmwmx 1:1197997ae0ea 10 #define BH1750_RESET 0x07 // Reset data register value - not accepted in POWER_DOWN mode
xmwmx 1:1197997ae0ea 11 #define BH1750_CONTINUOUS_HIGH_RES_MODE 0x10 // Start measurement at 1lx resolution. Measurement time is approx 120ms.
xmwmx 1:1197997ae0ea 12 #define BH1750_CONTINUOUS_HIGH_RES_MODE_2 0x11 // Start measurement at 0.5lx resolution. Measurement time is approx 120ms.
xmwmx 1:1197997ae0ea 13 #define BH1750_CONTINUOUS_LOW_RES_MODE 0x13 // Start measurement at 4lx resolution. Measurement time is approx 16ms.
xmwmx 1:1197997ae0ea 14
xmwmx 1:1197997ae0ea 15 // Start measurement at 1lx resolution. Measurement time is approx 120ms.
xmwmx 1:1197997ae0ea 16 // Device is automatically set to Power Down after measurement.
xmwmx 1:1197997ae0ea 17 #define BH1750_ONE_TIME_HIGH_RES_MODE 0x20
xmwmx 1:1197997ae0ea 18
xmwmx 1:1197997ae0ea 19 // Start measurement at 0.5lx resolution. Measurement time is approx 120ms.
xmwmx 1:1197997ae0ea 20 // Device is automatically set to Power Down after measurement.
xmwmx 1:1197997ae0ea 21 #define BH1750_ONE_TIME_HIGH_RES_MODE_2 0x21
xmwmx 1:1197997ae0ea 22
xmwmx 1:1197997ae0ea 23 // Start measurement at 1lx resolution. Measurement time is approx 120ms.
xmwmx 1:1197997ae0ea 24 // Device is automatically set to Power Down after measurement.
xmwmx 1:1197997ae0ea 25 #define BH1750_ONE_TIME_LOW_RES_MODE 0x23
xmwmx 1:1197997ae0ea 26 //++++++++++++++++++++++++++++++++++++++++
xmwmx 1:1197997ae0ea 27
xmwmx 2:cd0ea77c7d66 28 //==========================================
Dennis_Yu 0:6dca851b4779 29 class sr501
Dennis_Yu 0:6dca851b4779 30 {
Dennis_Yu 0:6dca851b4779 31 /*****
Dennis_Yu 0:6dca851b4779 32 * 红外热释电对象
Dennis_Yu 0:6dca851b4779 33 * 感应输出高电平
Dennis_Yu 0:6dca851b4779 34 *****/
Dennis_Yu 0:6dca851b4779 35 private:
Dennis_Yu 0:6dca851b4779 36 // DigitalIn signal;
Dennis_Yu 0:6dca851b4779 37 bool status;
xmwmx 2:cd0ea77c7d66 38 InterruptIn signal;
Dennis_Yu 0:6dca851b4779 39 void triggered();
Dennis_Yu 0:6dca851b4779 40 public:
Dennis_Yu 0:6dca851b4779 41 sr501(PinName pSignal);
xmwmx 1:1197997ae0ea 42 bool operator==(const bool &target);
Dennis_Yu 0:6dca851b4779 43 void reset();
xmwmx 1:1197997ae0ea 44 int read();
Dennis_Yu 0:6dca851b4779 45 };
xmwmx 1:1197997ae0ea 46 //=========================================
xmwmx 1:1197997ae0ea 47 class BH1750
xmwmx 1:1197997ae0ea 48 {
xmwmx 1:1197997ae0ea 49
xmwmx 1:1197997ae0ea 50 /*****
xmwmx 2:cd0ea77c7d66 51 *
xmwmx 1:1197997ae0ea 52 *****/
xmwmx 1:1197997ae0ea 53 private:
xmwmx 1:1197997ae0ea 54 I2C link;
xmwmx 1:1197997ae0ea 55 char rawdata[2];
xmwmx 1:1197997ae0ea 56 bool status;
xmwmx 1:1197997ae0ea 57 public:
xmwmx 1:1197997ae0ea 58 BH1750(PinName sda,PinName scl);
xmwmx 1:1197997ae0ea 59 BH1750(PinName sda,PinName scl,char mode[]);
xmwmx 1:1197997ae0ea 60 float getlightdata();
xmwmx 1:1197997ae0ea 61 };
xmwmx 2:cd0ea77c7d66 62 //===========================================
xmwmx 2:cd0ea77c7d66 63 class mq
xmwmx 2:cd0ea77c7d66 64 {
xmwmx 2:cd0ea77c7d66 65 /*****
xmwmx 2:cd0ea77c7d66 66 *
xmwmx 2:cd0ea77c7d66 67 *****/
xmwmx 2:cd0ea77c7d66 68 private:
xmwmx 2:cd0ea77c7d66 69 bool status;
xmwmx 2:cd0ea77c7d66 70 InterruptIn signal;
xmwmx 2:cd0ea77c7d66 71 AnalogIn signallevel;
xmwmx 2:cd0ea77c7d66 72
xmwmx 2:cd0ea77c7d66 73 void triggered();
xmwmx 2:cd0ea77c7d66 74 public:
xmwmx 2:cd0ea77c7d66 75 mq(PinName dio);
xmwmx 2:cd0ea77c7d66 76 mq(PinName dio,PinName aio);
xmwmx 2:cd0ea77c7d66 77 bool operator==(const bool &target);
xmwmx 2:cd0ea77c7d66 78 float getairdata();
xmwmx 2:cd0ea77c7d66 79 void reset();
xmwmx 3:31aec950f7dc 80 int read();
xmwmx 2:cd0ea77c7d66 81 };
xmwmx 2:cd0ea77c7d66 82
xmwmx 2:cd0ea77c7d66 83 //===========================================
xmwmx 3:31aec950f7dc 84 class dht11
xmwmx 3:31aec950f7dc 85 {
xmwmx 3:31aec950f7dc 86 /*****
xmwmx 3:31aec950f7dc 87 *
xmwmx 3:31aec950f7dc 88 *****/
xmwmx 3:31aec950f7dc 89 private:
xmwmx 3:31aec950f7dc 90 Timer timer;
xmwmx 3:31aec950f7dc 91 Timer starttime;
xmwmx 3:31aec950f7dc 92 DigitalInOut datapin;
xmwmx 3:31aec950f7dc 93 float H;
xmwmx 3:31aec950f7dc 94 float T;
xmwmx 3:31aec950f7dc 95 public:
xmwmx 3:31aec950f7dc 96 dht11(PinName pin);
xmwmx 3:31aec950f7dc 97 int getdata();
xmwmx 3:31aec950f7dc 98 float gethumidity();
xmwmx 3:31aec950f7dc 99 float gettemperature();
xmwmx 3:31aec950f7dc 100
xmwmx 3:31aec950f7dc 101 };
xmwmx 3:31aec950f7dc 102 //=======================
Dennis_Yu 0:6dca851b4779 103 #endif