电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【Raspberry Pi 3 开发板 试用体验】农业远程温湿度监测系统
【Raspberry Pi 3 开发板 试用体验】农业远程温湿度监测系统
农业
开发
静水竹林
LV5工程师
| 2017-05-13 23:10:50
浏览量 1524
回复:2
发表新帖
该设计主要是根据前面比赛上进行进一步完善得来的,为了更好的实现农业远程温湿度监测系统,将上位机运行再嵌入式板卡上更加方便,因此这里采用Qt开发,设计一个能够实现温湿度监控系统的主控程序,能够实时读取下位机采集到的温湿度数据,并对数据进行分析处理,基本功能有:定时采集,定时记录,分类查询,参数设置,异常处理。
软件功能图:
程序流程:
a.加载驱动:
系统会自动加载串口网络驱动。
b.创建mainwindow对象
:首先定义mainwindow的一个对象。这是整个显示界面的类,里面包含整个程序运行的所有资源,在创建这个类时会先创建一个telnet类,这个类主要用于TCP/IP连接,用于下位机 网络通讯,同时会创建CSerial类,在CSerial类内打开一个串口,当采用ESP8266则通过串口转wifi实现通信。除此之外还会创建report类用于显示报警日志管理,runstate类用于显示当前采集到的信息状态,而 usermanager 主要用于上位机软件的用户管理如增添删除用户,warningset类可以用来设置温湿度报警上下限。
c.创建Temp对象:
这部分是在创建一个Temp对象,在创建这个对象时还会,添加两个lineEdit对象用来输入用户名和密码,然后添加两个pushButton对象,这是两个按键一个用来当登陆按钮,一个用来清除输入的账号密码。创建完成后显示这个登陆界面。
d.进入Qt循环事件:
执行完以上步骤以后程序就进入Qt循环事件,同时还有两个进程再运行,这两个进程分别是Wifi对象和串口对象创建的,用来接收串口ESP8266或是wifi发送来的数据。
e.进行事件处理:
当ESP8266或是wifi对象接受到数据,然后执行他们各自的数据处理,并发出事件,该事件与mainwindow对象的一个槽函数相连接,所以会转到该事件进行执行。同时也有可能是点击按键事件,每个按键都对应一个槽函数,当点击该案件时就会转到该按键对应的槽函数去执行相应的处理。
程序流程图
项目工程代码截图
系统将采集的温湿度信息上传到上位机进行实时显示,并且可以通过阈值设置报警警戒线。当超过设定限制会产生相应的报警动作,下面对真个系统进行介绍。
系统登录界面:
系统登录时会查询是否为注册用户,通过查找user_log中用户信息来判断是否允许登录,如下图所示
系统主界面:
当系统成功登录后会显示如下主界面,该界面包括了系统的主要功能如:当前运行状态、报警控制、远程控制、记录报警日志、用户信息权限管理,通过菜单的信息进行设计,方便操作,效果如下:
运行状态:
这里状态主要指当前下位机采集到的温湿度情况,和当前的系统时间
报警控制:
这里主要通过设置温湿度的上限和下限来控制报警
远程控制:
系统采用ESP8266串口转WiFi或是wifi直连的方式进行通信,需要设置IP后进行连接访问
报警日志管理:
该部分会记录系统运行过程中,温湿度超上下限时的值以及报警时的时间等信息
84077
用户管理:
该界面可以用来新添加用户或是删除用户信息,同时可以修改用户的权限等操作
总结:
通过系统测试可以发现,项目目前已实现预先想到的功能,之前采用Windows作为运行平台,这了借助raspberry pi这块小巧的板卡,可以更加方便操作和管理,运行状态界面可以清楚查看由采集到的温湿度情况;报警部分能够控制温湿度的上下限,来控制报警;远程控制模块可以控制远程的温湿度服务器;报警日志管理模块可以查看和清空记录的报警日志;用户信息管理模块可以控制用户信息。
该设计主要是根据前面比赛上进行进一步完善得来的,为了更好的实现农业远程温湿度监测系统,将上位机运行再嵌入式板卡上更加方便,因此这里采用Qt开发,设计一个能够实现温湿度监控系统的主控程序,能够实时读取下位机采集到的温湿度数据,并对数据进行分析处理,基本功能有:定时采集,定时记录,分类查询,参数设置,异常处理。
软件功能图:
程序流程:
a.加载驱动:
系统会自动加载串口网络驱动。
b.创建mainwindow对象
:首先定义mainwindow的一个对象。这是整个显示界面的类,里面包含整个程序运行的所有资源,在创建这个类时会先创建一个telnet类,这个类主要用于TCP/IP连接,用于下位机 网络通讯,同时会创建CSerial类,在CSerial类内打开一个串口,当采用ESP8266则通过串口转wifi实现通信。除此之外还会创建report类用于显示报警日志管理,runstate类用于显示当前采集到的信息状态,而 usermanager 主要用于上位机软件的用户管理如增添删除用户,warningset类可以用来设置温湿度报警上下限。
c.创建Temp对象:
这部分是在创建一个Temp对象,在创建这个对象时还会,添加两个lineEdit对象用来输入用户名和密码,然后添加两个pushButton对象,这是两个按键一个用来当登陆按钮,一个用来清除输入的账号密码。创建完成后显示这个登陆界面。
d.进入Qt循环事件:
执行完以上步骤以后程序就进入Qt循环事件,同时还有两个进程再运行,这两个进程分别是Wifi对象和串口对象创建的,用来接收串口ESP8266或是wifi发送来的数据。
e.进行事件处理:
当ESP8266或是wifi对象接受到数据,然后执行他们各自的数据处理,并发出事件,该事件与mainwindow对象的一个槽函数相连接,所以会转到该事件进行执行。同时也有可能是点击按键事件,每个按键都对应一个槽函数,当点击该案件时就会转到该按键对应的槽函数去执行相应的处理。
程序流程图
项目工程代码截图
系统将采集的温湿度信息上传到上位机进行实时显示,并且可以通过阈值设置报警警戒线。当超过设定限制会产生相应的报警动作,下面对真个系统进行介绍。
系统登录界面:
系统登录时会查询是否为注册用户,通过查找user_log中用户信息来判断是否允许登录,如下图所示
系统主界面:
当系统成功登录后会显示如下主界面,该界面包括了系统的主要功能如:当前运行状态、报警控制、远程控制、记录报警日志、用户信息权限管理,通过菜单的信息进行设计,方便操作,效果如下:
运行状态:
这里状态主要指当前下位机采集到的温湿度情况,和当前的系统时间
报警控制:
这里主要通过设置温湿度的上限和下限来控制报警
远程控制:
系统采用ESP8266串口转WiFi或是wifi直连的方式进行通信,需要设置IP后进行连接访问
报警日志管理:
该部分会记录系统运行过程中,温湿度超上下限时的值以及报警时的时间等信息
84077
用户管理:
该界面可以用来新添加用户或是删除用户信息,同时可以修改用户的权限等操作
总结:
通过系统测试可以发现,项目目前已实现预先想到的功能,之前采用Windows作为运行平台,这了借助raspberry pi这块小巧的板卡,可以更加方便操作和管理,运行状态界面可以清楚查看由采集到的温湿度情况;报警部分能够控制温湿度的上下限,来控制报警;远程控制模块可以控制远程的温湿度服务器;报警日志管理模块可以查看和清空记录的报警日志;用户信息管理模块可以控制用户信息。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
2
chen0000009
2017-05-22
楼主很熟悉Qt啊
0
回复
举报
发布
黄莨元
1天前
学习学习
0
回复
举报
发布
×
举报
举报人:
被举报人:静水竹林
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子