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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3547|回复: 4

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

[复制链接]
发表于 2020-7-3 00:54 | 显示全部楼层 |阅读模式
      自从入坑以来 一直在网上看代码 学习人家的。今天我也发一个出来 我自己的成果 分享给大家 让大家少走弯路 。一起成长。。。
      先上代码
//本例用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("Blinker  readString: ", 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次,也够调试用了。。。

一点心得 记录下 。有问题留言我
发表于 2020-7-4 15:36 | 显示全部楼层
#define BLINKER_ESP_SMARTCONFIG //ESP模式配网
#define BLINKER_APCONFIG  //AP模式配网

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

国家行政区编码是数字代号,你写的是拼音?我该怎么写呢...
发表于 2021-12-29 20:39 | 显示全部楼层
您好,AP模式手机需要连接NodeMCU发射的AP网络吧?网络名字是什么?
发表于 2021-12-29 21:18 | 显示全部楼层
lllllll2b 发表于 2021-12-29 20:39
您好,AP模式手机需要连接NodeMCU发射的AP网络吧?网络名字是什么?

好吧。我自己试了。他会自动连接一个叫做DIYArduino什么的网络。
谢谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 11:51 , Processed in 0.138127 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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