基于ZIGBEE和STM32的农村水柜无线监控系统设计

2016-06-02 03:09广西民族大学龙凯思黄开连韦世勇
电子世界 2016年9期

广西民族大学 龙凯思 黄开连 韦世勇



基于ZIGBEE和STM32的农村水柜无线监控系统设计

广西民族大学 龙凯思 黄开连 韦世勇

【摘要】水柜是解决农村用水问题的一大保证,为了解决更多农村的用水问题,提高用水的便捷性,保证家家户户都能解决用水难的苦恼,研究水柜的监控系统是非常有意义的。本文主要通过研究以ZIGBEE为无线传输核心、STM32为控制核心以及WINFORM为上位机监控中心的水柜无线监控系统,通过ZIGBEE节点采集水位信息,无线传输至ZIGBEE协调器,协调器通过串口传送至STM32,STM32处理信息后显示以及传输至上位机。用户可以实时监控各个水柜节点的水位、温度信息,也可以通过上位机或者STM32控制节点抽水机进行抽水,可以方便快捷地管理每一个节点的水柜。

【关键词】ZIGBEE;STM32;水柜监控

0 前言

近年来,随着科技的发展,电子技术行业的日益发达,如何将科技带入农村地区的供水问题值得我们思考。为了解决农村用水问题的困难,方便村民取水、用水以及节约水资源,利用电子信息及无线通信技术管理以及监控水柜,通过科技的力量取代原先的人工操作,减轻人工取水等繁重的工作,提高工作效率,改善生活质量,从而达到节约资源和减轻工作负担的双赢。

本文主要研究以ZIGBEE为无线传输核心的多节点水柜无线监控系统,STM32和上位机组成的人机交互系统。期间解决ZIGBEE无线数据的发送与接收问题,ZIGBEE与STM32的串口传输问题,STM32与上位机的串口传输问题。实现上位机、STM32远程控制水柜节点。

1 系统设计

整个系统包括水柜节点、主控模块以及上位机监控中心三个部分。

水柜节点主要包括ZIGBEE节点、压力传感器、温度传感器以及电源和抽水机。每个节点周期性地采集数据并且发送所采集到的数据至协调器,实现水位的实时监控,并且能够在最短的时间内响应协调器发送的指令,实现抽水机的运行与停止。

主控模块部分由ZIGBEE协调器和STM32构成。协调器主要工作是创建一个ZIGBEE网络,允许节点入网,接收各个节点发送来的信息以及发送指令控制节点。STM32单片机主要由按键和显示屏构成,单片机通过串口接收到协调器发送来的节点信息,经过数据处理后显示在液晶屏上,并且通过串口发送给上位机。用户可以通过STM32上的按键控制每一个节点抽水机的工作。

上位机监控中心主要通过电脑的串口接收到单片机发送来的节点数据,经过数据分析与处理后,动态显示水位高度在软件界面上。用户可以很直观的观测各个节点的水位信息、温度信息,并且在电脑上控制每个节点抽水机的工作,还可以设置相应的预警水位。

2 部分硬件设计

系统硬件设计包括LCD12864液晶显示屏模块、STM32主控模块和ZIGBEE无线传输模块三个部分。

2.1 LCD12864液晶显示屏

在系统STM32主控的显示方面,我们采用了LCD12864液晶显示屏。它是一款利用点阵图形显示的液晶模块,该模块具有128*64的显示分辨率,可以显示32个16*16点阵大小的字体。使用简单,成本较低。

2.2 STM32主控单片机

系统采用采用F103系列的RCT6作为微型处理芯片。它采用ARM32位的Cortex-M3CPU,最高工作频率可达72MHz,具有20K字节的SRAM。由此可见STM32的功能非常强大,足够满足设计的要求。

2.3 Zigbee无线传输模块

