本帖最后由 海神 于 2022-5-17 15:45 编辑
简介
在日常生活中,我们可能有接触到wifi插座,所谓wifi插座就是给原本的插座加上wifi功能,然后我们可以通过网络来控制插座的开关。本节实验,我们可以用wifiduino以及继电器来搭建wifi插座。 继电器是一个可控的电子开关,这个电子开关可以用来接入各种执行模块,比如灯、电机等等。这里可以使用wifiduino发出一个数字信号来闭合或断开这个开关。 继电器有多种种类,这里我们使用的是电磁继电器,其工作原理如图所示。 ab之间是线圈,只要在ab两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,S端上的衔铁开关就会在电磁力吸引的作用下克服返回弹簧的拉力,吸向D端连接的铁芯,从而导通S端和D端。当线圈断电后,电磁的吸力也随之消失,衔铁开关就会在弹簧的反作用力下返回原来的位置,将S与C导通。如此吸合、释放衔铁开关,便达到了闭合、断开电路的目的。 继电器与LED的控制方法一样,不过继电器内部吸铁通断需要一点时间反应,所以控制不能太快。
硬件
microUSB数据线*1 继电器模块*1 Led*1 1K电阻*1
软件
blinker APP
blinker中添加设备
1.确保开发板连接的网络能连接外网 2.在blinker 中,点击右上角的“+”进入添加设备页面。 3.点击 “选择”——“Arduino”——“wifi接入”——“阿里云” 4、获取SecretKey, 记住这串数字,并将其填入到程序中 程序
控制继电器开关实际上与控制LED开关一样,只需要控制主板的对应引脚发出高低电平就能够实现。 下载程序之前打开arduino的IDE再次确认,开发板型号、通信波特率、通信串口号是否选择正确。具体操作可参考 教程:编程环境的安装 - #define BLINKER_WIFI
- #include <Blinker.h>
- char auth[] = "Your Device Secret Key"; //输入blinker中记录下来的key值
- char ssid[] = "Your WiFi network SSID or name"; //wifiduino要连接的热点
- char pswd[] = "Your WiFi network WPA password or WEP key"; //热点对应的密码
- // 新建组件对象
- BlinkerButton Button1("btn-abc"); // 键名btn-abc与blinker中按键控件名字一致
- BlinkerNumber Number1("num-abc"); //数字控件用来记录按下次数,这里与按键控制继电器开关无相关
- int counter = 0;
- // 按下按键即会执行该函数
- void button1_callback(const String & state)
- {
- BLINKER_LOG("get button state: ", state);
- digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
- }
- // 如果未绑定的组件被触发,则会执行其中内容
- void dataRead(const String & data)
- {
- BLINKER_LOG("Blinker readString: ", data);
- counter++;
- Number1.print(counter);
- }
- void setup()
- {
- // 初始化串口
- Serial.begin(115200);
- BLINKER_DEBUG.stream(Serial);
-
- // 初始化有LED的IO
- pinMode(LED_BUILTIN, OUTPUT);
- digitalWrite(LED_BUILTIN, HIGH);
- // 初始化blinker
- Blinker.begin(auth, ssid, pswd);
- Blinker.attachData(dataRead);
- Button1.attach(button1_callback);
- }
- void loop() {
- Blinker.run();
- }
复制代码
软件界面定制
App中点击刚添加的设备,进入界面后,点击载入示例
硬件连接
在接线图中,继电器的输出端一共是三个孔位,下面的两个孔位为常开触点(默认为断开),当继电器输入信号为高电平时,输出端的两个常开触点就导通。这样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、智能宠物喂食器 |