居家生活中,瓦斯問題往往是住戶必須注重的居家安全之一,瓦斯中毒通常是住戶發現一氧化碳外漏時,卻已是渾身無力的狀況,CPF瓦斯安全偵測器能在瓦斯外洩時即時地發出警報通知使用者,讓住戶能盡快的處理瓦斯外洩等問題。
社會新聞中常常發生有人因為在家中瓦斯外洩而導致一氧化碳中毒身亡,這種事件總是人心惶惶,因此透過CPF類比訊號來偵測家中是否有瓦斯外漏之問題發生,以降低傷害的造成,讓人可以即時發現,即時處理。
瓦斯警報器的原理就是簡單的if判斷,利用CPF讀取一氧化碳感測器Analog的值,透過迴圈隨時判斷瓦斯濃度值若大於700表示達到危險的程度,此時執行蜂鳴器發出警報聲。
使雲教授連結所需的設備, 將一氧化碳感測器插入A0插槽,蜂鳴器則接在D5插槽。
配對好雲教授,開啟CPF Arduino,進入Lesson 8 插槽模式。
進入後,按下編輯程式的按鈕,將預設程式碼全部刪除,重新命名主題並先定義變數。
//瓦斯安全偵測器//
var gasSensor;
var i;
程式解析:
撰寫瓦斯感測的副程式sensorSet()
,讀取一氧化碳感測器的濃度數值,並將數值回傳給主程式進行判斷。
function sensorSet(){
gasSensor = cpf.get("socket a0");
ui.set("socket a0", gasSensor);
return gasSensor;
}
程式解析:
撰寫蜂鳴器的副程式,目的為設定當一氧化碳濃度大於700時播出的警報聲音。
function buzzerControl(){
for(i=0;i<25;i++ ) {
cpf.set("socket d5", 1000, 50);
cpf.set("socket d5", 500, 50);
}
}
程式解析:
開始撰寫主程式,當回傳回來的一氧化碳數值大於700時表示濃度過高有危險性,因此發出警告,若小於等於700則不發出警告,最後加上cpf.repeat() 重複執行。
if(sensorSet()>700){
buzzerControl();
}else{
cpf.set("socket d5",0);
}
cpf.repeat();
//瓦斯安全偵測器//
var gasSensor;
var i;
if(sensorSet()>700){
buzzerControl();
}else{
cpf.set("socket d5",0);
}
function sensorSet(){
gasSensor = cpf.get("socket a0");
ui.set("socket a0", gasSensor);
return gasSensor;
}
function buzzerControl(){
for(i=0;i<25;i++ ) {
cpf.set("socket d5", 1000, 50);
cpf.set("socket d5", 500, 50);
}
}
cpf.repeat();
透過瓦斯安全偵測器的功能我們可以瞭解到,這一份同樣的程式碼以及同樣的邏輯,可以運用在各種不同的偵測器上,我們使用瓦斯感測器偵測一氧化碳的濃度,也可以利用二氧化碳感測器偵測出目前的氧氣濃度狀態,又能裝上馬達搭配風扇,增加空氣的流動。在雲教授上可以產生很多不同的變化,一起試試看吧!