鲁东大学本科毕业设计
3 软件设计总述
3.1软件设计要求
设计要求:本控制器主要实现的是对农村蔬菜大棚的远程控制。通过控制器
内的手机通讯模块接收客户打电话或发短信实现的控制命令,收到客户端的命令并处理后,能够根据命令完成相应的卷帘和放帘、调整放气口、修改控制号码等操作。短信控制命令的数据形式主要是在分析PDU 码格式的短信,电话控制命令的形式则是通过判断电话接通的时间来实现的。为了防止误控制,在写程序的时候要设置专门的分析控制号码的程序,只有存在EEPROM 内的号码才能执行控制,其他号码的控制则被忽略。
设计目标:
在定时时间到了之后,自动控制两路继电器的关断,来进行控制卷帘机的正传与反转。卷帘或放帘一定程度,触发设定好的行程开关,电机停止运行。用户也可以在非定时时间通过打电话或发短信控制卷帘机,实现用户控制。 ②实现自动放气的控制。通过温度传感器ds18b20检测温度,根据温度的变化来控制放气装置,调整放气口的大小,实现自动放气。
③实现防盗的功能。因为农村大棚一般都是建在野外,那么大棚的安全性问题也比较重要。本系统通过安装在大棚内部的红外感应传感器模块,来检测盗贼的进入。在大棚没有人的时候,启动防盗功能。在有人入侵的时候,触发传感器,然后控制器控制大棚内的灯和喇叭打开,并且启动控制器的摄像头,对大棚内部进行图像采集,照片以彩信的形式发送到客户手机中。以后可根据照片中采集到的人的照片报案。
①实现对大棚卷帘机的自动控制。通过单片机内的时钟,根据要求设定定时时间,
3.2软件设计流程图
本系统软件设计流程图如图4:
4
鲁东大学本科毕业设计
开始 初始化外设 时间校对(短信) 待机 是否收到串口信息 串口2信息 串口3信息 短信信息 电话信息 接收到电脑发来的数据,并写入EEPROM 分析短信信息 控制继电器动作 开关继电器 定时 测温度 开关监控 修改EEPROM内信息 完成一次操作
5
鲁东大学本科毕业设计
图4 软件流程图
4 部分模块程序介绍
4.1短消息的相关介绍
4.1.1短消息收发的实现模式
通过发送特定的AT指令,可以应用手机模块实现发送和接收短信。本平台应用的是上海移远公司的U10模块。 用于短信操作的相关AT指令如表1所示:
表1 相关AT指令
考虑到本系统的主要用户是中文用户,所以收发中文短信是必须要实现的。现如今短信的格式,主要有TEXT和PDU两种格式。TEXT格式和PDU格式都支持发送中文短信,但是考虑到有些模块不支持,对于以后的移植造成不便。所以,在设计中编写了两种格式发送短信的程序,需要哪个就调用哪个。
PDU格式相对复杂,它有着特定的协议,而且他还有三种编码方式,我们
6
鲁东大学本科毕业设计
这里采用的是UCS2编码。UCS2编码主要用于发送Unicode码。而TEXT格式相对简单,因此在此只给出TEXT格式的部分程序:
4.1.2 查询端口并发送短信的程序
void Check_GPIO_PutMessage(char*num) {
char* O1;char* O2;char* O3;char* O4;char* O5;
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)==Bit_RESET) {O1=\else{O1=\
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)==Bit_RESET) {O2=\else{O2=\
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==Bit_RESET) {O3=\else{O3=\
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11)==Bit_RESET) {O4=\else{O4=\
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_12)==Bit_RESET) {O5=\else{O5=\Deal_number(num);
Uart2_PutStr(\delay_ms(200);
Uart2_PutStr(\delay_ms(200);
Uart2_PutStr(\Uart2_PutStr(N); //Uart2_PutStr(\Uart2_PutStr(\
Uart2_PutStr(O1);Uart2_PutStr(O2);Uart2_PutStr(O3); Uart2_PutStr(O4);Uart2_PutStr(O5); delay_ms(200);
Uart2_PutChar(0x1a); }
4.2存储器操作函数的设计
CAT1640是整个系统存储系统信息的器件,其内部存储了此系统主机的控制电话号码、系统定时控制的一些时间数据、当地经纬度等等,其作用至关重要。
7
鲁东大学本科毕业设计
4.2.1 CAT1640基本操作介绍
CAT1640的写操作:
在本系统中CAT1640作为从机使用,在进行单个字节写操作的时候,主机先发送start信号和从机地址,从机收到后给主机发送一个应答信号。然后,主机发送两个8位要写到从机存储位置的地址。在主机收到应答信号之后,开始发送8位数据。发送完成后,CAT1640再发出应答信号,主机接收到后发出停止条件。这时,CAT1640启动内部非易失性存储编程周期,不接受主机的任何要求。CAT1640写周期时序图如图5 。
图5 CAT1640写周期时序图
CAT1640 内含64字节的页写缓冲区,因此在一个页面写入周期内,写入的字节数不能超过64字节。在执行页面写操作时,开始的第一个字节跟单个字节写入基本相同。不同的是,写完第一个字主机收到CAT1640发来的应答信号之后,并不发送停止条件,而是接着写下一个字节,直到写完后,才发送停止条件。需要注意的是,如果在停止条件之前发送的字节数超过64字节,则之前写入的数据将会被后来的数据覆盖。
页面写入的周期时序图如图6:
8