2年ぶりのラズパイ...4日目

ラズパイ+センサー+クラウドは、前回までで終了しました。

1週間ほど経ちましたが、問題なく稼働中です。グラフは横軸1メモリ/日です。夕方気温のピークがきて朝方に向かって下がってます。この一週間は日に日に気温のピークが上がってましたが、昨日夕方から急に気温も湿度も下がり過ごし易い環境です。

ラズパイは商用運用中なので突発停電対策はしておかないと、また痛い目にあいます。
モバイルバッテリーで充電と放電を無瞬断でやってくれる優れものがあるそうなので、ただいま探索中です。

先週は、 秋月にいっていろいろ買いこんできました。
 2年前から寝かしていたESP-WROOM-2、Wi-Fiモジュールです。マイコンとWi-Fiモジュール、アンテナが付いて650円です。技適も取っているので、電波法違反にもなりません。
 ラズパイからちょっと離れて、今日からこれにセンサーをつけて、クラウドと連携させたいと思います。
ハード的には、USB-シリアル変換経由でこいつにアクセスします。ソフトウェアはデフォルトでATコマンドに反応するマイコンが入っています。この部分にmicropythonを送り込むとライトなpythonが動くようなので、そこまで行きたいと思います。


2年ぶりのラズパイ...3日目

GW中に終らせようと思っていましたが、そうはいかず。
週末を中心に更新します。

今日は、AmbientというIoT専用のクラウドサーバーに、ラズパイからセンサーデーターをアップすることについて頑張ります。

以下がambientのトップページ。無料で使えます。
https://ambidata.io

クラウドとのやり取りをするpython libをインストール
https://github.com/AmbientDataInc/ambient-python-lib

まずは、ambientのアカウントを作成します。
メールにWebでの認証リンクが送付されクリックするとアカウント作成完了です。
次は、チャンネルの作成。IoT機器との入出力口になるらしい。4桁のIDです。
同時に、送信用と受信用の鍵が作成されます。

先ほどのチャンネルIDと送信用鍵の組み合わせで、ポートの認証を行っているようだ。
画面はこんな感じ。

Google共通言語のpythonも勉強しつつ、サンプルコードを修正してデーターをクラウドに送信することが出来ました。

これまでperlは結構戯れていたので、pythonはお作法がわかれば取り組み易いです。
コード表現の自由度を排除して、誰が書いても同じ動作をするということが狙いだそうで。文末に「;」を打たないとか、インデントは4文字等々慣れるととっつきやすいです。

ラズパイに接続しているBME230センサーから、温度、湿度、気圧を読み出して、Ambientに送信します。cronで1分毎にデータを送信。
クラウド側で送信データーにタイムスタンプを打って、保存してくれます。
データーは、1度に8個まで送れます。
 グラフの作成は、WWW上でパラメーター等を設定すれば勝手に表示されます。データがアップデートされるとグラフも自動更新。

ということで、センサーデータをラズパイで読み取り、クラウドに送信するまでは出来るようになりました。

ラズパイのバックアップを取って、しばらくはデータの送信を続けてみます。

今後はラズパイzeroとか違うセンサーの接続、アップしたデーターを読み取って加工するなどを 考えてみます。

2年ぶりのラズパイ...2日目

クラウドはAWS1年間無料なので、がんばってみようかと思いましたが、AmbientというIoT専用のクラウドを個人で運用されている人が居ます。
簡単そうなので、そちらで試してみます。

久しぶりなので写真も。
●ラズパイ本体(確か2+です)

●BME230センサー(小さい、緑色の基盤の真ん中銀色の部分がセンサーです)

●データーシート(pdfファイルへのリンク)


●ラズパイとセンサーの接続状況(ラズパイ側1本pin間違っている状態)



その前に今回はラズパイに温度湿度センサー接続し、読み取れるように設定です。


★ラズパイGPIO番号と端子位置
https://tool-lab.com/make/raspberrypi-startup-22/

★ラズパイでSPI通信の準備
http://elelab-net.com/hobbytec/?p=533

★ラズパイI2CでBME280と接続
http://karaage.hatenadiary.jp/entry/2016/05/11/073000

★BME230をPythonで読み出す
https://qiita.com/masato/items/027e5c824ae75ab417c1
https://www.erde.co.jp/blog/?p=2927
http://marm.cocolog-nifty.com/jokanaan/2016/12/ae-bme28012-ed4.html
http://karaage.hatenadiary.jp/entry/2017/05/25/073000

-----------
こんな感じでI2C経由でBME280を認識できました。なかなか認識できなかったのですが、本体側のGPIOピンの接続が1本ずれてました。

【反省】「適切に接続したつもり」という思い込みは駄目。ピンヘッダー真上から見ると一目瞭然。ハードウェアは何度も目線を変えて目視確認が重要。

pi@raspberrypi:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
pi@raspberrypi:~ $

スイッチサイセンスさんがpythonスクリプトを公開しています。
$ git clone https://github.com/SWITCHSCIENCE/BME280.git
$ cd BME280/Python27/
$ python bme280_sample.py 
 
