#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#include <Blinker.h>
char blinker_auth[] = "1e78d64ea06a";//输入blinker密钥//
char blinker_ssid[] = "bad123";
char blinker_pswd[] = "1234567890";
int buttonPin = 0; // 按键的管脚定义
int lightPin = 12; // 大灯
int lightMode=0;//等的不同档位
// 新建组件对象
BlinkerButton Button1("btn1");
BlinkerNumber Number1("num-abc");
int counter = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
digitalWrite(lightPin, !digitalRead(lightPin));
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}
// 初始化blinker
void blinkerStart()
{
// 初始化blinker
Blinker.begin(blinker_auth, blinker_ssid, blinker_pswd);
Blinker.attachData(dataRead);//没有绑定的控件 函数注册
Button1.attach(button1_callback);//按钮处理 函数注册
}
//按键修改亮度
void exchangeLightModel()
{
lightMode++;//改变模式
if(lightMode==4)
{
lightMode=0;
}
if(lightMode==0)//模式0,关闭灯
{
analogWrite(lightPin, 0);
}
else if(lightMode==1)//模式1,一档亮度
{
analogWrite(lightPin, 300);
}
else if(lightMode==2)//模式2,二档亮度
{
analogWrite(lightPin, 600);
}
else if(lightMode==3)//模式3,三档亮度
{
analogWrite(lightPin, 1023);
}
}
void setup() {
// 初始化串口
Serial.begin(115200);
#if defined(BLINKER_PRINT)
BLINKER_DEBUG.stream(BLINKER_PRINT);
#endif
// 初始化有LED的IO
pinMode(lightPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
digitalWrite(lightPin, LOW);
blinkerStart();//初始化blinker 配置WiFi 远程按钮等信息
}
void loop() {
Blinker.run();
//如果按键按下
if (digitalRead(buttonPin) == LOW) { // 若按键被按下
delay(100);//延时消抖//
if (digitalRead(buttonPin) == LOW) { // 若按键被按下
exchangeLightModel();
while(digitalRead(buttonPin) == LOW);//等待按键松开
}
}
}
网友评论