trainning_template

Dependencies:   mbed

Revision:
5:7534fc9248a8
Parent:
4:fe1e9f9c7b33
Child:
6:398753e95e87
--- a/sensors.cpp	Thu Oct 18 16:23:13 2018 +0000
+++ b/sensors.cpp	Tue Dec 01 05:21:19 2020 +0000
@@ -1,12 +1,220 @@
 #include "sensors.h"
 #include "mbed.h"
 
-extern Serial usb2pc;  
-extern DigitalOut myled;
+//extern Serial usb2pc;  
+// extern DigitalOut myled;
+
+//==============================================YL-38
+YL::YL(PinName dio)
+    : status(false), signal(dio),signallevel(PC_13)
+{
+    signal.fall(this, &YL::triggered);
+//    usb2pc.printf("YL start!\r\n");
+}
+//--------
+YL::YL(PinName dio,PinName aio)
+    : status(false), signal(dio),signallevel(aio)
+{
+    signal.fall(this, &YL::triggered);
+//    usb2pc.printf("YL start!\r\n");
+}
+//--------
+void YL::triggered()                                     //触发中断!!
+{
+//    usb2pc.printf("YL Triggered!\r\n");
+    status = true;
+}
+//--------
+bool YL::operator==(const bool &target)
+{
+    if(status == target)
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+//--------
+float YL::getairdata()
+{
+    return signallevel.read();
+}  
+//-----------
+void YL::reset()
+{
+    status = false;
+}
+int YL::read()
+{
+    return signal.read();
+}
+
+//==============================================MQ-2
+mq::mq(PinName dio)
+    : status(false), signal(dio),signallevel(PC_13)
+{
+    signal.fall(this, &mq::triggered);
+//    usb2pc.printf("mq start!\r\n");
+}
+//--------
+mq::mq(PinName dio,PinName aio)
+    : status(false), signal(dio),signallevel(aio)
+{
+    signal.fall(this, &mq::triggered);
+//    usb2pc.printf("mq start!\r\n");
+}
+//--------
+void mq::triggered()                                     //触发中断!!
+{
+//    usb2pc.printf("mq Triggered!\r\n");
+    status = true;
+}
+//--------
+bool mq::operator==(const bool &target)
+{
+    if(status == target)
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+//--------
+float mq::getairdata()
+{
+    return signallevel.read();
+}  
+//-----------
+void mq::reset()
+{
+    status = false;
+}
+int mq::read()
+{
+    return signal.read();
+}
+
+
+//===========================================DHT11
+dht11::dht11(PinName pin)
+    :datapin(pin)
+{
+    starttime.start();
+//    usb2pc.printf("dht11 start!\r\n");
+}
+//----------
+int dht11::getdata()
+{
+    int timeout=10000;
+    uint8_t data[5];
+    uint8_t bit=7;
+    uint8_t count=0;
+        
+    for(int i=0;i<5;i++)
+    {
+        data[i]=0;
+    }
+    if(starttime.read_ms()<1500){while(starttime.read_ms()<1500){}starttime.stop();}
+        
+    datapin.output();
+    datapin=0;
+    wait_ms(19);
+    datapin=1;
+    wait_us(30);
+    datapin.input();
+        
+    while(!datapin)
+    {
+//        if(timeout--==0){usb2pc.printf("timeout!no reset\r\n");return 0;}
+        if(timeout--==0){return 0;}
+    }
+    timeout=10000;
+    while(datapin)
+    {
+//        if(timeout--==0){usb2pc.printf("timeout!no respanse\r\n");return 0;}
+        if(timeout--==0){return 0;}
+    }
+    timeout=10000;
+    for(int i=0;i<40;i++)
+    {
+        while(!datapin)
+        {
+//            if(timeout--==0){usb2pc.printf("timeout!\r\n");return 0;}
+            if(timeout--==0){return 0;}
+        }
+        timer.start();
+        timeout=10000;
+        while(datapin)
+        {
+//            if(timeout--==0){usb2pc.printf("timeout!n\r\n");return 0;}
+            if(timeout--==0){return 0;}
+        }
+        timeout=10000;
+        long t=timer.read_us();
+        timer.stop();
+        timer.reset();
+            
+        if(bit==0)
+        {
+            if(t>40){data[count]|=(1<<bit);}
+            bit=7;
+            count++;
+        }
+        else
+        {
+            if(t>40)
+            {
+                data[count]|=(1<<bit);
+            }
+            bit--;
+        }
+    }
+    datapin=1;
+    if(data[4]==data[0]+data[1]+data[2]+data[3])
+    {
+        //usb2pc.printf("Humidity (%):%f\r\n",(float)data[0]);
+        //usb2pc.printf("Temperature (oC): %f\r\n",(float)data[2]);
+        H=data[0]+data[1]/10.0;
+        T=data[2]+data[3]/10.0;
+        return 1;
+    }
+//    else{usb2pc.printf("error!\r\ndata0:%d\tdata1:%d\r\ndata2:%d\tdata3:%d\r\ndata4:%d\r\n",(int)data[0],(int)data[1],(int)data[2],(int)data[3],(int)data[4]);return 0;}
+       else{return 0;}
+}  
+//-------
+float dht11::gethumidity()
+{
+    return H;
+}
+//-------
+float dht11::gettemperature()
+{
+    return T;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 //============================================================SR501
 void sr501::triggered()                                     //触发中断!!
 {
-    usb2pc.printf("sr501 Triggered!\r\n");
+//    usb2pc.printf("sr501 Triggered!\r\n");
     status = true;
 }
 //--------
@@ -14,7 +222,7 @@
     : status(false), signal(pSignal)
 {
     signal.rise(this, &sr501::triggered);
-    usb2pc.printf("sr501 start!\r\n");
+//    usb2pc.printf("sr501 start!\r\n");
 }
 //-------
 bool sr501::operator==(const bool &target)
@@ -50,7 +258,7 @@
         status = link.write(BH1750_I2CADDR, mode, sizeof(mode), false);
         wait_ms(10);
     }
-    usb2pc.printf("BH1750 start with default mode!\r\n");
+//    usb2pc.printf("BH1750 start with default mode!\r\n");
 }
 //--------
 BH1750::BH1750(PinName sda,PinName scl,char mode[])           //启动光强!!!!!(自定义设置)
@@ -62,7 +270,7 @@
         status = link.write(BH1750_I2CADDR, mode, sizeof(mode), false);
         wait_ms(10);
     }
