花 1 小時,開源設計 LoRa 煙感煙霧報警器

提示1:銳米全部 LoRa 產品嚴格遵循國標標準的 LoRaWAN 協議
提示2:您能夠免費複製,修改和商用本項目,請註明銳米原創
提示3:若是您有其餘 LoRa 需求或建議,歡迎聯繫銳米 support@rimelink.comhtml

LoRa 煙霧報警器

LoRa 煙霧報警器智能判斷火災,基於 LoRa 傳送到服務器和 App,既可現場聲光報警,又能夠遠程聯網報警。
物聯網 Arduino LoRa LoRaWAN 煙霧報警git

運行效果

以下圖所示,偵測到煙霧濃度超過閾值,LoRa 煙霧報警器進行聲光報警,經過 LoRa 發送消息,App 顯示本次火災事件。github

項目介紹

全國每一年大約會發生 23 萬起火災,有近 2000 人死於火災,經濟損失高達 200 億元,防火從古以來都是社會的基本需求。算法

LoRa 煙霧報警器能預先感知火災,現場聲光報警,通知周圍的人們;更重要的是,它能遠程聯網報警,及時通知處理火情;聯網使它維保便捷---故障自檢,電池容量等服務器

LoRa 煙霧報警器能夠部署在:家庭,學校,酒店,寫字樓,工廠,倉庫,古建築等場景。網絡

LoRa 智慧消防系統app

無線設計 安裝便利ide

相比傳統的產品,LoRa 煙霧報警器具有的優勢爲:oop

  • 安裝簡單便捷,不須要佈線
  • 遠程報警,維保便捷
  • 成本低廉,沒有流量費用
  • 超低功耗,2節5號電池工做數年

本項目==開源設計 LoRa 煙霧報警器的核心---軟件和硬件==,用戶選擇一個漂亮的外殼和電池,便可組成一個產品。
同時,簡介了 LoRa 網絡組件,輕鬆構建一個商用的智慧消防物聯網。ui

組件和材料

LoRa 擴展板 x 1 採購連接

Arduino UNO x 1 採購連接

光電式煙霧傳感器 x 1 採購連接

蜂鳴器 x 1 採購連接

(220歐姆電阻x2 + 10M歐姆電阻x1) 採購連接

天線 x 1 採購連接

杜邦線 x 8 採購連接

LED x 1 採購連接

麪包板 x 1 採購連接

軟件和網絡

LoRa網關 採購連接

LoRaServer 下載連接

LoRaApp 下載連接

Arduino IDE 下載連接

技術細節

元器件介紹


這是專爲 Arduino 而設計的 LoRa 擴展板,既能夠安裝在 Arduino UNO 上,也能使用杜邦線鏈接到 Arduino Pro Mini。

它能達到==空曠 10km 的通訊距離,休眠電流僅 1.3uA==。精心設計的軟件庫,使其開發極爲容易:

  • 發送數據
LoRa.write("123", 3);
  • 接收數據
if (LoRa.availabe()) { 
    len = LoRa.read(buf, MAX_LEN); 
}


Arduino UNO 是最經常使用的開發板,它便宜簡單,接線方便。


光電式煙霧傳感器,經過一束紅外光和一個光敏感應器來測量煙的濃度,功耗低,成本低,穩定可靠。


470MHz 膠棒天線,增益 3.5dB,特別適合中國 LoRa 頻段範圍(470~510MHz)。

硬件接線

以下圖所示,使用杜邦線鏈接 Arduino、光電式煙霧傳感器、LED和蜂鳴器。

  • 光電式煙霧傳感器的紅外發光二極管串聯 220 歐姆的電阻
  • 光電式煙霧傳感器的光電二極管串聯 10M 歐姆的電阻
  • 蜂鳴器和 LED 串聯 220 歐姆的電阻

通訊邏輯

以下圖所示,LoRa 煙霧報警器上報煙霧濃度給服務器和 App

爲此,須要配置以下的網絡組件:

行業第一的超低功耗---休眠僅 1.4uA

以下圖所示(實物拍攝),ArduinoLoRa+ 的低功耗可達 1.4uA,這不只是==行業第一的超低功耗,並且達到了器件極限==!

以下圖所示,2 節 5 號鹼性電池容量約 2890mAH,由於 LoRa 煙霧報警器是」平時休眠,觸發供電「,設平均 10 分鐘工做一次,電池可工做近 6 年。終端電池壽命計算器

Arduino 代碼

編譯本工程須要添加LoRa 驅動庫

使用 Arduino IDE 打開工程,點擊"Sketch -> Include Library -> Add .ZIP Library..."

Arduino 的 zip 庫安裝路徑通常爲:C:\Users\Administrator\Documents\Arduino\libraries

Arduino 的代碼簡潔,容易理解,下載連接

  • DEBUG 設置爲 0 禁止調試功能;設置爲 1 它將經過 8 和 9 兩個引腳打印調試信息(使用「USB轉串口」鏈接到 PC)
  • 哨兵觀察與快速採樣算法原理:無煙時每秒僅讀取 1 次,一旦發現煙霧濃度超過閾值(哨兵觀察),以每 0.12 秒頻率快速採集 16 次,計算煙霧濃度平均值。
#include <lora.h>

lora LoRa;

const int buzzerPin = 13;
const int photodiodePin = 0;  // A0
const int smokeThreshold = 80;  // 0 <= no smoke < 80, 80 < thin smoke < 200, 200 < thick smoke <= 1023 

#define DEBUG    0  // 0=disable, 1=enable

#if DEBUG
#include <SoftwareSerial.h>
SoftwareSerial debugSerial(8, 9);  // 8=RX, 9=TX
#endif

void setup()
{
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(115200);  // for LoRa Node
#if DEBUG
  debugSerial.begin(115200); // for debug
#endif
}

