WIZnet2012

基于W5500的物联网环境信息监测系统

0
阅读(1913)

一、系统适用范围特点:    

随着科技的发展,环境信息采集应用的领域也越来越广。冷库,仓库,大棚等场所都需要对其环境信息进行监控,以保证食品等货物的储存。对大面积农作物的机械自动化管理有着重要的意义。而对于大面积的自动化大棚管理,在缺少技术人员的情况下,很难对农作物的生长有科学的管理,而且邀请专家进行技术指导会比较麻烦,人力成本和代价较高。因此,我们基于W5500模块,接入温湿度采集和光照采集模块,进行对环境信息的监控,并上传至Yeelink平台。专家可以远程对上传的信息进行方便的查看,并给与大棚管理员合适的建议。也可以方便管理员对仓库的监控和管理。同时由于上传的信息公开化,因此可以作为交流平台,来对各个地方上传信息的人员相互间交流。

二、系统简介:

系统所包含有:W5500EVB(包含有STM32单片机)、DHT11温湿度传感器、GY-30光照传感器、路由器和Yeelink网络平台。通过手机、PC机等上网查看。系统的框架图如下:

 

如图所示,STM32作为MCU处理温湿度和光照传感器采集到的数据信息,并且控制W5500将信息通过路由器上传到Yeelink平台上。


三、各器件简介:

1、W5500简介

    W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案。W5500 集成了 TCP/IP 协议栈,10/100M 以太网数据链路层(MAC) 及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。

2、DHT11温湿度采集

   DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。

3、GY-30光强采集传感器特点

1)I2C总线接口(f/s模式支持)

2)光谱的范围是人眼相近

3)照度数字转换器

4)宽范围和高分解.(1-65535勒克斯)

5)低电流关机功能

6)50Hz/60Hz光噪声reject-function

7)1.8V逻辑输入接口

8)无需任何外部零件

9)光源的依赖性不大.(例如白炽灯.荧光灯.卤素灯.白LED.孙光)

10)是有可能的选择2类型的ICslave-address.

11)可调的光学窗口测量结果的影响 (它可以探测分钟.使用本功能0.11勒克斯,最大.100000勒克斯)

12)小测变异(+/-20%)

13)的红外线的影响很小

四、基本功能:

l  具有环境信息采集功能,可以采集环境的温度、湿度和光照强度。

l  具有联网功能,可以将采集到的环境信息直接上传到Yeelink云平台上。

l  具有网络查看功能,可以用任何联网设备,在互联网上查看采集点的信息。

五、核心代码及程序流程图:

核心代码

W5500EVB向Yeelink平台发送的一个http数据包,Yeelink平台是非常便捷的一个平台,通过这个平台,只需要把U-ApiKey内容换成自己需要的Apikey,就可以轻松实现上传数据和监测数据。http数据包代码如下:

char  postH[]={//提交湿度

"POST /v1.0/device/6857/sensor/10674/datapoints HTTP/1.1\r\n"

"Host: api.yeelink.net\r\n"

"Accept: */*\r\n"

"U-ApiKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"

"Content-Length: 12\r\n"

"Content-Type: application/x-www-form-urlencoded\r\n"

"Connection: close\r\n"

"\r\n"

"{\"value\":xx}\r\n"

};//xx用来填充数值

stm32单片机获取计数器i值状态,i值每分钟增加1,这是通过stm32的定时器2中断设置的。i=0时,发送湿度数据;i=1时,发送温度数据;i=2时,发送光照强度数据。当然,W5500都是在socket连接建立的情况下,向Yeelink 服务器端发送数据。代码如下:

 if(i==0||i==1)

            {

              if( DHT11_GetValue(temp_rh))

              {

              Buffer[236]=temp_rh[i]/10+0x30;

                 Buffer[237]=temp_rh[i]%10+0x30;

              send(ch,(const uint8 *)Buffer,sizeof(Buffer));

              i=i+1;

              }

            } 

            else

            {

              temp=BH1750_Getvalue();

              Buffer[236]=temp/10+0x30;

                 Buffer[237]=temp%10+0x30;

              send(ch,(const uint8 *)Buffer,sizeof(Buffer));

              i=0;

            }          

程序流程图

 

 

六、项目总结:

本次项目完成了基本的环境信息采集功能,通过Yeelink平台观察采集到的数据,无论你在网页上还是手机客户端APP上,都能很好的监测数据,观察历史数据的走势。

通过本次项目,我学到了很多,W5500提供的全硬件TCP/IP协议栈实在是太方便了,你只需要编写片上处理程序就可以了,tcp/ip需要处理的协议它已经帮助你完成了。刚拿到w5500的开发板时,试着写了一些TCP,UDP,Smtp协议,都通过W5500EVB很轻松的实现了,这让我对网络协议有了一个更仔细的认识。然后我就开始把自己采集到的数据上传到Yeelink平台上,通过Wireshark抓包工具分析http报文,然后编写报文,最后终于成功实现了数据的上传。真心感谢Yeelink平台提供的强大功能,让我们这些爱好者能够轻松实现自己的想法,并分享给他人。

这次比赛比较遗憾的是一直想实现无线功能,就是通过W5500EVB+Zigbee无线模块+数据传感器+Yeelink平台,实现环境信息的无线采集。但是由于这学期学习比较紧张,没有投入足够的时间,所以就没在这里实现。不过这学期选的工程教育高级有这样的无线模块传输数据的项目,我可以好好研究一下Zigbee模块,算是弥补了我这次遗憾。


七、心得体会:

这次比赛基本上都是由我一个人完成的,工作量还是蛮大的。经过这次比赛,本人有一种想法分享给大家:做项目开始时,要做一个简单的规划,当然,这要根据自己的实际能力。在目标确定后,就不要轻言放弃,你只要不放弃,开始的方向有没有错误,最后一定会做出自己想要的结果的,那是的成就感不是别人能体会到的。

 

                                 -- 选自2013年WIZnet杯 以太网技术竞赛,三等奖陈超航作品