arduinoでのWeb温度計を作ろうかなの話 -普通の温度計まで-
さてさて、今日はTry&ERRORってか、実録です。
そう、やりながら書こうかなって事です。
今回のターゲットを説明しますと、webアクセスすると、端末の気温を表示しようかな?
1台だけではアレですが、5台くらい作ったら面白いかなw
んで、ハード的なものを紹介する。
と言っても、倉庫から持ち出してみました。
サーモスタットとかトランジスタを考えていましたが、共立電子のデジタル温度、湿度センサーが余っていました!
・KP-AM2320 (共立)http://prod.kyohritsu.com/KP-AM2320.html
んでCPUはarduino nano 互換!
[amazonjs asin=”B01CZQANN0″ locale=”JP” tmpl=”Small” title=”HiLetgo® 3個セット Mini USB Nano V3.0 ATmega328P CH340G 5V 16M マイクロコントローラーボード Arduinoと互換”]
コレだったと思う。
で、LANポート
[amazonjs asin=”B00FR7DX0K” locale=”JP” tmpl=”Small” title=”新しい ENC28J60 イーサネット LAN ネットワーク モジュール 回路図用 Arduino 51 AVR LPC STM32″]
まずは、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読んだら書いていますね。
抵抗欲しいかな?とかちょっと思うけど
次にプログラム!!!!
#includevoid 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温度湿度計ですわね