Arduinoと感圧センサーで圧力をサーバーに送信する

秋葉原の秋月電子に行って、慣れない雰囲気の中、なんとかこの感圧センサーをゲットしました。

オライリーのPrototyping Labという本を見ながら回路を接続して、上のようなプログラムを実行するとこんな感じになりました。

f:id:naoty_k:20130123235951g:plain
f:id:naoty_k:20130123235951g:plain

センサーに加わった圧力を0番のアナログピンから受け取り、シリアル通信でそのままモニタに出力しています。

この圧力をサーバーに送信するために、以下のものを買いました。

イーサネットシールド for Arduino (micro SD, Wiznet W5100)
イーサネットシールド for Arduino (micro SD, Wiznet W5100)

イーサネットシールド for Arduino (micro SD, Wiznet W5100)

ArduinoにぶっさすEthernetシールド。ここにLANケーブルをさしてインターネットに接続できます。

PLANEX 300Mbps 超小型ハイパワー無線LANマルチファンクションルータ/アクセスポイント/コンバータ MZK-MF300N
PLANEX 300Mbps 超小型ハイパワー無線LANマルチファンクションルータ/アクセスポイント/コンバータ MZK-MF300N

PLANEX 300Mbps 超小型ハイパワー無線LANマルチファンクションルータ/アクセスポイント/コンバータ MZK-MF300N

うちがE-mobileのpocket wifiを使っててLANケーブルをさすところがなかったので、有線を無線で使えるようにするコンバータも買いました。

PLANEX 無線LANルータ/アクセスポイント/コンバータ「MZK-MF300N」「FFP-PKR01」専用 USB給電ケーブル SSOP-USB02
PLANEX 無線LANルータ/アクセスポイント/コンバータ「MZK-MF300N」「FFP-PKR01」専用 USB給電ケーブル SSOP-USB02

PLANEX 無線LANルータ/アクセスポイント/コンバータ「MZK-MF300N」「FFP-PKR01」専用 USB給電ケーブル SSOP-USB02

USBから給電するためのケーブル。

これらをつないでHerokuのサーバーにPOSTリクエストを送ると、node.jsがwebsocketを使ってグラフを更新するようにしました。

arduinoからリクエストを受けてwebsocketでグラフを更新 vine.co/v/bJ0j6W3gvz1

— なおてぃー (@naoty_k) January 30, 2013

コードはこんなかんじ。

上2つのコードを組み合わせると、圧力をPOSTでサーバーに送信できます。で、node.jsで書いたサーバーに送ると以下のような感じになりました。

Demo vine.co/v/bnn5muaq7T5

— なおてぃーさん (@naoty_k) 2013年2月6日

arduinoのコードとサーバーのコードはともにgithubで公開しています。

https://github.com/naoty/makura-arduino

https://github.com/naoty/makura-web