40代中年文系オッサンの IoTへの道(その4)~ ラズベリーパイで、1-Wireデバイスの温度センサーを使って、温度データをLINEへ通知する(Windows)
公開日:
:
最終更新日:2018/02/04
IoT, LINE, Raspberry Pi 1-Wireデバイス, 40代中年文系オッサン, IoT, LINE, Windows, ラズベリーパイ, 温度センサー, 温度データ, 道
※ 私は IoTやIT全般に関しては初心者です。記載内容、言葉の使い方がおかしいところが多々あると思いますので、ご指導・ご鞭撻いただければ嬉しいです。
IoTを理解するために、「実際に作って見るべ」と一念発起した40代中年の文系のオッサンです。
【これまでの履歴】
~ IoT電子工作体験キット(ソラコム+ラズベリーパイ)でIoTデビュー
~ Arduino + ソラコムLoRaWANで 温度データをクラウドに投げ可視化してみた
~ Arduino + ソラコムLoRaWANで温度データをアマゾンのクラウドAWSのS3へ送ってみた
今回は、ラズベリーパイ(以下ラズパイ)で温度データをLINEに通知するといったことをやってみました。
私はMac派なのですが、私の周囲には圧倒的にWindows派が多く、もしかしたらこれからラズパイを人に教えなければいけない事態になりそうなので、台湾製の安いWindowsパソコンを買い、Windowsでラズパイに挑戦することにしました。
リナックスのコマンドで操作しますし、Pythonでプログラミングするので、WindowsもMacもさほどの違いはないんですけどね。
本をじっくり読むよりも、とりあえず何かを作ってみることが上達への近道だと思い、豊富なサンプルのあるこの本に書いてあることをそのまま真似をしてみることにしました。
「ここまで作れる! Raspberry Pi 実践サンプル集」
この中の第3章2「水温センサーを使って水温を測定」をやりました。
詳しいことは、この本を買って、その通りやればいいのですが、どうやら、この本は初心者向けではないようです。
なので、今回は、自分の備忘録も兼ねて、初心者の私がハマったところを綴ります。
この本の読者以外には意味不明な内容かもしれませんが、ラズパイ初心者がどんなところが分からないのか、どんなところでハマるのか、ご参考になるかもしれませんよ。
ラズパイとセンサーを接続
水温センサーではなく、普通の温度センサー(DS18B20)にします。
P75に
センサー(DS18B20)のVDDをGPIOピンの1番
GNDを6番、DQを7番に配線
と、知ってて当たり前のように書いてます。
ここで、つまづきました。
中級者には当たり前のことでしょうけど、私には分かりません。
VDD、GND、DQ、GPIO ???
何のことか、さっぱり分かりません。
センサーやラズパイ本体を見てもどこにも書かれてません。
センサーの取説をググって探しましょう。
http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
ここの1ページに、VDD、GND、DQの場所が、書いてます。
よく見ましょう。
BOTTOM VIEWですよ。
つまり、
私は、BOTTOM VIEWに気づかず、最初逆に配線してしまい、電源をつなげたらすぐに焦げ付いた匂いがして、ヤバそうなことになりました。
ラズパイのGPIOピンは、ラズパイの本体にも取り扱い説明書にも書いてないので、ネットで見つけたこの画像をみて接続しました。
(本当にあってるのだろうか?自己責任でお願いします)
ソフトウェアの設定
ラズパイにセンサーを認識させるための
ソフトウェアの設定(P76)で、
「/boot/config.txt の編集」とありますが、
ここでも悩みました。
これは、ラズパイのSDカードの中にあります。
SDカードをラズパイから取り出して、PCに挿して編集しましょう
(ラズパイに挿したまま編集できるかもしれませんが、私は知りません)
また、カーネルモジュールの設定で、
$ sudo modprobe w1-gpio
$ sudo mod probe w1-therm
とありますが、
これもどうしたら良いか分からず、悩みました。
これは、自分のパソコンからラズパイへ接続(SHH)してから打つコマンドです。
Windowsでは、TeraTermを使用するといいでしょう。
https://osdn.jp/projects/ttssh2/
あと、自分のパソコンからラズパイをSSHなるもので接続するには、Bonjourというものも必要です。
Windows用のBonjourはあるにはあるそうですが、とても難しそうなので、iTunesをダウンロードすることをお勧めします。
https://www.apple.com/jp/itunes/download/
なぜかというと、iTunesをインストールしたら、同時にBonjourもインストールされるからです。
TeraTermを接続し、
ユーザ名:pi
パスフレーズ:raspberry
コマンド画面になるので、
$ sudo modprobe w1-gpio
$ sudo mod probe w1-therm
と入力。
ラズパイの起動時にそれらを認識させるために
/etc/modules に次を追記。
w1-gpio
w1-therm
と、
ここでハマりました。
そもそも/etc/modulesってどこ?
どうやって編集するの?
どうやら vi というコマンドで viというエディタが立ち上がるらしいですが、
ネットを見ると、
Raspbianに初期でインストールされているviがとにかく使いにくい、
とりあえずvimをインストールしましょう!
と、ありましたので、
vim というエディタをインストールすることにしました。
$ sudo apt-get update
$ sudo apt-get install vim
参考サイト
http://qiita.com/moriyaman/items/44cda5318ad8b5f7a3ae
vimがインストールできたら、
$ sudo vim /etc/modules
で、編集画面にします。
ここも最初は戸惑ったのですが、
i (インサートモード)
で編集できます。
編集が終わったら、
ESCキー(インサートモード終了)
コマンドに戻るには、
:wq (ファイルを保存して終了)
で、編集終了になります。
$ sudo rebootで、
再起動すると、モジュールが読み込まれていましたが、
デバイスの一覧を見る(P77)と、何も反応されていませんでした。
ここでもハマりました。
半日格闘し、あきらめかけたところ、
妻の「ブレッドボードがおかしいかも。センサーを他の場所に差し替えてみたら」との一言で解決。
半日の格闘は一体なんだったんだろう。
まあ、そうやって四苦八苦して身につくんでしょうね。
LINE連携
LINEの連携は、LINE Notifyでトークンを発行して、
PythonでLINEのAPIを利用するコードを書くだけのことですが、
P82の 「pycURLを使って送信」
ってところで、ハマりました。
LINEのAPIを使うには、pycURLをインストールする必要があります。
(他にも方法はあるらしいですけど、ここではpycURLを使います)
$ sudo pip install pycurl
しかし、インストールできません。
エラーが出て、ハマりました。
ググって解決。
その模様は、こちらのリンク
http://tatsuya1970.com/?p=10147
本書のP83-85のPythonのコードをまる写しし、
定期的に温度データを送るように自分なりに改良。
なお、LINEに日本語を表示させるには、Pythonのコードの最初に、
# coding: utf-8
って入れたらいいですよ。
で、完成!
こんな感じです。
私のような初心者は1つ1つ進むたびに中級者には当たり前のことがわからず、大変でしたが、おかげで、いろいろなことを学べました。
これで、センサーからの情報を、何かの条件で通知させるような初歩的なIoTが実践できそうです。
例えば、
温度が何度以上になったら通知するとか。
獲物が罠にかかったら通知するとか。
自分の駐車場に他の車が駐車したら通知するとか。
色々面白いことが考えられそうで、自分の可能性が広がりました。
とはいえ
コードの意味、配線の意味を理解してないので、
プロから見たら、けしからんかもしれません。
でも、とりあえず何か作ってみる。
本に書いてあることをそのままやってみる。
そういった、やりながら学ぶスタイルでやっていこうと思います。
さて、次は何を作ろうかなあ。
ではでは。
ad
- Tweet
-
この記事が気に入りましたら、ぜひTwitter、facebookボタンをお願いします。
ブログを書くモチベーションになります。よろしくお願いします。
ビットコイン投げ銭ウィジェット
関連記事
-
IoTのイベント『ようこそIoTの世界へ』レポート
最近、超多忙で、ブログの更新が遅れ気味のTatsuyaです。 マジで、ここ3ヶ月は、凄いペー
-
LINE Messaging API の設定方法
最近、LINEのMessaging APIに凝ってるので、 ここに備忘録として残します。
-
【Raspberry Pi 備忘録】ラズベリーパイのSSH接続時のエラー「POSSIBLE DNS SPOOFING DETECTED! 」「REMOTE HOST IDENTIFICATION HAS CHANGED! 」
Mac のターミナルからラズベリーパイにSSH接続をしようとすると、 $ ssh pi@ra
-
LINEボット「有名人GO」
LINEボット 「有名人GO」 某N社のポ●モンGOにインスパイアされて作りました。
-
LINEのスマートスピーカーWAVE(先行体験版)が我が家にやって来た。
7月に予約したLINEのスマートスピーカー「WAVE」の先行体験版が、8月下旬に届きました。