![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Cayenne demo
Dependencies: Cayenne-MQTT-mbed NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed Servo
Fork of Cayenne-X-NUCLEO-IDW01M1-TMP36 by
BMP180/BME280.hpp@9:668337c0fb8a, 2017-08-29 (annotated)
- Committer:
- rozendhyan
- Date:
- Tue Aug 29 17:11:37 2017 +0000
- Revision:
- 9:668337c0fb8a
- Parent:
- 6:cec678bb15ef
remove not used argument & define
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rozendhyan | 6:cec678bb15ef | 1 | #include "mbed.h" |
rozendhyan | 6:cec678bb15ef | 2 | #define size 14 |
rozendhyan | 6:cec678bb15ef | 3 | Serial sensor(PA_11,PA_12); |
rozendhyan | 6:cec678bb15ef | 4 | Serial pc(USBTX,USBRX); |
rozendhyan | 6:cec678bb15ef | 5 | int AT[3] = {0xA5,0x52,0xF7}; |
rozendhyan | 6:cec678bb15ef | 6 | class BME280{ |
rozendhyan | 6:cec678bb15ef | 7 | public: |
rozendhyan | 6:cec678bb15ef | 8 | void judgement_data(char buf[]); |
rozendhyan | 6:cec678bb15ef | 9 | int Temp_read(); |
rozendhyan | 6:cec678bb15ef | 10 | |
rozendhyan | 6:cec678bb15ef | 11 | private: |
rozendhyan | 6:cec678bb15ef | 12 | void receive(); |
rozendhyan | 6:cec678bb15ef | 13 | void send_AT(); |
rozendhyan | 6:cec678bb15ef | 14 | char buf[size]; |
rozendhyan | 6:cec678bb15ef | 15 | int Lux,Temp,Preesure,Hum,Height; |
rozendhyan | 6:cec678bb15ef | 16 | |
rozendhyan | 6:cec678bb15ef | 17 | }; |
rozendhyan | 6:cec678bb15ef | 18 | void BME280::judgement_data(char buf[]){ |
rozendhyan | 6:cec678bb15ef | 19 | int i=0; |
rozendhyan | 6:cec678bb15ef | 20 | if(buf[i++]== 0x5A){ |
rozendhyan | 6:cec678bb15ef | 21 | //pc.printf("first_step\n"); |
rozendhyan | 6:cec678bb15ef | 22 | if(buf[i++]== 0x5A){ |
rozendhyan | 6:cec678bb15ef | 23 | //pc.printf("second_step\n"); |
rozendhyan | 6:cec678bb15ef | 24 | //i++;//go to data type |
rozendhyan | 6:cec678bb15ef | 25 | if(buf[i] == 0x15){ |
rozendhyan | 6:cec678bb15ef | 26 | //pc.printf("Lux type\n"); |
rozendhyan | 6:cec678bb15ef | 27 | i++;//04 |
rozendhyan | 6:cec678bb15ef | 28 | Lux = ((buf[i+1]<<24) | (buf[i+2]<<16) | (buf[i+3]<<8) | buf[i+4])/100; |
rozendhyan | 6:cec678bb15ef | 29 | //Lux = (0x00<<24) | (0x00<<16) | (0xFE<<8) | 0x40;//test |
rozendhyan | 6:cec678bb15ef | 30 | //pc.printf("Lux = %d\n", Lux); |
rozendhyan | 6:cec678bb15ef | 31 | }else if(buf[i] == 0x45){ |
rozendhyan | 6:cec678bb15ef | 32 | //pc.printf("temp type\n"); |
rozendhyan | 6:cec678bb15ef | 33 | i++;//0A |
rozendhyan | 6:cec678bb15ef | 34 | Temp = ((buf[i+1]<<8)|(buf[i+2]))/100; |
rozendhyan | 6:cec678bb15ef | 35 | Preesure = ((buf[i+3]<<24)|(buf[i+4]<<16)|(buf[i+5]<<8)|(buf[i+6]))/100; |
rozendhyan | 6:cec678bb15ef | 36 | Hum = ((buf[i+7]<<8)|(buf[i+8]))/100; |
rozendhyan | 6:cec678bb15ef | 37 | Height = ((buf[i+9]<<8)|(buf[i+10])); |
rozendhyan | 6:cec678bb15ef | 38 | //pc.printf("Temp = %d\n", Temp); |
rozendhyan | 6:cec678bb15ef | 39 | //pc.printf("Preesure = %d\n", Preesure); |
rozendhyan | 6:cec678bb15ef | 40 | //pc.printf("Hum = %d\n", Hum); |
rozendhyan | 6:cec678bb15ef | 41 | //pc.printf("Height = %d\n", Height); |
rozendhyan | 6:cec678bb15ef | 42 | } |
rozendhyan | 6:cec678bb15ef | 43 | } |
rozendhyan | 6:cec678bb15ef | 44 | } |
rozendhyan | 6:cec678bb15ef | 45 | } |
rozendhyan | 6:cec678bb15ef | 46 | void BME280::receive(){ |
rozendhyan | 6:cec678bb15ef | 47 | for(int i=0;i<size;i++){ |
rozendhyan | 6:cec678bb15ef | 48 | buf[i] = sensor.getc(); |
rozendhyan | 6:cec678bb15ef | 49 | //pc.putc(buf[i]); |
rozendhyan | 6:cec678bb15ef | 50 | } |
rozendhyan | 6:cec678bb15ef | 51 | |
rozendhyan | 6:cec678bb15ef | 52 | } |
rozendhyan | 6:cec678bb15ef | 53 | void BME280::send_AT(){ |
rozendhyan | 6:cec678bb15ef | 54 | for(int i=0;i<3;i++){ |
rozendhyan | 6:cec678bb15ef | 55 | sensor.putc(AT[i]); |
rozendhyan | 6:cec678bb15ef | 56 | //pc.putc(AT[i]); |
rozendhyan | 6:cec678bb15ef | 57 | } |
rozendhyan | 6:cec678bb15ef | 58 | } |
rozendhyan | 6:cec678bb15ef | 59 | int BME280::Temp_read(){ |
rozendhyan | 6:cec678bb15ef | 60 | send_AT(); |
rozendhyan | 6:cec678bb15ef | 61 | //wait(0.2); |
rozendhyan | 6:cec678bb15ef | 62 | receive(); |
rozendhyan | 6:cec678bb15ef | 63 | //wait(0.2); |
rozendhyan | 6:cec678bb15ef | 64 | judgement_data(this->buf); |
rozendhyan | 6:cec678bb15ef | 65 | |
rozendhyan | 6:cec678bb15ef | 66 | return Temp; |
rozendhyan | 6:cec678bb15ef | 67 | } |