通过RS232串口控制LG电视

现在大部分LG电视都自带一个串口(RS232),其实通过这个串口可以完全操纵LG电视,并且功能比用遥控器强大。通过利用串口发送指令,可以对电视进行一些简单操作比如开关电视,调整音量,调换频道。也可以进行复杂控制比如调台。除此之外还能实现一些遥控器实现不了的功能,比如黑屏(screenmute),锁屏(之后遥控器和电视面板按钮将不起作用)。通过串口还可以发送每个按钮指令,所以功能上能完全替代电视遥控器。

具体细节官方提供了一个文档,可以在我的资源页面里下载http://download.csdn.net/detail/shallen320/8572513

命令格式

一般是PC给电视发送命令,PC是串口连接的主,电视是从。PC发出的命令格式是[命令][空格][目标设备号][空格][数据(多字节)][回车]  方括号只是用于分段,不是实际命令的一部分

[命令]: 2字节的命令.不同功能指令这部分不一样比如电源控制是ka,调整音量是kc

[目标设备号]:  一般LG电视默认是1,这个数字可以在电视选项里设置.如果用0的话是发送给连接的所有LG电视.注意PC是可以连接多个LG电视的.有的电视有2个串口,这样PC就能串接多个LG电视.

[数据]:指令的数据部分,可以是多字节. 对于有些指令,数据段为“FF”能查询该指令状态。比如调整音量指令,数据段为“FF”能查询当前音量。

[回车]:ASCII码的0x20,必不可少,电视靠该字符来识别数据包末尾

电视收到格式正确的命令后会应答,应答格式为[指令后一字节][空格][设备号][OK/NG][数据][x]

[指令后一字节]:发送的2字节指令后一字节

[OK/NG]:指令状态. OK代表指令有效,NG(No Good)代表指令无效。

[x]固定字符x

硬件连接

我使用了一个USB-RS232转换器,一头接PC的USB口,另一头接LG电视后面的串口接口

连接测试

使用任意一个串口终端就能进行指令的收发。我使用了windows自带的超级终端hyperterminal。使用hyperterminal设置好串口。我的串口是com4,就在属性里选择com4。按照官方说明,设置波特率为9600,8字节,无奇偶校验,1位停止位。基本都是默认值。除此之外在ASCII设置里我还勾上了Echotyped characters locally,这样自己能看到自己的输入。还勾上了Send line ends with line feeds这样能换行更易于阅读。

设置好之后测试了下电源控制命令,能控制电视启动,关闭,证明硬件连接已经就绪。图中ka 0 1是开机指令。a01 OK01x是电视的应答,说明设备号是01,指令有效,该命令当前值是01.

控制软件编程实现

硬件就绪后就可以开始着手软件编程了。Windows自带有控制串口的API,不过比较复杂,有兴趣的读者可以参考微软95年的一篇文章,时隔二十年,该文章仍然被认为串口编程的教科书:

https://msdn.microsoft.com/en-us/library/ff802693.aspx

我开始就打算利用Qt实现控制软件的图形界面部分,后来发现Qt本身就有对串口的良好支持。Qt内部有QtSerial Port库来实现对串口的读写。并且还提供一个串口终端的范例:

http://doc.qt.io/qt-5/qtserialport-terminal-example.html

所以我决定利用这个范例,在此基础上添加对LG电视的控制界面。

加入控制界面并不难,因为这个qt范例已经把底层的串口通信实现了。我在tools下加入了两个菜单选项,TVControl选项提供电视整体控制,Remote选项模拟电视的遥控器(见下图)

总结

LG业界良心,提供了串口连接来控制电视。使用串口能用电脑完全控制LG电视。试想一下加入网络功能的话可以甚至利用办公室的电脑或手机在外地控制家里的电视。(想一想都有点小激动呢)

转载请注明。暂不打算公开代码,需要Qt代码的可以跟我联系。

时间: 2024-08-06 20:00:03

通过RS232串口控制LG电视的相关文章

【转】RS232串口通信详解

串口是计算机上一种非常通用的设备通信协议. --------------------------------- 串口的引脚定义: 9芯 信号方向来自 缩写 描述 1 调制解调器 CD 载波检测 2 调制解调器 RXD 接收数据 3 PC TXD 发送数据 4 PC DTR 数据终端准备好 5   GND 信号地 6 调制解调器 DSR 通讯设备准备好 7 PC RTS 请求发送 8 调制解调器 CTS 允许发送 9 调制解调器 RI 响铃指示器 两个串口连接时,接收数据针脚与发送数据针脚相连,彼

