学习小记(通信课设)


288AA0.md.png

通信课设终于做完了(智能温室大棚)

简要记述一下:

​ 用原子的精英版相关例程组合形成本地端界面,主要包括LCD字符显示,中文字库显示,DHT11传感器的库(其中DHT11的信号重点看了一下,其中有一个传感器检测的信号,判断连接是否正确),还有就是YL69土壤湿度传感器和光敏电阻传感器,这两个使用的是ADC采集,STM32ZET6内部集成了3个ADC:注意一下相关ADC的使能和通道的启用,避免冲突,选择合适的ADC通道(这个地方卡了一段时间)

28JU0A.md.png

还有注意一下引入硬件库时,记得要在MDK“小魔术棒”的C++里添加相关文件的路径,要不会报错。传感器采集正常后,我的强迫症又犯了,花了一部分时间在设计界面上,接下来就是添加了阈值设置与相关控制器的开启与关闭,充分的利用了精英版上的个实体按键(复位按键不能用),也不用外接按键了。

​ 接下来就是网络部分,采用正点原子的esp8266模块(一开始用的时01s,感觉不太好调,其实也是能用的),参考了中国移动onenet出的一部分MQTT部分程序,挺好用的,精英版的串口1用来调试,串口2用来和8266进行串口通信,发送AT指令。服务器用的emqx(杭州营映云科技)免费的在线MQTT 5服务器,网络调试使用的时电脑端:MQTT.fx,后来因为没有时间做小程序了,改用了APP Store的一个叫MQTTool的手机端网络调试器,也算是手机小程序了吧。。。(小程序接下来要继续做的话准备使用mpvue.com的快速框架,使用VScode进行开发,微信开发者工具作为调试端,下载快速框架是时遇到点问题还没有及时解决)。

​ 连接服务器后,就要订阅和上传数据,上传数据很好解决,订阅,数据下行使用了JSON的格式数据进行传输解析的,速度很快,虽然代码变多了。主要时51假期期间搞了几天,基本上就是这样了,然后为了解决刚开机就连服务器导致本地端数据卡住的问题,使用了最后一个按键—–板子上的触摸按键,作为连接服务器的开关,使得刚开机进入本地模式,要想连接服务器再按一下触摸开关,同时,我把串口调试的输出信息放在了LCD下面的剩余空间处,便于脱机运行时出现问题的及时分析。大概就做成了这样。

​ 接下来主要就是帮同学做了,主要使用的点灯科技开发文档,直接用,复制到他们的项目上,很好用,还能连接小爱同学语音训练,就是有个同学的51单片机串口通信那块没做好,现学得得51串口通信,可是它原有的串口被当作普通IO口用了,重新定义还会和之前它使用的寄存器初值冲突,总之不太好改,最后只做了8266与服务器端的数据上传,无法从51串口实时获取采集的数据。。。我那课设放了一个多月,再拿出来后,数据下发不了了,查了很多原因,一直以为是我程序写的过于臃肿,加上服务器的延时,导致程序进不去,一直在调延时时间,一直不好用,卡了我两天,最后才发现,是我加入触摸连接服务器后形成了先订阅,后连接的错误顺序,总之一个很低级的问题。。。卡了我两天。

​ 在当天快要答辩时,受学姐相关实验课的启发,我想,掏出我的古董树莓派,自己搭一个MQTT的服务器,不用公共或者买的服务器,兴许还能多加点分,调了2个多小时,调出来了,拿去实验室时虽然连接上了,但是显示端口被占用,应该是我之前开了一个端口忘关了,开了其他的端口,后来还是可以用的,但答辩时还是用的公共服务器。。。

​ 就这么多,只有动手去做了,才会发现,原来问题那么多,不过会被解决的,也算是一次经验吧。其他的细节暂时想不起来了。

PS:上次的RM奖状发了,虽然是三等奖,很次,但也是努力换来的结果(主要是学长的努力)

学长发的博客:

28a1MT.md.png


文章作者: 旧时南风
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 旧时南风 !
评论
  目录