1
1

【Raspberry Pi 5】GPIOをDockerコンテナから制御する方法

Last updated at Posted at 2024-04-10

はじめに

GPIOをPythonで操作する時によく使われていたRPi.GPIOがRaspberryPi5から使えなくなりました。
その代わりにgpiozeroを使用するように公式からアナウンスされています。
ネイティブ環境から操作することは容易ですが、それらをDockerコンテナで一から構築する方法が無かったのでこちらに示します。

ソースコードはこちら

全体構成

app
|-- code
|   `-- sample.py
|-- docker-compose.yml
`-- Dockerfile

Dockerイメージ

docker-compose.yml
version: '3.3'
services:
    gpio:
        build: .
        tty: true
        privileged: true
        volumes:
            - ./code:/code
        command: bash

gpiozeroの他に依存ライブラリとしてlgpio、pigpio、gpioが必要です。

FROM python:3.11-slim

RUN apt update -y && apt upgrade -y

# GPIO
RUN pip install lgpio pigpio gpio gpiozero

スクリプト

LEDを接続したGPIO25ピンに接点出力するサンプルです。

from gpiozero import LED
from time import sleep

led = LED(25)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)

起動方法

サンプルスクリプトはこれで動きます。

$ docker-compose up -d
$ docker-compose exec gpio python3.11 code/sample.py
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1