こんばんわ。最近寒くなってきましたね。
この記事はWCDI Advent Calendar 22日目の物となっております。
今日は簡単なIoTの話をしようと思います。
まえがき
IoTは目的ではなく手段です。
やりたい事がはっきりしていないとIoTは使えません。
まずはやりたい事を探しましょう。
部屋のパーツ入れの中に温度センサー(DS18B20+)が有ったので、それを使ったものをつくります。
また今回はどこの御家庭にもあるラズベリーパイというものを使用します。
なお、本当はもっとちゃんとした物を作りながら記事にしようと思ってたんですけど、FETが足りなかったのでもっと簡単な物にします。あまりIoTっぽくないのですがご了承ください。
本題
まずは目的を決めます。
部屋の温度を図ってそれを表示する物を作ろうとおもいます。
今回使用するものはまえがきでも書きましたが、細かく記載します
- デジタル温度センサ(1wire)DS18B20+
- ラズベリーパイ
- ブレッドボード
- 抵抗10KΩ(茶黒赤金)
あとは導線くらいでしょうか
とりあえず作ってみる
先程の4つ(5つ)が揃えば回路の作成に移れます。
今回は簡単な回路なので案ずる事は無いでしょう
画質も悪いしどうつないでるかもわからないですね・・・。
気が向いたらFritzing使って作り直します。
次にラズベリーパイで温度センサーから温度の情報を取得できるように設定します。
今回使う温度センサーは1wire
という規格でデータのやり取りを行います。
ラズベリーパイの初期設定では1wireが無効になっていますので有効にしてあげる必要があります。
一番簡単な方法はraspi-config
を使う事です。
$ sudo raspi-config
↑を実行すると画面が変わると思います。
5 Interfacing Options
を選択してP7 1-Wire
を選びましょう。
すると、Would you like the one-wire interface to be enabled?
と聞かれますので、Yes
(はい
)を選択して有効にしましょう。
そうしたらraspi-config
を終了して再起動をしましょう。
再起動が終了したらログインして、
$ lsmod | grep w1
と実行してみましょう。
ちゃんと認識されていればOKです。
とりあえず温度見てみる
W1で接続されたセンサーは/sys/bus/w1/devices/
の中で見ることができます。
pi@test:~ $ cd /sys/bus/w1/devices/
pi@test:/sys/bus/w1/devices $ ls
28-0000086e7f7c w1_bus_master1
上の28-0000086e7f7c
が温度センサーです。cd
で中に入ってls
で見てみましょう。
pi@test:/sys/bus/w1/devices $ cd 28-0000086e7f7c
pi@test:/sys/bus/w1/devices/28-0000086e7f7c $ ls
driver hwmon id name power subsystem uevent w1_slave
一番右側にあるw1_slave
というファイルの中にセンサーのデータが入っています。
今回は温度センサーが刺さっているので温度の情報が入っているはずです。cat
で中身を見てみましょう。
pi@tester:/sys/bus/w1/devices/28-0000086e7f7c $ cat w1_slave
ac 01 4b 46 7f ff 04 10 86 : crc=86 YES
ac 01 4b 46 7f ff 04 10 86 t=26750
上の出力結果の中にt=26750
と書いてある場所が有ると思います。
これがいまの温度です。出力結果は1000倍されているので、今の温度は26.7度
だという事がわかりました!
あとがき
お疲れ様でした。
実はPythonを使って温度を取得してアレヤコレヤする項目を作るつもりだったんですけど、それだけで記事がかけそうなくらい膨らんでしまったので別記事として近々投稿します。
戯言
最近はIoTという言葉を最近良く聞くようになりましたが、ピンと来ていない人も多いと思います。
実際IoTの技術が使われている物を町中で見かけるかと言われたら探さないと見つかりません。
IoTは日陰の技術です。
そんな技術を自ら進んで学習したいと思う人はそう多くないでしょう。
ですが、面白いと思える要素を知ってもらえたらその考えも変わり、みんなが楽しく学習し
結果的にIoTが発展し、日の目を浴びる日も来ると思っています。なので・・・
みんなIoTやろうね!
コメントを残す