void loop()
{
  // perfect interval for Arduino watchdog timer is: 15, 30, 60, 120, 250, 500, 1000, 2000, 4000, 8000
  #define FAST_SAMPLE_INTERVAL      120   // 120ms
  #define NORMAL_SAMPLE_INTERVAL    1000  // 1000ms
  #define SAMPLE_NUMBER             16
  
  int val, sum;
  int array[1];
  
  val = analogRead(photodiodePin);
#if DEBUG  
  debugSerial.println(val);
#endif  
  if (smokeThreshold < val)  // sentry observation
  {
    // Check fire danger after sentry alert
    sum = 0;
    for (int count = 0; count < SAMPLE_NUMBER; ++count)
    {
      val = analogRead(photodiodePin);
      sum += val;
      delay(FAST_SAMPLE_INTERVAL);
    }

    val = sum / SAMPLE_NUMBER;  // get the average value
    if (smokeThreshold < val)
    {
      array[0] = val;
      LoRa.write(array, sizeof(array));
      
      digitalWrite(buzzerPin, HIGH);
      delay(3000);
      digitalWrite(buzzerPin, LOW);

    #if DEBUG
      debugSerial.print("get fired, val = ");
      debugSerial.println(val);
    #endif
    }
  }
  
  delay(NORMAL_SAMPLE_INTERVAL);
}

低成本批量生產

LoRa 煙霧報警器的==硬件成本約 ¥60==,這依賴於批量數目和供貨渠道。

批量生產的一些技術挑戰:尺寸,成本,功耗,燒錄,升級
咱們爲您準備好解決方案:低成本快速開發LoRa終端:從1到10000

工做原理

光電式煙霧傳感器原理

  • 光電式煙霧傳感器由光學模塊和一個黑暗的煙霧迷宮組成。光學模塊採用紅外發光二極管(IRED)和光電二極管(PD),2 者的位置是偏離的。
  • 無煙狀況下,IRED 沿腔室直線發送光束(相似於激光指示器),PD 接收不到紅外光,不產生光電流
  • 有煙狀況下,煙霧粒子會將部分光束散射到 PD 上,使其阻抗發生變化,產生光電流

光電式煙霧傳感器實物與內部結構


光電式煙霧傳感器工做原理

計算 IRED 串聯電阻

紅外發光二極管(IRED)須要一個串聯電阻來控制電流,不然它會很快燒壞

與 IRED 串聯的電阻被用於控制 IRED 導通時的電流量。爲了計算電阻值,須要知道輸入電源電壓(Vs,Arduino UNO 爲 5V,有些 Arduino Pro Mini 爲 3.3V),IRED 的正向電壓(Vf)和流過 IRED 的電流(I)的數值。
其電阻歐姆值的計算公式(稱爲歐姆定律)爲:

R = (Vs - Vf) / I

在本設計中,用 5V 的輸入電源電壓和 15mA 電流來驅動正向電壓爲 1.8V 的 IRED 會使用如下值:

Vs = 5V, Vf = 1.8V, I = 0.015A

代入公式則有

R = (5V - 1.8V) / 0.015A = 213 歐姆

231 歐姆不是一個標準電阻值,因此把它取整爲 220 歐姆。

該電阻器如接線圖所示鏈接在電源和 IRED 的陽極之間,但它也能夠被鏈接到 LED 的另外一側(陰極和地之間)。

Arduino 的引腳具備 40mA 的額定最大電流。若是 IRED 須要比這更大的電流,這須要使用晶體管驅動電路。

計算 PD 串聯電阻

以下圖所示,光電二極管是加反向電壓,無光時,反向電阻爲無窮大;若是有光照,反向電阻隨光照強度減少。
(若是和普通二極管同樣加正向電壓,光電二極管只有單向導電性,沒法表現出它的光電效應。)

A0 模擬計數的值由負載電阻 R 和 PD 的阻抗決定,即有:

analogRead() = 1023 * R / (R + PD)

在本設計中選用的負載電阻 R 爲 10M 歐姆,所以有:

  • 無光時,PD 阻抗爲無窮大,analogRead() 讀數爲 0~80
  • 弱光時,PD 阻抗約爲 80M 歐姆,analogRead() 讀數爲 80~200
  • 強光時,PD 阻抗約爲 1K 歐姆,analogRead() 讀取爲 200~1023

延伸應用

  • 下降功耗
    如上設計所示,紅外發光二極管的工做電流達到 15mA,要提高電池的續航時間,這須要下降電流。

    一種可行的辦法是間歇驅動,如以每秒 1ms 的脈衝,因爲它的佔空比爲 1/1000 秒,15mA 電流除以 1000,平均僅 15µA 的電流。

  • 提升靈敏度
    行業裏,用戶常常抱怨煙霧報警器靈敏度很差 --- 對着設備點香菸也不報警!

    爲此,能夠經過 LoRaApp 下行設置報警閾值,這樣,能夠按用戶的意願對煙霧濃度作出反應。

  • 避免誤判
    電路的噪音可能致使光電二極管阻抗變化,爲避免誤判火災,這須要軟件在檢測到光電流後,屢次採樣屢次判斷

  • 及時靜音
    當煙霧報警器蜂鳴器響起後,持續的高分貝聲音會讓周圍的人們難受。除了添加按鈕靜音外,還能夠經過 LoRaApp 下行設置靜音,後者特別適合不方便接觸設備的場景。

  • 檢測電池容量
    電池容量對於 LoRa 煙霧報警器的維保意義重大。下面連接的方法可讓 LoRa 煙霧報警器定時檢測電池容量,LoRaApp 實時顯示和低壓提醒。
    花 1 小時,開源設計 LoRa 檢測電池容量

相關文章
相關標籤/搜索