微信公众号是大家经常会遇到的东西,本期教程我们用微信公众号控制树莓派的21号gpio引脚,这里为了方便的看出控制效果我用把gpio21号口接到一个继电器的vcc,GND接到继电器的GND,这样引脚是高电平时继电器电源灯会亮,低电平时电源灯会关闭(其实这里接二极管也是可以的。。。。)
一、准备的材料
1.公网ip的服务器(frp要用)
2.刷有官方系统的树莓派
3.个人微信公众号
个人微信公众号服务器配置需要用公网ip的80或者443端口,而树莓派接入的网络一般是局域网,没有公网ip,这时候就需要一台具有公网ip的服务器和内网穿透工具来将树莓派的80端口映射到公网ip的80端口。下面使用frp反向代理应用来配置80端口。
二、frp配置
1.云服务器端操作:
登录云服务器,根据服务器的操作系统,在Release页面中找到对应的frp程序,然后分别在服务器和树莓派中下载它
首先使用SSH连接上云服务器,使用wget指令下载frp程序。
使用tar指令解压tar.gz文件
tar -zxvf frp_0.16.0_linux_386.tar.gz
然后进入解压出来的文件夹
cd frp_0.16.0_linux_386
然后修改服务器配置文件,即frps.ini文件,使用nano指令对目标文件进行编辑。
sudo nano frps.ini
打开文件之后将文件里的内容改成
[common]
bind_port = 7000
[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口。
保存上面的配置后,使用以下指令启动frp服务端。
sudo ./frps -c ./frps.ini
到此服务器端的配置就告一段落。
2.树莓派端操作:
树莓派安装的frp程序跟云服务器端的程序是不一样的,树莓派要选择arm版的,前一部分操作跟云服务器端是相同的。
这里版本号要相同!!!
tar -zxvf frp_0.16.0_linux_arm.tar.gz
cd frp_0.16.0_linux_arm
sudo nano frpc.ini
客户端的配置如下:
上面的配置和服务器要一一对应起来:
servera_ddr后面要填云服务器的IP
server_port后面填云服务器的bindport
[ssh]中的内容备注如下:
local_ip后面填树莓派的内网IP,也可以直接用这个!
local_port后面填树莓派的SSH端口,一般是22
remote_port后面填的端口可以随意,但是不要占用特定端口
保存配置,然后运行客户端
sudo ./frpc -c ./frpc.ini
此时如果树莓派命令行出现了"start proxy success"字样,就证明连接成功了!
3.后台运行frp
这儿使用的是nohup指令
nohup ./frpc -c ./frpc.ini#在客户端(树莓派)
nohup ./frps -c ./frps.ini#在服务端(VPS服务器)
三、调用公众号接口的API
首先安装环境,这里使用的是wechatpy和flask。
什么是wechatpy?
wechatpy 是一个微信 (WeChat) 的第三方 Python SDK, 实现了微信公众号、企业微信和微信支付等 API。
什么是flask?
Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask使用BSD授权。
1.安装环境
sudo pip3 install wechtpy[cryptography]
sudo pip3 install flask
2.配置微信公众号
注册一个个人微信公众号
要注意微信公众号里面设置的token要和下面代码里的令牌token一致
3.创建文件
sudo nano tt.py
写入下面代码
公众号发送【控制代码】获得下载地址
4.树莓派端运行代码
sudo python tt.py
这样就已经全部配置完毕了,现在打开公众号,输入开启关闭可以看到gpio21引脚高低变化,视频中可以看得出。
网友评论