arduinoでのWeb温度計を作ろうかなの話 -普通の温度計まで-

さてさて、今日はTry&ERRORってか、実録です。
そう、やりながら書こうかなって事です。

今回のターゲットを説明しますと、webアクセスすると、端末の気温を表示しようかな?
1台だけではアレですが、5台くらい作ったら面白いかなw

んで、ハード的なものを紹介する。
と言っても、倉庫から持ち出してみました。

サーモスタットとかトランジスタを考えていましたが、共立電子のデジタル温度、湿度センサーが余っていました!
・KP-AM2320 (共立)http://prod.kyohritsu.com/KP-AM2320.html

んでCPUはarduino nano 互換!


コレだったと思う。

で、LANポート

電源は ま、いいかなw

まずは、arduinoのピンを半田付け…
ピピピっと

次にボードの動作チェック!
結構時間がかかったけど、設定はコチラ
ボード : Arduino Nano
プロセッサ : ATmega328P
シリアルポートは… arduinoを指定

書き込み装置はとりあえずArduinoISPだけど。意味ないかな?

ここで「ブートローダーを書き込む」ってのが無視してください。

書き込みテストとして、激シンプルの内容を書き込んで動作チェック

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
      Serial.println("turn off");
      // 1ループ待つ
      delay(10000);
}

turn offをシリアルに書いて10秒待つって感じです

次に配線…


http://www.kyohritsu.jp/eclib/OTHER/DATASHEET/SENSOR/am2320.pdf

地味に悩んでちょっとだけ、困った…

簡単に接続方法を書いておくと。

Sensor Arduino cable color
1 VDD 5V Green
2 SDA A4 blue
3 GND GND Purple
4 SCL A5 Brown

っとWhitepaper読んだら書いていますね。
抵抗欲しいかな?とかちょっと思うけど

次にプログラム!!!!

#include 
void setup() {
  Wire.begin();       
  Serial.begin(115200);
  delay(100); 
}
void loop() {
  float humidity = 0.00;
  float temperature = 0.00;

  Wire.beginTransmission(0x5c);
  Wire.write(0x03);
  Wire.write(0x00);
  Wire.write(0x04);
  Wire.endTransmission();
  delay(1000);  

  int ans = Wire.requestFrom(0x5c,6);
  while(Wire.available() !=0){   
    int H1,H2,T1,T2 = 0;
    for(int i = 1; i <  ans+1; i++){     
      int c = Wire.read();        
      switch (i){    
          case 5:
          T1 = c;
          break;
          case 6:
          T2 = c; 
          break;
          case 3:
          H1 = c; 
          break;
          case 4: 
          H2 = c;  
          break;
          default:
          break;
        }       
    }       
    humidity = (H1*256 + H2)/10.0; 
    temperature = (T1*256 + T2)/10.0; 
    Serial.print("  Temperature=");
    Serial.print(temperature);
    Serial.print("’C  Humidity=");
    Serial.print(humidity);
    Serial.println("%   ");
    } 
}

はいはい、超シンプルです。

読んで理解してください。

こんな感じで温度湿度が表示されます〜

次回はこいつにWebサーバを取り付けます。

コレでIoT温度湿度計ですわね