基于vb的精细农业生产中远程监控上位机设计毕业设计(论文)(编辑修改稿)内容摘要:
12 支持双击修改 , 右键选择菜单操作 Private Sub Command1_Click() On Error Resume Next If = 修改 Then (Xhang).Text = Format(Xhang, 000) (Xhang).SubItems(1) = Format(, yyyy/mm/dd hh:mm:ss) 13 (Xhang).SubItems(2) = (Xhang).SubItems(3) = (Xhang).SubItems(4) = (Xhang).SubItems(5) = (Xhang).SubItems(6) = End If If = 添加 Then Xhang = + 1 Xhang, , Format(Xhang, 000) (Xhang).SubItems(1) = Format(, yyyy/mm/dd hh:mm:ss) (Xhang).SubItems(2) = (Xhang).SubItems(3) = (Xhang).SubItems(4) = (Xhang).SubItems(5) = (Xhang).SubItems(6) = End If Unload Me End Sub 使用添加控件 MSComm 用来连接串口的下位机。 = + 1 39。 设置 端口 = amp。 ,N,8,1 = 0 = 512 = 512 = 0 14 = 12 = InputModeBinary = 0 = 0 = None 39。 无握手协议 = False = False On Error Resume Next = True If err Then 39。 = False MsgBox 通讯端口选择错误 ,在系统设置里更改。 amp。 vbCrLf amp。 下位机的串口号在这里看: amp。 vbCrLf amp。 桌面 我的电脑 属性 硬件 设备管理器 端口 CH340 End If “CH340” 是一种串口转换为 usb 的设备 ,电脑没有串口可 以使用它转换。 39。 下位机通过串口发送数据后 ,会就触发该事件 ,按照格式 ,1 字节传输数据 ,获取该数据后 ,填入“数据源”的 listview 里,其他模块就可以随时调用了,退出前会将所有数据保存到文件里,以备下次使用。 Private Sub MSComm1_OnComm() Dim buffer As Variant 39。 39。 按字节接收数据 格式是 39。 自己编号 (节点编号 ) 02 2 个字节 39。 湿度 33 2 个字节 39。 温度 22 2 个字节 15 If = EvReceive Then buffer = ‟ 将数据给变量 buffer,然后根据我需要的格式存放到“数据源”里。 , , Format( + 1, 000)‟自定义格式函数 format,设定 3 位数的行号 ID,是为了排序 . ().SubItems(1) = Format(Date amp。 amp。 Time, yyyy/mm/dd hh:mm:ss)‟统一时间格式 ,同样 format函数 定义 日期 +空格 +时间 ,日期和时间格式定义为:“年年年年 /月月 /日日 空格 时时 :分分 :秒秒” ().SubItems(2) = buffer(0) amp。 buffer(1) ‘ 0 和 1 , 2 个字节 存 放的节点编号 ().SubItems(3) = buffer(2) amp。 buffer(3) 2 和 3 湿度数据 ().SubItems(4) = buffer(4) amp。 buffer(5) 4 和 5 温度数据 = 0 = 0‟读取完毕,清理控件 End If End Sub 数据输出 分类输出显示实时状态可以让用户了解当时复杂环境中我们需要关注的几方面环境数据。 以往数据统计结果 ,可以让用户了解最经一段时间的环境数据状态,而通过以往数据可以分析了解植物生长所需环境状况,统计结果以时间曲线图的 16 方式展现,分类清晰,功能简介明了,方便使用者操作。 使用菜单的复选功能 ,以及 for 循环设置 label 控件数组的 caption 内容。 Private Sub turang_Click() = False = True = False = False For i = 1 To 12 l1(i) = 查看土壤湿度详细 Next i End Sub Sub wendu_Click() = True = False = False = False For i = 1 To 12 l1(i) = 查看温度详细数据 Next i End Sub Private Sub guangzhao_Click() = False = False = True = False For i = 1 To 12 l1(i) = 查看光照详细数据 Next i End Sub 17 Private Sub fengsu_Click() = False = False = False = True For i = 1 To 12 l1(i) = 查看风速详细数据 Next i End Sub 设备控制 同样人性化的设计了自动灌溉参数设定和手动定时或者实时开启或关闭操作,让灌溉设备以使用者想要的状态持续地智能化运作。 大幅度的降低了人工手动阀门的工作量,解放用户的双手。 系统设置菜单按钮 软件的一些基本参 数设定,以 的配置文件形式保存到硬盘中,软件启动会读取这些参数。 还包括各个节点的正常值、预警值、错误值的设定,根据积累的数据,分析得到一个符合当前环境的数据值。 不同的作物有不同的生长所需环境,根据作物的生长要求实施灌溉等操作,实现不浪费且增收的目的。 18 节点数据接收与查看模块 节点界面图片 模块说明 模块代码分为 3 部分: 在数据源(前面说的“系统设置”模块)里筛选出用户选定的节点数据,导入到 listview 控件里,并且以时间排序 为绘图准备数 据阶段完毕。 代码如下: Ex = 0 If Xjd 1 Then Xjd = 2 = = lvwReport , , ID, 400 , , 时间 , 1900 , , 节点 , 600 , , 土壤湿度 (%), 1200 , , 温度 (℃ ), 900 , , 光照度 (%), 1000 19 , , 风速 (m/s), 1000 ‘设置表头 39。 39。 查找选定节点的数据 For i = 1 To If Xjd = (i).SubItems(2) Then , , (i).Text ().SubItems(1) = (i).SubItems(1) ().SubItems(2) = (i).SubItems(2) ().SubItems(3) = (i).SubItems(3) ().SubItems(4) = (i).SubItems(4) ().SubItems(5) = (i).SubItems(5) ().SubItems(6) = (i).SubItems(6) End If Next i = lvwAscending = 1 = True 获取用户选择的曲线图类型,设置所需要的参数,如:曲线图数据类型,背景皮肤,背景色,曲线图颜色等。 代码如下: Select Case True Case 20 Call Image1_Click Case Call Image2_Click Case Call Image3_Click Case Call Image4_Click End Select „判断绘制曲线图类型 Sub Image1_Click() SJt = 3 MyLegend(0) = 土壤湿度 (单位 :%) BackColor1 = amp。 HBDA15A = amp。 HBDA15A = RefreshGraph End Sub‟根据不同曲线图设置参数,达到改变风格的目的。 开始绘图,我使用的方法是自定义一个控件 ,来制作曲线图 ,主要绘图代码如下: Public Sub DrawGraph(LinesArray() As String, ColorArray() As Long, RowCaption() As String) ‘绘图函数 带入 x坐标数据组 ,y 坐标数据组和线条颜色参数 On Error Resume Next Dim i As Integer, RowSize As Integer, ColSize As Integer, ColValue As Integer Dim StepSize As Single, ArrayIndex As Integer, LineDimensions() As String Dim FirstPoint As Integer, SecondPoint As Integer, LineColor As Long RowOffset = 500 ColOffset = 500’初始化变量 ,坐标数据间隔为 500 像素 With UserControl .Cls If Rows = 0 Then Exit Sub RowSize = (.Width ColOffset) / Rows ColSize = (.Height RowOffset) / MaxValue 21 .BackColor = BackColor1’为了背景色和界面风格保持一致 ,在这里也使用了一个全局变量 BackColor1 来完成 .DrawStyle = vbSolid Line (ColOffset, 0)(.Width 10, .Height RowOffset), vbBlack, B .DrawStyle = vbDot For i = 1 To Rows 1 Line (ColOffset + (i * RowSize), 0)(ColOffset + (i * RowSize), .Height RowOffset), RGB(192, 192, 192)。基于vb的精细农业生产中远程监控上位机设计毕业设计(论文)(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。