-    usb2pc.printf("BH1750 start with customize mode!\r\n");    
+//    usb2pc.printf("BH1750 start with customize mode!\r\n");    
 }
 //--------
 float BH1750::getlightdata()                                //读取光强(lux)
@@ -76,152 +284,17 @@
     }
     else
     {
-        usb2pc.printf("BH1750 read fail!\r\n");
+//        usb2pc.printf("BH1750 read fail!\r\n");
         return -1;
     }
 }
-//==============================================MQ-2
-mq::mq(PinName dio)
-    : status(false), signal(dio),signallevel(PC_13)
-{
-    signal.fall(this, &mq::triggered);
-    usb2pc.printf("mq start!\r\n");
-}
-//--------
-mq::mq(PinName dio,PinName aio)
-    : status(false), signal(dio),signallevel(aio)
-{
-    signal.fall(this, &mq::triggered);
-    usb2pc.printf("mq start!\r\n");
-}
-//--------
-void mq::triggered()                                     //触发中断!!
-{
-    usb2pc.printf("mq Triggered!\r\n");
-    status = true;
-}
-//--------
-bool mq::operator==(const bool &target)
-{
-    if(status == target)
-    {
-        return true;
-    }
-    else
-    {
-        return false;
-    }
-}
-//--------
-float mq::getairdata()
-{
-    return signallevel.read();
-}  
-//-----------
-void mq::reset()
-{
-    status = false;
-}
-int mq::read()
-{
-    return signal.read();
-}
-//===========================================DHT11
-dht11::dht11(PinName pin)
-    :datapin(pin)
-{
-    starttime.start();
-    usb2pc.printf("dht11 start!\r\n");
-}
-//----------
-int dht11::getdata()
-{
-    int timeout=10000;
-    uint8_t data[5];
-    uint8_t bit=7;
-    uint8_t count=0;
-        
-    for(int i=0;i<5;i++)
-    {
-        data[i]=0;
-    }
-    if(starttime.read_ms()<1500){while(starttime.read_ms()<1500){}starttime.stop();}
-        
-    datapin.output();
-    datapin=0;
-    wait_ms(19);
-    datapin=1;
-    wait_us(30);
-    datapin.input();
-        
-    while(!datapin)
-    {
-        if(timeout--==0){usb2pc.printf("timeout!no reset\r\n");return 0;}
-    }
-    timeout=10000;
-    while(datapin)
-    {
-        if(timeout--==0){usb2pc.printf("timeout!no respanse\r\n");return 0;}
-    }
-    timeout=10000;
-    for(int i=0;i<40;i++)
-    {
-        while(!datapin)
-        {
-            if(timeout--==0){usb2pc.printf("timeout!\r\n");return 0;}
-        }
-        timer.start();
-        timeout=10000;
-        while(datapin)
-        {
-            if(timeout--==0){usb2pc.printf("timeout!n\r\n");return 0;}
-        }
-        timeout=10000;
-        long t=timer.read_us();
-        timer.stop();
-        timer.reset();
-            
-        if(bit==0)
-        {
-            if(t>40){data[count]|=(1<<bit);}
-            bit=7;
-            count++;
-        }
-        else
-        {
-            if(t>40)
-            {
-                data[count]|=(1<<bit);
-            }
-            bit--;
-        }
-    }
-    datapin=1;
-    if(data[4]==data[0]+data[1]+data[2]+data[3])
-    {
-        //usb2pc.printf("Humidity (%):%f\r\n",(float)data[0]);
-        //usb2pc.printf("Temperature (oC): %f\r\n",(float)data[2]);
-        H=data[0]+data[1]/10.0;
-        T=data[2]+data[3]/10.0;
-        return 1;
-    }
-    else{usb2pc.printf("error!\r\ndata0:%d\tdata1:%d\r\ndata2:%d\tdata3:%d\r\ndata4:%d\r\n",(int)data[0],(int)data[1],(int)data[2],(int)data[3],(int)data[4]);return 0;}
-}  
-//-------
-float dht11::gethumidity()
-{
-    return H;
-}
-//-------
-float dht11::gettemperature()
-{
-    return T;
-}
+
 //============================================DS18B20
 DS18B20::DS18B20(PinName pin)
     :datapin(pin)
 {
-        if(start()){usb2pc.printf("DS18B20 started\r\n");}
+//        if(start()){usb2pc.printf("DS18B20 started\r\n");}
+        if(start()){}
 }
 //-----------
 int DS18B20::start()
