收藏官网首页
查看: 84969|回复: 37

快速实现WIFI红外遥控器(ESP8266 SoC模式)

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
跳转到指定楼层
#
发表于 2017-8-2 13:50:05 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
校园创客福利
本帖最后由 黑洞 于 2017-8-7 22:07 编辑

目前很多家电带有红外遥控,如:电视、空调、风扇等等。有一个用手机控制的红外线遥控器的话现有的家电变成智能家电了,比如到家之前手机远程开空调等。
本文介绍通过机智云平台快速实现智能家电红外遥控器。

1,硬件结构图
主要使用了esp8266 wifi模块和红外串口通讯模块。有了红外串口通讯模块,省去了单片机的串口通讯和红外编码程序,大大缩短开发时间。因为红外通讯模块不支持3.3VTTL电平,所以两个模块之间加了一个2路电平转换模块,把ESP82663.3V电平装换为红外通讯模块所需的5V电平。ESP8266有两个串口,串口0是双向的一般用在与MCU通讯,串口1是单向,显示LOG用。红外串口通讯模块资料请参考附件。
各模块连接图如下:
2 红外线串口通讯模块
功能:
1、具备NEC格式红外发射功能。
2、具备NEC格式 红外编码功能。
3、带红外发射头扩展接口。
4、具备串口通信功能,通信电平为TTL
5、可控制99%NEC红外格式设备,包括电视机、电风扇等电子电器设备。
6、支持NEC 编码芯片:(典型编码芯片如uPD6121, uPD6122, TC9012 以及众多  的兼容芯 片型号,如 PT2221, PT2222,SC6121, SC6122,   SC9012 等等)。
7、可作为红外无线数据通信、数据传输、红外控制等功能。

使用方法:
解码:解码时不需要发送任何指令,只需要拿起遥控对准模块的接收头按下,这时模块的串口就输出该红外编码。
编码(发射):编码时需要根据一定格式发送指令,通过电脑或者单片机串口发送5个字节的指令,就可以将对应编码的红外信号还原出去。

2,获取遥控器编码
把红外串口通讯模块连接USBTTL模块上(电压5V),打开串口调试助手,按下家电的红外遥控键,获取各键的红外编码并记录下来。

