目的
「水温や室温をWEBから見られるようにする」をラズパイとDS18B20とBLYNKで実現できました。「わーい たのしー!」
グラフをスワイプするとCSVファイルを登録Emailアドレスに送ってくれる、オシャレさこんなものが初めてでも作れるなんて 儂感激!ラズパイってのはちっこい安いパソコンで今なら5ドルで買える代物です、私が使ったものはRaspberry Pi Model2 B
という2015年に買って少し遊んで、イマイチ使いみちが思いつかなくて「しまっちゃうよ~」していたものです。
DS18bB20てのはデジタル温度センサで、アマゾンで買うとなぜか電子パーツ屋で素子単体を買うより防水加工したプローブの方が安いという代物でマイコンポート1つに何個でもつなげられて、各センサに割り振られているIDで温度を教えてくれるという便利なw1対応の温度センサーです。
ポチして10日で届きました。送料無料の275円(一個)でした。これで5ドル ラズパイと組み合わせれば
1000円ちょっとでセンサ2個付きのWEB温度計が出来ることにSDカードも入れるとほぼ2千円ってところかも
BLYNKってのはWEBのサービスで、パイソンとかPHPとかルビーとか難しい(私にとっては)言語を使わなくてもGUIだけでスマホとラズパイを繋いでデータを取得して、グラフとか簡単に書いてくれる便利なサービスです。
アンドロイドとiPhonのアプリがあります。
このサービス画面程度の実装ならタダの範囲で遊べます。ボタンやグラフを沢山増やすには課金が必要ですが、最初にもらえるエネルギー2000(仮想通貨的なもの)のやりくりだけで楽勝でこの画面は作れますし、ボタンやグラフを設置してもデリートすれば消費エネルギーは財布に同額で帰りますので、失敗を恐れずガンガンエネルギー使えます。
さて ウーパールーパーの夏場水温上昇対策から派生したこのプロジェクトですが
なんだかんだで「ラズパイ 温度 ツイッター グラフ DS18bB20」などで検索して、実装に向けて漕ぎ出すも
あらゆるアプローチの方法が豊富にあって、しかも年代や投稿者の環境やスキルレベルが違うのでどのサイトをアテにして
プロジェクトを進めていくかってのが、最大の問題だったりもします。
手始めはセンサのデータをある書式でラズパイでツイッターでつぶやかせて、その文字列を元にグーグルチャートへ投げてとかなんて、今思うとややこしい手順を思い込んでいたのですが、やりだしてみるとまあ実際面倒くさいこと。
パイソンやらPHPとかやらグーグルチャートやら・・・やらやらを、ちょっと味見しては撤退を繰り返しているうちに
頭の中が「ひっちゃかめっちゃか」にこんがり出して
最終的に検索しては美味しそうかもと実践しつつ集めに集めたブックマークがWEB温度計フォルダにいっぱいになってきた頃
「DS18B20 ツイッター PYTHON ラスパイ 」
というワードで理想的なものがヒット
この時の理想的なっていうのは、ただ単に「私が楽にできる」に尽きます。そんななかドンピシャだったのが
ってのが相性ぴったりで記事に沿って進めていくのに妙な引っかかりがなく
(よくありますよね自作参考用に見つけたブログに沿って進めたはいいが、思わぬバージョン違いやディレクトリ構造違い言語違い・・・etc等で途中で頓挫すること、私は日常茶飯事です)おあかげで、なんとかここまで漕ぎ着けました。毎夜寝る前にだらだらとWEB温度計プロジェクト進めて、ほぼ1週間目の漂着でした。さっそく家族にお披露目して「えっへん」したのですが「へー」の一言で終わりました。
まあ普通こんなこと現代ならサッサと誰でも超簡単にできると思いますよね。
でも製品として目的のものが無くて自作するとなると「自前IOTは結構たいへんでした」
でもパーミッション設定と確実なパス指定とIP固定とBLYNKさえあれば見やすいインターネット温度計自作は簡単だと思います。さらに開発中はリモートアクセスができるようにしておくとより簡単です。自分的には一番楽だったので
ラズパイ 温度計 簡単 自作 WEB インターネット スマホ タブレットと言った言葉を並べておきます
以下は私のハマったこと私のココロメモから抜粋ですので、よほど酔狂な方でない限り、読む必要はないと思います。
ココまで道のりで、わたしにとって大事なことは
ひと言で言うと「苦労の殆どはリナックスちほーのルールに慣れるのが大変」
2言目はラズパイのip固定はLAN。WIFIともに設定しっかりと
3言目はBLYNKは楽
以上 パソコンに向かって「この2個のセンサから来る値をWEBのこのソフトで見られるようにして、記録も付けて、グラフも書いて、この温度になったら緊急のメールを私にちょうだい」と喋るか書くだけで実装が正立する未来はまだ遠い。
オマケ このWEB温度計システムは、ほぼ3W程度消費し続けることとなる(多いな)
以下 酔狂なあなたへ私のこころのボヤキに付き合ってもらいます
まず最初にやったこと
SDカードをフォーマットして、SDカードへRasbianのイメージを Win32 Disk Imagerで作る。
家のテレビにHDMI接続で表示させる(2年前はこれすらCONFIGファイルを事前にいじらないと行けなかった。)
WIFIドングルや無線マウスドングルも挿すだけで、あっさり認識このあたりも2年前に比べ超楽)
WIFIの接続設定もGUIで簡単に出来た。(ここも昔は・・・以下同文)
ちなみにオートログインがデフォなのでIDとかPASSとか入れなくても立ち上がる。(昔は・・・ しつこい)
ブログを参考に温度センサ用のソフトを起動するため、面倒くさいなあと思いつつテキストエディタでコンフ
ィグファイルをいじろうとしているときに。なにげに好奇心からMenu Preferences 内Raspberry Pi Configretionを開き、Interfaceタブを開くと
1-WireもSSHもCameraもあったので、軒並みEnableにする。
これで全てがまともに動けば2年前に比べ格段に便利になったなあと思う。ありがたやありがたや
4.7Kの抵抗を漁ってくる。コマンドで格闘するより、やっぱ優しいGUIツール派すよ自分は
ターミナル画面だけでカッチョ良くには歳を取りすぎてますし。
スクリーンショットは仕方がなくターミナルで入れたけど「KSnapshot」のインストール
いれたはいいけど画像ファイルの受け渡しがやっぱ面倒くさいのでIpadで画面を直接スクリーンショット
私の環境ではコレが一番早い(笑)
でコンフィグファイルを見るとW1は確かにオンだがポートの指定やプルアップの指定はされていないので
sudo nano /boot/config.txtで結局編集はじめるもターミナルでの編集は慣れなくて苦手、途中でいやになり、ただのGUIテキストエディタで編集と思ったがGUI画面アイコンダブルクリックで立ち上げると、権限がつかずシステムファイルは編集できないのでいったんGUI画面上で管理者権限でアプリを使うためにsudo apt-get install gksuでgksuをインストールgkdsudo leafpadとかでわざわざターミナルでコマンド打ってGUI版テキストエディタを開く。
わたしレベル的はこっちのほうがやりやすい。
試しに書き足したgpiopin=4,pullup=yがなくても行けるか試してみる価値はあるかも(より簡単になっているかもしれんので)これは未だ試していないので基本CONFIG ファイルにw1につかうgpioピンの設定は書いたほうがいいかも
プローブ2本をいきなり寄生モードとかいう、3本線の必要な配線が2本線でやれるモードで試すもなんか
w1_therm が2つ現れないので通常の3本並列接続でとりあえず入れて試した結果 このディレクトリにプローブのファイルが作られていることが解った。接続は3.3Vに赤2本 3.3とGPIO4の間に4.7K GPIO4に黄色2本 GNDに黒2本の並列接続で問題なくセンサ2個のおのおのの値が取れた
コマンドラインで確認するのはカッタルイ(目が辛いまじで)ので、ファインダーのような物を使ってGUIで
テキストファイルで開いてみる。見える見える
で2日め終わり
アパッチ入れPHP入れる、ツイッターアカウント アプリケーションコード取得
めんどー
でテレビ画面見てると目がつかれるので、リモート接続できるようにする。
IPアドレスの固定が大事なようなので、ググって真似する
ちなみにウインドウズのコマンドだとipconfigでPC自身のIPなどが見えるがリナックスちほーでは ifconfig と打つ
なんだかんだで
センサ2個の値が読めるようになったが
ディレクトリの構造が参考サイトとは変わっていた。一段深くなっていた。のでスクリプト内のパスを変える必要あり。
センサ値の場所はここだった(自分の場合 201705月時)目的のファイルのある住所(path)指定とファイル名の正しさ(大文字、小文字、及び拡張子も含め)は当たり前だが超大事なので、可能な限りパスもファイル名もコピペで済ませる。
それから、ターミナル内でのペーストはCTRL ALT VだCTRL Vではない。コピーも同じく
GUI上のLeaf padでは通常のCTRL Cなどで行ける、ルール混在はなあw
rapsberryのIPを固定する
ルーターに固定したIPを登録(大抵 192.168.0.1か192.168.11.1)とかになるがifconfigで確認できる。
SUDO権限ユーザー追加してSSH接続しデフォルトユーザーの名義を変える
viの使い方を覚えるのが先か めんどー (このあたり引っかかるたびに検索で乗り越える、ラズパイ SSH接続 ip固定 とか)
コントロール c オルタ v
めんど
なんか知らんがTera TermとかでラズパイとSSH接続できるようになっても
素直にインターネットからラズパイにsudo apt-get install xrdp できないので物理接続LANケーブル挿したら
インストールできた。その後リモートデスクトップが出来るようになったときにケーブル抜いたら
WIFIでも接続できている
ラズパイ WIFIでSSH接続は出来るがインターネットへは接続できないで検索
sudo dhclient wlan0 を実行 で解決
$ sudo easy_install tweepyでパイソンのツールを入れる
絶賛迷走中
DS18B20 ツイッター PYTHON ラスパイ 検索ワード変えたら かなり理想的なものがヒット
各シェルスクリプトのパーミションの設定を chmod 700で設定しておく。その後調べて755にする
動くからまあいいかだが、乗っ取られたりせんのだろうか 「心配スね-」
一度設定すれば再起動後でもOK リナックスちほーではパーミション超大事
BlinkをGitHubから落とす、その際IDの登録が必要だったのでIDを作る。
Blynkはあっさり動く ラズパイ側でのシェルスクリプトもわりと解りやすいので助かる
ラズパイのWIFI経由だけだと外部からのデータの取得が出来ない。LANケーブルなら出来る
とった対策
/etc/dhcpcd.confを編集 ここが192.168.1.1になっていたのを家のルーター設定と同じに直したらOKだった、wpa_supplicant は弄る必要がなかった。
/etc/rc.localに起動時に立ち上げたいソフト群のスクリプトの場所を書くが動かない
現状リモート接続、ターミナル画面でBlynk手動起動している情けなさ
なんとか定期的なラズパイの自動再起動とセンサアプリ群スクリプト自動起動に持ち込みたいところだが、
とりあえずリモートで起動できるので
モチベが・・・「よよ よよよよ」
今ココ 201705300025分くらい
ここまで読んでくれてありがとうございます。
2020 環境再構築
Raspberry Piを起動してxrdpをインストールして
固定アドレスにリモートデスクトップアクセス可能になる