查看: 1693|回复: 3

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

[复制链接]

该用户从未签到

发表于 2021-3-10 09:51 | 显示全部楼层 |阅读模式
本帖最后由 海神 于 2021-6-7 11:03 编辑

简介

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

硬件

wifiduino主板*1
Wifiduino传感器扩展板*1
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中点击刚添加的设备,进入界面后,点击载入示例

硬件连接

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

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

进阶

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





blinker物联网教程目录

该用户从未签到

发表于 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
编译不对,检查库文件安装是否正确,板卡选择对不对

                          好的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

esp32s2 在Arduino IDE调试USB CDC
esp32s2 在Arduino IDE调
各位大佬好,最近尝试弄清如何使用esp32s2的usb功能。然后在Github上找的代码,放到自
一直想做个飞行器,但是出了电小问题
一直想做个飞行器,但是出
这是主函数的源码 extern uint8_t PWM_PIN[8]; void initOutput();//初始化函数 void
Arduino mega2560 usb串口01被modbus master库占用,无法下载程序
Arduino mega2560 usb串口
Arduino mega2560 用来测试modbus master通信,因未发现串口可选择,直接下载了串口(
DIY炫彩灯带,竟如此简单,更有硬件开发工具免费领!
DIY炫彩灯带,竟如此简单
什么是涂鸦Arduino SDK? Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Ardui
.h .cpp源代码转.ino草图
.h .cpp源代码转.ino草图
在Github上下载了源码,是.h 和.cpp文件,请问一下,如何才可以转成可以在arduinoIDE
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表