【 Raspberry Pi 4 】WebIOPi を利用してGPIOを操作してみる
ラズパイで遊びながら、知見を広げたいレオハルです。
普段は、車載組込みソフト開発に従事しているため、IT系、Web系の知識が皆無です。
本日は、そんな私がRaspberr Pi 4を使いながら、ブラウザ経由でGPIOを操作してみた記録です。色々な方法があるようですが、一番簡単にできそうだったWebIOPiを利用してみることにしました。
超初歩的な内容が故に偉大な先人達がRaspberr Pi 3以前の環境で記録を残してくれています。Raspberr Pi 4でも同様にやれることを確認していきましょう。
環境
- Raspberry Pi 4 Model B
- Raspbian 10.4
- python 3.7.3
↓これ買って使ってます。
WebIOPiのインストール
まず、WebiOPiをダウンロードします。 コンソールでコマンド実行していきます。
$ wget https://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
ダウンロードが終わったら、解凍しましょう。
$ tar xvzf WebIOPi-0.7.1.tar.gz
解凍したフォルダに移動います。
$ cd WebIOPi-0.7.1
続いて、修正パッチが出ているらしいので、ダウンロードして適用させます。
$ wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patc
$ patch -p1 -i webiopi-pi2bplus.patch
セットアップスクリプトを実行し、インストールしていきます。
$ sudo ./setup.sh
これでインストールは完了です。
次に使い勝手を向上させるための設定をしておきました。
サービスの起動・停止
systemctlを利用して、サービスの起動や停止、状態確認をできるように登録します。
$ cd /etc/systemd/system/
$ sudo wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi.service
次のコマンドで開始、停止、状態確認、再始動ができます。
$ sudo systemctl start webiopi
$ sudo systemctl stop webiopi
$ sudo systemctl statu webiopi
$ sudo systemctl restart webiopi
私は毎回入力するのも面倒なので、自動起動するようにしてみました。
$ sudo nano /etc/rc.local
エディタでrc.localを起動すると、最後に「exit 0」があります。
これより前に、上記の開始コマンドを記述し、保存すると、起動後に自動的にコマンドを実行してくれます。
ちなみに、起動時に開始させる方法もいくつかあるようですので、興味のある方は調べてみてください。
ローカル環境のブラウザから動作確認
ラズパイのブラウザから「 http://localhost:8000/ 」にアクセスします。
ユーザ名・パスワードを聞かれるので、入力します。
デフォルトでは、次のようになっています。
ユーザ名: webiopi
パスワード: raspberry
ログイン後、メインメニューのページが開きます。
GPIO Headerを開くと次の画面に遷移します。
自分の環境で設定しているGPIOの「IN/OUT」を切り替え、数字部分で「 ON/OFF 」を切り替えることができます。
同一ネットワーク内のスマホからアクセス
続いて、ローカルネットワーク内の同じWifiに接続しているスマホからアクセスします。
スマホのブラウザに「 http://***.***.***.***:8000/ 」と入力し接続します。
「***」部分には、ラズパイのIPアドレスを記述してください。
あとの要領は、先ほどのローカル環境での操作と同じです。
操作感は、動画でどうぞ。
『Raspberry Pi4 』WebIOPi GPIO操作
いかがでしたでしょうか?
プログラムを組む必要すらなく、簡単にGPIOの操作が出来ました。
ウェブブラウザの表示ページをカスタマイズも可能なので、簡単にIotデビューが出来そうです。