请选择 进入手机版 | 继续访问电脑版

ESP8266接入小爱同学—智能LED台灯或风扇(利用继电器)

[复制链接]
欣然自乐 发表于 2021-1-1 09:57:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
ESP8266接入小爱同学—智能LED台灯或风扇

上周用esp8266做了一个语音智能台灯,也参考了许多网上的教程,也不难,挺简朴的,在这里分享一下。
首先我用的是arduino IDE对esp8266进行的编译,arduino对8266编译情况的具体设置可参考
太极创客网站arduino设置esp8266
大家如果想学习esp8266的知识,推荐太极创客网站,讲解的很好。
先说一下本次预期想要实现的功能:
1.使用WiFiManager库实现自动配网,亦可以大概满足在不同WiFi下可以不消更改步调即可链接不同的WiFi
2.使用esp8266 OTA功能实现应用步调在局域网内升级,清除数据线限制
3.通过MQTT协议实现摆脱局域网限制的远程控制,实现远程控制灯的亮和灭
4.接入自己小米手机的米家软件,实现小爱同学语音控制
5.使用另一个呆板开关实现网络和呆板双控制,以应对网络不稳定情况的发生
6.使用继电器进行控制,实际上可以不消,但因为自己没用过,所以借此机会应用一下,相识一下
7.另外还想使用一下esp8266多任务处理处罚的Ticker库,因为感觉只用几个引脚控制一个灯有点大材小用,好比可以再毗连温湿度传感器或者0.96寸oled屏幕之类的
但是反面实际做的时候由于时间不富足,所以砍掉了几项功能
完成的有:
基本电路毗连、点灯、手机app控制、小爱同学语音控制、单独呆板开关控制 (台灯在app和小爱语音端处于开状态时,便可单独用呆板开关控制,看到反面就懂了)
硬件准备:(完全可以从淘宝购买到)
ESP8266-2102开辟板一块
5V继电器一个
台灯或灯管一个(带供电线,有开关更好)
母对母杜邦线三根

数据线(micro usb接口)一根



首先我们要用到继电器(可淘宝购买),先说一下继电器的原理及用法:

电磁继电器的作用:使用来用弱电控制强电,包管人们不会在高压电路中因为某种因为发生危险
先看右端三个脚的作用:(右端三个脚接8266开辟板(我们直接接纳8266的引脚供电)):
VCC就是电源正极,GND就是电源负极,IN是通断信号的输入引脚。
再看左端三个脚的作用:
NC即常闭端(normal close),COM即公共端,NO即常开端(即断路状态),也就是说,在没有任何上电之类的动作时,NC和COM端相当于已经连通而NO和COM是断开的。
当8266引脚向右面三个脚中的IN端输入控制信号时,NC和COM断开,而COM和NO毗连,IN失电时,规复为NC和COM连通,NO和COM断开。
我们将使用继电器的上述特性来控制灯的亮灭:
当8266引脚向右面三个脚中的IN端输入信号时,NC和COM将断开,而NO和COM将毗连。
8266和继电器具体接法看下图(用D4引脚控制):

继电器和灯的供电线的连访问下图:

即灯(或风扇)的两条电路中的一条穿过NO、COM端,然后正常毗连电源。

剩下的就是步调了,我们需要用到点灯科技平台,直接百度搜索就可以了。然后点击进入官网.具体操作即步调顺序见下图:

1.手机端下载blinker app并安装及注册完成。
2.电脑端arduino IDE安装好上图中5号步调中的库。(安装步调可参考下图)


然后在弹出页面中选择下载的库文件,不消解压缩,直接选中点击确认即可。
手机APP端设置
1.打开后点击右上角加号,点击独立设备,点击网络接入,点击阿里云(因为点灯科技云暂时不支持小爱同学)。然后复制KEY备用。(放入电脑端步调用以匹配设备)。
2.返回后点击添加的设备,再点击右上角编辑符号,添加一个按钮,注意数据键名,此名称要与你的电脑端步调中一致(此示例步调中定名为bin)。

确认线路接线无误为ESP8266烧入步调
usb数据线毗连esp8266开辟板到电脑,打开arduino IDE写入以下步调,然后上传到开辟板。
  1. #define BLINKER_PRINT Serial#define BLINKER_WIFI#define BLINKER_MIOT_LIGHT#include int LIGHT = D4;char auth[] = "你复制的KEY";char ssid[] = "你的无线网(或热点)名称";char pswd[] = "无线网暗码";// 新建组件对象BlinkerButton Button1("bin");//你的按钮名称BlinkerNumber Number1("num-abc");int counter = 0;void miotPowerState(const String & state){    BLINKER_LOG("need set power state: ", state);    if (state == BLINKER_CMD_ON) {        digitalWrite(LIGHT, LOW);        BlinkerMIOT.powerState("on");        BlinkerMIOT.print();    }    else if (state == BLINKER_CMD_OFF) {        digitalWrite(LIGHT, HIGH);        BlinkerMIOT.powerState("off");        BlinkerMIOT.print();    }}// 按下按键即会执行该函数void button1_callback(const String & state) {    BLINKER_LOG("get button state: ", state);    digitalWrite(LIGHT, !digitalRead(LIGHT));}// 如果未绑定的组件被触发,则会执行其中内容void dataRead(const String & data){    BLINKER_LOG("Blinker readString: ", data);    counter++;    Number1.print(counter);}void setup() {    // 初始化串口    Serial.begin(115200);    #if defined(BLINKER_PRINT)        BLINKER_DEBUG.stream(BLINKER_PRINT);    #endif    // 初始化有LED的IO    pinMode(LIGHT, OUTPUT);    digitalWrite(LIGHT, HIGH);    // 初始化blinker    Blinker.begin(auth, ssid, pswd);    Blinker.attachData(dataRead);    Button1.attach(button1_callback);    BlinkerMIOT.attachPowerState(miotPowerState);}void loop() {    Blinker.run();}
复制代码
然后便可使用blinker app控制灯或风扇的开关了。
接入小爱同学
下载米家app并打开点击我的,点击其他平台设备,找到点灯科技,输入你的点灯科技注册账号。然后试一试语音叫小爱同学开关灯试试。有时一次可能添加不乐成,多试频频看看是不是那里出了问题。
(另有一个问题就是你的设备名称,这个可以在blinker app中点击你的设备,但后点击右上角的三个点图标,修改设备名就可以了,还可以设置定时任务等)

来源:https://blog.csdn.net/SHENSHIQ/article/details/111148914
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

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

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )