気温を定期的にツイートするArduino端末を作る



Arduinoを使って気温を定期的にツイートするハードウェアを構築してみました。

使ったもの

配線

こんな感じ。抵抗とかも無いから簡単。

ソースコード

Twitterのライブラリを利用しています。Tweet Library for ArduinoよりDLしてArduinoパッケージに組み込んでください。僕の環境では以下の場所でした。

/Applications/Arduino1.0.app/Contents/Resources/Java/libraries

ソースコードはサンプルを流用しています。

#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[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// If you don't specify the IP address, DHCP is used(only in Arduino 1.0 or later).
byte ip[] = { 192, 168, 2, 10 };//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("aratana lab is ");
  strMsg += intV;
  strMsg += ".";
  strMsg += decV;
  strMsg += " ℃";
  strMsg += " #shikarduino";
  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.");
  }
}
温度計の使い方

温度計で取得した値の意味や使い方は以下のブログに丁寧に紹介されています。
Arduinoで温度計(LM35DZ) - 思い出はいつまでも

LM35DZは温度を測ることができるセンサーで、Voutから温度に応じた電圧を出力してくれます。これを換算することで温度を計測することができます。
LM35DZは0℃で0V、1℃当たり10mVの出力が得られます。25℃だと250mV、100℃だと1000mV(1V)の出力が得られます。LM35DZ自体の計測範囲が-55℃〜+150℃ですが、氷点下を計るためには負電源が必要であるため(これが理由で後にLM61CIZに変更します)、計測は0℃〜100℃までとします。

これで動くはずだよ!