RasPiで電子ペーパー(e-ink)を使う

かなり久々の更新となったが、電子ペーパーを使ってみたのでメモ。

使用した電子ペーパーは、waveshare 2.7インチ SKU:13354 を秋葉原の千石電商で購入。

ネットで買っても良かったのだろうが、ケーブルが入ってないと心配だったので、店頭でSPIケーブルが入ったものを確認して購入した。

結論からすると、上記自分が持っているRaspiでは、GPIOヘッダーに対応していたので、SPIケーブルは不要。心配無用だった。

まあ、そのうち、Pi Picoなどで試すこともあるかもしれないし、ともかくSPIケーブルがついているのは助かる。

なぜ電子ペーパーか?

別にLCDで良いと思うのだが、1時間に1回しか更新しないようなデータを液晶で表示し続けるのもなんだかなーと思い、今回はE-inkにした。

電子ペーパーは、電源OFFでも表示が残るというのが良い(説明書によると長期表示のままは、おすすめしないらしい)し、なんといっても表示がうるさくないのが良いと思う。

e-inkは昔から、電子ペーパーとかなかなか名称が定まらないし、Kindleとかも普及してだいぶ経つが、大衆化という観点では、今一歩なところがある。(あくまでも個人の感想です)

最近の動向として関心を持っているのは、家電量販店のプライスタグだったり、スーパーなどの価格表示などで電子ペーパーを、見かけるようになってきた。

IoTで重要なのは、それが本当に一個100円とか、1000円とか大幅に価格が下がる一方で、価格の取り付けや更新などにかかる手間だったり、多少コストがかかってもそこでいままで使っていた人の労力を他に回したいなどという状況がでてくることで、ようやく実世界で大衆化するようになる。

例えば、傘に雨が降るときに色がつく機能がついてたらちょっと便利だと思うが、傘の値段に対して、その機能をつけることによるコストアップや充電の手間、重量アップなどから、それを商品にしたり、自分で作るのはまだ少しハードルがありそうだ。(似たようなコンセプトのものはたぶん探せばあるだろう)

Bluetooth v5.4

今回の仕組みでは関係ないが、現在、標準化が進められているこのv5.4では、ESL(電子棚札)に関するユースケースを想定した実装が行われている。

おそらく、この規格が実装されると、大手の量販店やスーパーだけでなく、もう少し小規模なお店でも、この手の看板や、掲示がデジタル化できるようになると思う。

それに付随して、個人でもその恩恵をうけるような製品が登場すると思う。

例えば、通常の目覚まし時計に、こんな感じで天気情報がのるかもしれない。

すでに天気情報を表示されるような置き時計はあるが、精度や設定に関しては、いまひとつなのかと思う。

今回の実装要素

モジュールのインストール
https://raspi-school.com/e-ink/

このサイトを参考に、「SPIインターフェースの有効化」「BCM2835ライブラリーのインストール」を実行。

続いて、天気予報を表示させたかったので

https://kotamorishita.com/rpi-epaper-weather-station/
を参考に、openweathermapへのAPI登録と、記述コードを参考にした。

めんどくさかったところとしては、取得した天気をフォントのまま表示させる方法がよくわからなかったのでICONコードからそれにあわせたBMP画像を表示させるようにする事にしたので、BMP画像を用意した所。

オフラインデータのデータ更新

コロナから戻って、再びリアルショップでの、ユーザー体験というのは、メリットもあればデメリットもある。一方で、ネットでの買い物にも、メリットとデメリットがあり、ネットはよりリアルに、リアルはもっとデジタルが進むのが必然だと思う。

そんな中、電子ペーパーというのは、それなりに大きなポテンシャルを持っていると思う。例えば駅の広告。大画面の液晶ビジョンになっているものもあるが、昔ながらの張り紙のパターンも多数存在する。

なぜ、液晶にかえないのかといえば、下手にリッチなコンテンツを流すより、ポスターを張っているほうが費用対効果があるのだろう。選挙ポスターなんかもいまだに紙だしね。

まあ、みんなが頻繁に見ているものは、今やスマホなんだから、そこらの広告にちょとだしたからといって、なかなか集客できるものではないのは、察しがつく。

じゃあ、駅前の広告には価値がないかというとそうでもない。

それなりに人通りの多い場所となれば、それなりに多くの人が目にするし、一瞬とはいえ、目に入ってきたり、情報として受け取る事もある。

直接商品を購入するだけでなくブランド認知などとして出されるような広告も多数存在する。

となると、静的なコンテンツをそこに掲げる事に価値はある。それが動画であるか、静止画であるか、更新頻度がどの程度が適切かによっては、今後新しい表示システムに切り替わるかもしれないという余地がそこにはあると思う。

広告というのはひとつ注目分野だが、個人としては、やはりこんなふうに、すごく地味な静的コンテンツの定期的な更新だったり、更新頻度の低いデータの通知や更新というところで、電子ペーパーや、今後でてくる通信規格をうまく活用できたら良いと思っている。

その他メモ

今回は単色(白黒)の電子ペーパーを使用した。理由は書き換え速度が早そうだったからである。2秒程度とは言え、1時間おきに更新しており、更新に時間がかかるのはよろしくない。

