どうしても IoTしたいので光センサを作りました
IoTといっても「仮に IoTセンサーがあったとしたら」という仮定の環境ではやはり面白くないものです。
せっかくラズパイも持っているので「センサーくらい本物を使おう」と思うものの、ラズパイ電子工作用のセンサー類って高いんですよね。
私はセンサーから得たリアルタイム値をサーバーに送りたいのでして、私はセンサーを作りたい訳ではありません。
そこで「なるべく安く何かしらのセンサーを得られないものか?」を考え、家にある電子工作部品を眺めておりました。
子供が中学校の授業で何か電子工作していたのを思い出し、それをもらってきました。
そのセットを見れば光センサーがあるじゃないですか。
具体的には CdSセルって言う明るさによって抵抗値が変わる部品なんですが、これが使えそうです。
このCdSセルを使ってラズパイ電子工作をしているところは無いかインターネットを調べたところこちらにてやっておられました。
電気設計人.com
こちらの記事の中の以下で正にビンゴの工作例がありました。
【ラズパイ電子工作】光センサで明るさを読み取る方法(CdSセル)
こちらの回路図、と言ってもブレッドボード上の部品配置の絵なので、ド素人の私にも作れそう。
手持ちの部品には ADコンバーターはありませんでしたので、先日秋葉原に行った際に秋月電子さんで[MCP3002]なるIC(¥240)を買ってきました。
これで電子工作初心者の私にも、Lチカ(LEDをチカチカ光らせる)だけではない工作ができそうです。
で、出来上がった回路がこちら。
か…かっこいい…ICが載っているのがカッコ良過ぎる!
右の方に水色の部品(可変抵抗)がありますが、そのチョイ左にボケボケの部品が1つあって、それが CdSセルになります。
IC及びラズパイとの結線以外の部品は子供の学校用キットにあったものです。
捨てなくて良かった。
上記ブログでは Pythonで明るさの数値を得ているんですが、ラズパイで SPI(Serial Peripheral Interface)という機能を有効にしてあるのが前提になっています。
こちらデフォルト設定では offになっているため、これを onになるように OS設定をしなければなりません。
GUIでできるんですが、ウチのラズパイはモニタレス状態なので、設定ファイルを書き換えることにします。
[/boot/config.txt]ファイルに「spi」を含む設定行がありますので頭の「#」を消して下さい。(ピンクのところ)
subro@raspberrypi:~/work/hikari $ grep spi /boot/config.txt
#dtparam=spi=on
変更したら再起動します。
subro@raspberrypi:~/work/hikari $ sudo reboot
再起動したらSPIが有効になってるか確認します。
有効になっていると、spiのデバイスが何かしら出てくるはずです。
subro@raspberrypi:~/work/hikari $ lsmod | grep spi
spidev 20480 0
spi_bcm2835 20480 0
良さげです。
この後 上記サイトで公開されている Pythonのプログラムをそのまま走らせてみました。
subro@raspberrypi:~/work/hikari $ python3 test.py
441
440
438
432
429
436
435
436
値を取れています!
明るさによって 0〜1023の間の値を取れるようです。
CdSセルに懐中電灯で光をあてたり手で隠して暗くすると、ちゃんと値が変化していました。
ハードウェア(回路)から値を得られるとは…超感動っス。
値の精度は本物のセンサーに及ぶものではありませんが、とりあえずハードウェア側はこれで良さそうに思います。
次回以降、Node-REDでこの回路から値を拾って、LocalStackの何かしらのサービスにデータを溜め込んでみたいと思います。
「光センサーで IoT(中編)」」に続きます。
電気設計人.com様にはリンクを快くご承諾いただき、ここに感謝申し上げます。
私は他にサーボモーターを動かすのもやってみたいと思いました。
価格:37,912円 |
ゼロからよくわかる! ラズベリー・パイで電子工作入門ガイド Raspberry Pi 4 Model B対応[改訂2版] [ タトラエディット ] 価格:3,058円 |