毕业论文——基于物联网的农田环境监控系统的设计与研究

上传人:good****022 文档编号:116437854 上传时间:2022-07-05 格式:DOCX 页数:46 大小:9.51MB
收藏 版权申诉 举报 下载
毕业论文——基于物联网的农田环境监控系统的设计与研究_第1页
第1页 / 共46页
毕业论文——基于物联网的农田环境监控系统的设计与研究_第2页
第2页 / 共46页
毕业论文——基于物联网的农田环境监控系统的设计与研究_第3页
第3页 / 共46页
资源描述:

《毕业论文——基于物联网的农田环境监控系统的设计与研究》由会员分享,可在线阅读,更多相关《毕业论文——基于物联网的农田环境监控系统的设计与研究(46页珍藏版)》请在装配图网上搜索。

1、 毕业设计说明书 基于物联网的农田环境监控系统的设计与研究院 、 部: 计算机与信息科学学院 学生姓名: 指导教师: 职称 专 业: 计算机科学与技术 班 级: 完成时间: 摘 要采用物联网技术对农业生产环节中农作物的生长环境监控,实现一个轻量级别的辅助管理系统。基于传感网络采集的温度、湿度、光照等相关数据达到对当前实时环境的远程监控并做出实际的机械操作。整个系统是通过传感器将基本的监控数据利用ZigBee技术传送到局域网路由器,基于C/S模式,服务器对传感网络收集的数据进行容错筛选,再存储。管理者通过移动终端向服务器发出请求命令,服务器收到请求解析并做出相应的反应,从而达到对系统环境状况的实

2、时监察调度。论文是以当前的物联网技术作为发力点,结合农业温室作物培植技术,论述并实现了物联网农田环境监控系统,为种植户实现一个实时农田作物生长数据监控并提供相关技术与数据上的支持,真正实现了农业管理的智能化,符合现代农业的发展。关键词 物联网;传感网络;现代农业;生产决策ABSTRACTUsing Internet technology to agricultural production in crop growth environment monitor to Implement a lightweight auxiliary management system. Based on dat

3、a of temperature, humidity, light and other sensor networks to achieve the current collection of real-time remote monitoring of the environment and make the actual mechanical operation.The whole system is monitored by basic sensor data utilizing ZigBee technology transfer to the LAN router, based on

4、 C / S mode, the sensor network server data collected fault tolerance screening, and then store. Managers issued through the mobile terminal requests to the server command, the server receives the request parsing and react accordingly, so as to achieve real-time monitoring system scheduling environm

5、ent. This article from the current of things, combined with agronomic techniques, made things overall framework of police dispatch system structure of agriculture.The user real-time monitoring of farmland and production data to support decision-making, truly intelligent management of agriculture, in

6、 line with the development of modern agriculture.Key words epc network; sensor network; modern agriculture; production decision目 录第一章引 言41.1课题背景和意义41.2国内外研究现状41.3篇章组织5第二章基于物联网的农田环境监控系统的设计框架71.1智能家居系统中的环境监控解决思路71.2基于物联网的农田环境监控系统9第三章硬件环境的搭建112.1硬件环境组成框图112.2服务器端环境搭建122.2.1开发与调试工具包安装122.2.2开发板开发与调试环境配置

7、132.3 数据采集端环境配置172.3.1硬件资源概览172.3.2 模块芯片的选择182.3.3开发与调试工具包安装19第四章软件设计213.1 服务器端的软件设计223.1.1 Linux内核移植223.1.2 SQLite数据库223.1.3 Json文件的格式实现233.1.4 服务器端的通信协议的设置233.2 数据采集端软件设计263.2.1总体设计概述263.2.2 数据采集端M0与服务器端A9通信协议设置273.3 Android客户端软件设计29第五章系统实验与调试304.1 服务器A9模块的数据接/发调试的相关过程展示304.2 数据采集M0模块的调试374.3客户端测试

8、展示39第六章总结反思41参考文献42致 谢43第一章 引 言1.1 课题背景和意义物联网是当今新一代信息技术的核心,作为后互联网时代具有产业性潜力的技术,它的定义也是随着技术的不断深入发展而被一次次定义。物联网是个泛概念,它是多学科、多领域的集合体,它集中体现了后互联网时代的技术方向,同样是人类更高层次发展的切入口。从单纯的知识概念上讲,这是一个入门很高的学科领域,它所体现的就是当今互联网理念思想发展的更高层次的分化与融合。从市场与技术的纵向上看,物联网实现的是更高生活品质的宜人化的服务层次,它所蕴含的产业价值也定不会逊色于电商时代。物联网概念的提出其实是很早的,但是受制于现实技术等因素,它

9、的发展也总是很缓慢,物联网展现的是多领域的融合。从这个角度讲,它的的发展同样是一个面的概念,反而是单个因素成为磕绊发展的短板!物联网不是中国首次提出的,却是在当前背景下发展最为全面的,而从实际的角度上讲,先驱意味着前行,意味着时间与金钱上无限的投入。但是,从长远角度上讲,这些投入都是必须的也是值得的!2009年美国白宫,肯定了在基于物联网基础提出的“智慧地球”概念,并在全球经济下行压力极大的情况下,大手笔的投入智慧地球。对于高科技美国人历来是唯快不破,并牢牢把握科技的上游,这也体现了物联网背后的政治与科技的角逐!1.2 国内外研究现状物联网从本世纪出的首次提出到今天,它的应用已经渗入了我们生活

