Arduino Ethernet Shield が届いたので、少し実験。
Japanino + Arduino Ethernet Shield posted by (C)matty
TwitterにPOSTまでやりたかったけど、OAuthとか大変そうだったので、別路線へ変更。
Aruduino からサーバ(自分のパソコンね)に文字列を送って、
サーバがそれをファイルに書き出すという簡単なプログラムです。
参考記事:arduinoでEthernet Shieldパターン(送信編)
Arduinoのスケッチ。(EthernetのClientサンプルスケッチを改造)
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x0D, 0xXX }; // ArduinoEthernetShieldのMacアドレス(基盤の裏にシールが貼ってあるからそれを入力しよう)
byte ip[] = { 192, 168, 10, 10 }; // Arduinoに割り当てたIPアドレス
byte server[] = { 192, 168, 10, 33 }; // Server(自分が使っているパソコン)
Client client(server, 80);
void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(9600);
delay(1000);
Serial.println("connecting...");
if (client.connect()) {
Serial.println("connected");
client.println("GET /~shiki/getTest.php?q=arduino HTTP/1.0");
client.println();
} else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;;)
;
}
}
PHPのサンプル
// arduinoからhttp getによる値を受け取るサンプル
<?php
// q= で指定された値を取得する
$strGetQ = date('c ');
$strGetQ .= $_GET['q'];
$strGetQ .= "\n";
// データを保存するテキストファイルの相対パス
$strDataFilePath = 'test/getTest.txt';
// テキストファイルに保存
$fp = fopen($strDataFilePath, "a");
fwrite($fp, $strGetQ);
fclose($fp);
?>
スケッチをJapaninoで実行して、パソコンに保存されたテキストファイルを見るとこんな感じ。Arduino(今回使ったのはJapaninoだった、まあいいか兄弟だし)の叫びが記録されています。リセットボタンを押すたびに、1行追加されます。
保存されたテキストファイル posted by (C)matty
ラジコンとは方向がずれてきてしまった感じがするなぁ。
こんどはやっぱり、モータを動かしたいなぁ。
2 件のコメント:
おお、やっていますな。
通信とはやるじゃないですか。
WebアプリからArduinoを操作するというのもいいかも。
とりあえず、いろいろできることを試してます。
コメントを投稿