鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

心拍計MAX30100(RCWL0530)を購入しました

MAX30100(RCWL0530)が届きました。
f:id:kechiya:20170330080420j:plain

スターの数が多いので、以下のライブラリで挑戦
どうも、値が拾えません。

f:id:kechiya:20170330101459j:plain

ワイヤリングは以下です。
PIN2=INT
SCL=SCL
SDA=SDA
3.3V=VIN
GND=GND

GitHub - xcoder123/MAX30100: Driver for MAX30100 using arduino

vctec.co.kr


下のブレッドボードの写真をよく見るとなんだかプルアップ抵抗
が取り付けられているゾォ。(プルアップよく分からないっw)
抵抗が必要なんだろう。4.7KΩの抵抗あったかな?
forum.arduino.cc

I2Cのプルアップ抵抗の例
これと同じ感じですね。
ƒXƒgƒƒxƒŠ[EƒŠƒiƒbƒNƒX/HŒŽ“dŽq‚ÌI2C‰t»/OLED‚Ù‚©‚ðArduino‚ÅŽg‚¤

プルアップしてみた

手元にあった1.0KΩを取り付けてみました
変な値にもなりますが・・
若干拾うようになってきました。

ライブラリを変えてみる

星が2番目に多いこちらに変えてみる。
github.com

こちらだと、rawDataを可視化できるので見てみる。
こんな感じで、凹凸が少ないデータとなっている。
これは、うまく拾えなくても仕方がないかな。
f:id:kechiya:20170330192717p:plain

指の位置を微妙に動かすと、いい感じに拾えたりするけれど。
f:id:kechiya:20170330193721p:plain

お風呂上がりだと、起伏がはっきりしました。
f:id:kechiya:20170330200127p:plain

しかし安定しない

再度、データシートをよく読む

https://datasheets.maximintegrated.com/en/ds/MAX30100.pdf#search=%2730100+pullup%27

https://ja.aliexpress.com/store/product/Heart-Rate-Click-MAX30100-Sensor-for-Arduino/2340056_32699390906.html

上と下を見比べる。RCWL0530の回路図を読むと、それ自体に4.7KΩのプルアップ抵抗が入っているなぁ!
これをさらに外付けでプルアップして意味なさげ?
でも、外付け1KΩのプルアップ抵抗を外すとLEDは点灯しない。

外付けプルアップ4.7kΩで試す

4.7KΩが到着したので、接続してみましたが、相変わらず安定しません。

違うモジュールを購入する

GY-MAX30100と言う紫っぽいモジュールをポチッとしてみた。いつ届くかわからないけれど
期待しておこう。

結局1.8V IC2

MAX30100側のIC2バスの電圧が1.8V動作らしく、電圧レベルを揃えなくてはいけないらしい。
レベルコンバーター&レギュレーター(1.8V)をポチッと購入。届いたらまた試す。

Node-REDで日付処理したい(node-red-contrib-momentの使い方)

センサーデータをnode-redで扱うときに、日付がYYYY-MM-DDTHH:MM:SSZみたいな日付フォーマット
になっていて辛い思いをされている人も多いかも?
ごにょごにょfunctionで書いてあげるのも辛い。
Node-REDのエコシステムを使いたいですね。
そこで、いろいろ調べた結果。node-red-contrib-momentへありつきました。

node-redのpackage.jsonへ記述を追加してデプロイ。

        "node-red-contrib-moment":"2.0.x"

Momentというノードが使えるようになるので、追加します。
payloadのどの要素を変換するかinputformへ記述してあげます。
そして、UTC時間を9時間進めてあげたいならば、Adjustmentへ記述。
Output Formatで任意のフォーマットに変換でします。

f:id:kechiya:20170326070515p:plain

積算グラフを描写する

Iotでセンサーデータを収集した後の活用

Iotなどでセンサーデータを取得すると、時系列のデータが蓄積していきます。
例えば、1分ごとに部品完成数をカウントしていたとすると、1時間ごと、1日ごと
という風に積算したデータも欲しくなると思います。

積算データを可視化

問い合わせをAPIで投げると、データストアに問い合わせて、いい感じに集計して返してくれるような実装
をサーバサイドでしておく。返ってきたデータをブラウザでD3.jsを用いて、可視化。

データストアではなくて、ダミーで返すAPIをMojolicious実装

起動時にJSONファイルを読み込んで、問い合わせがきたら返すようにしました。

github.com