夜間的街道小巷中,常會有設置當人行走過時便使路燈照明的系統,智慧夜間照明系統利用人體紅外線感測器和光感測器,當偵測到有人以及附近皆沒有光時,就會開啟照明,那麼它跟暗巷路燈的差別在哪裡?智慧夜間照明系統透過雲端運算概念,可以上傳在什麼時間點內有人經過,以及判斷這個地方一天之內有多少人來往等等,有如一台雲的監視器一樣。
在深夜或光線不佳的地方,往往會面臨照明設備不足之問題,此時透過CPF人體紅外線偵測並結合照明燈具,讓人不論是身在何地,皆能隨時獲得光線的照明,同時智慧照明系統亦能透過雲教授來分析智慧夜間照明系統所需使用之時間,以節省電力。
宏碁雲教授 - 1個
Leonardo 開發板 - 1個
Grove 擴充板 - 1個
RGB LED元件 - 1個
光感測器元件 - 1個
紅外線人體感測器 - 1個
連接雲教授,開啟CPF Arduino,進入Lesson 8 插槽模式。
先將雲教授與相對應感應器連接至Grove擴充板,傾斜開關連接至D6插槽,RGB LED燈連接至D7插槽,如圖:
圖
點擊執行按鈕,可對目前感應器進行各別操作與顯示,插槽D6顯示傾斜開關的值,D7欄位可以控制RGB LED燈的三顏色。
在開始撰寫程式碼之前,先來看一下本程式自訂的函式(function)介紹:
IRSensorSet()
取得紅外線感測器的數值。
sensorSet()
取得光敏感測器的數值。
LEDControl()
控制LED燈開關與延遲時間。
現在,要開始撰寫智慧夜間照明系統的程式碼,點擊修改按鈕進入程式碼編輯介面,將預設的程式碼全部刪除。
接著先撰寫IRSensorSet()
函式來取得紅外線感測器的數值。
var IRSensor;
function IRSensorSet(){
IRSensor = cpf.get("socket d6");
ui.set("socket d6", IRSensor);
return IRSensor;
}
程式解析:
IRSensorSet()
函式。IRSensorSet()
函式中,使用IRSensor變數來接收D6插槽紅外線感測器的數值。IRSensorSet()
函式中,執行ui.set()將IRSensor變數顯示在D6區塊上。IRSensorSet()
函式的最後,回傳IRSensor變數。接著撰寫sensorSet()
函式來取得光敏感測器的光感值。
var IRSensor;
var lightSensor;
function IRSensorSet(){
IRSensor = cpf.get("socket d6");
ui.set("socket d6", IRSensor);
return IRSensor;
}
function sensorSet(){
lightSensor = cpf.get("socket a0");
ui.set("socket a0", lightSensor);
return lightSensor;
}
程式解析:
sensorSet()
函式。sensorSet()
函式中,使用lightSensor變數來接收A0插槽光敏感測器的數值。sensorSet()
函式中,執行ui.set()將lightSensor變數顯示在A0區塊上。sensorSet()
函式的最後,回傳lightSensor變數。//智慧夜間照明系統//
var IRSensor;
var lightSensor;
if((IRSensorSet()==1)&&(sensorSet()<300)){
LEDControl(1,3000);
}else{
LEDControl(0,1000);
}
function IRSensorSet(){
IRSensor = cpf.get("socket d6");
ui.set("socket d6", IRSensor);
return IRSensor;
}
function sensorSet(){
lightSensor = cpf.get("socket a0");
ui.set("socket a0", lightSensor);
return lightSensor;
}
function LEDControl(status,time){
cpf.set("socket d2", status);
delay(time);
}
cpf.repeat();
介紹到這邊,就如開頭所說的,可以利用雲端的運算,判斷在一日內有多少人數在此地來往,並利用LCD等顯示器將昨日經過的人數顯示出來,也可以搭配超音波感測器或是紅外線測距,判斷當人體在多少距離之內的話才開燈,或是有更好的想法,讓這份智慧夜間照明系統越來越豐富吧。