10、的方方面面。从饭不离手的智能手机到疯狂惊叫的VR设备,再到强大的“大狗”机器人,无不体现嵌入式在现代生活元素中的身影。从国内外更广的视角来看,在农业上物联网技术的应用也在不断的深入。就农业生态环境监测领域来讲,法国、美国和日本等一些国家运用监控卫星网络加地面监控站来构建全国性或者全区域性的先进农业生态环境监测网络,凭借先进的传感器感知技术、信息融合传输技术以及互联网技术建立区域性的农业信息化平台,实现对农业生态环境的自动监测,从宏观上保证农业生态环境的可持续发展,并指导农业现代化种植与发展。在农业生产精细管理领域,美国、澳大利亚、法国等传统的农畜牧业比较强大的西方国家建立了完善的指导机制平台,

11、并形成了广泛的实用性极强的控制系统。在物联网农业的发展我国其实也是奋起直追,在相关领域也有着不错的成绩,现阶段我们在北京、上海、江苏等地方建立起了很多农业示范园,同时各地也在 积极推进物联网农业的优质项目,并且这些项目的到了较好的回应,在保证农民增收的基础上,对于粮食供给和食品安全领域的助推也是显而易见的。在全国性的环境监控方面的发展上我们同样有我们自己的比较成功的实用案例。但是我们总体层次上相较之国外的发展,还是存在着很多的问题。物联网农业遍地开花的局面并没有产生,传统小田农业结构的弱化甚至是破碎较为严重!换言之,我们的传统的耕作与管理模式都在弱化!国家从2003年就在不断的加大农业生产上的

12、补助与扶持,从国家政策层面上来讲,我国已经在农业发展上出台了多个国家级文件。但是,从全局纵向上看,我国的传统农业的发展也仅仅是负重式的发展,整体的发展速度在区域上是存在巨大差异的,并且这种差异在进一步扩大!物联网农业的成熟应用主要集中在农畜牧业发展比较强大的西方国家,这不是偶然却存在着必然!农业的发展是一个循序渐进的过程,它集中体现了一个国家在民生方面的积累与沉淀。对于中国这样一个传统的农业大国来说,农业发展是的不平衡性不是一个政策一揽子文件就能解决的,它背后体现的是市场与价值还有实际人文的选择与转变,这就意味着农业的不平衡性将是长期的。一时的大手笔绝对不是解决的方法,一味的放置偏颇更是不可取

13、,在技术与资金上的积极引导才是正道,国家层面的示范建设是标杆,企业及个人的投入是补充,主体与局部的结合才是物联网农业在中国当前的实际技术与地理环境上的真正选择!1.3 篇章组织本文面向建立的是小型化的农业生产环节的环境监控的研究平台。主要就是建立一个核心在局域网的小型农田监控系统,主要是对中、近距离数据传输与监控。整个设计分为三个模块:服务器模块,数据采集模块,应用层模块。在服务器端将采用Cortex-A9芯片,数据采集模块采用的是芯片Cortex-M0,应用层是移动终端通过访问本地路由器建立与通信。在M0模块将实现光照监控子模块,温度监控子模块。还有简单的模拟开关灯子模块,模拟开关风扇子模块

14、。在服务器A9端实现数据的处理存储,同时是通过有线与本地路由器进行连接,服务器A9与M0模块是通过ZigBee模块进行通信的。用户可以通过手机、平板等移动终端通过WIFI与路由器进行通信,从而访问服务器。针对现实学习需求与知识技能的储备,本文仅仅是有选择有裁剪的模拟实现了环境检测的简单框架。本文第二章简要介绍了智能家居实现监控的基本逻辑框架与思路。因为物联网农业监控与智能家居在起点与数据处理阶段同宗同源,同时详细说明本设计的框架。第三章对整个系统的模块细分并说明各自的功能与实现逻辑以及硬件部分详细设计。第四章为整个系统软件部分详细设计。第五章是单元测试以及系统综合验收测试。第六章指出该系统的特

15、色与反思以及对物联网农业的展望。第二章 基于物联网的农田环境监控系统的设计框架 1.1智能家居系统中的环境监控解决思路这里首先介绍下当前物联网框架下的智能家居系统的模式与基本实现解决思路。物联网农业是基于物联网发展而来的,是物联网应用向农业的触及,但是从当前的大环境上来讲,物联网在农畜牧业的发展也仅仅停留在大田示范园的阶段,而物联网在适宜人居环境的应用、推广与投入是比较成功也是比较大的。这种现象其实很好找到原因。作为一个商业性的发展,利益驱动才是根本,很明显投资物联网农业在成本上与市场回报上周期都是很长的,而研发成本以及硬件成本是很高的,而做出的产品在市场的普及上又是未知的,利益小风险大,所以

