今天我們用GBoard來做一個有毒氣體檢測報警器。(PIR人體紅外傳感器用的太多了,想要用PIR的小伙伴可以看這篇教程:http://blog.sina.com.cn/s/blog_ade378ae0102uwrj.html)
制作有毒氣體檢測報警器需要用到的配件有:
GBoard跟sim900擴展板ICOMSAT一樣,需要9V/2A的供電。所以還需要加一個適配器,還有手機sim卡(僅支持聯通/移動2G卡):
代碼如下:
?#include
SoftwareSerial mySerial(2, 3); // RX, TX 使用軟串口看數值
const int thresholdvalue=700; //MQ2目標值,一般空氣環境是100左右。
void setup()
{?
? pinMode(6, OUTPUT); //D6是Gboard的sim900模塊啟動腳,使用軟件自啟動
? pinMode(A1, OUTPUT);
? digitalWrite(6,HIGH);
? delay(1000);
? digitalWrite(6,LOW);
? delay(10000);
? delay(5000);?
? Serial.begin(9600);
? mySerial.begin(9600);
}
void loop()
{
? int sensorValue = analogRead(A0); //使用AO讀取MQ2的值
? {
? digitalWrite(A1,HIGH);//使用A1顯示LED狀態,HIGH是點亮
? Serial.println("ATD12345678900;\r");//12345678900改成你要撥打的電話號碼
? mySerial.print("ATD12345678900;\r");//串口顯示撥打出號碼
? delay(5000);
//以下是避免重復撥打號碼,當值超過700,只打一次。等降到650以下才進入主程序繼續監測
? while((analogRead(A0)-thresholdvalue)>0)
? Serial.println(analogRead(A0));
? while((thresholdvalue-analogRead(A0))<50)
? Serial.println(analogRead(A0));
}
? else?
? {
? ? Serial.println(analogRead(A0)); ? ??
? ? digitalWrite(A1,LOW);//MQ2的值沒有超過700,LED滅
? }
}
燒寫前,確定GBoard跳帽如下圖:(關于跳帽,在這里下載GBoard產品手冊、原理圖和庫文件:
?
?
MQ2接在A0,LED接在A1。接上9V/2A適配器和FOCA轉串板,插入手機sim卡,最終如圖:
?
用foca轉串板把代碼燒寫進GBOARD,如圖插入:(板子背面有引腳定義)
?
Foca驅動安裝跟uno一樣,這里略過不談。GBoard燒寫時“board類型”選擇Arduino Duemilanove w/atmega328
?
程序燒寫進去后,GBoard的sim900模塊自動開啟,可以打開串口監視窗口查看MQ2的值。MQ2需要有一個通電加熱過程,需要1分鐘左右達到穩定狀態,所以剛打開串口監視窗口的時候是沒有數據的,稍等片刻即可。
現在,我們就可以用一個打火機來測試了。
演示視頻地址:http://v.youku.com/v_show/id_XNzQxMzQxNTg4.html