Featured image of post 树莓派之微信远程GPIO控制

树莓派之微信远程GPIO控制

前言

上篇文章做了个小测试程序python对树莓派GPIO引脚控制实现了流水灯,本篇继续深入实现微信远程控制LED流水灯

正文

先看下整体的框架

这里写图片描述

简单说明
这里借用两个微信号,互为好友。其中微信1做为服务端部署在树莓派上;微信2做为客户端用户通过微信2发出指令,实现远程控制。

技术要点

  1. 树莓派调用LED灯上篇已经实现树莓派养成之路 ——GPIO控制
  2. 服务端微信1使用itchat1.

实现方法

1 、 树莓派上安装itchat库

pip install itchat 

2 、 编写服务端程序,得到命令后调用led.py控制LED灯

itchatBot.py

import itchat
import led

#itchat框架,关注TEXT消息
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
	#得到任何text消息就打开流水灯,最后原消息返回
    led.openLed()
    print(msg.text)
    return msg.text

itchat.auto_login(enableCmdQR=2)
itchat.run() 

led.py

import RPi.GPIO as GPIO
import time

def setup():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(11, GPIO.OUT)
    GPIO.setup(13, GPIO.OUT)
    GPIO.output(11, GPIO.LOW)
    GPIO.output(13, GPIO.LOW)

def destroy():
    GPIO.output(11, GPIO.LOW)
    GPIO.output(13, GPIO.LOW)
    GPIO.setup(11, GPIO.IN)
    GPIO.setup(13, GPIO.IN)

def openLed():
    setup()
    GPIO.output(13, GPIO.HIGH)
    for i in range(2):
        GPIO.output(11,GPIO.HIGH)
        time.sleep(1)
        GPIO.output(11, GPIO.LOW)
        time.sleep(1)
#    destroy()
    GPIO.cleanup()

if __name__=="__main__":
    openLed()  

后记

原计划是想部个服务,然后手机调服务的方式实现远程控。但想想这样是不是很不安全。使用微信做为渠道局限性大,但安全得到保障。下篇《siri远程GPIO控制》


  1. itchat littlecodersh大牛对网页微信封装的一套API ↩︎

Licensed under CC BY-NC-SA 4.0
最后更新于 2024-05-06 21:45 UTC
 赣ICP备18015110号-1   
使用 Hugo 构建 主题 StackJimmy 设计