16、说这个领域的成熟的参考是较少的。但是智能家居与物联网农业在模块化的数据采集与数据的传输阶段又是相通的,我们基于“用已知去探求未知,化抽象为具体”的解决思想,从当前智能家居的模式与问题解决方案来找到灵感,打趣的说我们是站在巨人的肩膀上看待物联网农业前景的!坦率的讲,在智能家居领域的产品竞争早已不是单个产品再或者单个系列的小打小闹,在竞争的背后是对这个行业甚至是对互联网+时代的技术与市场的把控与行业标准的抢占。当前,无论是实力强大的互联网企业还是传统的电商大鳄,更甚是刚步行业的微小型公司,他们都在利用自己的优势打造自己关于物联网智能家居的理解和对未来高品质家居生活的阐释。通俗的讲,这些企业关注点和

17、抢占的先机就是智能家居的控制入口。任何一个标准化的产品都是从竟态下的考验最终在市场与利润的现实驱动因素下走向标准,今天的物联网产业正处于竟态下,都在把握市场与价值的切合点上起舞,不同的性质的企业对这个舞蹈的欣赏又是各不相同的!智能硬件企业:手机+智能小部件模式。毫不夸张的说在嵌入式产品中的发展中,各大手机厂商绝对可以称得上主要力量。从智能手机的门被打开的那一刻,疙瘩手机更是层出不穷,做情怀产品的时代几乎是一夜间就消失殆尽了。同时在智能家居的领域这些厂商也是拼劲十足。主要代表的就是小米和华为的智能家居战略。他们的思路就是在路由器上做文章,将自家的路由器作为智能家居战略的入口和推广平台,并且配置相

18、关系列的智能配件来自我组装一个可供自己选择且适合自己的口味的智能家居环境,同时将自己的平台做有限的开放,将更多的开发接口提供出来,为个人的意愿发展提供现有微小平台。对于手机制造厂家来说轻车熟路更易于成功,所要解决的问题主要是“点”的定位,而不完全受制于一个完整的平台约束,扩展性很强,在网络接入和产品控制上,变得更容易!互联网企业:用解决方案来做云上的智能家居。谈及对当前科技的把控,互联网大公司绝对是最为敏感的,对于做服务的互联网大佬们,利润的驱动绝对是至上的,从这几年BAT一系列的收购行为以及对P2P与O2O平台的大手笔的投入便可看出。对于智能家居,他们也有着自己对未来宜人家居的品质生活的定位

19、与看待。百度通过搭建硬件平台并推出了自家的云服务;腾讯则是以微信为自己的突破口;阿里则借助视频盒子和云OS作为智能家居平台的入口。当我们静下心去细细想下这些互联网公司的选择的突破口,我们会发现他们最大的优势是其巨大的流量、用户数据、附带的系列软件等,结合当前的云存储与云计算,为智能家居的提供一个顶层设计也是一种完美的拟合。但是到目前为止也仅仅是百度做出了点成效。在早期的智能家居探索的产品是很多的,但是收益甚微,那一轮的家居热情就此虎头蛇尾的结束了。对于智能家居的家居元素的理解的深度还是不够透彻,由此可见当前市场上充斥着以小米模式喷涌的智能小产品,但是主流价值产品却是不足!不得不说主流产品布局的

20、智能家居是一个整体框架的必然需要。传统家电企业:产业联盟式入口模式。不得不说最早嗅到物联网下智能家居发展的是传统的家电厂家。物联网本身就是一个技术驱动的产业,很显然凭借传统电商的营销老路子是走不通的,曾经大批家电企业在轰轰烈烈的进军PC产业的教训是痛在他们心里的。现实的状况是,在专业性技术和推广策略的限制下传统家电企业在智能家居领域的单打独干显得很无力。当物联网的浪潮真正全面袭来的时候,主流的家电公司纷纷选择他们的方式家电联盟,去融入并打造他们世界观下的智能家居。比如海尔的U-home系统为平台,凭借E家佳联盟标准达到了多产品的兼容。传统家电企业对家用电子设备是真正理解,凭借自己在传统家电行业

21、内的威望,组建一个企业联盟进而建立拉拢一批小型智能家居制造商,搭建统一的开放平台,以此来把控智能家居的入口也不失为一个上上策。1.2基于物联网的农田环境监控系统解决思路这里我主要关注的是小米家的解决模式。手机+智能单品的模式下,小米绝对是独树一帜的前行者,小米的产品的营销模式虽广受诟病,但是小米产品还算是成功的。回看以智能手机为核心的等一批便携式的智能硬件的发展轨迹,4年来,有的企业倒了,有的市场在不断萎缩。小米在壮大中,正如小米的技术总监孙鹏说的,智能家居的思路想法谁都有,能做出使用的产品在说!在小米的智能家居设计理念中,路由器是数据处理的核心,智能插座等小部件是入口。各种米系列的产品通过无

22、线或者有线链接到路由器,米路由器从功能上来说,除了基本路由器常有的网关、Wi-Fi热点功能之外,还支持小米设备快连、可扩展功能的插件模式、DLNA 方式共享文件、支持 LAMP功能。我的设计就是基于本地路由访问方式实现数据收集与监控的!整个设计是模式探索型的设计,基于这种定位整个系统的模块是很简单的,在功能上也进行了相关的裁剪和功能的模拟转移。这种定位是对实际技术与成本进行相关考量后做出决定的。作为一个毕业设计受制于个人知识与眼界,我仅仅能做我能胜任的部分,同时当前可以学习参考的模型是有的,但都不是开源的资料,对于当前物联网来说一切都是在起步上下功夫,一切都是商业!虽然小米曾承诺将相关协议开放