これではsmbus2というモジュールが無いと言うことでインストール。
★smbus2のインストール

$wget https://github.com/kplindegaard/smbus2/archive/master.zip
$unzip master.zip.1
$cd smbus2-master
$sudo pip install smbus2


これでエラーはなくなりました。
$pi@raspberrypi:~/BME280/Python27 $ python bme280_sample.py
$temp : 23.94  ℃
$pressure : 1006.75 hPa
$hum :  46.24 %
$pi@raspberrypi:~/BME280/Python27 $ 

ちゃんと温度に湿度、気圧の値をセンサーから取得することが出来ました。
 
その後、1分毎に計測してファイルに書き出し、昔ながらの(今は使わないらしい)
gnuplotでグラフにしてみました。
センサーはちゃんと動いて、ラズパイで読みと取れているようです。
 

2年ぶりのラズパイ...1日目

2年ほどお休みだったラズパイを起こすために、OSを入れ直しです。

NOOBSのバージョンも2.8.1に上がってます。ファイルの大きさは1.7GB。でかい。
ダウンロードに20分ほどかかりました。
当時は、バージョン1.4だったような。
この間、ラズパイ3,3+,zero等ハードもいろいろと出たので、それに対応していったのでしょう。
小さいzeroは、ちょっと気になります。

SDカードへの書き込みや初期設定等はこちらを参考にしました。
http://deviceplus.jp/hobby/raspberrypi_entry_003/
https://qiita.com/kanaisawa/items/4723f72a28084263ae1f
https://qiita.com/HeRo/items/c1c30d7267faeb304538

★パッケージの更新とOSの更新
$ sudo apt-get update       # パッケージリストの更新 
$ sudo apt-get upgrade      # パッケージの更新
$ sudo apt-get dist-upgrade # OSのアップグレード
 
★ファームの更新
$ sudo apt-get install rpi-update # インストール
$ sudo rpi-update                 # 更新実行
$ sudo reboot                     # 反映のための再起動 

★日本語フォントとターミナル
$sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
$sudo apt-get install uim uim-anthy 
$sudo apt-get install jfbterm
 
 
まずはこの辺までで。
前回の反省を生かしてSDカードはこの時点でバックアップしておきます。
8GBのイメージファイルwindows側にできます。 日付とバージョンをファイル名につけておけば、
どの時点でのバックアップかはある程度推測できるでしょう。

http://www.moonmile.net/blog/archives/6878 

ラズパイ日記...再び

入間の単身赴任も終了し、週末入間-自宅車で往復の時間もなくなったので、時間を取れるようになりました。これを機にしばらくお休みしていたラズパイ日記を再開します。

まずは、
1 2年ほど寝かしておいたラズパイを「そろそろ起きなさい」と動くようにする。
2 温度センサーを記録できるようにする。
3 流行のクラウドとの連携を目指す
  -AmazonのIoTクラウドに温度データを記録できるようにする
とりあえずは、この辺まで進みたいところ。クラウド上で温度データがプロットされているのを確認できればまずOKということで。

自宅の机周りを片付けてラズパイエリアを作ろうと妄想していたのですが、この辺は後でということにします。

2018のGWでどこまで進むか。

ラズパイ日記...7日目

調子よかったraspbianでしたが、連続運用20日で記録が止まり、
その後何度再起動しても1週間と持ちません。

syslogにもカードデバイスがどうのこうのとあったので、SDカードの問題と判断し新しいの購入しました。



左が秋月で本体とセットで買った無名ブランド。
右がclass10の新しいもの。

さてその違いは、現れるのか。

それとも、file systemが壊れているのか。吸い出して、書き込んでみましょう。

1ヶ月ほど寝込んでましたが、ちょっと元気になってきたのでラズパイ日記も再開です。

ラズパイ日記...6日目

久そぶりに更新です。

夏休みの宿題後調子よく動いていたのですが、止まりだしたら調子悪いです。
muninで機器の各種ステータスも記録してます。


uptimeが連続20日でパタッと不調です。
特にkernel panicで落ちるわけではないのですが、各種プロセスが動かない状況です。
logを調べてみるとなにやらSDカードのアクセスができなくなってるようです。はずれなのか。何度か抜き差しして再起動。
しばらく様子見です。
このように気温の記録も飛び飛びです。



 新しいセンサーも購入。この小ささで、温度と湿度、気圧まで同時に計れる優れものです。接続はI2C,SPIいずれもOKだそうです。




比較するものがありませんが、基盤は15mm×10mmの大きさです。

師匠お勧めのWi-Fiモジュール技格済み。合法的にWi-Fiオンしてもいいそうです。マイコンとWi-FiモジュールがSoCになっており、なんとArduinoのIDEで中身はプログラムできます。変換基盤も付いてこの値段。こちらもそのうちに。

ラズパイ日記...esp32(arduino)+mpu6050

# esp32で6軸センサー読み出し esp32で6軸センサーを読み出し、値をグラフ表示して動作を確認します。 ## 準備 ハード的な接続は、センサーが3.3V駆動できるので、3.3VとGNDの2線で電源供給します。I2C用にSDAとSCLのデータ線が必要ですが、esp...