900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(三)

基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(三)

时间:2020-07-24 05:44:32

相关推荐

基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(三)

3. 遥控控制

我们根据已经获取到的按键与其红外信号,开始进行控制设计

首先,我们需要手机下载软件 点灯 blinker ,注册登陆

点击右上方“+”号 -> Arduino -> wifi接入 -> 复制key 后,返回主界面,就会出现一个新的设备 。

点击 Arduino -> 开始使用 -> 点击右上角编辑 -> 点击一下删除标志 -> 下方组件中,点击按键 ,上方就会出现

进行配置 :点击按键 -> 数据键名填上tv,选择开关按键,样式设置选择中间的开关,显示文本填上开关,选择喜欢的图标颜色 -> 点击保存。

同理,我们再设置一个普通按键

添加一个组件按键,->配置为数据键名 volume ,显示文本为 音量加大;选择喜欢的图标颜色(也可选择修改图标),样式设置不变 -> 保存;

点击右上角锁定界面;

3.1 硬件与连接

下面进行硬件连接:与第二章相同,不过我们需要将红外模块换为发射模块;

(但可能因为是我的硬件有问题,红外发射模块连接到ESP模块时,无法烧写程序,需要烧录完再连接上;且每次上电时,如果已经连接了红外模块会导致无法运行;需要先上电再接上红外发射模块,具体大家可以试一试)

具体连接线连接方式相同;

3.3V(VCC) -> VCC

GND -> GND

IO2 -> DAT(data)

3.2 代码

Arduino IDE示例中同样有红外发射的例程;

文件 -> 示例 -> IRremoteESP8266->IRsendDemo

但我们还需要blinker库的内容,所示具体代码如下所示;

#define BLINKER_WIFI //定义wifi模块#include <Blinker.h>//包含Blinker头文件#include <Arduino.h>#include <IRremoteESP8266.h>#include <IRsend.h>#define kIrled 2 //定义IO2IRsend irsend(kIrled); //定义IO2为红外发射数据端bool oState = false;//开关状态保存char auth[] = "******"; //设备key(点灯科技软件,进入设备后,右上角可查看)char ssid[] = "******"; //wifi 名称char pswd[] = "******"; //wifi 密码BlinkerButton TV("tv"); //定义"开关"数据键名BlinkerButton VOLUME("volume"); //定义"音量增大"数据键名void tv_callback(const String & state) {//按下开关按键if (state == BLINKER_CMD_ON){//如果按键按下后是打开BLINKER_LOG("打开电视");TV.print("on");//记录是打开状态irsend.sendNEC(0x20DF10EF); //发射电视开关键的红外数据(第二章获取的信号值)delay(20);oState = true; //开关状态保存,主要用于接入小爱}else if (state == BLINKER_CMD_OFF){//如果按键按下后是关闭BLINKER_LOG("关闭电视");TV.print("off");//记录是关闭状态irsend.sendNEC(0x20DF10EF); //发射电视开关键的红外数据(第二章获取的信号值)delay(20);oState = false;//开关状态保存,主要用于接入小爱}}void volume_callback(const String & state1) {//不判断不开关、按下即增大音量BLINKER_LOG("增大音量");irsend.sendNEC(0x80BFA15E);delay(20);}void setup() {//开始运行一次的函数irsend.begin(); //初始化红外发射模块Blinker.begin(auth, ssid, pswd); //连接wifi,连接blnikerTV.attach(tv_callback); //把按键与函数对应起来VOLUME.attach(volume_callback); //把按键与函数对应起来}void loop() {//不断循环运行的函数Blinker.run(); //blinker一直运行}

3.2 结果

观察点灯 blinker软件上的设备是否显示在线,然后点进去,点按开关键,将红外发射模块朝向电视机,点按软件上开关按键;

这样电视就能实现手机控制开关和音量增大的控制

这里只展示了简单的开关、增大音量的设置;具体可以自己增加按键;

在软件中需要添加按键,键名需要记录,要写入代码中;

而在代码中,需要增加

1、BlinkerButton NAME("data"); //定义"按键"数据键名//NAME 代表按键名词(主要用于后面对应函数)//name 代表键名编号(主要用于对于手机软件上的按键数据键名)//state需要变化,避免冲突2、定义按键后执行任务void name_callback(const String & state) {//主要为打印,串口监视器显示 BLINKER_LOG("增大音量");//括号内为红外数据,根据实际情况来写,0x必须写,代表十六进制irsend.sendNEC(0x80BFA15E); delay(20); //个人觉得需要稍稍延时}3、对应键码和按键任务,在函数setup中添加NAME.attach(name_callback) //把按键与函数对应起来

链接: 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(一).

链接: 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(二).

链接: 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(三).

链接: 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(四).

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