本系统源码在Github(记得给个星星哦~):https://github.com/Mculover666/agriculture_system 本设计的是“智慧农业信息采集控制系统”,系统主要实现的功能有: ① 建立数据库ia_system: 服务端源码在server文件夹,需要在云服务器上运行,使用gcc编译。 进入到server文件夹,执行make命令编译: 然后运行程序(默认监听8002端口,使用UDP协议,如果有安全组需要放行该端口): 客户端运行在桌面Linux上,源码在client文件夹下面,进入之后使用make命令编译: 修改最大湿度值为50.5: 终端中只使用到了UDP Socket编程,所以可以编译为桌面Linux的程序,也可以编译为ARM开发板上的程序。 进入endpoint文件夹,编译: 运行程序,第一个参数是云服务器ip,第二个参数是云服务器端口: 在MySQL中查看历史记录: 编译:
1.系统设计与实现
(1) 采集终端向服务器上报温度、湿度、电机状态(用于降低温度)、开关状态(用于自动浇水);
(2) 服务器接收到数据后提取信息,将数据及其上报时间写入数据库存储历史记录,便于用于查看;
(3) 服务器接收到数据后从数据库中读取用户设定的阈值,对数据进行判断,如果超过或者低于阈值即发送对应指令,打开/关闭电机,或者打开/关闭开关;
(4) 用户端程序可以修改报警阈值;
整个系统的实现架构如下图:
(1) 农业采集终端运行在嵌入式Linux开发板上(使用Qemu模拟);
(2) 农业采集系统服务端使用云服务器,操作系统为Ubuntu18.04;
(3) 数据存储使用MySQL服务器;
(4) 农业采集用户端运行在桌面Linux上,操作系统为Ubuntu16.04;
其中,所有数据均采用JSON数据格式,使用UDP传输,数据库中有两张表,一张表为history用于保存历史数据,一张表为value用于保存阈值信息。2. 建立数据库及数据表
create database ia_system;
② 建立数据表history:create table history (id INT(10) not null,temp FLOAT,humi FLOAT,motor CHAR(3), switch CHAR(3));
③ 建立数据表value:create table value (id INT(10) not null,temp_max FLOAT,humi_max FLOAT,temp_min FLOAT,humi_min FLOAT)
④ 提前在数据表value中设置一个阈值:insert into value(id,temp_max,humi_max,temp_min,humi_min) values(2016211961,10.0,40.0,10.0,40.0);
3. 运行服务端
cd server make
4. 运行客户端
cd client make
编译之后运行程序:./client
4.1. 查询当前阈值
4.2. 修改阈值
5. 运行终端
5.1. 在桌面Linux上测试
cd endpoint make endpoint_PC
可以看到终端每隔5s向服务器上报一次数据,在服务端也可以看到上报的数据:
5.2. 在ARM开发板测试(使用Qemu模拟)
arm-linux-gnueabi-gcc endpoint.c -o endpoint.o
使用NFS复制可执行程序到开发板中:
运行程序:
在服务器端查看数据:
接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算