查看: 11836|回复: 15

blinker物联网教程——6、wifi插座

[复制链接]

该用户从未签到

发表于 2021-3-10 09:51 | 显示全部楼层 |阅读模式
本帖最后由 海神 于 2022-5-17 15:45 编辑

简介

在日常生活中,我们可能有接触到wifi插座,所谓wifi插座就是给原本的插座加上wifi功能,然后我们可以通过网络来控制插座的开关。本节实验,我们可以用wifiduino以及继电器来搭建wifi插座。
继电器是一个可控的电子开关,这个电子开关可以用来接入各种执行模块,比如灯、电机等等。这里可以使用wifiduino发出一个数字信号来闭合或断开这个开关。
blinkerjdq2.png
继电器有多种种类,这里我们使用的是电磁继电器,其工作原理如图所示。
blinkerjdq3.png
ab之间是线圈,只要在ab两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,S端上的衔铁开关就会在电磁力吸引的作用下克服返回弹簧的拉力,吸向D端连接的铁芯,从而导通S端和D端。当线圈断电后,电磁的吸力也随之消失,衔铁开关就会在弹簧的反作用力下返回原来的位置,将SC导通。如此吸合、释放衔铁开关,便达到了闭合、断开电路的目的。
继电器与LED的控制方法一样,不过继电器内部吸铁通断需要一点时间反应,所以控制不能太快。

硬件

microUSB数据线*1
继电器模块*1
Led*1
1K电阻*1

软件

blinker APP

blinker中添加设备

1.确保开发板连接的网络能连接外网
2.在blinker 中,点击右上角的“+”进入添加设备页面。
3.点击 “选择”——“Arduino”——“wifi接入”——“阿里云”
4、获取SecretKey, 记住这串数字,并将其填入到程序中
程序

控制继电器开关实际上与控制LED开关一样,只需要控制主板的对应引脚发出高低电平就能够实现。
下载程序之前打开arduinoIDE再次确认,开发板型号、通信波特率、通信串口号是否选择正确。具体操作可参考 教程:编程环境的安装
  1. #define BLINKER_WIFI

  2. #include <Blinker.h>

  3. char auth[] = "Your Device Secret Key";   //输入blinker中记录下来的key值
  4. char ssid[] = "Your WiFi network SSID or name";  //wifiduino要连接的热点
  5. char pswd[] = "Your WiFi network WPA password or WEP key";  //热点对应的密码

  6. // 新建组件对象
  7. BlinkerButton Button1("btn-abc");    // 键名btn-abc与blinker中按键控件名字一致
  8. BlinkerNumber Number1("num-abc");   //数字控件用来记录按下次数,这里与按键控制继电器开关无相关

  9. int counter = 0;

  10. // 按下按键即会执行该函数
  11. void button1_callback(const String & state)
  12. {
  13.     BLINKER_LOG("get button state: ", state);
  14.     digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  15. }

  16. // 如果未绑定的组件被触发,则会执行其中内容
  17. void dataRead(const String & data)
  18. {
  19.     BLINKER_LOG("Blinker readString: ", data);
  20.     counter++;
  21.     Number1.print(counter);
  22. }

  23. void setup()
  24. {
  25.     // 初始化串口
  26.     Serial.begin(115200);
  27.     BLINKER_DEBUG.stream(Serial);
  28.    
  29.     // 初始化有LED的IO
  30.     pinMode(LED_BUILTIN, OUTPUT);
  31.     digitalWrite(LED_BUILTIN, HIGH);
  32.     // 初始化blinker
  33.     Blinker.begin(auth, ssid, pswd);
  34.     Blinker.attachData(dataRead);

  35.     Button1.attach(button1_callback);
  36. }

  37. void loop() {
  38.     Blinker.run();
  39. }
复制代码

软件界面定制

App中点击刚添加的设备,进入界面后,点击载入示例

硬件连接


wifi插座连线图.png
在接线图中,继电器的输出端一共是三个孔位,下面的两个孔位为常开触点(默认为断开),当继电器输入信号为高电平时,输出端的两个常开触点就导通。这样LED电路就导通,我们就会看到现象:led被电亮。
注意:led是有正反区分,长脚为正,短脚为负。

