收藏官网首页
查看: 74677|回复: 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用。红外串口通讯模块资料请参考附件。
各模块连接图如下:
001_硬件结构图.jpg
2 红外线串口通讯模块
002_红外串口通信模块.jpg
功能:
1、具备NEC格式红外发射功能。
2、具备NEC格式 红外编码功能。
3、带红外发射头扩展接口。
4、具备串口通信功能,通信电平为TTL
5、可控制99%NEC红外格式设备,包括电视机、电风扇等电子电器设备。
6、支持NEC 编码芯片:(典型编码芯片如uPD6121, uPD6122, TC9012 以及众多  的兼容芯 片型号,如 PT2221, PT2222,SC6121, SC6122,   SC9012 等等)。
7、可作为红外无线数据通信、数据传输、红外控制等功能。

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

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

3ESP8266开发(SoC
创建数据点
006_数据点定义.jpg

MCU设置及生成代码
007_MCU设置及生成代码.png

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

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

源码和模块资料:
链接: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模块好像对电源的要求很高,上电之后莫名其妙的重启,后来换电源之后好了,这个问题浪费了我近一个月的时间。 模块面包板.jpg

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};        //睡眠
//--------------------------//里面的编码还没改
不知道我这样设置控制点可以不?,现在在外面,红外模块还在家里,只是吧程序做起了。

563

主题

1222

帖子

8097

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8097
发表于 2017-8-2 17:15:17 | 显示全部楼层
注册成为机智云开发者,手机加虚拟设备快速开发
发现社区很多小伙伴动手能力都很强~~~
谢谢楼主分享 学习了
1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-kit
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

0

主题

5

帖子

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2017-8-7 00:27:39 | 显示全部楼层
模块在哪里买啊  红外模块

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
 楼主| 发表于 2017-8-7 09:39:36 | 显示全部楼层
诺言 发表于 2017-8-7 00:27
模块在哪里买啊  红外模块

某宝搜“红外串口模块“,很多

2

主题

22

帖子

320

积分

中级会员

Rank: 3Rank: 3

积分
320
发表于 2017-8-7 16:49:58 | 显示全部楼层
楼主,链接不存在了。

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
 楼主| 发表于 2017-8-7 22:07:58 | 显示全部楼层
知莫 发表于 2017-8-7 16:49
楼主,链接不存在了。

重新创建链接了,试一下。

0

主题

5

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-8-9 10:53:10 | 显示全部楼层
免费使用STM32、APP自动代码生成工具
您好,我将编译好的程序下载进去没有反应,您是用什么环境编译的呢?官方的方法还是安信可IDE?下载时需要注意些什么呢?

0

主题

2

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2017-8-9 11:22:00 | 显示全部楼层
haoggtf                           

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
 楼主| 发表于 2017-8-9 11:26:28 | 显示全部楼层
本帖最后由 黑洞 于 2017-8-9 12:00 编辑
dirtybi 发表于 2017-8-9 10:53
您好,我将编译好的程序下载进去没有反应,您是用什么环境编译的呢?官方的方法还是安信可IDE?下载时需要 ...
不能直接下载我编译好的固件,每一个项目都有自己的Product Key和Product Secret。在你的开发者ID中建立自己的项目、数据点、代码生成后下载并修改代码。
本地环境中搭建编译环境,编译成功之后并下载。社区中有很多搭建开发环境的帖子。
我的环境是参考了机智云官网的“GoKit3(S) 二次开发--开发环境搭”文档。安装VirtualBox后导入了影像文件,这个方法又快有简单。
链接:http://docs.gizwits.com/zh-cn/deviceDev/WiFiSOC/GoKit3S%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91.html
乐鑫官方开发环境(推荐方式).jpg


0

主题

5

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-8-9 11:59:54 | 显示全部楼层
您好,非常感谢,我是自己建的项目,自己修改的代码。正常情况下,代码下载过后,串口会有数据打印吗?您用的连接红外遥控模块的串口就是下载的串口吗?

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
 楼主| 发表于 2017-8-9 12:03:46 | 显示全部楼层
本帖最后由 黑洞 于 2017-8-9 12:11 编辑
dirtybi 发表于 2017-8-9 11:59
您好,非常感谢,我是自己建的项目,自己修改的代码。正常情况下,代码下载过后,串口会有数据打印吗?您用 ...

在手机APP Demo中切换按钮时候会在uart0上输出红外编码,也就是下载代码的串口,接串口调试助手工具的话能看出5位的16进制数据,注意波特率是9600。

0

主题

5

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-8-9 14:56:54 | 显示全部楼层
汉枫LPB120模块
黑洞 发表于 2017-8-9 12:03
在手机APP Demo中切换按钮时候会在uart0上输出红外编码,也就是下载代码的串口,接串口调试助手工具的话能 ...

您好,非常感谢您的帮助,现在已经能够正常控制了,我这边是硬件问题(本来我用的也不是官方的板子),谢谢哈

16

主题

67

帖子

1113

积分

金牌会员

Rank: 6Rank: 6

积分
1113
QQ
发表于 2017-8-11 12:44:59 | 显示全部楼层
这个思路好。这样家电都能联网了

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
发表于 2017-8-22 10:51:22 | 显示全部楼层
请问下可以改成控制多个电器设备吗?比如电视,安卓盒子等,谢谢

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
 楼主| 发表于 2017-8-22 12:21:13 | 显示全部楼层
peter58 发表于 2017-8-22 10:51
请问下可以改成控制多个电器设备吗?比如电视,安卓盒子等,谢谢

一个WIFI模块可以控制多个设备的,控制一个设备和多个设备区别不大,因为每一个设备红外遥控编码不同。
这些设备不在一个方向的话,可以买四个红外发射头的全方向红外发射模块。或者自己改上面模块的红外发射驱动电路改成四个发射管的全方向红外发射器。

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
发表于 2017-8-22 16:32:34 | 显示全部楼层
黑洞 发表于 2017-8-22 12:21
一个WIFI模块可以控制多个设备的,控制一个设备和多个设备区别不大,因为每一个设备红外遥控编码不同。
...

知道了,谢谢,打算好久在动手实验下,红外模块早几年就买了,一直没用,当时是10元吧,现在看看淘宝涨价了。

1

主题

26

帖子

875

积分

高级会员

Rank: 4

积分
875
 楼主| 发表于 2017-8-23 16:33:59 | 显示全部楼层
免费使用STM32、APP自动代码生成工具
peter58 发表于 2017-8-22 18:33
//----------夏普------------//
uint8_t sharp0[]={0XA1,0XF1,0X00,0XFF,0XDC};        //电源
uint8_t sharp1[ ...

可以的。
设备和控制点多的话官方提供的Demo App界面不美观,有时间自己写APP吧。

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

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

APP还不会,现在用的苹果手机,难度就更大了,等你大大写个安卓的,我们来学习下,呵呵呵!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

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

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