查看: 1309|回复: 2

[分享] 获取BME280传感器数据并上传到云端

[复制链接]
  • TA的每日心情
    奋斗
    2019-7-12 18:42
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-9-13 13:17 | 显示全部楼层 |阅读模式
    这是在之前的示例基础上更近一步,添加历史数据存储:

    效果如图:
    QQ截图20190913131732.jpg

    [mw_shl_code=cpp,true]#define BLINKER_WIFI
    #include <Blinker.h>

    char auth[] = "xxxxxxxxxxxx";
    char ssid[] = "xxxxx";
    char pswd[] = "xxxxxxxx";

    BlinkerNumber TEMP("temp"); // Temperature
    BlinkerNumber HUMI("humi"); // Humidity
    BlinkerNumber PRES("pres"); // Pressure
    BlinkerNumber ALTI("alti"); // Altitude

    int tempValue;
    int humiValue;
    int presValue;
    int altiValue;

    // 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;

    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);
    }

    void heartbeat()
    {
        readSensor();
        TEMP.print(tempValue);
        HUMI.print(humiValue);
        PRES.print(presValue);
        ALTI.print(altiValue);
    }

    void readSensor()
    {
        tempValue = bme.readTemperature();
        humiValue = bme.readHumidity();
        presValue = bme.readPressure();
        altiValue = bme.readAltitude(SEALEVELPRESSURE_HPA);
    }

    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);
            }
        }
        readSensor();
        Blinker.attachData(dataRead);
        Blinker.attachHeartbeat(heartbeat);
        Blinker.attachDataStorage(dataStorage);

    }

    void loop()
    {
        Blinker.run();
    }[/mw_shl_code]
  • TA的每日心情
    开心
    2019-11-25 00:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-11-25 00:33 | 显示全部楼层
    学习了,受益匪浅

    该用户从未签到

    发表于 2020-3-9 19:40 | 显示全部楼层
    本帖最后由 轻轻海风 于 2020-3-18 17:45 编辑

    ESP8266 NodeMCU 连接3.3V的BME280连接图SCB引脚不需要接上拉10K电阻,因为片内已经有了上拉电阻了。
    BME280 I2C连接图.jpg

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    esp8266-01s改造空调开关
    esp8266-01s改造空调开关
    最近在学习esp8266开发,esp8266是一款带wifi功能的物联网MCU,可以低成本实现
    [Arduino物联网开发实战2]数据反馈
    [Arduino物联网开发实战2]
    [md]上一篇:(https://www.arduino.cn/thread-83177-1-1.html) 除了控制设备外,blin
    这个拓展板上的LCD接口是什么类型的?怎么搜?
    这个拓展板上的LCD接口是
    如图。
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表