实验名称:
姓名:
学号:
实验报告
专业:测控技术与仪器
P.1
姓名:颜睿
学号:3130103850
日期:2018.5.30
地点:创客空间
课程名称: 嵌入式系统设计
实验名称:微信远程控制树莓派
一、实验目的和要求(必填)
三、主要仪器设备(必填)
五、实验数据记录和处理
七、讨论、心得
指导老师:马永昌
实验类型:验证型
成绩:________________
同组学生姓名:孙凡原
二、实验内容和原理(必填)
四、操作方法和实验步骤
六、实验结果与分析(必填)
一、实验目的和要求
用微信远程对树莓派进行控制,搭建家庭监控系统
微信服务器
微信客户
树莓派
公网映射
数据交互
传感器/摄像头
二、实验内容和原理
实验内容:
1. 创建微信公众号通过微信发送消息,远程对树莓派进行操作
2. 结合温湿度传感器 dht11 远程获取温湿度信息
3. 远程开关 LED
4. 用摄像头远程拍照
5. 结合人体感应模块来发送警报
实验原理:
1. 树莓派配置
树莓派上我们需要更新下载一系列库,包括:webpy、python-lxml、python-memcache、appache2、
mjpg-streamer、RPi.GPIO
1) 更新缓存并升级软件
1 更新软件源
nano /etc/apt/sources.list
删除原内容,用以下内容代替(国内清华大学的软件源):
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main contrib non-free
更新缓存并升级软件
sudo apt-get update
装
订
线
实验名称:
姓名:
学号:
P.2
sudo apt-get upgrade -y
2 安装 webpy
git clone git://github.com/webpy/webpy.git
ln -s `pwd`/webpy/web
cd webpy
sudo python setup.py install
3 安装 RPi.GPIO(安装 RPI.GPIO 首先需要安装 RPi.GPIO 所需的 Python Development Toolkit)
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo pip install rpi.gpio
4 安装 python-lxml
sudo apt-get install python-lxml
5 安装 python-memcache
sudo apt-get install python-memcache
6 安装 apache2
sudo apt-get install apache2
配置 apache2 因为 80 端口需要被微信公众平台占用,所以不能让网页走 80 端口,需要更改端口
nano /etc/apache2/ports.conf
将 Listen 80 改为 Listen 8080
7 安装 mjpg-streamer(mjpg-streamer 用于摄像头模块需要安装一下几个依赖包)
依赖包:
sudo apt-get install subversion
sudo apt-get install libv4l-dev
sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick
sudo apt-get install cmake
sudo apt-get install git
git 开源的 project 到本地,编译
sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/ mjpg-streamer-experimental
make all
sudo make install
普通的摄像头此时应该可以使用了,但是树莓派自带摄像头模块会报错
装
订
线
P.3
实验名称:
姓名:
学号:
解决 V4L driver 不支持的问题
sudo wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc
sudo apt-key add ./lrkey.asc
修改 sources list
sudo nano /etc/apt/sources.list
最后一行加上
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main
继续安装
sudo apt-get update
sudo apt-get install uv4l uv4l-raspicam
sudo reboot
重启之后
sudo pkill uv4l
sudo apt-get update
sudo apt-get install uv4l-uvc
sudo apt-get install uv4l-xscreen
sudo apt-get install uv4l-mjpegstream
2) 配置树莓派为服务器
微信公众平台对接需要公网地址 80 端口,而树莓派处于内网中,所以需要用工具将树莓派 80 端口映
射到公网上
1 使用 sunny ngrok 做内网映射
sunny ngrok 网站网址: https://www.ngrok.cc/
装
订
线
2 注册账号登录,开通隧道
实验名称:
姓名:
学号:
P.4
装
订
线
实验名称:
姓名:
学号:
P.5
这样就获得了一个域名,因为免费的服务器连接不稳定,所以我花了 10 元钱开通了一个月的隧道,
此处的隧道 id 和域名需要记住
3 安装客户端启动
装
订
线
下载后解压,打开 cmd
进入解压后的文件目录内 windows_amd64
运行
sunny.exe clientid + “之前申请到的隧道 id”
实验名称:
姓名:
学号:
P.6
运行成功显示如下
装
订
线
3)微信公众号申请
微信公众平台网址:https://mp.weixin.qq.com/
进行注册和设置后配置好
实验名称:
姓名:
学号:
P.7
url 填写刚才获取到的域名+‘/weixin’,token 要与代码中设置的 token 一致
装
订
线
还需开启开发者密码,并把自己本机的 ip 加入 ip 白名单,本机 ip 可从 ip.qq.com 上查询
实验名称:
姓名:
学号:
P.8
装
订
线
在树莓派上运行程序,提交即可启用微信公众号服务
三、主要仪器设备
树莓派、PC 机、树莓派摄像头模块、温湿度传感器、人体感应传感器、putty(远程 ssh 登录树莓派)、
winscp(window 与树莓派传送文件)、vscode
四、操作方法和实验步骤
1.将工程 wechat 文件夹使用 winscp 拷贝至树莓派/home/pi 目录下,其中 wechat 文件夹包含:
1)weixin.py—微信公众平台的 API,参考网上资料,重点看微信公众号开发者文档;
2)index.py—微信端消息处理、树莓派控制以及传感器驱动;
3)start.sh—Linux 操作系统脚本文件,调用 mjpg-streamer 控制摄像头并运行 python 文件;