工业串口触摸屏开发制作mp3播放器,单片机或PLC通过串口控制播放MP3音频方法

在工业控制系统中将音乐或语音MP3的美和工控结合在一起,给人以赏心悦目的感受.随着工业控制的发展,对工业控制的控制要求也越来越高,使得越来越多的控制部分不是指简单的现场控制,还需要增加音乐播放或语音提示,使得控制系统更加人性化. 这里介绍广州易显的工业串口触摸屏或者ARM工控机连接单片机或者PLC,使用工业串口触摸屏开发制作mp3的方法.跟电脑的播放器一样,具有播放,暂停,停止,控制播放进度,上一首,下一首等功能.可以在人机界面上控制播放MP3音乐或者语音提示.也可以使用单片机或PLC控制播放的

Uart串口与RS232串口的区别

Uart这里指的是TTL电平的串口:RS232指的是RS232电平的串口. TTL电平是3.3V的,而RS232是负逻辑电平,它定义+3~+15V为低电平,而-15~-3V为高电平. Uart串口的RXD.TXD等一般直接与处理器芯片的引脚相连,而RS232串口的RXD.TXD等一般需要经过电平转换(通常由Max232等芯片进行电平转换)才能接到处理器芯片的引脚上,否则这么高的电压很可能会把芯片烧坏. 我们平时所用的电脑的串口就是RS232的,当我们在做电路工作时,应该注意下外设的串口是Uart

STM32学习笔记(四)——串口控制LED(中断方式)

目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类型并使能串口中断 七.编写中断服务函数函数名格式为函数名格式为 USARTxIRQHandler(x 对应串口号). 八.主函数的实现. 一.时钟使能,包括GPIO的时钟和串口的时钟使能 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //

上位机串口控制FPGA开发板LED

实验目的: 上位机软件通过串口控制FPGA开发板上4个LED灯的亮灭,同时数码管显示LED灯亮的个数,实验效果如下图. 实验背景: 一直都想学习FPGA,这次算是入门了,我是看书学习的,所以FPGA的代码是参考着书本上的修改的,其实很高兴,因为这个实验是我自己发散出来的,书上的开发板和我用的开发板不一样,并且小软件也是自己用C#写的,总之,挺开心吧,本着开源的精神,所有的上位机代码和FPGA程序上传,如有需要请自行下载(点此下载).工作就没时间写教程之类的,简单的介绍一下吧 硬件平台: Cycl

STM32串口控制步进电机(原创)

用的42步进电机: 厂家可能不一样,两项四线步进电机,里面有两个线圈.在电机什么电都没有接的情况下,用万用表测量四个管脚:两两短接(或者阻值很小)的为一组,可以分别接A+,a-剩余接B+,B-;顺序可以互换:  经测,我用的17hs4417  黑绿一组,红蓝一组. 建议还是买个步进电机驱动器,五六十一个,相当好用. 贴一下STM32串口控制步进电机的代码: #include "led.h" #include "delay.h" #include "key.

RS232串口通信

RS232串口经常使用在PC机与FPGA通信中,用于两者之间的数据传输,因为UART协议简单.易实现,故经常使用. DB9接口只需要使用3根线,RXD(2).TXD(3)和GND(5),如下图所示.而用FPGA实现控制器时只需要利用RXD和TXD两根线即可完成串口通信. UART的异步通信协议如下所示: 1. 首先接受双方提前定义好通信的速度和格式等信息: 2. 如果是空闲状态,发送器一直将数据线拉高: 3. 开始通信时,发送器将数据线拉低,从而接收器能知道数据字节即将过来: 4. 数据位通常是

串口控制RGB灯程序

实验目的: 通过上位机给串口发送数据(字符); STM32将数据原封不动返回上位机,并且根据收到的信息产出相应的中断进行操作.(1-red led 2 –bule led...); 源码 bsp_usart.c #include "bsp_usart.h" static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* 嵌套向量中断控制器组选择 */ NVIC_PriorityGroupCon

RS232串口的Windows编程纪要

再次是一篇入门文,各路神仙退散. 直接进入主题,又不是历史课,关于RS232那些前世今生的故事就不摆了. 硬件链接 首先以9针小口为例(大口应当只能去博物馆看了吧)看一下管脚排布,其实RS232本身没进博物馆都已经够让我惊讶了. (图片来自互联网) 通常使用的接线图: (图片来自互联网) 硬件接口部分的重点: 绝大多数情况下,我们只需要接2号.3号.5号,RXD/TXD/SG三根线就能正常工作.(顺便多说一句,古老的大串口是2.3.7号) 直连模式一般用于延长线或者大小口的转换线. 交叉线是用于