ArduinoからPOSTデータを送信してPHPで受け取る方法

やりたいこと

Arduinoとイーサネットシールドを使って、サーバー(PHP)へデータを送ってみたい。

やること

・Arduinoにタクトスイッチを3つ(青・黄・緑)つなぐ。
・各スイッチを押すと、Blue・Yellow・Greenの文字列と、起動してからの経過時間をサーバーへ送信する。
・サーバー側はPHPでデータを受け取り、ログファイルへ出力する。
・ログファイルをtailコマンドで眺める。

必要なもの

・Arduino
・イーサネットボード
ブレッドボード
タクトスイッチ ×3
10KΩ抵抗 ×3
・ジャンパーコード x6
・PHPの動くサーバー

配線図

・青色のタクトスイッチを5番ピンへ
・黄色のタクトスイッチを7番ピンへ
・緑色のタクトスイッチを9番ピンへ
・抵抗は10KΩを各GND線へ(プルダウン抵抗・タクトスイッチが押されていない時に0Vになるように)

配線図(Fritzing)

配線図(Fritzing)

配線図(実物)

配線図(実物)

送信側プログラム(Arduino)

・POST先のURLは「http://www.example.jp/path/to/endpoint.php」とする。
・青色のタクトスイッチを押すとtitle=Blue, message=time-[経過ミリ秒数] をPOSTする。
・黄色のタクトスイッチを押すとtitle=Yellow, message=time-[経過ミリ秒数] をPOSTする。
・緑色のタクトスイッチを押すとtitle=Green, message=time-[経過ミリ秒数] をPOSTする。

受信側プログラム(PHP)

・ArduinoからのPOSTを受け取って、同じディレクトリ内の「log」ファイルに日時とデータを出力する。

結果

サーバーに接続してlogファイルをtailしながら、タクトスイッチを押してみて、以下のようになればOK。