【智能家居】空调遥控器破解

您所在的位置:网站首页 三菱空调智能遥控器 【智能家居】空调遥控器破解

【智能家居】空调遥控器破解

2024-07-10 20:11| 来源: 网络整理| 查看: 265

介绍

最近人在深圳温度比较高,每天回家进门感到很热,然后又连续两天早上出门忘关空调,每次调空调时来回找遥控也很麻烦,就希望空调能够自己调节自己,给我省点心。 以前破解遥控器的一种方案,真的是破解,就是把遥控拆开,按键短路接在继电器上,继电器再通过一个主控编程控制,这样继电器就可以模拟按键的过程。但是这样的解决方案不够优雅也很麻烦。最近使用了一个新方案,在网上购入了红外编解码模块,可以接收发送红外信号,解析后通过串口与主控通信,这样的方案优雅了很多。 理想生活是每天早上起床希望空调自动打开,出门上班空调关闭,晚上回家前空调提前打开降温,夜里进入睡眠模式,凌晨时候再关闭空调,全部通过程序自动控制,不需要再每次找遥控进行调节,一个成熟的空调应该学会自己调整自己。

硬件设计

在这里插入图片描述 使用淘宝上购入的stm32f103c8t6最小系统板作为主控,利用其TIMER或RTC模块作为定时器实现时钟走时及定时功能,通过串口通信与红外编解码模块进行通信。 简单说一下红外编解码,红外模块有一个发射二极管和一个接收二极管,通过电路调制,发射部分将数据变成高低电平通过二极管发出,接收二极管接到数据后进行解析,高低电平的的格式不同常见的可以分为PPM调制和PWM调制,其对应的编解码芯片不同,例如 在这里插入图片描述 具体原理不再赘述。一开始没有考虑红外的载波形式还有不同标准因此随意买了一个模块。 在这里插入图片描述 通过串口转USB模块连接电脑先测试一下,供电正常,使用遥控正对红外模块接收头按键测试,发现机顶盒、电视机遥控按键按下时串口助手可以回读正常数据,但是空调遥控器怎么按就是没反应,检查之后发现这个模块支持的是NEC编码,说明里标注说支持99%的NEC编码下的遥控器,之前把这个模式前提忽略了,猜想家里的空调应该不是NEC编码的,查询了一下发现格力空调确实有自己的编码格式。之后在重新下单了一个编解码模块,这个模块号称可以解码99%的红外设备,简单对比了一下说明发现,第一种编解码模块是收到数据后会根据NEC的编码协议,将高低电平数据解析为一帧数据发出, 在这里插入图片描述 如果本身的编码格式不是按这个固定格式的,那肯定会解析失败,什么都解析不出来。但是第二种模块,是自己的解读规则将收到的高低电平数据存成固定的236个字节,这个字节其实没有实际意义,只对应高低电平信号,因此厂家专门指出,同一遥控器按键信号在光线强弱不同时有可能解析出不同的数据。这一点在之后的测试中也到了印证,都是按关机键有时会得到不同的信号,且有时得到的数据不做改动使用发送部分发送时无法正常操作空调。 在这里插入图片描述 将新的模块同样通过usb-ttl模块连接电脑测试,使用空调遥控器对准模块按下后,可以正常接收到解析出的236字节数据。将接收到的数据通过串口助手发送给模块时,空调可以正常响应,认为该模块可以正常使用。

软件设计 RTC时钟

首先使用stm32的RTC模块配置一个时钟,实现日常的走时、闹钟等。

u8 RTC_Init(void) { u8 temp=0; RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); PWR_BackupAccessCmd(ENABLE); if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050) { BKP_DeInit(); //RCC_LSEConfig(RCC_LSE_ON); while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET&&temp=250)return 1; RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128); RCC_RTCCLKCmd(ENABLE); RTC_WaitForLastTask(); RTC_WaitForSynchro(); RTC_ITConfig(RTC_IT_SEC, ENABLE); RTC_WaitForLastTask(); RTC_EnterConfigMode(); RTC_SetPrescaler(62499); RTC_WaitForLastTask(); RTC_Set(2020,9


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3