Sensors Specification - Pm25Cleaner
有人想在 PM25 值高的時候來開關空氣清淨機
使用零件包 (linkit one) + lass標準零件包
Hardware Info
Feature:
Where to buy: icchip
Datasheet:
Experience sharing: TBA
設備 linktit one,標準零件包,
已有relay, 硬體接線已完成,亦測試ok
找 SENSOR CUSTOMIZATION ,這部分是客製化的部分
由於情境和 PM25 很類似,所以將 APP_ID == (APPTYPE_SYSTEM_BASE+1) 的 code 複製出來
sensorType[SENSOR_ID_DUST] : PM2.5 值的位置
sensorType[SENSOR_ID_DUST10] : PM10 值的位置
- control_cleaner(){
- if(sensorValue[SENSOR_CNT]> xxx){
- high_cnt ++;
- if( high_cnt > yyy )
- relay_on()
- high_cnt = yyy
- }
- else{
- if(high_cnt>0)
- high_cnt--;
- else
- relay_off()
- }
- }
loop(){
...
get_sensor_data();
加 code 在這裡,建議寫成一個 function
control_cleaner();
...
}
基本上這樣會動,但是由於 senosr 值有時會飄動與異常,這樣會讓 relay 勿動作
cclljj@gmail.com建議可以取前 n 次的平均做判斷(做 moving average),避免sensor值的震盪造成開開關關的現象
所以要加一個簡單的判斷,目的是躲掉異常情況。
目前簡單的邏輯是要 PM2.5 > xxx 比 < xxx 多 yyy 次, 才會起動 relay, 當反過來時,就會關掉 relay
備註:此邏輯僅提供參考,不確定正確,請自行 debug