小爱同学获取BME280信息+自动配网-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2188|回复: 4

[分享] 小爱同学获取BME280信息+自动配网

[复制链接]
发表于 2020-3-18 09:29 | 显示全部楼层 |阅读模式
本帖最后由 YLGZS 于 2020-3-18 10:51 编辑

代码有错误有意者自行更改,大佬可以把更改后代码分享。:)











[mw_shl_code=arduino,true]





#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR//支持小爱同学
#include <Blinker.h>
char auth[] = "密钥";
//char ssid[] = "WIFI";
//char pswd[] = "密码";
// BME280

void miotQuery(int32_t queryCode)
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("MIOT Query All");
            BlinkerMIOT.temp(100);
            BlinkerMIOT.humi(100);
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
        default :
            BlinkerMIOT.temp(100);
            BlinkerMIOT.humi(100);
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
    }
}

//BME280

BlinkerNumber TEMP("num-htn"); // Temperature
BlinkerNumber HUMI("num-ft"); // Humidity
BlinkerNumber PRES("num-hi"); // Pressure
BlinkerNumber ALTI("num-nn"); // 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 D8
#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);
   smartConfig ();//执行一键配网
   Blinker.begin(auth, WiFi.SSID().c_str(), WiFi.psk().c_str());
  
    if (! bme.begin(0x76, &Wire)) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
    }
    dht.begin();
    readSensor();
    Blinker.attachData(dataRead);
    Blinker.attachHeartbeat(heartbeat);
    Blinker.attachDataStorage(dataStorage);
     BlinkerMIOT.attachQuery(miotQuery);
}

void loop()
{
    Blinker.run();
}

void smartConfig () //一键配网函数
{
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWait for Smartconfig");
  WiFi.beginSmartConfig();//SmartConfig配网开始
  while (!WiFi.smartConfigDone())
  {
    delay(500);
    Serial.println(".");
  }
  Serial.println("SmartConfig Success");
  Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
  Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
}[/mw_shl_code]
发表于 2020-3-18 10:08 | 显示全部楼层
blinker有配网支持
https://diandeng.tech/doc/dev-tool
 楼主| 发表于 2020-3-18 10:43 | 显示全部楼层
本帖最后由 YLGZS 于 2020-3-18 11:12 编辑

修改版功能正常
本代码支持DHT11(可能需要自行更改)




#define BLINKER_WIFI

#define BLINKER_ESP_SMARTCONFIG

#define BLINKER_MIOT_SENSOR//支持小爱同学

#include <Blinker.h>

char auth[] = "Blinker密钥";

//char ssid[] = "WiFi名称";

//char pswd[] = "密码";



//BME280



BlinkerNumber TEMP("num-htn"); // Temperature

BlinkerNumber HUMI("num-ft"); // Humidity

BlinkerNumber PRES("num-hi"); // Pressure

BlinkerNumber ALTI("num-nn"); // 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 D8

#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 miotQuery(int32_t queryCode)

{

    BLINKER_LOG("MIOT Query codes: ", queryCode);



    switch (queryCode)

    {

        case BLINKER_CMD_QUERY_ALL_NUMBER :

            BLINKER_LOG("MIOT Query All");

            BlinkerMIOT.temp(tempValue);

            BlinkerMIOT.humi(humiValue);

            BlinkerMIOT.pm25(presValue);

            BlinkerMIOT.co2(altiValue);

            BlinkerMIOT.print();

            break;



        default :

            BlinkerMIOT.temp(20);

            BlinkerMIOT.humi(20);

            BlinkerMIOT.pm25(20);

            BlinkerMIOT.co2(20);

            BlinkerMIOT.print();

            break;

    }

}





void setup()

{

    Serial.begin(115200);

    BLINKER_DEBUG.stream(Serial);

    pinMode(LED_BUILTIN, OUTPUT);

    digitalWrite(LED_BUILTIN, LOW);



   Blinker.begin(auth);

                 //(! bme.begin(BME280地址, &Wire))

    if (! bme.begin(0x76, &Wire)) {

        Serial.println("Could not find a valid BME280 sensor, check wiring!");

        while (1);

    }

    dht.begin();

    readSensor();

    Blinker.attachData(dataRead);

    Blinker.attachHeartbeat(heartbeat);

    Blinker.attachDataStorage(dataStorage);

     BlinkerMIOT.attachQuery(miotQuery);

}





