设计app流程图和设计内容设计app流程图和设计内容的区别

一、设计思路

随着物联网技术的发展,智慧农业它将成为现代农业 发展趋势。物联网,Android、计算机网络技术 术、ZigBee农业等技术的应用可以促进农业信息化发展,改进生产管理模式,提高生产效率,促进农业发展。

数字农业控制系统允许用户选择自动控制或手动控制,实现作物状态的实时观察,无需浪费大量的人力物力进行特殊检查和记录。不同作物的温度、湿度、光照和土壤湿度范围也可以手动设置。一旦超过或低于作物生长所需的条件范围,系统将进行报警。

设计app流程图和设计内容设计app流程图和设计内容的区别

设计app流程图和设计内容设计app流程图和设计内容的区别

二、软件主要技术分析

1.1移动终端

该项目的移动终端是智能手机或PDA移动终端可以通过它运行APP,并与服务器连接,以控制和检查作物的生长。APP功能如下:

①用户可以使用手机APP,登录自己的账号和密码。

②登录后,用户可以随时随地查看作物的环境信息和动态变化折线图。

③某些作物的环境信息范围可根据需要独立设置。

④自动控制或手动控制可根据需要选择控制模式。

⑤如果用户选择自动控制模式,当作物的环境信息超出设定范围时,硬件将根据服务器的数据自动进行 打开抽水机、灯光等操作。

⑥如果选择手动控制模式,用户可以根据不同的环境、开关照明、继电器等设置照明亮度。

⑦手动控制时,当作物的环境因素超出设定范围时,手机会报警,提示用户在收到报警信息后进行相应的报警。

1.2服务器

服务器是硬件和应用程序的中介,手机应用程序 APP通过TCP/IP协议与服务器连接后,用户通过APP 将作物生长环境信息上传到服务器并保存数据;硬件也是 通过上位机程序和服务器Socket连接,服务 服务器还通过传输硬件收集的各种环境信息 Socket将控制命令连接到硬件等。服务器作为一个 介来操作,一方通过端口 8080和TCP/IP协议和移动终端 端APP另一方通过端口通信 2077和Socket连接与 上位机通信程序。

服务器功能如下:

①根据发送的Tag判断用户想要的操作,并将所需的数据返回给用户。

②根据自定义,实时接收上位机程序发送的数据通信协议分析处理。

③服务器获取数据后,将其保存在服务器的特定数据库中。

④服务器将数据返回到上位机,并从数据库中查询到一定格式的数据。

1.3上位机

上位机是硬件和服务器之间的中介,硬件不是直接的 通过WiFi模块通过上位机程将数据发送给服务器 序作中间接口发送;当然,硬件也可以通过Wifi 模块向服务器发送数据,但通过上位功能更好地反映了这一点 实现目标的过程。上位机是一个Java Project,它的功能就 是读取开发板通过串口通过Socket连 将收到的数据发送给服务器,然后将服务器返回的控制 命令发送给硬件,以便硬件能够根据信息做出反应。任命上位机 服务是收集/发送串口数据和发送/收集服务器数据。

上位机通过串口与协调器连接Socket与服务器连接,通过串口接收数据,然后通过 Socket然后转发给服务器。

上位机的主要功能如下:

①硬件发送的环境信息通过串口接收。

②接收的环境信息通过Socket连接发送给服 务器。

③将服务器返回的控制数据转发给串口。

三、智能农业软件设计与实现

1.1设计流程

该系统使用手机APP控制方法。APP设计的核心功能包括设置阈值、查看数据、模式控制和报警处理。 APP如图1所示。

设计app流程图和设计内容设计app流程图和设计内容的区别

图1

1.2 APP开发

1.2.1界面布局设计

APP登录注册页面采用本地记忆密码功能。当用户选择记住密码时,他们可以在移动设备上再次登录,而无需继续输入用户名和密码,这具有很强的实用性。在页面上,使用相同的数据库交互技术,当用户名和密码存在并正确时,用户可以进行下一步,否则不能。

用户进入系统的主要功能列表,页面使用 list技术,排列所有主要功能,让用户更方便直观地使用它APP。页面上的每个记录对应于另一个不同的页面。

1.2.服务器设计流程

(1)建立服务器和数据库

数据的保存和使用取决于数据库.设计数 据库使用MySQL建立了一种技术user内部建立了用户 四张表,一个是用户名和密码表,一个是用户设置的环境数据,一个是照明控制,一个是硬件实时传输的当前数据。

服务器运用JAVA EE软件建立的Dynamic Web Project编写代码。一方面,通过服务器模块Tag与用户识别APP另一方面,通过端进行信息交互Socket与硬件进行信息交互。