3ESP8266开发(SoC
创建数据点

MCU设置及生成代码

4Soc程序修改
红外遥控编码中可能包含0X00,这是字符串结束符,所以不能直接用uart0_sendStr函数了。
打开uart.c文件创建uart0_sendIFR函数,内容下图
uart.h 里加函数**
确认user_main.c函数中的串口初始化,由于红外串口通讯模块的默认波特率是9600,所以串口初始化部分不需要修改。
gizwits_product.c 文件的修改
发射逻辑

5,编译及烧写
官网和其他帖子里介绍的很详细,这里不再重复了。
6,测试
红外线管对准家电,用手机机智云Demo程序可以控制家电了

源码和模块资料:
链接:http://pan.baidu.com/s/1hrTuegO 密码:qnnx

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
推荐
 楼主| 发表于 2018-3-15 11:56:04 | 只看该作者
后续又做了MCU方式的WIFI红外遥控器。特点是使用了无线串口透传模块和红外编解码模块,免去了繁琐的NRF24L01无线数据传输模块的编程和红外遥控器段的红外编码程序。从机(红外遥控器)端无任何单片机编程,主机端只是新增修改几行代码就可以了。
结构图:



从机(WIFI红外遥控器)的模块图:


实物图:


点评

老哥能再次发下码源吗之前的失效了  详情 回复 发表于 2020-5-17 22:11

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
推荐
 楼主| 发表于 2017-8-9 16:05:09 | 只看该作者
本帖最后由 黑洞 于 2017-8-9 16:08 编辑
dirtybi 发表于 2017-8-9 14:56
您好,非常感谢您的帮助,现在已经能够正常控制了,我这边是硬件问题(本来我用的也不是官方的板子),谢 ...
我也基本使用自己搭建的硬件环境,不用机智云开发版的话要注意供电电源,ESP8266模块好像对电源的要求很高,上电之后莫名其妙的重启,后来换电源之后好了,这个问题浪费了我近一个月的时间。

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
推荐
发表于 2017-8-22 18:33:09 | 只看该作者
黑洞 发表于 2017-8-22 12:21
一个WIFI模块可以控制多个设备的,控制一个设备和多个设备区别不大,因为每一个设备红外遥控编码不同。
...

//----------夏普------------//
uint8_t sharp0[]={0XA1,0XF1,0X00,0XFF,0XDC};        //电源
uint8_t sharp1[]={0XA1,0XF1,0X00,0XFF,0XDC};        //设置
uint8_t sharp2[]={0XA1,0XF1,0X00,0XFF,0XDC};        //确定
uint8_t sharp3[]={0XA1,0XF1,0X00,0XFF,0XDC};        //音量加
uint8_t sharp4[]={0XA1,0XF1,0X00,0XFF,0XDC};        //音量减
//------硬盘盒-------------//
uint8_t Hdd0[]={0XA1,0XF1,0X00,0XFF,0XDC};        //电源开
uint8_t Hdd1[]={0XA1,0XF1,0X00,0XFF,0XDC};        //电源关
//------空调--------------//
uint8_t AirConditioner0[]={0XA1,0XF1,0X00,0XFF,0XDC};        //电源
uint8_t AirConditioner1[]={0XA1,0XF1,0X00,0XFF,0XDC};        //模式
uint8_t AirConditioner2[]={0XA1,0XF1,0X00,0XFF,0XDC};        //风速
uint8_t AirConditioner3[]={0XA1,0XF1,0X00,0XFF,0XDC};        //风向
uint8_t AirConditioner4[]={0XA1,0XF1,0X00,0XFF,0XDC};        //过暖
uint8_t AirConditioner5[]={0XA1,0XF1,0X00,0XFF,0XDC};        //过冷
uint8_t AirConditioner6[]={0XA1,0XF1,0X00,0XFF,0XDC};        //睡眠
//--------------------------//里面的编码还没改
不知道我这样设置控制点可以不?,现在在外面,红外模块还在家里,只是吧程序做起了。

0

主题

4

帖子

22

积分

新手上路

Rank: 1

积分
22
34#
发表于 2021-2-15 18:09:56 | 只看该作者
汉枫LPB120模块
好实用啊,就是下载链接失效了,求楼主更新

1

主题

10

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
33#
发表于 2020-5-17 22:11:06 | 只看该作者
黑洞 发表于 2018-3-15 11:56
后续又做了MCU方式的WIFI红外遥控器。特点是使用了无线串口透传模块和红外编解码模块,免去了繁琐的NRF24L0 ...

老哥能再次发下码源吗之前的失效了

1

主题

10

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
32#
发表于 2020-5-17 17:26:51 | 只看该作者
老哥代码链接失效了能补发一个永久的吗

1

主题

10

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
31#
发表于 2020-5-17 17:25:02 | 只看该作者
链接失效了黑洞老哥能发个永久的吗

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
30#
 楼主| 发表于 2020-2-26 16:45:47 | 只看该作者
小光 发表于 2018-12-29 09:59
请问这个mcu模式的代码怎么修改呢

生成代码的时候选择独立MCU方案

0

主题

4

帖子

43

积分

新手上路

Rank: 1

积分
43
29#
发表于 2019-5-7 09:21:57 | 只看该作者
免费使用STM32、APP自动代码生成工具
看了网上一些案例,好像有点明白了,这个_VALUE是自己创建的数据点来的吧,然后枚举0.1.2.3是么

0

主题

4

帖子

43

积分

新手上路

Rank: 1

积分
43
28#
发表于 2019-5-6 23:04:39 | 只看该作者
本帖最后由 jiaojiao 于 2019-5-6 23:05 编辑

仔细看了错误,是这个原因,不过我是按照你的来改的,我的产品名是Aircon,所以把REMOCONBUTTON_VALUE1改成了Aircon_VALUE1,这是不是要在哪个文件里**一下吗,还是怎么改正呢,错误显示如下:gizwits_product.c:85:13: error: 'Aircon_VALUE1' undeclared (first use in this function)         case Aircon_VALUE1:

0

主题

4

帖子

43

积分

新手上路

Rank: 1

积分
43
27#
发表于 2019-5-6 22:41:43 | 只看该作者
按照你的图片里的内容更改了soc代码,可是到了编译的时候make命令后出现了make[1]: ** [.output/eagle/debug/obj/gizwits_product.o] Error 1
make[1]: Leaving directory `/mnt/Share/SoC_ESP8266_32M_source/app/Gizwits'
make: ** [.subdirs] Error 2
错误
请问你知道要怎么纠正吗,那个gizwits_product.o的文件打开都是乱码来的

0

主题

6

帖子

127

积分

注册会员

Rank: 2

积分
127
26#
发表于 2019-5-2 19:23:10 | 只看该作者
很好的应用

0

主题

4

帖子

66

积分

注册会员

Rank: 2

积分
66
25#
发表于 2019-1-3 10:31:36 | 只看该作者
黑洞 发表于 2018-3-15 11:56
后续又做了MCU方式的WIFI红外遥控器。特点是使用了无线串口透传模块和红外编解码模块,免去了繁琐的NRF24L0 ...

请问这个mcu方案需要修改哪些代码啊

0

主题

4

帖子

66

积分

注册会员

Rank: 2

积分
66
24#
发表于 2018-12-29 11:21:44 | 只看该作者
教您5分钟接入机智云,实现傻瓜式开发
请问楼主你这是用的什么家电啊,为什么我用的遥控器串口打印不出来啊

0

主题

4

帖子

66

积分

注册会员

Rank: 2

积分
66
23#
发表于 2018-12-29 09:59:42 | 只看该作者
黑洞 发表于 2018-3-15 11:56
后续又做了MCU方式的WIFI红外遥控器。特点是使用了无线串口透传模块和红外编解码模块,免去了繁琐的NRF24L0 ...

请问这个mcu模式的代码怎么修改呢

0

主题

4

帖子

66

积分

注册会员

Rank: 2

积分
66
22#
发表于 2018-12-29 09:22:42 | 只看该作者
黑洞 发表于 2018-3-15 11:56
后续又做了MCU方式的WIFI红外遥控器。特点是使用了无线串口透传模块和红外编解码模块,免去了繁琐的NRF24L0 ...

请问mcu方案需要修改哪些地方的代码呢??

5

主题

28

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
21#
发表于 2018-7-26 11:02:04 | 只看该作者
很好的帖子,解决了我用串口发送hex数据的问题

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
20#
发表于 2017-12-6 10:00:33 | 只看该作者
大家好,我自己买个usb的红外模块,按机顶盒的音量减,收到的数据是
00 78 F8 78 78 79 F8 F8 7C 78 78 FD 78 F8 78 78 78 F8 F8 78 78
F8 78 F8 FD F8 FD FC FD F8 F8 F8 F8 F8 F8 FC
00 79 FC 7C 79 78 F8 F8 78 78 78 F8 78 0F 78 78 78 F8 FC 78 78 F9 38 F8 F8 F9 F8 F8 F9 F9
F8 F9 F8 F8 F8 FC

这么多,这是否正确?我这个模块可以发射红外的,但是我按上面的数据发出去,机顶盒没能接收,是哪里问题?

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
19#
 楼主| 发表于 2017-11-8 19:26:41 | 只看该作者
注册成为机智云开发者,手机加虚拟设备快速开发
AIcainiao 发表于 2017-11-8 17:10
楼主大大,红外线模块是360度还是很有局限性?

我用的不是360度的。
你需要360度话就买四个发射管的那种。

17

主题

100

帖子

1381

积分

金牌会员

Rank: 6Rank: 6

积分
1381
18#
发表于 2017-11-8 17:10:26 | 只看该作者
楼主大大,红外线模块是360度还是很有局限性?

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
17#
发表于 2017-8-23 18:44:26 | 只看该作者
黑洞 发表于 2017-8-23 16:33
可以的。
设备和控制点多的话官方提供的Demo App界面不美观,有时间自己写APP吧。
...

APP还不会,现在用的苹果手机,难度就更大了,等你大大写个安卓的,我们来学习下,呵呵呵!!

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
16#
 楼主| 发表于 2017-8-23 16:33:59 | 只看该作者
peter58 发表于 2017-8-22 18:33
//----------夏普------------//
uint8_t sharp0[]={0XA1,0XF1,0X00,0XFF,0XDC};        //电源
uint8_t sharp1[ ...

可以的。
设备和控制点多的话官方提供的Demo App界面不美观,有时间自己写APP吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表