23、,就是BAT也曾说将平台开放,但是实际对于个体用户的测试学习还是很困难的。本设计主要分为三个模块,服务器模块,数据采集模块,移动控制端模块。服务器端选择的是三星以ARM的cortex-A9系列为核心开发的Exynos 4412。这款芯片采用了三星最新的32nm HKMG工艺,主频最高为1.4GHGz,是三星的第一款四核处理器。因为采用了新的工艺实现相同性能的同时功耗控制更加出色。此外,三星Exynos 4412支持双通道LPDDR2 1066内存,这款芯片在同期同层次的芯片中算是最优的,特别在很多媒体的测试中,搭载了这款芯片的移动设备的跑分都是很高的。数据采集模块采用的以Cortex-M0为核

24、心板的LPC11C14芯片。数据传输模块用的是ZigBee技术。LPC11C14集成了温湿度度传感器,光照传感器,可调速小风扇等小模块,通过这些模块 对周围环境的温湿度,光照强度数据进行收集,然后通过组合的ZigBee模块将数据传输到Exynos 4412服务器端,服务器端对数据容错,存储。服务器一端通过ZigBee与LPC11C14模块通信,另一端通过有线与本地路由器进行链接通信。当用户通过设置固定IP访问本地路由器的移动端向服务器发出服务请求,服务器端对相关请求进行解析,做出开关灯、风扇的逻辑操作。约定:以下Cortex-A9表示服务器,简称A9;以下Cortex-M0表示数据采集模块,简

25、称M0;以下APP表示智能家居 Android 客户端应用程序。第三章 硬件环境的搭建2.1硬件环境组成框图本设计主要分为三个大模块,服务器模块,数据采集模块,移动控制端模块,服务器模块与数据采集都集成了数据传输模块。服务器端选择的是三星公司开发的Exynos 4412。数据采集模块采用的LPC11C14芯片。数据传输模块用的是ZigBee技术。LPC11C14集成了温湿度度传感器,光照传感器,可调速小风扇等小模块,这些模块获得的数据通过组合的ZigBee模块传输到Exynos 4412服务器端,服务器端对数据容错,存储。服务器一端通过ZigBee与LPC11C14模块通信,另一端通过有线与本

26、地路由器进行链接通信。用户通过设置固定IP访问本地路由器,服务器端对相关请求进行解析,做出及时响应。整体系统组成框图如图2-1:图2-1 整体系统组成框图2.2服务器端环境搭建2.2.1开发与调试工具包安装对于整个系统来讲环境的配置是至关重要的,整个系统将会把大把的时间花在硬件的调试,以期获得一个稳定的性能,(1)安装gcc编译工具:yagarto-bu-2.21_gcc-4.6.2-c-c+_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe。(2)安装tools工具:yagarto-tools-20100703-setup.exe。(3)安装FS-JTAG工具:(4

27、)安装JTAG驱动:把JTAG 接入计算机USB口,会提示发现新硬件,选择从列表或指定位置安装。(这个过程需要安装3次)2.2.2开发板调试与开发环境配置服务器A9中跑的不是裸机是一个裁剪了小型化的Linux内核,下边就是往开发板上配置相关环境。我们板子上跑的是Linux系统所以我们开发调试阶段也要在这样一个环境中进行,所以开发的阶段必须在Linux虚拟机上通过调试工具建立一个相关联的环境。模拟一个同板子环境相似的环境。在产品开发并测试完成后在将板子与虚拟机环境彻底分离。Exynos 4412开发板如图:图2-2 Exynos 4412整个A9模块开发的过程分为两个三个阶段:阶段一进行相关环境

28、的配置,主要是对开发环境与开发板环境的配置;阶段二进行软件层次的设计,诸如服务器端的数据库的设计;阶段三将进行A9单个模块的调试以及整体组合后的调试,这个过程是最为关键的,关乎整个系统的稳定性能,同是也是复杂程度最高的模块。在阶段一,我们将开发环境与开发板环境分别称为Host端开发与Target端开发,在Host端开发我们要安装一系列的开发调试工具包,并且配置Host与Target开发的服务器环境。在Target端我们主要是对目标机环境简单设置,同是进行相关功能的实验。当三个阶段做好之后将做好的Boot Loader和Kernel还有Roofs烧写到开发板上,至此一个裁剪的嵌入式小型数据处理服

29、务器做好了!嵌入式Linux开发模式如图2-3:图2-3 嵌入式Linux开发模式框图开发板调试模式如图2-4:图2-4 开发板调试模式框图这里将X86机器作为开发服务器机器,开发板作为目标机或者调试机。tftp服务器的配置:TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供开销不大且不复杂的文件传输服务。端口号为69。TFTP是一个传输文件的简单协议,它基于UDP协议而实现。在调试开发阶段我们使用tftp服务器目的就是可以将我们在Host机中编译开发好的内核高速的下载到Ta

