前回の続きとして今度はarduino側の回路と組み込むスケッチについて解説する。
使用する部品はこれだけ
温度センサ LM35
抵抗内蔵5mm赤色LED(5V用)
arduino UNO
その他ブレッドボード&ケーブル
まず、温度計の入力はアナログの0番ピン、LED用の出力はデジタルの4番ピンを使用し、
LM35は素子の平らな方から見て左から5V、A0、GNDの順につなぐ。
出力のLEDは長い脚のほうをデジタルの4番ピン、短い方をGNDにつなぐ。
※保護抵抗内蔵なので抵抗はナシ
続いてarduinoのスケッチはこのようになる。
char incomingByte;
boolean sw = false;
float a_in; // 温度計アナログ入力値
float temp_c = 0; // 摂氏値( ℃ )
void setup(){
Serial.begin(74800); //index.jsの値と同じにすること
pinMode(4,OUTPUT);
}
void loop(){
a_in = analogRead(0);
// 入力値を摂氏に換算
temp_c = ((5 * a_in) / 1024) * 100;
int rnd = temp_c;
delay(500);
Serial.println(rnd); //PCへ温度を出力
if(Serial.available() > 0){
incomingByte = Serial.read();
if(incomingByte == '1'){ //1が来たらLEDを光らせるif文
sw = !sw;
if(sw == true){
digitalWrite(4,HIGH);
}else{
digitalWrite(4,LOW);
}
}
}
}
最後はこれらをNODEjsで動かす。
コマンドプロンプト画面でNODEコマンドをたたく
node index.js
listen 3000 portが出力されればOK。続いてウェブブラウザでhttp://localhost:3000/を
呼び出すと下の画面のようになる。
arduinoからの温度がリアルタイムで表示される。また、ONボタンでarduinoへデジタル信号を送ることができ、押すたびにLEDが点滅する。※ラインファンはイメージのためコードには入っていません。
これで温度を監視しながらファン等を動かすシステムが完成した。デジタル出力1ポイントとアナログ入力1ポイントのみの簡易のものだがarduinoのポテンシャルの高さを感じた。
NODEjsやJavascriptなどのプログラムははっきりいって素人レベルのアルティメットだが今後もarduinoで設備関係の記事にチャレンジしたい。