python3操作RaspberryPi的GPIO
使用python3的RPi.GPIO庫操作RaspberryPi的GPIO
基礎環境
- 樹莓派B,26引腳
- Python3 的 RPi.GPIO庫
樹莓派的引腳圖
GPIO編號有兩種編號模式(BOARD)和(BCM)
本文用的是BCM模式,編號圖在這裏
RPi.GPIO庫
RPi.GPIO有python2.7和python3.5版本。
樹莓派中應該有預裝,但是如果沒有裝,也可以自己裝。
兩種方式:
1.apt-get
sudo apt-get update
sudo apt-get install python3-rpi.gpio
# pyhton2 : sudo apt-get install python-rpi.gpio
2.下載源文件(下載地址)
tar zxvf RPi.GPIO-0.6.3.tar.gz
cd RPi.GPIO-0.6.3
sudo apt-get install python3-dev
sudo python3 setup.py install
# python2: python3 替換成 python
讓程序跑起來吧
本文用的是震動傳感器,一共三個接口DO,GND,VCC。按引腳接到樹莓派上。
代碼
import RPi.GPIO as GPIO
pin = 4 ## 使用4號引腳
GPIO.setmode(GPIO.BCM) ## 使用BCM引腳編號,此外還有 GPIO.BOARD
GPIO.setup(pin, GPIO.OUT) ## 設置4號引腳輸入
while 1: ## 重複
if GPIO.input(pin) == 1 : ## 如果有震動,會輸出高電平 用input讀取數據
print("somebody passed")
## 理論上應該加上sleep,不然會連續響應太多次
# GPIO.output(channel, state) 從引腳輸出
# GPIO.output(7, True) 輸出高電平
# or GPIO.output(7, GPIO.HIGH)
# or GPIO.output(7, 1)
# GPIO.output(7, False) 輸出低電平
# or GPIO.output(7, GPIO.LOW)
# or GPIO.output(7, 0)
GPIO.cleanup() ## 清除
讀取DHT11溫溼度傳感器數據
參考
樹莓派從 DHT11 溫度溼度傳感器讀取數據
直接用python讀取,時序操作比較麻煩,沒成功
使用 Adafruit 讀取 DHT11 溫溼度傳感器
基本參照這一篇,就是安裝的時候pip
沒有安裝,報了點小錯。
熱釋電紅外傳感器 HC-SR501
天貓上找來的圖