参考代码
#define BLINKER_PRINT Serial //用于打开串口
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#include <Blinker.h>
char auth[] = "秘钥";
char ssid[] = "TP-LINK";
char pswd[] = "密码";
int colorW;
unsigned char led_power;
//用户自定义电源类操作的回调函数: 小米小爱
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
digitalWrite(LED_BUILTIN, LOW);
led_power = 1;
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_OFF) {
digitalWrite(LED_BUILTIN, HIGH);
led_power = 0;
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
}
//用户自定义亮度控制的回调函数:小爱同学 灯的亮度控制函数 亮度范围为1-100
void miotBright(const String & bright)
{
BLINKER_LOG("need set brightness: ", bright);
colorW = bright.toInt();
analogWrite(LED_BUILTIN,100 - colorW);
BLINKER_LOG("now set brightness: ", colorW);
BlinkerMIOT.brightness(colorW);
BlinkerMIOT.print();
}
//用户自定义设备查询的回调函数:
void miotQuery(int32_t queryCode)
{
BLINKER_LOG("MIOT Query codes: ", queryCode);
switch (queryCode)
{
case 0: //查询所有设备的情况
BLINKER_LOG("MIOT Query brightness: ", colorW);
BlinkerMIOT.brightness(colorW); //反馈灯的亮度
BlinkerMIOT.powerState(led_power ?"on":"off"); //反馈灯的亮灭
BlinkerMIOT.print(); //反馈至小爱
break;
case BLINKER_CMD_QUERY_PM25_NUMBER : /* 下面的这些用不到,供参考*/
BLINKER_LOG("MIOT Query PM25");
BlinkerMIOT.pm25(20);
BlinkerMIOT.print();
break;
case BLINKER_CMD_QUERY_HUMI_NUMBER :
BLINKER_LOG("MIOT Query HUMI");
BlinkerMIOT.humi(20);
BlinkerMIOT.print();
break;
case BLINKER_CMD_QUERY_TEMP_NUMBER :
BLINKER_LOG("MIOT Query TEMP");
BlinkerMIOT.temp(20);
BlinkerMIOT.print();
break;
case BLINKER_CMD_QUERY_TIME_NUMBER :
BLINKER_LOG("MIOT Query Time");
//BlinkerMIOT.time(millis());
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); //串口打印调试信息
Blinker.begin(auth, ssid, pswd);
//初始化LED引脚 LED_BUILTIN是开发版上的引脚
pinMode(LED_BUILTIN,OUTPUT);
digitalWrite(LED_BUILTIN,HIGH);
//注册回调函数 电源类回调函数
BlinkerMIOT.attachPowerState(miotPowerState);
//设置灯的亮度调节范围
analogWriteRange(100);
//注册回调函数: 用户自定义设备查询
BlinkerMIOT.attachQuery(miotQuery);
//注册回调函数 亮度回调函数
BlinkerMIOT.attachBrightness(miotBright);
}
void loop()
{
Blinker.run(); /*每次运行都会将设备收到的数据进行一次解析。
//在使用WiFi接入时,该语句也负责保持网络连接*/
}