版本协议

BSD

标签
标准版
#第四届立创大赛#基于433M 浴霸控制器

创建时间:4年前

项目主题:IoT(物联网)

描述

<p>简要介绍作品: 本作品是在原浴霸控制面板的基础,进行二次开发。由于原面板的控制功能简单,不满足个人的需求,因此进行一次大改造,初步的想法是:1.增加无线通讯,接入米家(家里都是米家的系统)。2.支持无线升级功能,方便升级代码,无需拆卸。3.对控制功能进行重新定义,比如长按关闭键,延时一段时间再关闭等等</p> <p>【请在竞赛阶段填写 ↓】 *  一、作品详情;        本作品经历1周艰难调试后,终于在今天最后的1小时解决了所有的技术问题。目前它能够实现433无线遥控面板控制、接入了米家(实际上也是用红外转433无线改的)、基于433M频率无线远程升级、长按按钮可分别自定义多个无线遥控码等。下面我来介绍下本作品: 1.功能结构模型 <img src="//image.lceda.cn/pullimage/BApxWbENw1i9iJUHB9MqSXeeeAycFuRgaHJWBPjW.png" alt="微信图片_20190922232926.png"> 2.功能实现原理说明 先说最不复杂的吧,随意贴面板实际上就是一个433M的无线遥控器,某宝上淘了一个,用用还是能用,就是左边一个按钮有时候响应时间较长,不影响,它发射出的无线码是23位的,有些遥控器是39位,浴霸控制器对其进行解码,比对后执行相关的操作,当浴霸控制器长按9秒以上,会进行闪烁,每次会隔1秒多闪烁1下,以区分不同遥控码的功能,此操作用来记录遥控码。米家的系统用的是万能红外遥控器+红外转射频模块,也是某宝上找的,原理类似,它可以生成N个无线码,进行对码后就能使用,在小爱同学中设置好,就能够实现控制(实际上也只能用于忘记关排风扇的时候)。无线升级这个工程量也是这个项目中最大的,最艰巨的,首先我对bin文件进行重新编码,能够方便发射,又能够方便存储。最后对bin文件进行59字节的分割,可能有人疑惑为什么不是64字节,那是因为每个数据包需要校验码,编号,数量等信息,占用了5个字节,由于浴霸控制器是单项接收,没有反馈,发射端更要保证数据的可靠性,抗干扰性。上位机软件采用的是labview,通过USB与STM32的板子(某宝上随处可见的廉价板)连接,通过虚拟串口给板子发数据,板子再发数据给浴霸控制器,发送成功后回复上位机,上位机下传下一个数据包,周而复始,直到完成数据包传输,由于时间紧,平时工作忙,在这个传输上面采取相对稳妥的办法,传输时间会比较长,每分钟1k左右的数据量吧,还能够接收。毕竟也不是天天升级。</p> <p>3.作品图册 <img src="//image.lceda.cn/pullimage/FhDdJVgvciYXzNAi3O3RoN3KOmxpIKn3zfRYSv3t.jpeg" alt="原.jpg">                                                            原厂的浴霸控制器电路板 <img src="//image.lceda.cn/pullimage/E3HFdH6RRb3H1fFwEPOATsMqSc9rGFZhSaiVUv5d.jpeg" alt="QQ截图20190922233057.jpg">                                                     原厂面板 <img src="//image.lceda.cn/pullimage/9lmvpOk9Q1kzJQnzbtgpYaz056aXJtc85BMi4hFR.jpeg" alt="本.jpg">                                                              本作品PCBA <img src="//image.lceda.cn/pullimage/aYGY5teUIjZMFNmjno146H3PQuFCeVCwQFD2CcRu.jpeg" alt="QQ截图20190922233427.jpg">                                                                      简易无线升级器 <img src="//image.lceda.cn/pullimage/sEQOqKMDiuskAiE7GeyA6ptIQPXLOtOsA6l6OteI.jpeg" alt="QQ截图20190922233526.jpg">                                    随意贴无线面板</p> <p>*  二、描述作品所面临的挑战及所解决的问题; 这个作品面临的最大挑战就是大部分想实现的功能都没有开发过,由于工作关系,STM32也没有重头到位做过一次完整的项目,时间紧、任务重,也算是一次挑战。 比如433M遥控器解码、USB通讯的实现、协议编码、STM32自升级等。 首先来说说433M遥控器解码,网上资料很少,只能用几个遥控器+逻辑分析仪,看波形琢磨协议,这里遇到的最大的问题就是几个遥控器存在协议冲突,引导码有高电平比低电平时间短的情况,当然也是极少数,直接屏蔽了,米家发射出的码只要这种情况就重新再发几个,大部分还是正常的; USB通讯,这个是从来都不敢碰的东西,协议太复杂,但是没办法,我对labview比较熟,只有通过串口把数据发下去,家里没有usb转串口模块。在CSDN上看了几个案例,尝试了下,均失败告终,找不到原因,电脑不识别,连接入的设备信息都没有,想想会不会是D+没接上拉,又回去看了下原理图,也没问题,看来只能是线了,把线拆开后,果然这根是电源线,只有2线,换线后,电脑有识别了,这个时候已经发现STM32还有一个神器cubemx,免去了我很多写代码的时候,顺利的连接上了,不过还没有很明白它的协议,直接在它的中断里写代码了,虽然low了些,但是一次能接收64字节也能满足我的需要了。 协议编码,这个是个头疼的问题,没有反馈,一个编码要发好多遍,确保能有1个完整接收到,还能知道接收到的是第几个数据包,另外还加了一个modbus用的CRC16校验,这个比较熟悉,这样确保了编码的可靠性。 STM32自升级,这个功能以前在一个项目中实现过,不过是我一个叫李承峰的同事做的,我看了当年他留下的文档尝试了下,做法是这样的,先收集数据包,大于9字节的数据包都会认为是升级数据包,存入EEPROM,收集完成后进行校验,然后重启进入引导程序,引导程序将EEPROM数据读出写入APP代码段,完成后跳转至APP,不过总会死在跳转到APP上。~~~~</p> <p><em>  三、描述作品硬件、软件部分涉及到的关键点; </em>  四、作品材料清单; <em>  五、作品图片上传;(PCB上须有大赛logo标识并拍照上传,若无视为放弃参赛) </em>  六、演示您的作品并录制成视频上传;(视频内容须包含:作品介绍;功能演示;性能测试;PCB上大赛logo标识特写镜头,若无视为放弃参赛)    七、开源文档。</p>

