微信通知怎么能实现每次联网后自动推送一次消息?
Blinker.wechat("消息来喽!!", "刷设备已上线", "备注信息");这个放到哪个位置可以自动推送,我用的是手机配网。
完整代码:
#define BLINKER_WIFI //官方wifi协议库
#define BLINKER_MIOT_LIGHT // 设置小爱灯类库
#define BLINKER_PRINT Serial //串口协议库
#include <Blinker.h> //官方库
char auth[] = "********";//设备key
//*******新建组件对象
BlinkerButton Button1("btn-abc"); //设置app按键的键名
BlinkerButton Button2("btn-off");
BlinkerButton Button3("btn-on");
bool oState = false;//全局变量,状态设为false 打开状态
int kg=0;//继电器输出
//*******app上按下按键即会执行该函数app里按键
void button1_callback(const String & state) //点灯app内控制按键触发
{
}
void button2_callback(const String & state) //用state来存储组键的值按键
{
BLINKER_LOG("app操作了!: ", state); //串口打印
if (digitalRead(kg)==LOW) { //如果state是on状态
BLINKER_LOG("灯关了!"); //串口打印
digitalWrite(kg, HIGH);
Button1.color("#FF0000"); //设置app按键是红色
Button1.text("灯关了");
Button1.print("off"); //反馈回按键状态是关
}
}
void button3_callback(const String & state)
{
BLINKER_LOG("app操作了!: ", state); //串口打印
if (digitalRead(kg)==HIGH) { //如果state是off状态
BLINKER_LOG("灯亮了!"); //串口打印
digitalWrite(kg,LOW);
Button1.color("#00BB00"); //设置app按键是绿色
Button1.text("灯亮了");
Button1.print("on"); //反馈回按键状态是开
}
}
//*******如果小爱有对设备进行操作就执行下面
void miotPowerState(const String & state)
{
BLINKER_LOG("小爱语音操作!"); //串口打印
if (state == BLINKER_CMD_ON){
digitalWrite(kg,LOW);
BlinkerMIOT.powerState("on");
BLINKER_LOG("灯亮了!");
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_OFF){
digitalWrite(kg,HIGH);
BlinkerMIOT.powerState("off");
BLINKER_LOG("灯关了!");
BlinkerMIOT.print();
}
}
//*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
void heartbeat()
{
BLINKER_LOG("状态同步!");
if (digitalRead(kg)==LOW)
{
Button1.print("on");
Button1.color("#00BB00"); //设置app按键是绿色
Button1.text("灯亮了");
//Blinker.wechat("消息来喽!!", "灯亮了", "备注信息1"); //微信公众号通知推送
}
else
{
Button1.print("off");
Button1.color("#FF0000"); //设置app按键是红色
Button1.text("灯关了");
//Blinker.wechat("消息来喽!!", "灯关了", "备注信息2"); //微信公众号通知推送
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void setup()
{
// 初始化串口
Serial.begin(115200);
delay(10);
BLINKER_DEBUG.stream(Serial);
// 初始化有LED的IO
pinMode(kg, OUTPUT); // 定义接通继电器引脚
digitalWrite(kg, LOW);//默认上电是开LOW 时的是接通继电器。
Serial.println();
Serial.println();
Serial.print("Connecting to ");
// 初始化blinker
Blinker.begin(auth);
BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数
Blinker.attachHeartbeat(heartbeat); //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
}
void loop()
{
Blinker.run();
if (!client) {
delay(100);
return;
}
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
int val;
// 下面开始判断ip进行动作指令
if (req.indexOf("/gpio/on") != -1)
//digitalWrite(0, 0);
digitalWrite(kg, LOW);
else if (req.indexOf("/gpio/off") != -1)
//digitalWrite(0, 1);
digitalWrite(kg, HIGH);
else {
Serial.println("invalid request");
client.print("HTTP/1.1 404\r\n");
client.stop();
return;
}
client.flush();
// Prepare the response
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nWelcome wenzheng space! ";
s += "</html>\n";
client.print(s);
delay(1);
Serial.println("Client disonnected");
}
顶起来,不要沉,不要沉 有例程的 但是我没成功 不知道什么原因 我也不知道
顶起来,不要沉,不要沉
页:
[1]