void loop()

{

    Blinker.run();

}
[/mw_shl_code]

C:\Users\30210\Desktop\QQ图片20200318103642.jpg


C:\Users\30210\Desktop\QQ图片20200318103637.jpg









QQ图片20200318103609.jpg
QQ图片20200318103637.jpg
QQ图片20200318103621.jpg
QQ图片20200318103642.jpg
QQ图片20200318103655.jpg
QQ图片20200318103649.jpg

配网二维码

配网二维码
 楼主| 发表于 2020-3-18 10:45 | 显示全部楼层
本帖最后由 YLGZS 于 2020-3-18 10:56 编辑
YLGZS 发表于 2020-3-18 10:43
修改版功能正常

[mw_shl_code=arduino,true]

#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR//支持小爱同学
#include <Blinker.h>
char auth[] = "Blinker密钥";
//char ssid[] = "WiFi名称";
//char pswd[] = "密码";

//BME280

BlinkerNumber TEMP("num-htn"); // Temperature
BlinkerNumber HUMI("num-ft"); // Humidity
BlinkerNumber PRES("num-hi"); // Pressure
BlinkerNumber ALTI("num-nn"); // 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 D8
#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 miotQuery(int32_t queryCode)
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("MIOT Query All");
            BlinkerMIOT.temp(tempValue);
            BlinkerMIOT.humi(humiValue);
            BlinkerMIOT.pm25(presValue);
            BlinkerMIOT.co2(altiValue);
            BlinkerMIOT.print();
            break;
     
        default :
            BlinkerMIOT.temp(20);
            BlinkerMIOT.humi(20);
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
    }
}


void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
   smartConfig ();//执行一键配网
   Blinker.begin(auth, WiFi.SSID().c_str(), WiFi.psk().c_str());
  
    if (! bme.begin(0x76, &Wire)) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
    }
    dht.begin();
    readSensor();
    Blinker.attachData(dataRead);
    Blinker.attachHeartbeat(heartbeat);
    Blinker.attachDataStorage(dataStorage);
     BlinkerMIOT.attachQuery(miotQuery);
}



void loop()
{
    Blinker.run();
}

void smartConfig () //一键配网函数
{
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWait for Smartconfig");
  WiFi.beginSmartConfig();//SmartConfig配网开始
  while (!WiFi.smartConfigDone())
  {
    delay(500);
    Serial.println(".");
  }
  Serial.println("SmartConfig Success");
  Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
  Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
}[/mw_shl_code]
 楼主| 发表于 2020-3-18 11:27 | 显示全部楼层
手机界面代码


{¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨light¨¨background¨{¨img¨¨assets/img/headerbg.jpg¨¨isFull¨«}}¨dashboard¨|{¨type¨¨num¨¨t0¨¨温度¨¨ico¨¨fal fa-question¨¨clr¨¨#EA0909¨¨min¨É¨max¨¢1c¨uni¨´℃´¨bg¨É¨cols¨Í¨rows¨Ë¨key¨¨num-htn¨´x´É´y´Ì¨speech¨|÷¨lstyle¨Ê}{ßAßBßC¨气压¨ßEßFßG¨#FBA613¨ßIÉßJ¢QH2ßK¨pa¨ßLÉßMÍßNËßO¨num-hi¨´x´Í´y´ÌßQ|÷ßRÊ}{ßAßBßC¨湿度¨ßEßFßG¨#076EEF¨ßIÉßJº0ßK´%´ßLÉßMÍßNËßO¨num-ft¨´x´É´y´ÎßQ|÷ßRÊ}{ßAßBßC¨海拔¨ßEßFßG¨#00A90C¨ßIÉßJ¢252ßK´m´ßLÉßMÍßNËßO¨num-nn¨´x´Í´y´ÎßQ|÷ßRÊ}{ßA¨cha¨ßLɨsty¨¨line¨ßGßH¨sty1¨ße¨clr1¨ßX¨sty2¨ße¨clr2¨ßTßMÑßNÍßOßP´x´É´y´ÐßQ|÷ßCßD¨key1¨ßY¨t1¨ßW¨key2¨ßV¨t2¨ßSßRÊ}÷}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:37 , Processed in 0.090033 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表