昨天王博士來我辦公室找我,聊天時他提到他們會買DataLogger去記錄放在定點的各式感測器所傳回的數值,每一段時間再取出資料來分析。

我突然發現我之前寫的Arduino例子都是以物聯網的觀點出發,也就是說所有感測器偵測到的數值,都會即時透過有線或無線網路傳送到行動裝置或雲端伺服器中。事實上,有時候在一些應用中,若是不需要做即時的回應,也可以把蒐集到的資料先放在儲存媒體中,每過一段時間再取出分析就可以了。

今天這一個例子主要是把感測器所偵測到的數值,儲存到SD卡中,也就是要把Arduino當做DataLogger使用。

這個例子所使用的感測器是MQ-137氨氣感測器(王博士提供),這個感測器對氨氣的靈敏度高,對其它有機胺(如三甲胺、乙醇胺等)的監測也很理想。

它有四隻針腳,由於我只想抓取它的類比訊號,因此只用了三隻腳,我的接法是

Arduino  <>  MQ-137

5V  <>  +5V

不接  <>  DOUT

A0  <>  AOUT

GND  <>  GND

由於我手邊沒有Arduino的SD模組,所以我使用曾在人體紅外線感應與拍照這一篇文章裡出現的Camera Shield,它上面有SD插槽,可插SD卡使用

合體

開始寫程式,由於我沒有Arduino的時鐘模組,所以每一筆資料前我是直接給它一個流水號

程式不複雜,理論上半小時可搞定的事情,但是卻讓我卡關了一個多小時,因為我一直沒辦法把資料寫入SD卡中。

一開始是以為SD模組的參數弄錯了,後來以為我的Camera Shield壞了,換了我的WiFi Shield(上面也有SD插槽),但一樣沒辦法正常運作。把SD卡拿出來放到讀卡機中是可以正常讀取與刪除,卡中還有上次人體紅外線感應與拍照例子中由Camera Shield所拍下來的照片。

最後以死馬當活馬醫的心態,再找了另一片SD卡,插上去後,它正常運作了~~~它正常運作了~~~它正常運作了~~~它正常運作了~~~,我香蕉你個芭樂!

我一直問在我辦公室忙著寫大專生計畫書的翔哥,是否可以讓我罵他髒話出氣,但翔哥寧死不屈,哈哈哈!

輸出於檔案的資料如下(每2秒一筆),前一個數字是流水號,後一個數字是偵測到的數值

總之,在一個很不爽快的過程中完成了這個例子,氣~~~~~~~~