見張れ! ラズパイ 〜実家の親を熱中症から救え:江端さんのDIY奮闘記 介護地獄に安らぎを与える“自力救済的IT”の作り方(3)(6/7 ページ)
IT介護(見守り)に対する考え方は、主に2つあります。「ITを使ってまで見守る必要はない」というものと、「あらゆる手段を使って見守る必要がある」というものです。今回は後者の考えを持つ方のために、「DIYの実家見守りシステムをラズパイで作る方法」をご紹介したいと思います。
オムロンのセンサーをラズパイで使う
先々月(2019年10月下旬)に、出張のついでに、秋葉原で開催された「Raspberry Pi Industry User Conference 2019」に、ちょっとだけ(1時間ほど)顔を出してきました。
その時、パネル展示されていた、オムロンのUSBセンサー(2JCIE-BU01)に興味を引かれました ―― なぜか? もう私、ラズパイにセンサーを搭載するために、はんだ付けの作業をすることや、ジャンパー線が外れていないかを心配することに、心底、腹を立てていたからです(著者のブログ1、ブログ2)。
ラズパイは1台や2台くらいなら『かわいい』『いとおしい』と思えますが、十数台以上を同時にメンテナンスするとなると、『本気で腹が立って』きます(先月、休載となったのは、この十数台のラズパイのカーネルパニックや原因不明のリブートの繰り返で、発狂中だったからです)。
―― ラズパイの産業応用を真面目に考えるなら、(1)防水・防じんの筐体、(2)小型で十分な電流量を担保できる電源、(3)GPIO接続ではなく、配線不要のUSB直結型のセンサー、をなんとかせにゃならんと思うのですが、「ラズパイの産業応用」と掲げる割に、この手の(地味だけど大切な)方式や製品が少ない(はっきりいって「ない」)です。
ですので、私が、オムロンの展示ブースに飾られていたこの製品(2JCIE-BU 環境センサー[USB型])にフラフラと引き付けられたのは、いわば当然と言えましょう。
1年前に死去した晩年の父は、クーラーのスイッチも入れられない状況であり(ガスストーブがついていたことすらあった)、夏場の熱中症には大変心配しておりました。
真冬に二階のドアが開けっ放しになって、2週間くらい気が付かなかったこともありました ―― 今となっては、どうしようもありませんが。
あの時、実家の室温や、電気がついているかどうか、部屋で物音がしているかどうかなどが分かれば、どれだけ助かったかしれません。そのような情報は、「カメラを使った見守り」なんぞより、よっぽど役に立ったと思います。
話を戻します。
Raspberry Pi Industry User Conference 2019のブース展示の会場で「私のラズパイ環境(4GPi用のカーネルイメージ(*))での動作確認に、ご協力頂けませんでしょうか」という不躾(ぶしつけ)な私の申し出に、オムロンの方は心よく応じて下さり、この製品(2JCIE-BU 環境センサ(USB型))を、私の自宅に郵送してくださいました。
(*)4gpi-buster-lite-20190820.img
で、今日(会社を休んで)、このセンサーをなんとかラズパイで使えるように、試みていました。
2JCIE-BUをLinux等で動かすために、Contributorの方がpythonのサンプルプログラムを開示されていますが、私はserialのライブラリのバージョン問題(serial, pyserial, python3-serial)に直面して、四苦八苦していました。ソースコードにもいろいろな変更を試みたのですが、結局動かすことができませんでした。
「もうダメかなぁ」と諦めかけていたころ、たまたま、このページを見つけました(アットマークテクノ様、助かりました。ありがとうございました)。
取りあえず、本日のところは、このセンサーからラズパイでデータ1行のみ取り出すところまでの、私の手順を開示します(次回以降、処理の自動化と、センサーデータをWebでグラフ化するところまで持っていきます)。
それでは、以下に、私が試した手順を説明します。
まず、"2JCIE-BU01"をUSBポートに差し込んで、ラズパイをリブートします。リブート後に、以下を行ってください。
$ lsusb Bus 001 Device 004: ID 0590:00d4 Omron Corp. ←これがあることを確認 Bus 001 Device 006: ID 1e0e:9001 Qualcomm / Option Bus 001 Device 005: ID 0424:7800 Standard Microsystems Corp. Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
環境センサーが正常に接続されているならば、「Omron Corp.」という情報のデバイスが表示され、これが環境センサーのデバイス情報になります。このデバイス情報から「USB ID」(上記例では[0590:00d4])が確認できます。
確認したUSB IDを「/sys/bus/usb-serial/drivers/ftdi_sio/new_id」に記入します。
$ sudo modprobe ftdi_sio $ sudo sh -c "echo 0590 00d4 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id"
このデバイスが、ttyUSB*のどれかに割り当たるのは分かっているのですが、その番号を知るためには、メッセージの内容を読み取る必要があります。
$ dmesg | grep ttyUSB [13.191062] usb 1-1.1.3: GSM modem (1-port) converter now attached to ttyUSB0 [13.194454] usb 1-1.1.3: GSM modem (1-port) converter now attached to ttyUSB1 [13.201466] usb 1-1.1.3: GSM modem (1-port) converter now attached to ttyUSB2 [13.203155] usb 1-1.1.3: GSM modem (1-port) converter now attached to ttyUSB3 [13.204087] usb 1-1.1.3: GSM modem (1-port) converter now attached to ttyUSB4 [154.579585] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB5
このように、私のラズパイでは、ttyUSB5に割り当たっています(これは環境によって変わります)
しかし、こんなこと毎回やっていたら面倒です。自動化する方法は、前述の参照ページに記載があるので、それを試してください(私の環境ではうまく動作させることができなかったので、現在別手段を検討中です)。
次に、こちらのサンプルプログラム(C言語)をダウンロードして、適当なディレクトリに展開してください。
$ tar xzvf 2jcie-bu01-usb.tar.gz $ cd 2jcie-bu01-usb-master $ ls data_output.c data_output.o Makefile sensor_data.h common.h data_output.h main.c sensor_data.c sensor_data.o sensor_data.h
とした後、
$ make
とすると、私のラズパイでは、
main.c: In function ‘main’: main.c:185:11: error: ‘exit_restore’ undeclared (first use in this function) return exit_restore;
(以下省略)
というエラーが出てきたので、main.cの一部を、
//goto exit_restore; restore_serial(fd, &tio); exit(-1);
のように書き直して(3箇所くらいあった)、無理やりビルドまで通して、実行ファイル"2jcie-bu01"を作りました。
実行結果は以下の通りです。
$ ./2jcie-bu01 /dev/ttyUSB5 0 Mode : Get Latest Data. Temperature, Relative humidity, Ambient light, Barometric pressure, Sound noise, eTVOC, eCO2, Discomfort index, Heat stroke 24.52,53.03,75,1012.602,67.11,108,1113,71.45,21.23 Program all success.
コマンドを入力する度に、値が微妙に変化しているので、正常に動作しているものと思われます。センサー値さえ取得できれば、後はなんとかなると思いますので、今回はここまでにしたいと思います。
それでは、本シリーズ第3回の内容をまとめます。
【1】最初に、要介護人(私の父)の介護区分の手続(面接)と、介護区分をゲットする為の準備や心構えについて説明しました。介護は「愛や努力」では足りず、行政やITシステムに立ち向かう「執念」が必要であることを強調しました。
【2】姉と嫁の例を用いて、IT介護(見守り)に対する2つの考え方「必要/不要」について論じました。立場や状況によって、当然にその考え方は変わってくることを示しました。また、現在「家族」や「血縁」を前提として成り立っている介護が、近い未来に成立しなくなることを、データとシミュレーションで示しました。
【3】認知症が理解されにくいのは、外部とコミュニケーションできず、その行動が分からない「ブラックボックス問題」であるとした上で、ブラックボックスの中について検討を行いました。その結果、認知症は、4種類の恐怖で構成されており、その恐怖の一つは「強制的に異世界に飛ばされて、戻る手段がない」というものであることを、具体例を挙げて説明しました。
【4】私たちは誰もが、この認知症から逃げる手段は「ない」とした上で、この「異世界への強制転送」に備えた覚悟と、現世界での人格改造 ―― 物事にこだわらず、他人を許し、ありのままを受け入れることのできる、器の広い人間になっておくことを提言しました。
【5】認知症を発生させる大きな原因が「年齢寿命が長過ぎる」という仮説を立てて、さらにその仮説に基づき、その原因が顕在化しなかった時期が「60年前」という推定値を出しました。
【6】ラズパイとその専用の通信デバイスからなる、DIYの見守りシステムの最小構成の作り方を説明し、さらに、オムロン社にご協力頂き、同社の「環境センサ 2JCIE-BU」を、私のラズパイでも、なんとか動かせるようにしました。
以上です。
最近、「異世界」を扱ったアニメが多いです。
完成度が高く(絵がキレイで、動きがシャープ)てストーリーが楽しく、なにより、これまで見たことのない新しいコンセプトに、心から感心しています。そして、登場するキャラクターも魅力的で、主人公がかっこいい。
しかし、半世紀を生きて、すっかり性格がひん曲がってしまったエンジニア(私)は、こうも思う訳です。
異世界でここまでの能力を発揮できる主人公であれば、わざわざ異世界に転生しなくとも、現実世界でも十分うまくやっていけただろうに
―― と。
『異世界に行けば、素晴しい自分になる』というコンテンツ(アニメ、ラノベ等)が流行るのかは ―― もちろん、そういうコンテンツが「楽しい」からです。
しかし、普通に考えれば、異世界に転生すれば、戦闘レベルも下がるし、現世界のスキルも使えません。現実世界で生きるより、もっと厳しい生活を強いられる、と考えるのが自然です。
そういうコンテンツが存在しないのは、当然「楽しくないから」であって、「考えたくないから」であって、現実の世界では「売れないから」です。
今回のコラムで、私は、いずれは誰も彼もが、「異世界への強制送還を強いられる」という、絶望的な未来 ――「楽しくない」「考えたくない」世界観を描きました。
そして、私も、「"脳"の稼働期間」と「"肉体"の稼働期間」の非同期が始まるまで、もう1世代分の時間に迫っています。正直怖いです。
認知症の人は、毎日を恐怖の中で生きている ―― 次の異世界強制移住の待機者リストに入っている私たちは、そのことに思いを馳せましょう。
そんな恐怖の中で生きている人たちに「少しだけ、優しく接すること」ができたら、いずれはその恐怖の中で生きることになる私たち自身にとっても、ささやかな希望になると思うのです。
Copyright © ITmedia, Inc. All Rights Reserved.