写一个BLINKER的 AP配网方式获取天气和空气质量-Arduino中文社区 - Powered by Discuz! Archiver

bldx123456 发表于 2020-7-3 00:54

写一个BLINKER的 AP配网方式获取天气和空气质量

      自从入坑以来 一直在网上看代码 学习人家的。今天我也发一个出来 我自己的成果 分享给大家 让大家少走弯路 。一起成长。。。
      先上代码
//本例用BLINKER库试验 设备开机进行ESP方式配网 然后 连接天气API进行天气查询
#define BLINKER_WIFI
//#define BLINKER_ESP_SMARTCONFIG //ESP模式配网
#define BLINKER_APCONFIG//AP模式配网
#include <Blinker.h>

char auth[] = "你的KEY";


char w_addr[]="beijing-tongzhouqu";//城市关键字,请根据需要修改
//城市关键字,参考 https://diandeng.tech/doc/weather-and-air#%E5%8F%AF%E7%94%A8%E5%9F%8E%E5%B8%82%E5%85%B3%E9%94%AE%E5%AD%97

bool first_label=false; //开机标签,开机第一时间更新天气信息


void weatherData(const String & data){
//更新天气
BLINKER_LOG("weater: ",data);


}

void airData(const String & data){
    //更新空气质量
    BLINKER_LOG("air:",data);

    }




void dataRead(const String & data)
{
BLINKER_LOG("BlinkerreadString: ", data);

Blinker.vibrate();

uint32_t BlinkerTime = millis();

Blinker.print("millis", BlinkerTime);


}


void setup() {

    Serial.begin(115200);

    pinMode(LED_BUILTIN, OUTPUT); // 开机上电
    digitalWrite(LED_BUILTIN, LOW); //点亮LED


    BLINKER_DEBUG.stream(Serial);
    Blinker.begin(auth);
    Blinker.attachData(dataRead);
    Blinker.attachWeather(weatherData);//天气调用的回调函数
    Blinker.attachAir(airData);//空气质量回调函数
    Blinker.setTimezone(8.0);//设置时区






}

void loop() {

    Blinker.run();

    if(Blinker.connected() && first_label==false )
    {
      //判断是否第一次开机 并且已经连接上网络


       first_label=true; //开机标志位 为真

       Blinker.weather(w_addr);
       Blinker.aqi(w_addr);


      }

      if(first_label==true) //此处脸上网络 LED就开始闪烁
      {
      digitalWrite(LED_BUILTIN, HIGH); //点亮LED .

      Blinker.delay(500);

      digitalWrite(LED_BUILTIN, LOW); //点亮LED
      Blinker.delay(500);

      }

}

说明:
设备上电 LED常亮 等待联网
设备通过AP或者ESP模式配网成功以后 LED灯会闪烁提示。
然后获取天气信息和空气质量数据 并LOG给串口。


1.
//#define BLINKER_ESP_SMARTCONFIG //ESP模式配网
#define BLINKER_APCONFIG//AP模式配网
这俩宏定义就是配网用的,一个是 ESP配网 一个是AP配网模式 
我个人感觉AP模式好用些 ESP感觉不是太灵光。
还有就是 Blinker.begin(auth);这句话里头 只有auth参数 加其他的会报错的。

2.天气这一块我一直鼓捣了大半个月吧。因为官方也没给个详细的天气代码。东找找 西学学总算摸索出来了。
天气没氪金的话 玩玩就算了。一天50次,也够调试用了。。。

一点心得 记录下 。有问题留言我

17865566707 发表于 2020-7-4 15:36

#define BLINKER_ESP_SMARTCONFIG //ESP模式配网
#define BLINKER_APCONFIG//AP模式配网

这两种配网方式有什么区别啊?我一直用的第一种方式,但把设备放在一个塑料盒里就一直无法配网,芯片裸露情况下还好点,失败率有点高

shory 发表于 2021-3-5 16:28

你好,
char w_addr[]="beijing-tongzhouqu";//城市关键字,请根据需要修改
//城市关键字,参考 https://diandeng.tech/doc/weather-and-air#%E5%8F%AF%E7%94%A8%E5%9F%8E%E5%B8%82%E5%85%B3%E9%94%AE%E5%AD%97
国家行政区编码是数字代号,你写的是拼音?我该怎么写呢...

lllllll2b 发表于 2021-12-29 20:39

您好,AP模式手机需要连接NodeMCU发射的AP网络吧?网络名字是什么?

lllllll2b 发表于 2021-12-29 21:18

lllllll2b 发表于 2021-12-29 20:39
您好,AP模式手机需要连接NodeMCU发射的AP网络吧?网络名字是什么?

好吧。我自己试了。他会自动连接一个叫做DIYArduino什么的网络。
谢谢。
页: [1]
查看完整版本: 写一个BLINKER的 AP配网方式获取天气和空气质量