30、rget中。对于产品的快速开发调试是至关重要的。Tftp服务器的具体配置如图2-5:图2-5 tftp服务器配置流程图nfs服务器的配置:nfs是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,它的最大的功能就是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,它的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。也正是nfs简单实现但功能相对健壮的特点,给调试和文件系统的制作过程带来极大的快捷、方便。具体搭建过程详见图2-6:图2-6 nfs服务器

31、配置流程图整个过程必须保证完整且正确,在实际的配置的过程会出现很多调试配置上的问题,一定要克服解决!做好A9开发和调试后环境后就是具体的内核移植的过程了。内核移植主要工作就是U-Image的制作,这个制作过程在第三章讲解,下边大体介绍整个开发板的启动流程如图2-7:图2-7 开发板的启动流程图2.3 数据采集端环境配置2.3.1硬件资源概览数据采集模块采用的是基于ARM Cortex-M0 内核的LPC11C14 微控制器 ,集成多种传感器、RFID、ZigBee、OLED 显示模块等的一款芯片。配套有开放的CoLink仿真器,使用者可以在不另外配置U-LINK2仿真器的情况下进入开发。本设计

32、中我选择了温湿度传感模块、光照传感模块、ZigBee数据传输模块。LPC11C14芯片整体框架如图2-8:图2-8 LPC11C14芯片整体框架本套架构设计是用于Exynos 4412服务器端与LPC11C14之间的程序设计的整体框架和数据的处理过程。Exynos 4412通过发送操作请求数据包到LPC11C14来完成相应的用户希望得到的操作与数据,同时LPC11C14给Exynos 4412回复相应的确认包,表示LPC11C14已经完成了这项操作。这样就可以完成一次交互。LPC11C14的实物展示如图 2-9:图2-9 LPC11C14芯片实物展示2.3.2 模块芯片的选择温湿度传感器DHT

33、11的基本原理:DHT11是一款有校准数字信号输出的温湿度传感器。精度湿度+-5%RH,温度+-2,量程湿度20-90%RH,温度050。它采用的是简化的单总线通信,系统中的数据交换、控制均由单总线完成。DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次传送40位数据,高位先出。数据格式: 8bit 湿度整数数据 + 8bit 湿 度小数数据+8bit 温度整数数据 + 8bit 温度小数数据+8bit 校验位。原理图如图 2-10:图 2-10光照感应器ISL29003的基本原理:ISL29003内部有两个光电管。光电管1对可见光和红外光都是敏感的,光电管2主要是对红

34、外光敏感的。这两个的光谱反应是独立的。两个光电管将光信息转换为电流,然后通过二极管的电流输出会被一个16位的A/D转换为数字信号。原理图如图 2-11:图 2-112.3.3开发与调试工具包安装在这个阶段开发环境是Keil Real View MDK,这个软件是ARM公司推出的。Real View MDK 集成了业内最领先的技术,包括 Vision4 集成开发环境与Real View编译器,它支持 ARM7、ARM9和最新的Cortex-M0、Cortex-M1、Cortex-M3 和 Cortex-M4核处理器,自动配置启动代码,集成Flash 烧写模块,强大的 Simulation 设备模

35、拟,性能分析等功能在LPC11C14开发过程我们同样需要调试工具,这里我们选用的是CoLink仿真器,该仿真器上有Colink固件。Colin实物展示如图2-12:图2-12 Colin实物展示Colin的安装调试如图2-13:图2-13 Colin的安装调试流程图第四章 软件设计整个系统的软件设计部分主要有四个部分:服务器端,数据采集端,数据传输模块,APP模块,在服务器端主要的工作将集中在对Linux系统移植和数据传输阶段,前者是一些固化的操作,仅仅是在驱动的实现阶段有点难度,相较之后者要比较麻烦要不断的进行测试才可以稳定的数据传输通信。数据采集端主要实现的是数据通信与光照传感器与温湿度传

36、感器的驱动,这个过程都算可以,还是传输数据的阶段最为反复。在移动APP设计,用的是Android进行开发的,主要解决的问题是数据的展示与请求命令的解析处理。在服务器端采用的是Json格式数据进行存储的。整个系统的软件框架如图3-1:图3-1 系统的软件框架3.1 服务器端的软件设计3.1.1 Linux内核移植内核移植是这个模块的核心工作,也同样是嵌入式产品的核心,我们是在一个固定的框架下做东西,是在开源代码的基础上裁剪出自己需要的模块,在根据自己实际的需求,去实现相应的模块的驱动,这个过程在这里不详细说明,这个过程的框架流程如图3-2:图3-2 Linux内核移植跨职能流程图3.1.2 SQ

37、Lite数据库SQLite,是一款关系型数据库管理系统,它的设计目标是嵌入式的,目前在嵌入式领域绝对不二选择。这个数据库占用资源非常的低,很符合嵌入式内存有限的基本现状。这里使用SQLite3来对APP传输来的登录数据进行存储。这里的建表很简单就是为了存储用户的登录信息。LogName,PassWord, PhoneNumber,UserToken这些字段,其中UserToken是Key值。图3-3 sqlite3用户数据库设计3.1.3 Json文件的格式实现这里数据通信中的数据格式都是采用的Json,这是一种轻量级的数据交换格式,它采的是用完全独立于语言的文本格式,但同时又保留了类C的习惯

