概要
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ピンに接続しています.電流制限用の抵抗も忘れないようにしてください.
回路部品
参考単価をクリックすると,秋月電子通商のページに飛びます.
ソースコード
GitHubにて公開します.ページ右上付近の「Code」ボタンからダウンロードするかgit cloneしてください.
下記のようにgit cloneします.
1 2 | $ git clone https://github.com/KeitetsuWorks/raspi-gpio-web-server.git gpio-web-server $ 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を制御することができるようになりました.