今回は、Arduino使ってWebにデータ飛ばしてみます!

 

ArduinoでWebにデータ飛ばす、となるとだいたいfluentdに投げて

elastic searchkibanaでビジュアライゼーションみたいな感じの構成を取ることが多いと思いますが

今回はSalesforceに直接投げます。

 

直接投げると言っても、Arduino自体はSSLサポートしていないので

1. Web経由でプロキシを介して通信をする

2. シリアル通信経由でArduinoと直接つないでいるPCから通信をする

3. Arduino yunを使ってyunのLinux側のcurlで通信をする(ことが出来るらしい)

 

といった手段を取る必要があります。

 

今回は1の方法で”ボタンを押すとArduinoからChatterに投稿する”というモノを作ります。

 

参考サイト:

 Qoosky – 電子工作でインターネットに無線接続して通信を行う (Arduino)

 

 

0. 準備

必要な物は以下になります。

・Arduino Uno R3

Ethernet Shield

ちびファイ(無線LANコンバータ)

・タクトスイッチ

・ジャンプワイヤとか抵抗とかブレッドボード

 

Arduino単体ではWebに飛ばせないのでEthenet Shieldを装着してください。

ちびファイは無くてもOKですが、無いとLANケーブルをArduinoに繋げるハメになり

配線がもどかしいので無線LANコンバータがあると非常に便利です。

電子回路関連はArduinoのスターターキットを買うと一式まとめて買えるのでオススメ。

 

1. 回路等の組み立て

回路は以下のようになります。スイッチ押したら電気通るだけの超シンプル構造です。

arduino-fig

ちなみに、この図はfritzingを使ってます。回路図とか書くときは便利らしい。

 

実際はこんな感じになります。上のLANケーブルはちびファイに繋がってて、下はPCと繋がってます。

arduino-sample

 

2. Arduinoにプログラムを書き込む

Arduinoのマイコンボードに以下のプログラムを書き込みます。

スイッチ押すとWeb ProxyにGETリクエストが飛びます。

 

3. ArduinoとSalesforceをつなぐWeb proxyサーバの設定

適当なローカルネットワーク上のPCにWebサーバをインストールして、phpが動くように設定。

ファイアーウォールの80番を開けるのもお忘れなく。

参考URL:ja:zoo:window7firewall [McNeel Wiki]

 

phpは以下を設置。

接続アプリ作るの面倒だったのでSOAPでログインしてSessionIDを拝借するスタイルで書いてます。

 

これで、スイッチを押すとWeb Proxyを介してChatterにフィードが投稿されます。

今回はスイッチでしたが、センサ等でも基本構造は同じです。

例えば、センサである閾値を越えたらSalesforceにデータを格納みたいなことも出来ます。