系统的ZIGBEE模块采用的是CC2530芯片,CC2530使用的是8051CPU,它是一个单周期的兼容性内核。其具有128KB字节的系统内可编程内存、极其高的接受灵敏度和抗干扰能力,具备IEEE802.15.4兼容无线收发器,芯片内置RF内核控制无线模块,此外它还提供一组连接外部设备的端口,从而可以发出命令和读取状态,控制各执行电路的事件执行顺序。

3 系统软件设计

系统软件设计包括上位机软件设计、STM32单片机软件设计和ZIGBEE无线模块软件设计三个部分。

3.1 上位机软件设计

上位机设计使用了.NET开发平台下的WINFORM,操作简单,界面功能丰富,可以形象生动地显示出水柜蓄水量。因为有三个水柜节点,所以首先根据串口接收到的数据进行分析,接收到的一串数据帧中,以字符“$”作为帧头,紧接着是地址符,“A”、“B”、“C”依次代表一到三号水柜。确定了此数据帧是哪个水柜的信息后,紧接着把数据信息接收处理,最后接收到了结束符“#”后,说明数据帧接收完毕。数据接收完成后进行数据类型转换,将每个节点信息显示到软件界面。用户也可以根据需要设定水位的上限值和下限值,低过下限值或者高过上限值都会发出警报。用户还可以手动控制节点抽水机的工作,增加蓄水量。

3.2 ZIGBEE软件设计

协调器作为ZIGBEE网络的创建者,首先需要配置好信道号和PANID号,节点ZIGBEE只有设置与协调器相同的信道和PANID号才可以加入到ZIGBEE网络中。为了防止协调器掉电后重新上电节点不能加入的问题,笔者在宏定义中加入了NV_RESTORE=1的预编译选项。除此之外,协调器还需要根据簇ID判断是哪个节点发送上来的数据,通过串口发送给STM32,也通过串口接收STM32的指令后发送数据包给相应的节点控制抽水机工作。节点主要是采集传感器的数据,封装成帧后通过发送数据包的方式把信息发送给协调器,或者在接收到协调器的指令后通过控制继电器通断打开抽水机。路由器的作用是将数据路由转发,即当终端节点联系不上协调器或者与协调器连接信号较弱时,会优先把数据转发给附近的路由器,再

由路由器转发给协调器。

3.3 STM32软件设计

STM32的串口收发是根据一定的帧格式完成的,帧格式例如:$**,dddd,dddd,…,(CR)(LF),$作为帧头,**代表的是某号水柜,dddd为数据域,最后接收到回车换行(CR)(LF)后代表帧结束。为了保证数据帧传输的稳定,解决数据丢失的问题,在每接收完一个数据帧,都会对数据域进行字符统计,看有没有缺少或者多出,若与设置的数值不等则丢弃此帧,重新接收。最后将接收到的数据显示在液晶屏上。

4 总结

本系统以ZIGBEE作为无线网络传输模块,充分利用了ZIGBEE多节点、自组网、低功耗的特点,对多个水柜水位、温度进行实时监控。合理放置路由器可实现更远距离监控,加上STM32和上位机等人机交互界面,具有功能丰富、操作简单、数据传输安全稳定、功耗低等优点。本系统还可以运用于其它多节点远程监控的场合里。

参考文献

[1]廖义奎.Cortex-M3之STM32嵌入式系统设计[M].北京﹕中国电力出版社,2012.

[2]周立功等.ARM嵌入式系统基础教程[M].北京﹕北京航空航天大学出版社,2005.1.

[3]王小强.ZigBee无线传感器网络设计与实现[M].北京﹕化学工业出版社,2012.6.

[4]林小茶.C语言程序设计(第三版)[M].北京﹕中国铁道出版社,2010,12.

[5]刘军,张洋,严汉宇.原子教你玩STM32(寄存器版)[M].北京﹕北京航空航天大学出版社,2012.

作者简介:

龙凯思(1994-),男,壮族,广西宁明人,大学本科,现就读于广西民族大学。