38、。易于人编写和阅读,于此同时读,解析和生成都比较快速。也正是这些特性使之成为使用比较方便的数据交换格式。3.1.4 服务器端的通信协议的设置服务器A9的通信主要是与客户端通信、M0进行通信,双方之间通信通过 TCP 协议通信,在应用层指定自己的数据包格式,并且带有确认机制,这个模块讲解说明的是Android的APP与服务器A9进行通信。这里根据实际的功能需求进行了通信协议的设置如表3-1,表3-2:表3-1 JSON格式的KEY值数据包格式JSON格式的KEY值如下:userName用户名oldPassword 旧密码newPassword 新密码password 密码phoneNumber手

39、机号userToken 用户身份识别码randomCode 验证码(6 位大小写字母和数字组成)stateCode状态值(int)temperature温度humidity 湿度light 光照deviceNumber 设备号deviceCode 设备操作码deviceState 设备状态码videoList 获取视频文件列表表3-2服务器与客户端通信的状态码格式服务器返回给客户端的状态码:stateCode :0 客户端请求成功stateCode :1 客户端请求失败stateCode :2 客户端用户名错误stateCode :3 客户端密码错误stateCode :4 客户端手机号错误s

40、tateCode :5 客户端验证码错误stateCode :6 客户端 userToken 错误stateCode :7 客户端 userToken 过期服务器返回给客户端的设备状态:deviceState:0 设备处于打开状态deviceState:1 设备处于关闭状态deviceState:2 设备处于故障状态客户端请求设备操作码:deviceCode:0 请求打开设备deviceCode:1 请求关闭设备deciceCode:2 请求获取当前设备的状态表3-3服务器与客户端通信数据包格式数据包格式如下:报文类型 功能号 数据长度 数据内容 数据包格式的详细说明(1)报文类型 : 表示谁

41、跟谁通信,大小为1byte报文类型 表示谁跟谁通信 0 xaa AndroidAPP-A90 xffA9-AndroidAPP(2)功能号 : 表示要干什么事情,大小为1byte 功能号(大小为1byte)用户操作 0 x00用户注册 0 x01用户登陆 0 x02忘记密码 0 x21发送用户原密码 0 x03修改密码 0 x04请求获取温度0 x05请求获取湿0 x06请求获取光照 0 x07请求获取三轴数据 0 x08打开关闭灯 0 x09打开关闭风扇 0 x0a打开关闭门 0 x0b得到视频文件 0 x0c获取设备状态(3)数据长度:数据包携带大小为 2byteJSON格式的数据(4)数

42、据内容:JSON格式的字符串数据包3.2 数据采集端软件设计3.2.1总体设计概述本套架构设计是用于的Exynos 4412(Cortex-A9)与 LPC11C14(Cortex-M0)之间的程序设计的整体框架和数据的处理过程。这里采用的是“三次握手”的机制进行可靠传输的,首先A9 通过发送操作请求数据包到M0完成相应的用户希望得到的操作,同时M0给 A9回复相应的确认包,表示M0已经完成了这项操作,这样就可以完成一次交互。具体实现如图3-4:图3-4 M0与A9通信的框架模型图一 :(1)设计思路:A9与 M0之间是用 ZigBee 来进行数据的传输,ZigBee 有两个模块,一个是协调器

43、,它与A9是通过串口相连接。另一个是终端,它与M0也是通过串口相连接。 所以我们通过读和写串口的函数接口就可以得到我们想要的数据包。(2)设计讲解:在图中分别有发出的数据包和获得数据包两种包,这里的包是由之前我们自己定义的通信协议来决定的。图中标为浅蓝色的字体,数据包是从M0发送到A9。红色字体说明处理的是温湿度的数据包,当A9请求M0发送温湿度或者是光照的时候,M0 采集到温湿度或光照的信息之后,通过写串口函数接口把数据写入ZigBee的写缓冲区中,终端ZigBee再通过从电磁波上分离出的数据包发送到协调器ZigBee,此时的协调器将数据包搬移到串口的读缓冲区,A9通过读串口的函数接口获取到

44、希望得到的传感器数值。图二 (1)设计思路:M0中程序的执行逻辑,因为数据都是通过串口来发送和获取的,所以我们可以采用轮询的方式来查询终端ZigBee的读缓冲区是否有A9数据包请求。如果有, 则解析这个数据包,从而做出客户想要得到的操作效果;如果没有,则需要温度的数据实时(1ms)的写入终端ZigBee的写缓冲区中,目的是为了客户可以随时获取和感知家里的温度信息。(2)设计讲解:在图中的第一个分支,当检测到终端ZigBee的读缓冲区中有数据,表 明客户希望操作家里的硬件设备(风扇、灯)或者是获取当前家里的温湿度、光照信息。在这时M0就要解析这些从A9发来的数据包,完成客户的操作后返回一个确认包

45、,表明已经完成此项操作。当检测到终端 ZigBee 的读缓冲区中没有数据,表明客户没有操作请求, 需要M0实时的将信息发送到终端 ZigBee的写缓冲区,再通过ZigBee把数据包发送到A9,实时的对周围环境行监控。M0模块对数据发送与请求命令的解析过程如图3-5:图3-5 M0模块对数据发送与请求命令的解析过程3.2.2 数据采集端M0与服务器端A9通信协议设置这里的协议是涉及的是M0与A9进行通信的,这些协议是根据实际的硬件需要建立的比较简单的一个协议。如图 表3-4,3-5:表3-4 .请求数据包格式1.请求数据包格式如下报文类型 功能号 设备编号 数据内容 (1)报文类型 : 表示谁跟

