RaspberryPi 機能別早見表 – 操作系(初級) – 活用例1

QR2069

QR2069

Raspberry Pi で CGI プログラムを利用するには Web サーバのインストールが必要である。Web サーバのインストールとCGIを利用するための設定は「Raspberry Pi で CGI(bash)を動かす」を参照してもらいたい。

また、スイッチの状態を読み出すために wringPi を利用している。wringPi のインストールと使い方は「wiringPi のインストール」や「wiringPi gpio コマンドの使い方」にて解説している。

CGIプログラムでスイッチの状態を読み出す

電工作塾流操作系の作法に従ったスイッチ状態の読み出しは、HTTP GET で要求し、JSON 形式で受け取る。

具体的な流れ

リクエスト

GET /PATH/TO/CGI-PROGRAM/api-switch.cgi

レスポンス

[ {“pin”: “4”, “status”: “OFF”} ]

  • クライアントは、(GPIO 4 番ピンに繋がれた)スイッチの状態取得を、GET メソッドで要求する
  • サーバは、読み取った状態を JSON 形式で返す(PIN 番号 4 はスイッチ OFF であるとの内容)

実際の CGI プログラム

10 行程度のシェルスクリプトで実装できる。 簡単な GPIO 操作には、wiringPi の併用が便利。

#!/bin/sh

PIN=4
value=$(gpio -g read $PIN)

echo “Content-type:application/json”
echo “”
echo ‘[ {“pin”: “‘$PIN'”, “status”: “‘$value'”} ]’

exit 0

このスクリプトでは、読み出す GPIO のピンをハードコーディングしている。wiringPi の gpio コマンドを利用してピンの状態を読み出し、結果を JSON 形式にで表示している。