About虛擬&實際

@分享虛擬與實際的世界中所遊玩的心得紀錄,從物理化學到生命科學、從人文藝術到現代科技、從虛擬介面到實際生命體。享受的只是一種學習與體驗。若文章內容有誤,歡迎提出以供修改,對文章的回饋,歡迎寄信給我!一起分享,互相學習成長的環境。
@個人簡介在『關於韃靼』
@我是韃靼~我的信箱:chenyuquan at gmail dot com

2013年7月13日 星期六

Arduino- RH/ Temp sensor with LCD display

前言:
最近一直很想測室內的二氧化碳,自從上次使用Lab的二氧化碳儀器測過一次後就沒機會了。有在詢問二氧化碳感測器的價錢,沒想到還頗貴的,像一氧化碳或硫化物相關的還比較便宜!!我想這跟二氧化碳分子結構有關(所以才需要使用紅外光譜才能偵測)
偏離主題了,之前就有打算將RH/Temp sensor組裝在Arduino上面,趁這次颱風天沒機會出去溜搭,來拼裝一夏。

硬體:
RH/ Temp sensor (HMZ-435CHS1)
LiquidCrystal (16*2 matrix), 
potentiometer
電容(10 uf)
電阻(220 & 50k ohm)

程式:
這個部分結合了Arduino project 3 & 11的部分,修改一些參數以及顯示的模式。
然後再將之前在使用LabVIEW project所使用的RH/ Temp 電壓校正曲線即可。
溫度校正曲線:
  y = 1.709x2 + 11.428x - 14.54
  R2 = 0.9986
濕度校正曲線:
  y = 2.164x2 + 26.166x - 13.068
  R2 = 0.997

Code:
因為在LCD內要顯示兩個數據,又遇上了數字小數點的顯示問題花了一點時間解決。
目前小數點還沒有更加的解決方式,就暫時以"int"以整數顯示。而LCD顯示部分如下:

  lcd.setCursor(0, 0);
  lcd.print("RH % / Temp deg.");
  lcd.setCursor(0, 1);
  lcd.print(RH);
  lcd.setCursor(8, 1);

  lcd.print(Temp);

其中lcd.setCursor(m, n),m是每列(row)的位置,n是指哪一行(column)。

圖片:


後記:
參考Cookbook有提到字串問題,也許可以將數字定義成字串,然後限制字串的長度。而Arduino網頁以及手邊的書籍好像都沒提到顯示數字位數的資訊,可能我還沒找到!!
再來真正期待的是CO2感測器的加入!!而程式部分則希望加入可以存檔功能(log到電腦內或其他)。

20130714補充
實際的在主臥房測試如下:

修正一些Code計算上的Bug,實際測試,主臥房的溼度果然較工作室低。不過也是預料中,因為開了冷氣!

參考:
Arduino_Project03_Love-o-meter
Arduino_Project11_Crystal Ball
溫濕度感測器_RH & Temperature Sensor
Arduino Cookbook
Arduino Projects Book
Arduino.cc