由上实验,我们可以了解到,继电器的输出端是由输入端输入信号来控制的,所以可以将输出端当成一个开关,并将这个开关接入执行器(如LED灯、直流电机)的导通电路中。我们就可以通过wifi来控制,这就是wifi插座的基本原理。

进阶

那么我们掌握了继电器的控制方法,在继电器上连接灯泡等家电就可以实现对其的控制(如上面群友提到,继电器控制打铃)。那如果我们要在这基础上添加定时控制打铃,需要怎么办呢?
在blinker中提供了定时功能,运行在设定的时间触发某个控件。那么我们只需要添加好定时任务,在设定的时间点去触发以上的按键控件,就可以实现,定时打铃了。
详细参考章节:定时震动器





blinker物联网教程目录
blinker物联网教程——2、搭建编程环境
blinker物联网教程——3、主控硬件wifiduino
blinker物联网教程——4、控制开关灯
blinker物联网教程——5、认识传感器
blinker物联网教程——6、wifi智能插座
blinker物联网教程——7、室内温湿度计
blinker物联网教程——8、定时任务-定时震动器
blinker物联网教程——9、blinker语音识别-芝麻开门
blinker物联网教程——10、日照时间分析
blinker物联网教程——11、自动灌溉
blinker物联网教程——12、调色盘
blinker物联网教程——13、公园噪音监测
blinker物联网教程——14、智能停车场
blinker物联网教程——15、智能家居
blinker物联网教程——16、遥控机械臂
blinker物联网教程——17、防疫隔离门磁
blinker物联网教程——18、手机控制空调
blinker物联网教程——19、接入小度智能音箱
blinker物联网教程——20、语音氛围灯
blinker物联网教程——23、wifi智能小车
blinker物联网教程——24、智能宠物喂食器

该用户从未签到

发表于 2021-4-12 15:00 | 显示全部楼层
这个是啥情况  知道的回复一下  谢谢
2.png

点评

编译不对,检查库文件安装是否正确,板卡选择对不对  详情 回复 发表于 2021-4-13 11:59

该用户从未签到

 楼主| 发表于 2021-4-13 11:59 | 显示全部楼层
1337717834 发表于 2021-4-12 15:00
这个是啥情况  知道的回复一下  谢谢

编译不对,检查库文件安装是否正确,板卡选择对不对

该用户从未签到

发表于 2021-4-15 19:07 | 显示全部楼层
海神 发表于 2021-4-13 11:59
编译不对,检查库文件安装是否正确,板卡选择对不对

                          好的

该用户从未签到

发表于 2021-7-12 17:16 | 显示全部楼层
实用性非常高,赞一个

签到天数: 1 天

[LV.1]初来乍到

发表于 2021-8-7 20:34 | 显示全部楼层
手机上的按键开光怎么和开发板上的引脚对应?

签到天数: 1 天

[LV.1]初来乍到

发表于 2021-8-7 20:34 | 显示全部楼层
手机上的按键开光怎么和开发板上的引脚对应?

点评

程序里有个auth[]定义,这个与app中按键的键值对应  详情 回复 发表于 2021-8-9 10:25

该用户从未签到

 楼主| 发表于 2021-8-9 10:25 | 显示全部楼层
17606909136 发表于 2021-8-7 20:34
手机上的按键开光怎么和开发板上的引脚对应?

程序里有个auth[]定义,这个与app中按键的键值对应

该用户从未签到

发表于 2021-12-4 14:55 | 显示全部楼层
auth[]定义是不是用来定义blinker中记录下来的key值?

该用户从未签到

发表于 2022-4-21 16:56 | 显示全部楼层
定时任务没办法执行,blinker的问题吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

好凉一个秋,一周天气先知。
好凉一个秋,一周天气先知
国庆节和重阳节转眼就过去了。进入深秋,天气也在陡然变化。我们就需要更加呵护家人,
blinker-指纹打卡
blinker-指纹打卡
简介:使用wifiduino、指纹模块、点灯App实现一个远程打卡功能。打卡人员通过上位机给
【花雕动手做】有趣好玩音乐可视化(26)--LED 超立方体
【花雕动手做】有趣好玩音
偶然心血来潮,想要做一个声音可视化的系列专题。这个专题的难度有点高,涉及面也比较
我的点灯程序
我的点灯程序
国庆天气比较冷,于是空闲时间把ESP8266拿出来,准备做个点灯小实验,主要是完成MPU方
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表