1.准备软件
使用Arduino IDE 1.8.7或更新版本,本文发布时版本为Arduino IDE 2.0.4。本文以该版本为实例。
第一步,安装Arduino IDE 2.0.4(点击可下载)。成功后接第二步
第二步,下载离线ESP8266 扩展包3.1.1版本,下载成功后,不运行Arduino ,直接安装扩展包。
第三步,安装blinker Arduino库(点击可下载)
下载后得到blinker-library-0.3.100221211.zip 的zip 文件
然后打开第一步的Arduino IDE 2.0.4,按下面位置图片添加文件。
提示:Arduino 首次运行需要联网下载更新所需要的组件,需要等待几分钟。
第三步,在手机端下载并安装blinker APP。
准备完成。
2.开始操作。
1打开手机端blinker APP。注册成完后
2点击右上角的“+”号,然后选择 添加设备
3点击选择独立设备> 网络接入
4复制申请到的Secret Key
5自定义布局。按下图操作即可。
6打开电脑端的 Arduino IDE,点击 左上角的“file -> new sketch”
将下面代码复制到Arduino中(确保Arduino原来的要消除)
#define BLINKER_WIFI#include <Blinker.h>#define BLINKER_WITHOUT_SSL char auth[] = "你的密钥";char ssid[] = "你的WIFI名称";char pswd[] = "你的WIFI密码";// 新建APP的组件对象BlinkerButton Button1("btn-abc");// 定义物理开关IO口#define LED15#define l_LED 13#define r_LED 12#define btn0#define l_btn 16#define r_btn 2#define relay 14// 按下APP按键即会执行该函数void button1_callback(const String & state) {BLINKER_LOG("get button state: ", state); //当APP按键状态为通时,继电器IO14输出高电平 LED IO15输出高电平if (state=="on") {digitalWrite(LED, HIGH);digitalWrite(relay, HIGH);// 反馈开关状态Button1.print("on");Button1.text("通电");} //当APP按键状态为断时,继电器IO14输出低电平 LED IO15输出低电平else if(state=="off"){digitalWrite(LED, LOW);digitalWrite(relay, LOW);// 反馈开关状态Button1.print("off");Button1.text("断电");}}void setup() {// 初始化串口Serial.begin(115200);#if defined(BLINKER_PRINT)BLINKER_DEBUG.stream(BLINKER_PRINT);#endif// 初始化有IOpinMode(btn, INPUT_PULLUP);digitalWrite(btn, HIGH);pinMode(relay, OUTPUT); digitalWrite(relay, LOW);pinMode(LED, OUTPUT);digitalWrite(LED, LOW);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Button1.attach(button1_callback);}//反馈继电器状态函数void RelayState(){if(digitalRead(relay)==HIGH){ digitalWrite(LED, HIGH);//Button7.color("#FF0000"); 设置app按键是纯黄色,16进制颜色码Button1.text("通电");//设置app按键注释“通电”Button1.print("on");}else if(digitalRead(relay)==LOW){digitalWrite(LED, LOW);Button1.text("断电");//设置app按键注释“断电”Button1.print("off");}}//本地开关控制继电器程序void bdms(){if(digitalRead(btn)==LOW){digitalWrite(relay, !digitalRead(relay));//反馈继电器状态RelayState(); //调用继电器反馈程序Blinker.delay(200); //必须加延时,否则灯一直切换状态}}void loop(){bdms();Blinker.run();}
等待写入后即完成全过程