文字がくっきりなのはよいが、ギザギザはちょっと気になる。この電子ペーパー、アンチエイリアスできないんかなとふと思う。

忘れ物タグをRspbery piから探す

作成のきっかけ

スマホから探せる忘れ物タグっていくつかあるんだけど、スマホじゃなくて、Bluetooth搭載のPC(今回はRaspberry Pi)から探せないのかなと思い、やってみた。
使用した忘れ物防止タグはMAMORIO。
探せる範囲はRaspberry PiのBluetoothでそのタグを検出できる範囲です。

使用方法

1.ブラウザでアクセス
2.Raspberry PiでMAMORIOが近くにあるか、Bluetoothで検索。
3.画面に表示
というもの。

構成はこんな感じ

・MAMORIO (なくし物防止タグ)
・Raspberry Pi(今回使用したのはRaspberry Pi 3 Model B)
-Node.js
-bleacon(iBeaconが使えるモジュール)
-nginx (Webサーバ)
-PHP

構築の流れ

1)nginxとPHP
nginxとphpが利用できる環境は、ブラウザから実行させるためのものなので、コマンドラインから探すのでよければなくてもよいし、そもそもPHPじゃなくて、pythonとか好きな言語でよいと思う。
nginxはもちろんApacheでも問題ない。そもそもnode.jsを代わりにすることもできるのかも。

2)node.jsとbleacon
下記のサイトなどを参考にして、node.jsと、bleaconをインストール。

Raspberry PiでiBeaconを受信する(Node.js + bleacon)
https://qiita.com/yuyakato/items/739443960fac2668f4a3

3)MAMORIOのuuidを確認
iBeaconを特定するためには、MAMORIOのuuidを調べる必要がある。
下記のサイトのスクリプトを実行して探すと近くにあるタグを検出できる。
ややこしいのは、iBeaconのタグが家に複数あると、どれがどのタグなのか探しにくい。
それらしきタグのuuidを見つけたら、その場合はタグを移動させるとか、電磁シールドを施したの箱に入れるとかで見つけられると思う。

たった5行!最も簡単にiBeaconの電波を「受信」する方法
https://qiita.com/kpkpkp/items/c2899e548da1c5e2c28e

4)PHPから実行できるように、ごにょごにょする
MAMORIOがnode.jsで検出できるようになったらあとはそれをPHPから実行できるようにして、
画面に表示させたら完了。

忘れ物タグ

忘れ物タグで重要なのは「バッテリーの持ち」「サイズ」「価格」「デザイン」だと思う。
MAMORIOは小型で、バッテリーは半年以上持つ。最大の欠点は自分で電池交換ができない点だと思う。(といっても勝手にやっちゃうのだが。)

筆者、MAMORIOと併用で、NUT find 3というのも使っている。
こっちは、スマホから呼び出しができる機能と、スマホから離れると自動でアラームが鳴る機能が気に入っている。逆に家の中で、タグのほうからスマホも鳴らせる。

そういう意味では、NUT findのほうが、利用頻度が高いのだが、MAMORIOは、
MAMORIOのユーザー同士の力を使って、探すという機能があるので使っている。

その他のアイデア

これを応用すれば、家に帰ってきた時に、自動でLINEを送るとかできると思う。
iBeaconは、もともとApple主導の仕組みで、iPhoneに情報を送るような仕組みとしてつかうのが、そもそもの想定なんだろうが、Androidでも使えるし、Raspberry Piで使ってみるというのもありだと思う。

忘れ物・探し物をなくすには

まず家の中でものがなくなるのは、所定の場所に整理しておくこと、
重要なものは、一定の置き場を設ける事が肝心だと思う。

忘れ物をなくすためには、色々ものを持たない事だと思う。
必要な場合は、持ち物リストを作成し持ち歩き、定期的に確認する。

忘れるというのは亡くす心という事だから、そうならないようにするには、
時間と心に余裕を持つ事が大切だ。
考え事をしていたり、焦っているときにはうっかり忘れ物をしてしまいがちになる。

小動物の運動量測定




昨年末にハリネズミ用に歩行距離測定システムを作ってみたので紹介

システムの構成
・ハリネズミのホイールに、磁石と磁気センサーをつけている。
・磁気センサーはArduinoで検出、Raspberry PiのDB(MySQL)に保存。
・Raspberry PiではWebページからカウントを確認できるようにしている。
・ついでなので温度センサー(気温測定)もつけている。

分かりやすく言うと、ハリネズミの万歩計システム(歩数はわからない)。
ハリネズミは夜行性で、しかも人がいない時に運動する。
これがあることによって、昨日はどのぐらい運動したのかなとか、気温は適温かなというのを、把握する目安になる。

課題としては、磁気センサーによる回転数の測定がいまいちかと思っている。
原理的には、自転車などにつけるスピードメーターなどと同じなので、どっかのメーカーがもうちょっと精度が良くて、手軽に使えるようなのを作ったらいいとおもう。
ArduinoとLCDを使えば、Webにはつなげないが、独立して動作するように
もできるだろうし、データの保存はSDカードなどにしてもよいかもしれない。

ともかく、特別なメーカーや、プログラマーじゃなくても、簡単な工作で、
こんなIOTなDIYができる時代になったというわけで、ぜひ皆様も、なにか思いついたらトライしてみてください。