查看: 285|回复: 0

[分享] 同时读取两个传感器的数据,并上传至云端存储

[复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-9-16 00:34 | 显示全部楼层 |阅读模式
    一个示例,仅供参考,可以自己更换传感器,或者连接更多传感器。


    开发板:
    Wifiduino(esp8266)
    传感器:DHT11、BME280

    界面:
    QQ截图20190916003736.jpg

    例程:

    kittenblock中小学创客名师推荐的图形化编程软件

    
    
    #define BLINKER_WIFI
    #include <Blinker.h>
    
    char auth[] = "xxxxxxxxxxxx";
    char ssid[] = "xxxxxx";
    char pswd[] = "xxxxxx";
    // BME280
    BlinkerNumber TEMP("temp"); // Temperature
    BlinkerNumber HUMI("humi"); // Humidity
    BlinkerNumber PRES("pres"); // Pressure
    BlinkerNumber ALTI("alti"); // Altitude
    int tempValue = 0;
    int humiValue = 0;
    int presValue = 0;
    int altiValue = 0;
    // DHT11
    BlinkerNumber DHTTEMP("dht-temp"); // Temperature
    BlinkerNumber DHTHUMI("dht-humi"); // Humidity
    int dhtTempValue = 0;
    int dhtHumiValue = 0;
    // RUNTIME
    uint32 startTime;
    uint32 runTime;
    // Download Adafruit-BMP085-Library library here:
    // https://github.com/adafruit/Adafruit_BME280_Library
    // https://github.com/adafruit/Adafruit_Sensor
    #include <Wire.h>
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BME280.h>
    
    #define SEALEVELPRESSURE_HPA (1013.25)
    
    Adafruit_BME280 bme;
    
    #include <DHT.h>
    #define DHTPIN D7
    #define DHTTYPE DHT11
    DHT dht(DHTPIN, DHTTYPE);
    
    void dataRead(const String &data)
    {
        BLINKER_LOG("Blinker readString: ", data);
    
        Blinker.vibrate();
    
        uint32_t BlinkerTime = millis();
    
        Blinker.print("millis", BlinkerTime);
    }
    
    void dataStorage()
    {
        readSensor();
        Blinker.dataStorage("temp", tempValue);
        Blinker.dataStorage("humi", humiValue);
        Blinker.dataStorage("pres", altiValue);
        Blinker.dataStorage("dht-temp", dhtTempValue);
        Blinker.dataStorage("dht-humi", dhtHumiValue);
    }
    
    void heartbeat()
    {
        readSensor();
        TEMP.print(tempValue);
        HUMI.print(humiValue);
        PRES.print(presValue);
        ALTI.print(altiValue);
        DHTTEMP.print(dhtTempValue);
        DHTHUMI.print(dhtHumiValue);
    }
    
    void readSensor()
    {
        tempValue = bme.readTemperature();
        humiValue = bme.readHumidity();
        presValue = bme.readPressure();
        altiValue = bme.readAltitude(SEALEVELPRESSURE_HPA);
    
        dhtTempValue = dht.readTemperature();
        dhtHumiValue = dht.readHumidity();
        if (isnan(dhtTempValue) || isnan(dhtHumiValue))
        {
            dhtTempValue = 0;
            dhtHumiValue = 0;
        }
    }
    
    void setup()
    {
        Serial.begin(115200);
        BLINKER_DEBUG.stream(Serial);
    
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, LOW);
    
        Blinker.begin(auth, ssid, pswd);
        if (!bme.begin())
        {
            BLINKER_LOG("Could not find a valid BME280 sensor, check wiring!");
            while (1)
            {
                delay(100);
            }
        }
        dht.begin();
        readSensor();
        Blinker.attachData(dataRead);
        Blinker.attachHeartbeat(heartbeat);
        Blinker.attachDataStorage(dataStorage);
    }
    
    void loop()
    {
        Blinker.run();
    }


    如果以上内容对你有帮助,你可以通过打赏支持作者
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【Arduino】108种传感器模块系列实验(104)---MAX30102手腕心率
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    萌新报道 刚购买了一个watchx
    萌新报道 刚购买了一个wat
    就这货 但是网上让下载库 我点加载以后他提示没法用。。 求大神帮忙 谢谢了
    【Arduino】108种传感器系列实验(15)---手指侦测心跳传感...
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    求助!GM65二维码扫描模块怎么用?
    求助!GM65二维码扫描模块
    求助!GM65二维码扫描模块怎么用? 卖家给的资料真的看不懂该怎么弄。。( ̄▽ ̄)~*
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表