在此之前沒摸過RS232的什麼東西,只是約略知道這可以讓訊號送進電腦。要說類似的東西,大概就是像Arduino把訊號送進電腦那樣。如果可以把CO2計接上電腦,那之後的應用面就蠻多的了,因為可以長時間的紀錄。
不過面臨到第一個問題就是沒有連接線,得要自己作,還好說明書寫的很清楚,只要一個3.5mm的公接頭插進機器,中間的pin接到RS232 9pin接頭的pin 4 ,Ground接到 pin 2,然後pin 2和pin 5之間串聯一個2.2K電阻。這個不算太難,後來我買了一個公對母的連接線,把公頭拆了照著上面的作法來接就成了。
這要特別紀錄一下,剪下接頭之後,哪條線屬於哪個pin,一時還搞不清楚,因為9條線就有9種顏色,但是忽然間想起了電阻的顏色代碼,黑棕紅橙黃綠藍紫灰白,該不會就跟這有關係吧。用三用電表一測,啊!果然有關。pin 2是棕色、pin 4是橙色、pin5是黃色。
接好了線之後,下一步就是電腦要跟它連線了。
因為平常我用Linux,但是以後給學生用的話,可能還得用windows,所以兩個系統都得找軟體來相連。
Linux
linux下最簡單的方式就是用cat ,直接下指令 cat /dev/ttyS0
如果還要設baud rate 為9600 ,那就用 stty -F /dev/ttyS0 9600 ,不過預設就是9600,所以不需要設。要看設定值,就用 stty -F /dev/ttyS0
但是這樣有點麻煩,於是找了Serial port的軟體 cutecom來玩,設定還蠻簡單的,也很容易就從機器裡得到數值,但是有另外的問題出現了,那就是沒有時間戳記。對一個Date Logger 來說,沒有時間戳記就像是少了手腳一樣。
後來從這個論壇文章中找了一些指令來下,此外,這篇文件也寫了一些方法。
cat /dev/ttyACM1 | awk '{print strftime("%Y-%m-%d %H:%M:%S "), $0; }'>>com.txt
cat /dev/ttyACM1 | awk '{print strftime("%T"), substr($1,12,8); }'>>com.txt
awk '{print strftime("%T"), substr($1,12,8); }' /dev/ttyACM1>>com.txt
另外可開一個視窗,用這個指令來檢查
tail -f com1.txt
另外方法是用jpnevulator去接收,下面這樣是可以同時有timestamp,也有機器數值,但是輸出的文字檔案不夠漂亮,得再整理過才行。
另外可開一個視窗,用這個指令來檢查
tail -f com1.txt
另外方法是用jpnevulator去接收,下面這樣是可以同時有timestamp,也有機器數值,但是輸出的文字檔案不夠漂亮,得再整理過才行。
jpnevulator -g --tty /dev/ttyS0 --read > com1.txt
Windows
windows下的就簡單很多了,只要用Tera Term,照著設定就可以有Timestamp的Log檔囉。
Serial Port 的設定
Terminal要設定換行,不然就看不到歷史數據了
紀錄檔的設定
選擇存放位置,另外左下角的時間一定要打勾
這樣就有一系列的數據可供使用了
後來我找其他RS232的硬體時,看到我以前買的那台Garmin 60CSx也有RS232的輸出功能,只要找個Garmin connector,或者自己做一條,程式處理一下就可以把GPS的訊號和二氧化碳、溫度訊號結合在一起,那麼這樣也許可以有什麼發展呢!