46、谁通信,大小为 1byte。 报文类型 源端(发送端) 目标端(接收端) 0 xdd Exynos4412(cortex-A9) LPC11C14(cortex-M0) (2)功能号: 表示要干什么事情,大小为 1byte。 功能号 功能说明0 x04 FS4412 请求 LPC11C14 控制灯0 x05 FS4412 请求 LPC11C14 控制风扇0 x06 FS4412 请求 LPC11C14 控制门(3)设备编号:区分同类的每个设备,大小为 1byte。如 LED1:0 x00;LED2:0 x01(4)数据内容:数据大小温度(1byte) 湿度(1byte) 三轴信息(3byte)

47、光照(2byte) 7byte 门禁状态(1byte): 0 x00 表示打开 0 x01 表示关闭 1byte 灯光状态(1byte): 0 x00 表示打开 0 x01 表示关闭 1byte风扇状态(1byte): 0 x00 表示打开 0 x01 表示关闭 1byte 表3-5应答数据包格式2.应答数据包格式如下报文类型 功能号 设备编号 数据内容 (1)报文类型: 确认包,报文类型固定为 0 xcc,占用 1 个字节。报文类型 源端(发送端) 目标端(接收端) 0 xcc LPC11C14(cortex-M0) Exynos4412(cortex-A9)(2)功能号: 确认的是什么事情

48、。功能号(1byte) 功能说明0 x00LPC11C14 响应温度数据到 Exynos44120 x01LPC11C14 响应湿度数据到 Exynos4412 0 x02LPC11C14 响应光照数据到 Exynos44120 x03LPC11C14 响应三轴数值到 Exynos44120 x04LPC11C14 响应灯状态到 Exynos44120 x05请求 LPC11C14 响应风扇状态 Exynos44120 x06请求 LPC11C14 响应门的状态 Exynos4412(3)设备编号:区分同类的每个设备,大小为 1byte。如 LED1:0 x00;LED2:0 x01(4)状态

49、:成功还是失败,占用 1 个字节。状态 说明0 x00门打开 0 x01门关闭 0 x00灯打开 0 x01灯关闭 0 x00风扇打开 0 x01风扇关闭 3.3 Android客户端软件设计如图3-6:所示,这个是整个客户端软件的功能展示与通信流程:图 3-6 Android客户端软件模块设计图 3-7 是整个客户端执行流程:图 3-7 Android客户端执行流程图第五章 系统实验与调试4.1 服务器A9模块的数据接/发调试的相关过程展示依据前面对服务器与客户端约定的协议进行通信测试:表 4-1 注册数据包收发格式注册发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型

50、 功能号 数据长度 数据内容 0 xaa 0 x00 APP 那边发送 的JSON长度用户名,密码,手机号发送数据包 A9向服务器APP发送注册数据包数据流向 A9APP报文类型 功能号 数据长度 数据内容 0 xff0 x002byte 状态的JSON格式字符串数据内容:“stateCode” : 0 成功 数据内容:“stateCode” : 1 失败图 4-1 服务器端注册测试表 4-2 登录时数据包格式登录发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型 功能号 数据长度 数据内容 0 xaa0 x01 2byte userToken( 唯 一 标识符号)+状态

51、注意:登陆成功后,服务器端需要给客户端返回一个 ID(唯一身份识别码)。 客户端去解析。userToken 为 JSON 格式的字符串。数据长度为 JSON 格式的数据 内容长度.数据内容:“userToken”:”Qrt3T4”,“stateCode”: 0-登录成功。 数据内容:“userToken”:“null”,“stateCode”: 2-用户名错误 数据内容:“userToken”:“null”,“stateCode”: 3-密码错误图 4-2 服务器端登录时测试表 4-3 找回密码时数据收发格式忘记密码发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型 功能

52、号 数据长度 数据内容 0 xaa0 x02APP那边发送的JSON长度 用户名,手机号码APP 给服务端发送用户名和手机号,服务端会通过用户名和手机号生成一个唯一验证码并将其与此用户名对应起来。图 4-3 找回密码时服务器端验证码测试表 4-4 获取温湿度时数据收发格式获取温度发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型 功能号 数据长度 数据内容 0 xaa0 x04APP 那边发送 的JSON长度用户名 ,userToken服务器分配的数据内容: “userName”:”Qrt3T4”,“userToken”: ”Qr5T4Y” , ”deviceNumber

53、”:0 发送数据包 A9向服务器APP发送注册数据包数据流向 A9APP报文类型 功能号 数据长度 数据内容 0 xff0 x04 FS4412发送的 JSON长度温度JSON字符串数据内容:获得到温度并返回状态 “temperature ”:20,“stateCode”: 0 数据内容:未获取到温度 “ stateCode” : 1 获取湿度 发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型 功能号 数据长度 数据内容 0 xaa0 x05APP 那边发送 的JSON长度用户名 ,userToken服务器分配的数据内容: “userName”:”Qrt3T4”,“us

