Skip to content

TKXZH/WeChatServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

###微信公众号树莓派传感器信息监测平台###

####概述:#### 本项目是基于微信公众号实现的传感器信息监测平台。微信公众平台服务器部署在树莓派上,通过http接口与微信官方服务器进行消息交互,使用户能够通过微信公众号的菜单向树莓派发送特定的事件请求,并触发树莓派上对硬件执行查询或控制操作。 效果图1 效果图2

####功能:####

  1. 通过微信公众号远程控制LED等开关。
  2. 通过微信公众号控制树莓派相机拍照。
  3. 通过微信公众号控制步进电机转动摄像头。
  4. 通过微信公众号获取实时温湿度数据。
  5. 通过微信公众号获取 有/无人 信息
  6. 通过微信公众号查看实时视频。

####功能增加:####

  1. 实现Web端进行传感器信息监测和操控。
  2. 实时查看温湿度数据以及动态折线图。
  3. 定时任务,每隔一段时间进行传感器数据入库,供用户查询。
  4. 历史传感器数据查询
  5. 实时视频监测,摄像头转动控制。
  6. shell实现自动视频采集,web端可根据时间查看历史视频录像。

####实现原理:#### 一、服务器及http服务实现:

服务器使用Jetty作为servlet容器,通过反射或者手动注册方式添加http api接口(可选),供微信官方服务器调用。具体的实现在server包,servlets以及httpp包中,实现了对http请求的简单封装和处理,通过注解标记http请求处理方法,方法名即默认为url上下文。

二、内网映射设置:

内网映射服务使用的是ngrok, 对于arm架构的机器也有相应linux的版本。请访问:ngrok

三、微信推送消息及事件响应:

本项目使用到的消息类型有两种:text、image。分别用于传感器信息推送以及实时照片推送。使用到的事件类型有两种,click和view(使用前需要自定义菜单,wechat.util.menu包中有具体的实现)。微信服务器和开发者服务器之间的消息交互通过xml格式实现。本项目对每一种具体的消息和时间做了xml2class的映射,详见event包中的实现。

四、树莓派以及传感器控制:

涉及树莓派GPIO部分,本项目使用Pi4J库实现对GPIO的控制,包括DHT11温湿度传感器的时序控制,接近传感器控制,以及步进电机的转动控制,LED等开关控制,都可以在sensor包中找到对应的class。需要特别注意,这些传感器类一定要使用单例模式,避免Pi4J并发异常或者是控制逻辑混乱。

####WEB端效果图:#### web效果图1 web效果图2 web效果图3 web效果图4

About

微信公众号树莓派传感器信息监测

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published