用ESP8266快速实现WIFI红外遥控器( SoC模式)-Arduino中文社区 - Powered by Discuz! Archiver

机智小子 发表于 2017-8-3 11:14

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

目前很多家电带有红外遥控,如:电视、空调、风扇等等。有一个用手机控制的红外线遥控器的话现有的家电变成智能家电了,比如到家之前手机远程开空调等。本文介绍通过机智云平台快速实现智能家电红外遥控器。
1,硬件结构图主要使用了esp8266 wifi模块和红外串口通讯模块。有了红外串口通讯模块,省去了单片机的串口通讯和红外编码程序,大大缩短开发时间。因为红外通讯模块不支持3.3VTTL电平,所以两个模块之间加了一个2路电平转换模块,把ESP8266的3.3V电平装换为红外通讯模块所需的5V电平。ESP8266有两个串口,串口0是双向的一般用在与MCU通讯,串口1是单向,显示LOG用。红外串口通讯模块资料请参考附件。各模块连接图如下:http://club.gizwits.com/data/attachment/forum/201708/02/134204vjfocejd4cj6mmqb.jpg.thumb.jpg2, 红外线串口通讯模块http://club.gizwits.com/data/attachment/forum/201708/02/134204g5n42nnq33yniidy.jpg.thumb.jpg功能:1、具备NEC格式红外发射功能。2、具备NEC格式 红外编码功能。3、带红外发射头扩展接口。4、具备串口通信功能,通信电平为TTL。5、可控制99%的NEC红外格式设备,包括电视机、电风扇等电子电器设备。6、支持NEC 编码芯片:(典型编码芯片如uPD6121, uPD6122, TC9012 以及众多的兼容芯 片型号,如 PT2221, PT2222,SC6121, SC6122,   SC9012 等等)。7、可作为红外无线数据通信、数据传输、红外控制等功能。
使用方法:解码:解码时不需要发送任何指令,只需要拿起遥控对准模块的接收头按下,这时模块的串口就输出该红外编码。编码(发射):编码时需要根据一定格式发送指令,通过电脑或者单片机串口发送5个字节的指令,就可以将对应编码的红外信号还原出去。http://club.gizwits.com/data/attachment/forum/201708/02/134205tdzxpyy7ydysry5z.jpg.thumb.jpg
2,获取遥控器编码把红外串口通讯模块连接USB转TTL模块上(电压5V),打开串口调试助手,按下家电的红外遥控键,获取各键的红外编码并记录下来。http://club.gizwits.com/data/attachment/forum/201708/02/134205w6lo5axmuoof9t9x.jpg.thumb.jpghttp://club.gizwits.com/data/attachment/forum/201708/02/134205vhdtn78yxhd6ydhq.jpg.thumb.jpg
3,ESP8266开发(SoC)创建数据点http://club.gizwits.com/data/attachment/forum/201708/02/134206opbfrvf0epq9rfqo.jpg.thumb.jpg
MCU设置及生成代码http://club.gizwits.com/data/attachment/forum/201708/02/134206lxg5cecq8hoz3tcv.png.thumb.jpg
4,Soc程序修改红外遥控编码中可能包含0X00,这是字符串结束符,所以不能直接用uart0_sendStr函数了。打开uart.c文件创建uart0_sendIFR函数,内容下图http://club.gizwits.com/data/attachment/forum/201708/02/134206ol7uqlesk3sb7z5k.jpg.thumb.jpguart.h 里加函数**http://club.gizwits.com/data/attachment/forum/201708/02/134206wxcyx1ohy9x0l1ch.jpg.thumb.jpg确认user_main.c函数中的串口初始化,由于红外串口通讯模块的默认波特率是9600,所以串口初始化部分不需要修改。http://club.gizwits.com/data/attachment/forum/201708/02/134922u6z1gq191n1zvkqr.jpg.thumb.jpggizwits_product.c 文件的修改http://club.gizwits.com/data/attachment/forum/201708/02/134207v2797zl7579zf828.jpg.thumb.jpg发射逻辑http://club.gizwits.com/data/attachment/forum/201708/02/134207ml52z95gtjtu9t25.jpg.thumb.jpg
5,编译及烧写官网和其他帖子里介绍的很详细,这里不再重复了。6,测试红外线管对准家电,用手机机智云Demo程序可以控制家电了http://club.gizwits.com/data/attachment/forum/201708/02/134207zexr7tn40nvtnit1.jpg.thumb.jpghttp://club.gizwits.com/data/attachment/forum/201708/02/134938nfuvv4f4uvb34a4r.png.thumb.jpghttp://club.gizwits.com/data/attachment/forum/201708/02/134939oabgsory8rv8ddgv.png.thumb.jpg
源码和模块资料:链接:http://pan.baidu.com/s/1i5uvZMH 密码:wl3z
本文转自:http://club.gizwits.com/thread-7513-1-1.html原文作者:黑洞
页: [1]
查看完整版本: 用ESP8266快速实现WIFI红外遥控器( SoC模式)