600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > DIY一个智能开关 用以替换普通的86开关(主控模块用ESP12S)blinker 版本

DIY一个智能开关 用以替换普通的86开关(主控模块用ESP12S)blinker 版本

时间:2022-06-29 06:29:22

相关推荐

DIY一个智能开关 用以替换普通的86开关(主控模块用ESP12S)blinker 版本

​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();}

等待写入后即完成全过程

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。