ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

arduinoコミュのEthernetシールドの使い方教えてください

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Ethernetのスケッチの例にある、WevServerを試しています。
ですが、コンパイル時にいつまでたっても「マイコンボードに書き込んでいます」という表示のまま進みません。
色々調べたところ、通信が上手くされていないのではないかと解りました。

そこで、添付写真にあるように、モデムの設定でIPアドレスを手動割当で空いている番号を充てました。macアドレスもEthernetシールドに記載しているものを入れました。
そして、スケッチの方もIPアドレス、macアドレスを変更しました。

検証は何も異常ありません。

原因はなんでしょうか?

ネットワーク、プログラムの初心者です。検索してもわからなかったので、こちらを頼って投稿してみました。
ご存知の方よろしくお願いします。

コメント(13)

再起動したら、問題なく動作しました。
ありがとうございました。
再度質問いたします。
自動で室温をツイートするスケッチをインターネットで見つけたので、試しています。
macアドレス、IPアドレス、トークンは実際は入力しています。
毎分ツイートするスケッチのようですが、毎分はツイートされません。
2時間に1ツイート程度です。
何が間違っているのでしょうか?毎分ツイートするようにしたいです。
Twitterアカウントは@Arduino3232です。

#include <SPI.h> // needed in Arduino 0019 or later
#include <Ethernet.h>
#include <Twitter.h>

// The includion of EthernetDNS is not needed in Arduino IDE 1.0 or later.
// Please uncomment below in Arduino IDE 0022 or earlier.
//#include <EthernetDNS.h>


// Ethernet Shield Settings
byte mac[] =

// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later).
byte ip[] =

// Your Token to Tweet (get it from http://arduino-tweet.appspot.com/)
Twitter twitter();

// Message to post
//char msg[] = "Hello, World! I'm Arduino!";

void setup(){
Ethernet.begin(mac, ip);
// or you can use DHCP for autoomatic IP address configuration.
// Ethernet.begin(mac);
Serial.begin(9600);
}

void loop(){
delay(60000);//1分間隔で温度を調査してツイートします。

float a0 = analogRead(A0);
float xV = (5*a0)/1024;
int intV = xV * 100;//整数部
int decV = int(xV * 1000) % 10;//小数点部
String strMsg = String("現在の室温は ");
strMsg += intV;
strMsg += ".";
strMsg += decV;
strMsg += " ℃";
Serial.println("tweet is \""+strMsg+"\"");
char msg[255];
strMsg.toCharArray(msg, 255);

Serial.println("connecting ...");
if (twitter.post(msg)) {
// Specify &Serial to output received response to Serial.
// If no output is required, you can just omit the argument, e.g.
// int status = twitter.wait();
int status = twitter.wait(&Serial);
if (status == 200) {
Serial.println("OK.");
} else {
Serial.print("failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection failed.");
}
}
>>[3]

コメントありがとうございます。
浮動小数点って言葉初めて聞きました。笑
少数点の計算を入れると遅くなってしまうということですね。

>そのままのコードをお使いならDelay時間を1/120に設定してみてはどうでしょう
delay(60000); のところを delay(500) にするという事でしょうか?
それともdelay(500)をint decV = int(xV * 1000) % 10;//小数点部 の次の行に追加するという事でしょうか?

最近勉強しはじめたばかりで、解らない事が多くすみません。

よろしければ教えてください。お願いします。
いくら浮動小数点演算が遅いと言っても、このスケッチのloop 1回分の演算に2時間ってことはあり得ないでしょう。

せっかく要所要所にSerial.printを入れているのですから、まずは何を表示した状態で止まっているのか、という情報が重要でしょう。
あまり深く見てませんが計算で2時間もかかるという事はありえないので、単にTwitter側の仕様で 温度が同じだと出力がまったく同じになるので、重複投稿としてはじかれてるだけなんじゃないですか?

ツイート内容も実行結果もシリアルに出力されるようになってますが、PCの画面で確認してないんでしょうか?
>>[5]

本日7時頃試してみました。結果は5時間で2ツイートでした。
>>[6]

コメントありがとうございます。
ほぼ、コピペでやってしまっていたので、把握していませんでした。
帰宅したら確認してみます、
>>[7]

コメントありがとうございます。
ツイッタの仕様確認してみました。同じツイートは表示されないんですね。勉強になりました。ありがとうございました。
表示の確認してみます。
>>[11]  jtakaoさん ねこ蔵さん

シリアルプリント値確認しました。
下記のような内容が数多く見受けられました。
みなさんが教えてくださった、同一文字で反映されていないようでした。
こう見ると、小数点第一程度は同じくなるんですね。
面白い。
小数点第2位まで指定して実行してみます。

Error 403 - {"errors":[{"code":187,"message":"Status is a duplicate."}]}
failed : code 403
tweet is "現å�¨ã�レジスタードトレードマークåレジスタードトレードマーク¤æ¸コピーライトã�¯ 27.3 â��"
connecting ...
HTTP/1.0 403 Forbidden
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Vary: Accept-Encoding
Date: Thu, 03 Jul 2014 12:11:54 GMT
Server: Google Frontend
Alternate-Protocol: 80:quic

Error 403 - {"errors":[{"code":187,"message":"Status is a duplicate."}]}
failed : code 403
tweet is "現å�¨ã�レジスタードトレードマークåレジスタードトレードマーク¤æ¸コピーライトã�¯ 27.3 â��"
connecting ...
HTTP/1.0 403 Forbidden
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Vary: Accept-Encoding
Date: Thu, 03 Jul 2014 12:12:54 GMT
Server: Google Frontend
Alternate-Protocol: 80:quic

Error 403 - {"errors":[{"code":187,"message":"Status is a duplicate."}]}
failed : code 403
tweet is "現å�¨ã�レジスタードトレードマークåレジスタードトレードマーク¤æ¸コピーライトã�¯ 27.3 â��"
connecting ...
HTTP/1.0 403 Forbidden
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Vary: Accept-Encoding
Date: Thu, 03 Jul 2014 12:13:55 GMT
Server: Google Frontend
Alternate-Protocol: 80:quic
成功しました!!

小数点2桁にしたら大丈夫でした。
みなさんありがとうございました。

エラーを解消するとスッキリしますね。
どんどんArduinoにハマっていきそうです。

次はxivelyを使って、グラフ化したいと思います。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

arduino 更新情報

arduinoのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング