远程和本地都有了

2019-11-28  本文已影响0人  招风小妖怪
#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);//等待按键松开
    }
  }
}
上一篇下一篇

猜你喜欢

热点阅读