文档

浴霸控制器原理图

浴霸控制器PCB

BOM

暂无

附件

暂无

成员

评论(16)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>温馨提示:距项目提交还有23天,记得完善作品上传哟!期待期待~</p>
立创电赛 回复
<p>温馨提示:距项目提交截止还有11天,记得完善作品上传哟!</p>
立创电赛 回复
<p>你的项目很接地气。建议再详细补充一下作品的说明,拍个视频证明你的想法非常可行。</p>
AUQI 回复
<p>真是不幸,超过了时间,但还是补上吧</p>
AUQI 回复
<p>STM32自升级,这个功能以前在一个项目中实现过,不过是我一个叫李承峰的同事做的,我看了当年他留下的文档尝试了下,做法是这样的,先收集数据包,大于9字节的数据包都会认为是升级数据包,存入EEPROM,收集完成后进行校验,然后重启进入引导程序,引导程序将EEPROM数据读出写入APP代码段,完成后跳转至APP,不过总会死在跳转到APP上。原因查了很久,一直没找到,直到我通过UE软件对比写入的代码和keil直接下载的代码,发现有几个码有细微的差别,难道是通讯时候出错?不应该,要是这样校验绝不会通过,继续排查发现一个巨大的问题,labview读出的bin文件和UE软件读出的码存在几个不一致的情况,UE软件的码是对的,问题出在labview上,经过升级至新版本后,才将此问题解决,算是遇到的最大的坑</p>
AUQI 回复
<p>三、描述作品硬件、软件部分涉及到的关键点<br/>作品硬件关键点在于触摸芯片的触摸走线尽可能细,走在触摸盘的背面,触摸IO不用的脚一定要接地,不然可能会误触发;433无线接收模块的天线长度在17cm左右,宽度要进行阻抗匹配,这个是通过软件计算的,这里就不深究了。<br/>软件关键点有点多了,大部分时间在软件上,这里说几个重要的吧,其他可以看附件代码,全部开源,希望对别人有所帮助,写的匆忙,变量有些乱,敬请谅解。<br/>1.433编解码用定时器+外部中断方式较为可靠,可在下面附件中查看;2.USB通讯一次发送数据64字节,但找不到相关标志位,请各位大神指点,想弄个双缓冲结构的接收,这样发送433M射频可以放在主函数中操作,而且不用受到64字节的限制。3.stm32自升级,跳转前一定要关中断,不然可能跳转后乱来。</p>
AUQI 回复
<p>  四、作品材料清单<br/>主控:STM32F103C8T6<br/>触摸芯片:BS818A-2<br/>驱动芯片:ULN2003ADR<br/>EEPROM:AT24C256C-SSHL-T</p>
AUQI 回复
<p>七、开源文档<br/>1.上位机软件<img src="//image.lceda.cn/pullimage/wAcmLNkzlf2aa94tpQBTVOm7MI12GkWpoP0Mn99v.png" alt="微信图片_20190923002340.png"><br/>2.无线升级下位机(USB CDC)代码<br/>3.ybc -Bootloader代码<br/>4.ybc -可升级 APP代码<br/>百度网盘:<a href="https://pan.baidu.com/s/14jiaTTRohWj8_mIfcr9UOg" target="_blank">https://pan.baidu.com/s/14jiaTTRohWj8_mIfcr9UOg</a><br/>提取码:zhqv</p><br/><pre><code></code></pre>
AUQI 回复
<p>时间关系,视频这两天补上</p>
AUQI 回复
<p>原理图和PCB图<br/><img src="//image.lceda.cn/pullimage/JQJMlRUgeOoxePVpC3Wg5pRuTt8lUe1FEOUoV8Z4.png" alt="PCB图.png"><img src="//image.lceda.cn/pullimage/evZecevejB3VpOhhoyKBek657FIs9DhNzJB79oym.png" alt="原理图.png"></p>
AUQI 回复
<p>测试视频:<a href="https://v.youku.com/v_show/id_XNDM1NzQ3MzM1Ng==.html?spm=a2h0j.11185381.0.11185381" target="_blank">https://v.youku.com/v_show/id_XNDM1NzQ3MzM1Ng==.html?spm=a2h0j.11185381.0.11185381</a></p>
jixin001 回复
<p>@auqi 视频连接是不是放错了?</p>
AUQI 回复
<p>@jixin001 真是醉了,上传的视频被其他视频替换了,上传记录也没有了,重新再传下</p>
AUQI 回复
<p>视频更新链接 <a href="https://v.youku.com/v_show/id_XNDM4ODEwNDI2NA==.html?spm=a2h3j.8428770.3416059.1" target="_blank">https://v.youku.com/v_show/id_XNDM4ODEwNDI2NA==.html?spm=a2h3j.8428770.3416059.1</a></p>
立创电赛 回复
<p>恭喜您的项目获得第四届立创电子设计大赛参与奖,点击查看获奖名单:<a href="https://diy.szlcsc.com/posts/7b78bd99e53745588a4f2d81cc11af92" target="_blank">https://diy.szlcsc.com/posts/7b78bd99e53745588a4f2d81cc11af92</a></p>
lrflrf 回复
<p>@auqi链接并不存在了</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow