続いてRaspberry Piネタ
IoTでRaspberryPiにセンサーつなご~というとき、
Raspberry `PiとセンサーをGPIOでつなごう!ということになる。
その場合、
/sys/class/gpioの下にあるファイルを操作することになるけど
そのときのメモ
■どこにつなぐ?
GPIO: MODELS A+, B+, RASPBERRY PI 2 B AND RASPBERRY PI 3 B
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md
に写真が載ってるけど、はっきりしないので、つけたし。
その一番上の写真、右側が切れている。つまり
左側がはじ(だから、角がまるい)。
右側にUSBがつく(けど写真では切れている)
これが、その下にある番号なんだけど、バージョンによって、番号が違う。
Raspberry piのコンソールで実行したコマンド
gpio readall
で表示されるBCMの番号が、gpio○番で指定する番号。
つまり、そこの図で、上側6番目に「12」とあるけど、それはgpio readall
のphisicalの番号。/sys/class/gpio/gpio○の○は、BCMの番号(つまり、12
のところをたどっていくと、BCMは18なので、gpio18となる)
■下準備
/sys/class/gpioの下には、そのままには、ファイルがない
そこで、ファイルを作る。
・まず、exportする。GPIO18番を使う場合
echo 18 > /sys/class/gpio/export
・次に、入力か出力か指定する。入力はin,出力はout
echo in > /sys/class/gpio/gpio18/direction
・valueの値が書き換わる/書き換える
■配線
・inの場合は、一方の線が3.3V 他方の線がGPIO(入力)にいくようにつなぐ
・outの場合は、一方がGND、他方がGPIO(出力)にいくようにつなぐ
■アクセス
・ /sys/class/gpio/gpio18/valueの値を
入力の場合は参照
出力の場合は、書き出し
を行う。0がLOW、1がHIGH
IoTでRaspberryPiにセンサーつなご~というとき、
Raspberry `PiとセンサーをGPIOでつなごう!ということになる。
その場合、
/sys/class/gpioの下にあるファイルを操作することになるけど
そのときのメモ
■どこにつなぐ?
GPIO: MODELS A+, B+, RASPBERRY PI 2 B AND RASPBERRY PI 3 B
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md
に写真が載ってるけど、はっきりしないので、つけたし。
その一番上の写真、右側が切れている。つまり
左側がはじ(だから、角がまるい)。
右側にUSBがつく(けど写真では切れている)
これが、その下にある番号なんだけど、バージョンによって、番号が違う。
Raspberry piのコンソールで実行したコマンド
gpio readall
で表示されるBCMの番号が、gpio○番で指定する番号。
つまり、そこの図で、上側6番目に「12」とあるけど、それはgpio readall
のphisicalの番号。/sys/class/gpio/gpio○の○は、BCMの番号(つまり、12
のところをたどっていくと、BCMは18なので、gpio18となる)
■下準備
/sys/class/gpioの下には、そのままには、ファイルがない
そこで、ファイルを作る。
・まず、exportする。GPIO18番を使う場合
echo 18 > /sys/class/gpio/export
・次に、入力か出力か指定する。入力はin,出力はout
echo in > /sys/class/gpio/gpio18/direction
・valueの値が書き換わる/書き換える
■配線
・inの場合は、一方の線が3.3V 他方の線がGPIO(入力)にいくようにつなぐ
・outの場合は、一方がGND、他方がGPIO(出力)にいくようにつなぐ
■アクセス
・ /sys/class/gpio/gpio18/valueの値を
入力の場合は参照
出力の場合は、書き出し
を行う。0がLOW、1がHIGH