物联网实训总结

您所在的位置:网站首页 android应用实训报告 物联网实训总结

物联网实训总结

2023-08-11 06:16| 来源: 网络整理| 查看: 265

物联网实训总结——简易的智能农场

 

一、场景需求

   1. 农场环境监测

对农场的环境实现智能感知,对温度,湿度,光照值实时显示。同时检测农场烟雾状态,判断火情。实时监控农场人员出现情况。

   2. 控制管理

智能农场控制部分分为:通风系统和补光系统。实现对电机的控制进行通风;对PWM调光的控制进行光照的补充。

 设置一个智能模式。可以设定最高温度值与最低光照值,当达到指标时,可以实现通风系统与补光系统的自动开启。

    

 

二、模块介绍

   1、数据感知模块

利用光照、温度、湿度、烟雾、红外热释电传感器实现对环境信息的感知。

   2、网络构建模块

利用zigbee组网,将传感器获取的数据上传网关,经由网关利用互联网将处理的数据传入云端服务器。

   3、管理服务模块

在服务器中对数据进行处理与存储,连接Mysql数据库并进行数据存取。

   4、综合应用模块

在网关Android端与网页端实现对智能农场的管理与控制,获取信息实时显示,控制通风与补光。

 

三、系统结构

                    

 

四、实训体会

这次课程设计,自己做了一个简易的物联网系统,架构了一个感知层、网络层、应用层的物联网系统,对自己来说确实是一次非常好的实践。

首先,是对理论知识的熟悉,作为一名物联网学子,本学期终于学习了两门直接相关课程,物联网感知技术、物联网通信技术。课堂学习局限在理论层,通过本次实训,虽然系统实现的较为简单,但却实实在在的感受到了物联网的知识,从数据感知,网络构建到场景应用。

其次,对自己系统架构的能力,对自己编写代码的能力有了一个很好学习与实践过程,以往的我做过几个小项目,但好像我负责的部分全都局限在客户端,对服务器的,对整个系统的感知还是太少了。其实我本身也需要一次机会实现一个项目的完善结构的编写,从客户端、服务器、数据库一体实现。此次这段时间自己确实也做了这样的尝试。

网关端Android实现,这对我来说其实并不难,好像我以前做了很多Android部分的学习与实验。本次找了一个获取串口数据的代码后Android端就基本没什么困难了。

服务器端PHP,其实我最薄弱的部分在服务器端,我从来没有写过服务器端代码,没有用过Mysql数据库,之前我找了本PHP书已经学习了一段时间,正好借此次机会测试一把,利用PHP的知识实现了socket通信获取数据,Mysql数据库的设计与数据库存取。中间虽然遇到了很多问题,但几乎都解决了,可以说确实是一次锻炼的好机会。

通过此次,也简单的尝试了一下网站的编写,虽然此次写的网站极其简单,但对我来说却是一次好的开端,以前我真是忽略了Web的重要性,不过现在我想要拾起,互联网时代的确不能忽略Web的重要性。此次做网页最大的收获就是“页面无闪烁刷新”,它收获的的不仅是简单的功能的实现,而是一种思想,是网页前台和后台的分离,再通过http发送请求获取数据。

总体来说,此次实训是一个尝试,是一个物联网简单系统架构的尝试,是对Web服务器的尝试,最重要的是对以后深一步的学习与系统架构的基础性原理的尝试。

 五、遇到的问题:

系统实现过程中真的遇到了很多问题,但遇到问题,解决问题,才真正是程序员的开发历程。在此记录下从开始过程中的所有问题,不管问题大小,供后来借鉴。

 eclipse环境报错:(error: Error: No resource found that matches the given name: attr 'android:windowElevation'.)

    经百度发现,这是由于SDK最小版本不兼容,建工程时把最小版本设置改过来。

电机不能持续转动,只能稍微一转就停止。

    所有情况都实验后,排除节点,代码问题。

    发现:电源供应不好,用了一个很久以前的,应该是坏的的USB集线器。

Android测试获取出edittext的值测试时不成功

    经过检查,发现是原来是Toast的错误,Toast在测试代码中是不能显示出int的,所以以后测试都是

    System.out.println("test");。

android中哪里的代码是可以一直运行的?

    定时器可以是一种方法。开一个新线程一直运行是一个更好的方法。

在Microsoft Edge浏览器查看页面时由于使用了POST请求,老是出现“发送重新提交表单吗?”的弹框。

    浏览器问题,换了IE浏览器就可以了。应该是浏览器设置的问题。

PHP实现socket通信

    PHP实现socket一直是不被看好的,但PHP却有着建中小网站的独特    优势。但我发现了workerman ,一个高性能的PHP的 Socket 服务器框架。利用它,代码变简单了许多。

socket传输数据时的,通信协议与结束标识的设定

    由于socket只负责发送数据,而且在一个客户端下,所有数据是通过一个socket发送的,服务器要区分数据,便需要在数据中写一些特定表标志,其实这就是一个数据的通信协议,定义开头1代表什么,2代表什么,在传送温湿度光照时,在三个数值间利用了“/”,在服务器端接收到数据后先进行分割,再进行存储处理。

中文动不动就在网页成乱码

    这是由于编码方式的问题,在notepad++编写PHP或html代码时,如果利用ANSI格式编码,在网页上就是乱码,利用UTF-8格式编写,就可以了。

socket的捕获异常

    android的socket加上后,服务器不开,一运行就崩。服务器打开就正常了。但是socket的捕获异常,若双重捕获就直接连不上服务器,但不会崩溃。

php网页实时显示数据库信息

    第一次我用了一种html网页定时刷新:         但它是每次都重新加载一遍网页,而且由于我用了一张图片做背景,每次刷新都会闪烁。这就引出了接下来的问题了,也是最有价值的问题

网页无闪烁刷新

    首先,要利用Ajax一个浏览器脚本代码。 原来使用PHP页面时,是定时重新加载网页,每次加载网页时获取一次数据库信息进行显示。所以每次加载时一定会闪烁。而利用Ajax时是异步加载,局部数据刷新,即定时发送http请求获取数据库信息并只刷新部分信息。这样刷新便不闪烁了。

 

最后,附上我的github开源代码,如果大家喜欢,可以拿来看看:https://github.com/KevinBetterQ/IOT_agriculture

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3