2022/07/13

Raspberry Piに接続したLEDをPython CGIスクリプトでブラウザから制御する

概要

Raspberry Pi 3 Model B+に接続したLEDをPython CGIスクリプトでブラウザから制御してみました.

右側の画面がブラウザのウィンドウキャプチャです.ブラウザ上のボタンやテキストボックスを操作すると,LEDの点滅が変化していることがわかります.

開発環境

Raspberry Pi Raspberry Pi 3 Model B+
OS Raspbian GNU/Linux 10 (buster)

回路

回路図

回路図のとおりに,Raspberry PiとLEDを接続してください.

Raspberry Piのピン配置については,公式Webページを参照してください.

LEDのアノード側を3.3V PWRピンに,カソード側をGPIO17ピンに接続しています.電流制限用の抵抗も忘れないようにしてください.

回路部品

参考単価をクリックすると,秋月電子通商のページに飛びます.

番号 部品名 型番 数量 参考単価
R1 炭素皮膜抵抗 各社 1/4W 330Ω 1 1円 (互換品)
LED1 LED 各社 緑色 1 10円 (互換品)
その他 リード線など 適量

ソースコード

GitHubにて公開します.ページ右上付近の「Code」ボタンからダウンロードするかgit cloneしてください.

下記のようにgit cloneします.

1
2
$ cd ./gpio-web-server/

セットアップ

README.mdの「Setup - Software」を参照してください. 予めPython仮想環境を構築する準備をしておくと,既存Pythonスクリプトの実行環境を破壊することなくセットアップできて便利です.ここでは,pyenv-virtualenvを使用しています.

下記のように依存ライブラリをインストールします.

1
2
3
$ pyenv virtualenv 3.7.7 py37-gpio # Python 3.7.7の仮想環境,py37-gpioを作成
$ pyenv local py37-gpio # リポジトリのディレクトリで使用する仮想環境をpy37-gpioに設定
$ pip install -r requirements.txt

実行

README.mdの「Usage」を参照してください.

下記のように実行します.終了する際は,Ctrl + cキーを押下してください.

1
$ python gpio-web-server.py

Raspberry Piと同じLANに接続しているPCやスマートフォンのブラウザから,サーバにアクセスします. Raspberry PiのIPアドレスが192.168.0.3の場合は,http://192.168.0.3:5000/にアクセスしてください.

ブラウザからLEDを制御することができるようになりました.

製品紹介

0 件のコメント:

コメントを投稿