手机APP通信时,服务器通过Thg当服务器识别到某户需求时,识别用户需求lag在识别时,数据库将根据需要进行操作。因此,服务器必须考虑用户的要求,并根据需要执行某些操作。因此,服务器必须与数据库连接,否则即使用户发送 lag对服务器进行标识,服务器也收到了要求,仍然无法操作数据库,用户的要求无法实现。

在与硬件通信时,首先要建立服务器Socket连接并设置端口号,使硬件能够通过端口号识别服务器。服务器与硬件建立连接后,开始T工作。服务器读取开发板发送的信息数据后,根据事先定义开始分析和处理数据通信协议分析数据,拆分,然后将拆分后的数据保存在以前的数据库中;用户可以在查看数据时获得最新记录。服务器完成这些工作后,将返回一些数据给硬件执行器。同样,服务器也将发送的数据处理成硬件可识别的信息,并返回到硬件执行器。

(2)服务器和MySQL连接并建立相应的数据

部分代码如下:

try (

〃获取数据库连接

conn = DBUtils. getConnectionO ;

////具体参数赋值

ptst. setString( 1, mer. getMer_userName());

ptst. setString(2, mer. getMer_Password());

ptst. setString(3, mer. getMer_Tell());

〃执行查询操作,返回查询结果(结果对象)

ResultSet rs = ptst. executeQuery();

〃判断结果集是否有数据,如果有,则返回true

return rs. nextO ;

catch (SQLException e) {

e. printStackTrace();

} finally {〃关闭连接

DBUtils. free(conn, null, null) ;}

(3)与APP交互

服务器与APP通信,通过Servlet实现。主要是APP

向服务器发送读取数据请求,而不是主动向服务器发送数据

给APP。这样可以降低服务器的压力,使系统更加实用。

(4)与上位机交互

硬件系统发送的数据流为字节,识别不方便。

如果你想把它变成易读数据,你需要使用它字符串截取技术解决

通过数组分别分析和保存。

开发者定制了硬件系统发送的数据流。

在需求阶段,需要确定每个人代表什么。

通信服务器和上位机时,分析数据要方便得多。

public void run() {

byte[] buf = new byte[128];

while (true) {

try (

if(client. isClosedO) {

return;

)

else{

if ( ! client. isInputShutdown()) {

〃读取开发板发出的字节流

int len = dis. read(bu£);

String dataFromHard = new String(buf);

System, out. println( " = = = " dataFromHard);

〃打印

i£(len > 0) {

String receiveData—new String(buf, 0, len). trimO ;

String]] splitData — SplitDataFromReceive. splitReceive(receive-

Data,8);

Boolean result = hardDaoImpl. addData2DB( splitData);

boolean flag= client. isOutputShutdown();

if < ! flag) {

hardDaoImpl. findAllcaiData(dos);

try {

Thread. sleep(lOO);

} catch (InterruptedException e) {

e. printStackTrace (); catch (lOException e)

e. printStackTraceO ;

)

finally {

try {

if (dis ! =null)

dis. close();

if (dos ! =null)

dos. close();

}

catch (lOException e) {

e. printStackTrace();

}})}

2.2.3上位机设计

(1)建立基本框架

通过上位机实现服务器与硬件的连接。

位机,本质是一段JAVA程序代码的主要功能是读取硬件

传输的数据发送给服务器,同时发送给硬服务器

将零件的控制命令传递给硬件系统进行相应的操作。

(2)自定义数据格式

public String Bytes2HexString(byte[] b) {

〃将byte数组转换为16进制数组

String ret ="";

for(int i=0;iVb. length;i ) (

String hex= Integer. toHexString(b[i]&Oxff);

if (hex. lengthO = — 1) (

hex = 'O' hex;

)

ret = hex. toUpperCase();

}

return ret;

)

(3)通过串口与硬件系统交互

通过串口实现硬件与上位机的连接,用户判断以下代码

断串口 COM4是否可用,如果可用,始终阅读硬件系统

是否有传输数据。

while (portList. hasMoreElementsO ) {

portld= (CommPortldentifier) portList. nextElement();

if(portld. getPortType( ) — — CommPortldentifier.

AL)(

if(portld. getNameO. equals("COM4")) {

try{

serialPort= (SerialPort) portld. open("Main" , 2000);

}

catch ( PortlnUseException e) {}

try{

inputStream = serialPort. getlnputStreamC);

(4)通过Socket与服务器交互

通过上位机和服务器Socket协议通信,上位机和服务器相互建立IP接口相同Socket, 一直对该 查询接口,检查是否有数据传输。

今天的文章就分享到这里,如果你也网赚副业项目感兴趣,可以添加 维信:beng6655  备注:副业

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 526323532@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.haoxue2.com/16849.html