聚丰项目 > 基于微信公众平台的智能型环境监测系统
利用物联网技术和微信公众平台进行环境监测,能够实时获取监测地点的温度和湿度,实现远程数据采集与显示的功能。该系统不受时间和地域限制,用户可以在任何具备网络覆盖的地方从关注的微信公众号中获取并浏览采集到的信息,且具有支持多手机用户客户端可以共享一台服务器的优势,用户可以完全掌握检测地点温湿度的变化情况并做出恰当的反应。同时该系统将微信公众平台与图灵机器人进行结合,在联网的情况下可做到和人自如的对话。
wangerniu
分享wangerniu
团队成员
刘成涛 助理工程师
王震 学生
本系统主要分为感知与控制层、网络层和用户应用层三部分。感知与控制层的主要功能是通过STM32 ARM控制板和DHT11温湿度传感器节点等感知设备,获取环境监测的相应参数信息,如温度、湿度、光照度等。然后通过无线WIFI传感器网络技术组成一个自治网络,采用协同工作的方式,提取有用的信息,并通过接入设备与互联网中的其他设备实现资源共享和交流互通。
网络层的主要功能是将来自感知与控制层的信息传送到互联网中,通过学习以IPV6/IPV4为核心建立的互联网平台,将网络内的信息资源整合成一个可互联互通的大型智能网络,为上层服务管理和大规模环境监测应用建立一个高效、可靠、可信的基础设施平台。通过大型的中心计算机平台,对网络内获取的大量环境检测信息进行实时的管理和控制,并为上层应用提供一个良好的用户接口,本系统采用阿里云服务器和MYSQL数据库作为智能网络平台。该平台能够将WIFI模块发送来的数据利用PHP语言不断存储在数据库中,以便供微信公众平台进行数据的调用。
用户应用层的主要功能是集成系统底层的功能,构建起面向环境监测行业的实际应用,这里利用手机微信公众平台 。用户在微信公众平台发送采集数据的请求指令后,服务器迅速将数据库中当前数据发送给微信公众号,从而保证用户获取最新的温湿度数据,更好的实现了远程实时监测、预警等功能。整个系统的具体构架图如图所示。
1 数据采集与控制模块
控制模块(MCU)采用一款常用的ARM芯片-STM32F103,它拥有丰富的外设资源且易扩展,与其他芯片相比,该款芯片性价比极高。该模块主要实现对采集的温湿度信息进行控制,并将数据一路通过WIFI模块传送到服务器,另一路通过串口在LCD屏上进行显示。
本系统通过温湿度传感器DHT11采集环境参数,包括温度和湿度。DHT11是一款复合传感器,厂家在生产过程中已对数字信号输出进行校准;同时为了提高该款传感器的可靠性以及稳定性,采用特定的数字模块采集技术和温湿度传感技术进行加工。该传感器的核心器件是电阻式感湿元件以及NTC测温元件。所有的DHT11传感器都通过特定的湿度环境进行校准,然后以程序的形式将获取的校准系数储存在OTP内存中,传感器在进行检测信号的过程中需要对这些校准系数进行调用[10]。接口采用单线制串行进行通信,在集成系统过程中方便且快捷。此外DHT11具有体积小、功耗低、信息传输距离能够大于20米等优点,使其获得广泛的应用。该DHT11与MCU的具体连接如图2所示
图2 温湿度DHT11模块与MCU的典型连接
2 WIFI模块
WIFI模块采用的是有人物联网科技公司的USR--WIFI232-D2模块,用于实现WIFI与串口的转换,将不具备网络连接功能的单片机接入互联网,使其配置为STA模式连接到路由器上,组成一个无线网络,从而能向服务器发送数据。其原理图如图3所示。WIFI模块的TXD,RXD分别接到ARM的PA10(U1_RXD)与PA10(U1_TXD)上,完成ARM端与WIFI模块的串口。
图3 WIFI模块原理图
3 液晶显示模块
液晶显示模块原理图如图4所示,在硬件设计上同时支持LCD彩屏与OLED。16万色的LCD彩屏作为显示元件,其相对普通的数码管显示元件具有更丰富的显示色彩,且可触屏操作,嵌入方便,以实现强大的用户交互系统的设计;同时,OLED具有功耗小、成本低等优势。该系统采用两种显示方式,以适应不同用户与不同场合。
图4 液晶显示模块原理图
1 控制部分算法
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。
为了能够准确获取所关注地点的温湿度值,本系统采用两个温湿度传感器DHT11,采集的温湿度值分别记为W1、S1以及W2、S2 ,设定温度阈值Wth,湿度阈值为Sth,当|W1-W2|<Wth时,则通过WIFI模块传送到服务器的温度数据为两者的平均值即(W1+W2)/2 ;当|W1-W2|>Wth时,再次采集数据进行比较,若经过三次比较后,依然是上述结果,则向服务器传送“温度数据有误”这一消息,提示用户进行检查本装置。同理进行湿度数据的采集。
2 服务器与数据库
本系统采集的温湿度数据通过服务器储存在数据库中,因此服务器与数据库的稳定性、方便性和广泛实用性显得尤为重要。通过多方论证,本系统选用MySQL数据库和阿里云服务器进行数据传送存储和管理的系统。硬件WIFI模块发送的数据以GET方法发送到阿里云服务器中,阿里云服务器通过PHP脚本语言与SQL语句进行连接来实现数据的存储与管理,如图5所示。
图5 Navicat与阿里云服务器的数据库连接
为了提高该系统的可操作性,用户可以通过手动设置通信地址、端口以及添加信息到数据库中,且一次设置永久保存。在每次通信时系统会自动搜索数据库,取出温湿度数据和远程服务器进行通信;若服务器地址发生变化,只需修改客户端通信数据库中的通信参数即可。数据存取模块实现对远程服务器传送来的温湿度数据进行数据存储、更新以及实时的查询记录功能。
服务器与数据库是通过HTTP协议的GET请求方式将传感器发送来的数据进行传输,采用目前较为常用的php脚本语言进行编写代码,部分核心代码如图6所示。
图6 PHP实现数据存储的代码
3 服务器与微信公众平台
基于微信公众平台的智能型环境监测系统的终端是手机客户端中的微信软件。要使得手机微信公众号发送的请求命令能够被响应,需要将手机微信公众号与服务器绑定。
将微信公众号与服务器绑定之后,微信公众号发送请求指令到服务器,服务器读取数据库中的数据发送回微信公众号。该指令和返回消息的具体文字信息是由服务器端用PHP语言作为交互的脚本语言,对客户端发送的指令进行解析与判断,预先建立一个知识库系统,用于实现对特定语句的回应,比如本系统中公众微信号发送请求指令“温度”,会得到回复信息当前时间的硬件设备所在地的温度数据;公众微信号发送请求指令“湿度”,会得到回复信息当前时间的硬件设备所在地的湿度数据。具体的阿里云服务器、微信服务器和客户端的消息收发原理如图7所示。
图7 阿里服务器、微信服务器和客户端的消息收发原理
4 微信与图灵机器人
图灵机器人是中文语境下智能度较高的中文语义与认知计算平台。其以人工神经网络为基础,运用机器学习、知识图谱、模式识别等技术,其拥有强大的中文语义分析及上下文解读能力,可加速实现嵌入式系统的智能化,提高及交互体验。
本系统通过图灵机器人公司提供的API接口,将客户发送的非指令性语句以HTTP协议发送的其平台,再对其回复的信息加以筛选与处理回发给用户端,实现语言交互功能。
1 基本信息收发
微信公众号管理员在系统中绑定好通信接口后,才能进行基本的信息收发功能。用户可以向应用服务发送消息或者事件,同时应用服务也可以响应该事件并返回信息给用户。本测试模块设计了温度和湿度两个指标进行测试,如图8所示。图9和图10分别表示了当前时间的数据库和LCD显示屏所对应的温湿度指标。
图8 温湿度远程检测结果图
图9 数据库内对应的温湿度数据
图10 LCD显示屏显示的温湿度信息
2高级消息推送
高级信息推送是指公众号管理员通过公众号和图灵机器人结合管理后台,实现多样化的功能,比如查询某个城市天气、查询飞机票、查询快递等功能。图11为高级消息的推送测试结果。
图11 高级消息推送测试结果
经以上测试结果可知,系统运行正常,能完成公众号的基本信息收发和高级消息推送的功能。由于WIFI无线网络传送数据时会有延迟,从而在微信端请求指令的过程中,检测的数据为数据库前8-9s的数据,使得获取的的当前信息可能与LCD显示屏的信息会出现不同步的现象。
肉夹馍456: 能开放源码吗,很感兴趣
回复
wangerniu: 可以,发我邮箱1341046884@qq.com
回复
ZLYdzfsy: 做的很好,特别想学一下,能开源与我吗,可以的话给我发一份,邮箱tdliyou@163.com。谢谢
回复
Life、Shine: 1363585228@qq.com想学习以下,楼主
回复
super尚少: 不错不错,,我西安科技大学的,,有时间找你交流交流
回复
hjwstc9494:
感觉您这个项目做的很棒,我想学习一下,您可以发一份源码给我吗?
我的邮箱是:mrhan1992@hotmail.com
多谢您
回复
粟一烧:
可以发源码学习一下码
邮箱:l.95@qq.com
谢谢楼主
回复
lzchen: 赞,很好的应用,能发源码学习一下吗,谢谢1063362378@qq.com
回复
zhengjie1987: 不错,很感兴趣,希望能学习下,谢谢
回复
hello_mcu: 应用不错,支持,学习。
回复
xy972853: 赞,很好,现在也在学习者方面,能发源码学习一下吗,谢谢1902145466@qq.com
回复
大愚若智78: 请给我发一份,非常感谢,学习学习。515112124@qq.com
回复
zhzh99: 学习一下,可以开个班吗?
回复
kjiawei: 很感兴趣,可以发份源码学习吗?嘻嘻,523090538@qq.com
回复
DCYcity: 我最近在弄ph2.5的 需要类似功能 可以发份源码吗 ,谢谢 527383814@qq.com
回复
DCYcity: 我最近在弄ph2.5的 需要类似功能 可以发份源码吗 ,谢谢 527383814@qq.com
回复
飞扬跋扈牛: 很感兴趣,可以发份源码给我吗?18334793263@163.com
回复
guo30594: 很感兴趣,可以交流一下么?amazingxm@163.com
回复
scx2006114: 你好,我非常想学习,能否开源与我?非常感谢!1350170127@ qq.com
回复
Life、Shine: 1363585228@qq.com想学习以下,楼主
回复
baymax2015: 你好,我对这个很有兴趣,想试着学习一下,可以开源给我吗?十分感谢,我的邮箱654182988@qq.com
回复
jf_1689824194.2700: 很好的项目,非常想学习一下,能开源给我吗?luhuayiw@163.com.谢谢!
回复
宁静致远a: 同求源码,谢谢 wjc_1943@163.com
回复
jopey: 楼主,我对这项目感兴趣哦,可以开源给我么?1224398739@qq.com
回复
陈乃兴: 还添加了图灵机器人,蛮有趣的哈,我想用树莓派和微信做,能分享一下源码么?1286910460@qq.com灰常感谢
回复
1430347551: 你好,我也想求一份源码,谢谢 ,740071911@qq.com
回复
malihui518: 很感兴趣 可以把资料给我一份吗? 544233578@qq.com
回复
handrap123: 厉害,牛人啊。学习下,谢谢,handrap@163.com
回复
动力源源动力: 能分享下吗,特别感兴趣,尤其是WIFI模块的实现!qq邮箱1239723867@qq.com
回复
cjh5750: 真心很感兴趣,可以的话麻烦发一份源码给我,谢谢您!austchengjunhui@126.com
回复
鬼灵燃桐: 很厉害啊,有很多我都想学习了解一些,可以给我发一份源码吗?非常感谢!
回复
鬼灵燃桐: 很厉害啊,有很多我都想学习了解一些,可以给我发一份源码吗?非常感谢!1446536890@qq.com
回复
有爱无忌: 很感兴趣,可以发份源码学习吗?1369898261@qq.com
回复
h1654155963.3562: 很感兴趣,可以发份源码学习吗?我的邮箱863827237@qq.com
谢谢啦
回复
h1654155702.3669: 你好,做的好棒,很想学习一下,能开源一份吗970072303@qq.com
回复
粟一烧: 可以,发我一份源码吗
邮箱:l.95@qq.com
谢谢楼主
回复
军之梦: 你好!做得非常好,特别想学习一下,能发一份开源码吗?谢谢!1570175548@qq.com
回复
欢宝宝: 想学习一下微信那块怎么连接 可以发源码学习一下吗 谢谢啦
邮箱:1602527328@qq.com
回复
zhonger: 哇!厉害,最近也在弄类似的。
可以发一份源码供我学习一下吗?
谢谢!
邮箱:2831213424@qq.com
回复
泯灭阿三: 有项目想找你合作,请加QQ:916386046
回复
退休的马里奥: 觉得这个项目特别有意思,想交流下,可以开源下吗?qq邮箱2631987631@qq.com
回复
Aaaaaaaappppp: 同求发源码可以嘛,觉得真的很棒 412859404@qq.com
回复
郭越555: 想请教大佬这个怎么搞得,2686014036@qq.com
回复
Zero121666: 我也想学习一下,能不能也发我一份,谢谢啦!邮箱2235381012@qq.com
回复
山海皆可平: 打扰了楼主,您的作品太棒了!可以借鉴一下源码吗?sweetingpie@163.com
回复
山海皆可平: 麻烦楼主了,谢谢您!
回复
mollyx: 楼主大大——我也很想学习可以发给我吗,1113549072@qq.com
回复
有点无聊333: 源码可以发下吗大佬1374321633@qq.com
回复
jf_36171263: 楼主大大,这个项目做的好好呀,可以分享源码我学习一下吗?可以的话,这是我邮箱2571905717@qq.com,谢谢啦!
回复