@@ -320,54 +393,11 @@
 float DS18B20::gettemperature()
 {
     if(getdata()){return T;}
-    else{usb2pc.printf("get temperature fail!\r\n");return 0;}
-}
-//==============================================YL-38
-YL::YL(PinName dio)
-    : status(false), signal(dio),signallevel(PC_13)
-{
-    signal.fall(this, &YL::triggered);
-    usb2pc.printf("YL start!\r\n");
-}
-//--------
-YL::YL(PinName dio,PinName aio)
-    : status(false), signal(dio),signallevel(aio)
-{
-    signal.fall(this, &YL::triggered);
-    usb2pc.printf("YL start!\r\n");
-}
-//--------
-void YL::triggered()                                     //触发中断!!
-{
-    usb2pc.printf("YL Triggered!\r\n");
-    status = true;
+    //else{usb2pc.printf("get temperature fail!\r\n");return 0;}
+    else{return 0;}
 }
-//--------
-bool YL::operator==(const bool &target)
-{
-    if(status == target)
-    {
-        return true;
-    }
-    else
-    {
-        return false;
-    }
-}
-//--------
-float YL::getairdata()
-{
-    return signallevel.read();
-}  
-//-----------
-void YL::reset()
-{
-    status = false;
-}
-int YL::read()
-{
-    return signal.read();
-}
+// ==================================================
+
 //=============================================
 BMP180::BMP180(PinName sda,PinName scl)  
     :i2c(sda,scl)  
@@ -376,17 +406,17 @@
     uint8_t c = readByte(BMP180_ADDRESS, BMP180_WHO_AM_I);   
     if(c == 0x55) {
  
-    usb2pc.printf("BMP-180 is 0x%x\r\n", c);
-    usb2pc.printf("BMP-180 should be 0x55\r\n");
-    usb2pc.printf("BMP-180 online...\r\n");
+//    usb2pc.printf("BMP-180 is 0x%x\r\n", c);
+//    usb2pc.printf("BMP-180 should be 0x55\r\n");
+//    usb2pc.printf("BMP-180 online...\r\n");
    
     BMP180Calibration();
-    usb2pc.printf("BMP-180 calibration complete...\r\n");
+//    usb2pc.printf("BMP-180 calibration complete...\r\n");
    }
    else 
    {
-    usb2pc.printf("BMP-180 is 0x%x\r\n", c);
-    usb2pc.printf("BMP-180 should be 0x55\r\n");
+//    usb2pc.printf("BMP-180 is 0x%x\r\n", c);
+//    usb2pc.printf("BMP-180 should be 0x55\r\n");
     while(1); // idle here forever
    }
 }