温室度控制系统项目总结

对于做过的项目也做个几个了吧,但是还是第一次进行总结项目开发的经验吧,当然有总结不好的地方,还需要跟大家多学习多交流吧。

接过项目我们要知道客户要求实现的功能有哪些,然后根据客户所提出的功能跟我们现实可以实现的相比较,所有的项目都不能异想天开,因为理想总是丰满的而现实总是残酷的。我们要根据客户所要求的,来尽量的满足客户同时还必须考虑是否能去实现功能,最后来做出我们的产品。

进入正题,我们做的温湿度控制系统比较简单,主要功能有:1.采取温湿度数据的显示 2.对温湿度最大最小值判断做报警处理 3.查看和退出(查看最大最小值)。
在确定功能后,我们接下来就要选择我们需要的板子的性能和板子的模块(在这里统一用STM32F103VB)选好板子,接下来就是分析功能中用到板子中的那些模块东西。
分析:
1.采集温湿度数据—用到DHT11温湿度传感器(我们的主要目的是去学习所有采用这款温湿度传感器,当推广成产品时,我们也可以采用一些其他的
http://www.chinabaike.com/t/35572/2016/0423/4660066.html有一些温湿度传感器供参考)
2.显示数据—用到LCD1602(显示是内容足够了,当然如果不够的话也可以使用一些
https://wenku.baidu.com/view/2c5529c05fbfc77da269b1c6.html有一些常用的LCD供参考)
3.报警—实验用到的是蜂鸣器,但是推荐用其他外接喇叭,因为单片机上的蜂鸣器声音实在太小。
4.查看退出功能—这用到了独立按键。

好,分析完功能,就能开始做一一的去实现做项目了。

项目实现:
1.首先我们先点亮一盏灯,让蜂鸣器报警测试一下是否程序能正常的工作。(这里应该没什么打问题,调好程序能跑进行下面操作)
2.然后我们让LCD1602正常工作,因为整个过程中LCD1602作用最大;(这里没有什么问题,注意到初始化的配置,还有初始化函数的调用就行)
3.LCD1602也配置好了,接下来就是我们特别关键的串口通信(串口通信是让我们来检测接下来的DHT11数据是否能让上位机收到,上位机发出的命令是否能让单片机接受)
4.还有最后一项基本的功能,那就是RTC实时时钟了,我们通过RTC 来初始化时间。
5.基本功能完成后就是上位机的通信了,(宏哥给的上位机小程序)
6.最后就是UCOSS11 的移植。

项目总结经验:
对于一些小的问题上面项目实现就有一些介绍,但是解决了小的问题之后我们还会遇到一些很难解决的问题,下面就说说我遇到的一些头疼的问题:

1.首先在串口通信那里就遇到了一个问题,那就是如何去发送协议。
解决发送协议其实有很多种方法,但是在将整个协议内容打包起来,然后通过char的一个变量遍历所发送的打包能容长度,放到一个数组中存储起来,(类似与union共用体的使用),然后对方解包时候用同样的方法。但是,在解决这个问题之后会有遇到另一个问题就是,当你没收到完整包的时候被中断打断,会影响后面的内容错误,无法正常的工作,这该如何解决呢?于是,采用定时器中断来管理接受和发送的使能,接受时不发送,发送时不接受,而且定时的去发送内容,这样我们说接受到的数据基本就是所要的内容。问题解决了就。

接下来,在写程序的方面就没有什么问题了,而是在调试过程中遇到一些比写程序还头疼的问题。这可真是哭着在调试啊!!

2.程序跑的好好的,突然硬件死机了,所有硬件不工作了,但是调试的时候程序还在跑
这个问题很尴尬,调试的时候都快哭了,简直虐。。。最后一行代码没改,就改了一个参数。
没错,他就是时序问题,接触软件接触多了,根本不回去考虑还有时序问题,第一次做硬件的项目发现,硬件的时序问题是必须考虑的,负责你都不知道自己是怎么被虐的(还是在做的时候好好考虑吧 !)时序的问题有好多,比如:定时器不要用同一个,尤其在用滴答定时器的时候千万注意一下。我是在OSTimeDlyHMSM()这个函数上出错的时序刚好和内部调时候的时序发生了冲突,让THComProTPSSend 里面的OS_EXIT_CRITICAL();没有起到了作用导致所有的中断全部关闭,就出现了程序还在跑,硬件全部挂了。(切记:时序!时序!时序!)

3.程序运行的好好的,为什么突然DHT11收集到的数据在LCD1602上显示不变了。
这是一个也很尴尬的问题,因为你程序跑的时间短的话,根本看不出你程序是错的。这个问题在论坛上也看到了其他同学遇到了,论坛上有详细的解释,我也想过其他的办法不过还是没找到一个比较优化的代码。大家先看看论坛上的解释,应该能解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值