54、erToken” : ”Qr5T4Y” ”deviceNumber”:0发送数据包 A9向服务器APP发送注册数据包数据流向 A9APP报文类型 功能号 数据长度 数据内容 0 xff0 x04 FS4412发送的 JSON长度湿度JSON字符串数据内容:获得到湿度 “humidity” :21,“stateCode” : 0 数据内容:未获取到湿度 “ stateCode” : 1 图 4-4 获取温湿度时数据测试表4-5 获得光照数据收发格式获取光照 发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型 功能号 数据长度 数据内容 0 xaa0 x06APP 那边发送

55、的JSON长度用户名 ,userToken服务器分配的数据内容: “userName”:”Qrt3T4”,“userToken” : ”Qr5T4Y”, ”deviceNumber”:0 发送数据包 A9向服务器APP发送注册数据包数据流向 A9APP报文类型 功能号 数据长度 数据内容 0 xff0 x06 FS4412发送的 JSON长度湿度JSON字符串数据内容:获得到光照 “light” :300,“stateCode”: 0 数据内容:未获取到光照 “ stateCode” : 1 图4-5 获得光照数据测试表4-6 控制LED开关的数据收发格式控制LED灯 发送数据包 APP向服务

56、器A9发送注册数据包数据流向 APPA9报文类型 功能号 数据长度 数据内容 0 xaa0 x08APP 那边发送 的JSON长度0:开灯 1:关灯数据内容: “userToken”:”Qr5T4Y”,”deviceNumber”:0, “deviceCode” : 0, “userName”: ”Qrt3T4” -开灯 “userToken”: ”Qr5T4Y” ,”deviceNumber”:0, “deviceCode” : 1,“userName”: ”Qrt3T4” -关灯发送数据包 APP向服务器A9发送注册数据包数据流向 A9APP报文类型 功能号 数据长度 数据内容 0 xff

57、0 x08APP 那边发送 的JSON长度状态JSON格式的字符串 数据内容:“stateCode”: 0,”deviceState”:0 用 户操作成功 设备处于打开状态 数据内容: “stateCode” : 1,deviceState:1 用 户操作失败 设备处于关闭状态图4-6 控制LED开关的测试表4-7 控制风扇开关的数据收发格式控制风扇 发送数据包 APP向服务器A9发送注册数据包数据流向 APPA9报文类型 功能号 数据长度 数据内容 0 xaa0 x09APP 那边发送 的JSON长度0:开风扇 1:关风扇数据内容: “userToken”:”Qr5T4Y”,“deviceC

58、ode” :0,“userNa me”: ”Qrt3T4”,”deviceNumber”:0-开风扇 “userToken”: ”Qr5T4Y” ,“deviceCode” :1,“userN ame”: ”Qrt3T4”,”deviceNumber”:0-关风扇发送数据包 APP向服务器A9发送注册数据包数据流向 A9APP报文类型 功能号 数据长度 数据内容 0 xff0 x09APP 那边发送 的JSON长度状态JSON格式的字符串 数据内容:“stateCode”:0,”deviceState”:0 用户 操作成功 设备处于打开状态数据内容: “stateCode” : 1,”devi

59、ce图4-7 控制风扇开关的数据收发格式4.2 数据采集M0模块的调试如图4-8 光照传感器测试:图4-8 光照传感器测试如图 4-9 温湿度传感器测试:图 4-9 温湿度传感器测试4.3客户端测试展示图 4-10 客户端注册图 4-11 客户端登录图 4-12 客户端找回密码图 4-13 客户端主界面第六章 总结反思整个系统选择定位的就是一个轻量级别的辅助系统,所以在实际的开发中也是很方便简单的,我参照的就是小米智能家居的模式,在实际的开发中,模块灵活的度高,拓展性较强。但是在实际的开发的过程的时候,能够参考的资料并不多。整个系统采用的是以路由器为核心的管理模式。但是问题也来了,路由器中心论

60、从产品层面看,路由必须做到全天候在线监控,对稳定性要求无疑是极高的。从另一个角度讲路由器这个东西是单一性质的,本地中一般仅一个。这也意味着,你的产品好呢一切大吉,一旦一款产品不好,甚至整个产品链都会被消费者抛弃。在当前物联网发展的过程中,无论是传统电商还是互联网公司,他们都在做平台推广平台,从而争夺物联网的话语权。对于物联网的在宜人家居的发展模式,可谓是仁者见仁智者见智,他们认为智能家居没有天生的中心,也不会产生入口,它所提供给我们的是一个以服务为核心的架构。在当前市场背景下作为一个企业来说,能够生存下去,要么卖服务要么卖产品,对于一个互联网科技公司,我们能够为农业提供什么样的优质服务!?做推广服务的时代已经是活不下去了,对于硬件产品的投入的也是遥遥无期的,单纯农业领域的硬件投入是不科学的,无论是从使用价值上还是现实的技术条件都是一蹴而就的。生活是生命的一部分,工作是生活的一部分。这些硬件仅仅是工作的一部分,家电却是是我们优质生活的一部分,在追求优质的生活的时候必须考量的因素,但是对于这些物联网硬件来说也仅仅是你工作的一部分,只要能够高效的辅助工作我们在实际的理念上已经屏蔽掉的具体硬件的选择。所

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!