[RaspberryPi] パルスセンサー(SEN-11574)

2016/04/09

IoT Python RaspberryPi テクノロジー 日記

t f B! P L
ふとした事で手に入れた脈拍センサー(SEN-11574)というセンサーの値をRaspberry-PIで取得してみようと思い、3日ぐらいもがいてみました。

ADコンバータの扱い

そもそも、このセンサーはアナログセンサーである事を知らずに、うかつに手にしてしまいました。 Arduinoはアナログ入力にも対応しているんですが、RaspberryPiはデジタル入力のみしか対応していないらしく、 アナログ-デジタルコンバータ(ADコンバータ)を回路に組み込んでデジタル変換した値を取得しないといけないという事をググって知りました。 そういえば、このセンサーをばらまいていた人達がコンバータチップも同時にばらまいていたが、そういった細かな手続きは無視して行なっていたイベントなので、秋葉で調達してきました。 秋月だと180円で売っていたのに、迂闊に別の店で320円も出してしまった・・・OTL

Raspberry-PIのSPI入力対応

今までのGPIO入力はgpio-valueやw1などのbus経由で取得していたが、今回はまた別のbusで取得しなければうまく採取できないようだ。 とりあえず、色々なやり方がありそうだが、なんとなく取得できたpythonパターンを使ってできた事をメモしておきます。

SPIの有効化

$ vi /etc/modules ## 下記を追記 spidev $ vi /boot/config.txt ## 下記を追記 dtparam=spi=on $ sudo reboot

センサー接続

参考 心拍センサーを使ってkintone Hospital 上記参考サイトの配線をそのまま構築します。 正確に構築出来た場合は、写真のように、センサーのランプが点灯します。

python準備

参考 Raspberry PiのPythonからTMP36のアナログ温度センサとMCP3008のADコンバータを使う

インストール

$ apt-get install python-dev $ curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python $ curl https://bootstrap.pypa.io/get-pip.py -o - | sudo python

確認

$ python -V Python 2.7.9 $ pip -V pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

spi.py

#!/usr/bin/env python import time import sys import spidev spi = spidev.SpiDev() spi.open(0,0) def readAdc(channel): adc = spi.xfer2([1,(8+channel)< <4,0]) data = ((adc[1]&3) << 8) + adc[2] return data def convertVolts(data): volts = (data * 3.3) / float(1023) volts = round(volts,4) return volts def convertTemp(volts): temp = (100 * volts) - 50.0 temp = round(temp,4) return temp if __name__ == '__main__': try: while True: data = readAdc(0) print("adc : {:8} ".format(data)) volts = convertVolts(data) temp = convertTemp(volts) print("volts: {:8.2f}".format(volts)) print("temp : {:8.2f}".format(temp)) time.sleep(1) except KeyboardInterrupt: spi.close() sys.exit(0)

実行

python spi.py adc : 0 volts: 0.00 temp : -50.00 adc : 0 volts: 0.00 temp : -50.00 参考サイトは5秒毎の値更新だったが、1秒毎にしてみた。(sleepの箇所を変えるだけです) センサーをいじってみると値が変わるのが確認できる。 とりあえず、今回は値が取得できるとこまでの確認で、次回ログ取得して値を参照してアクションできるようにしてみます。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