基于物聯(lián)網(wǎng)的火災報警系統(tǒng)使用NodeMCU ESP8266
火災報警系統(tǒng)現(xiàn)在非常普遍,通常安裝在銀行,商店,辦公室,家庭等。他們發(fā)現(xiàn)了火災,并發(fā)出了響亮的警報通知大家。但是如果沒有人聽到警報聲,比如在晚上或者沒有人在家的時候呢?因此,為了向當局通報任何火災事件,我們正在建立一個基于物聯(lián)網(wǎng)的火災報警系統(tǒng),該系統(tǒng)不僅可以觸發(fā)警報,還可以向有關人員發(fā)送電子郵件警報。這種方法還可以在發(fā)生火災時自動通知消防部門。在這里,我們將使用紅外火焰傳感器探測火災,并使用ESP8266 NodeMCU觸發(fā)警報,并借助SMTP服務器發(fā)送電子郵件。該項目還可以進一步擴展到在火災時借助GSM模塊撥打電話或發(fā)送短信。
組件的要求
?NodeMCU ESP8266
?Micro USB數(shù)據(jù)線
?火焰?zhèn)鞲衅?
?跳線
?蜂鳴器
?電路試驗板
NodeMCU ESP8266
ESP8266 NodeMCU是一個開源的物聯(lián)網(wǎng)平臺。它包括運行在expressif Systems低成本支持Wi-Fi的ESP8266 Wi-Fi SoC上的固件,以及基于ESP-12模塊的硬件。它具有GPIO, SPI, I2C, ADC, PWM和UART引腳,用于通信和控制附加到它的其他外設。板載NodeMCU具有提供USB到TTL功能的CP2102 IC。
在這個物聯(lián)網(wǎng)火災報警器中,我們使用一個GPIO引腳從火焰?zhèn)鞲衅鳙@取數(shù)字數(shù)據(jù)。
火焰?zhèn)鞲衅?/strong>
火焰?zhèn)鞲衅魇且环N用于探測周圍是否有火的裝置。有許多類型的火焰?zhèn)鞲衅?,如紅外火焰?zhèn)鞲衅?,紫外線火焰?zhèn)鞲衅鞯取T谶@個項目中,我們將使用紅外火焰?zhèn)鞲衅鱽硖綔y火災。
紅外火焰?zhèn)鞲衅饔梢粋€涂有黑色環(huán)氧樹脂的光電二極管組成,這使得它對波長在700nm到1mm之間的紅外輻射敏感,并且可以在60度的探測角度內探測到距離為100cm的火焰。該光電二極管基于三端YG1006 NPN光電晶體管。
包括“火”在內的每個物體都會發(fā)出一定數(shù)量的紅外線,這些紅外線可以被光電二極管探測到。在光電二極管上連接一個運算放大器來檢測電壓的變化。如果檢測到的電壓為零,則給出數(shù)字輸出“1”,如果在火災情況下檢測到某些電壓,則給出數(shù)字輸出“0”。
配置SMTP2GO在火災探測時發(fā)送郵件
SMTP(簡單郵件傳輸協(xié)議)是一個用于自動發(fā)送和接收來自遠程位置的大量電子郵件的平臺。由于其快速可靠的服務,開發(fā)者和營銷人員主要使用它來節(jié)省他們的時間,以一種安全的方式發(fā)送電子郵件。它的服務器和數(shù)據(jù)中心遍布世界各地,這有助于它選擇最近的服務器,從而在發(fā)送和接收電子郵件時提供最快的連接。它可以用于物聯(lián)網(wǎng)項目,在發(fā)生特定任務時自動發(fā)送電子郵件。在這個項目中,當火焰?zhèn)鞲衅鳈z測到火災時,我們將使用SMTP2GO發(fā)送電子郵件警報。
設置SMTP2Go:
登錄,點擊Try SMTP2GO Free。
填寫您的姓名,電子郵件id和密碼的詳細信息,并點擊提交。然后,它將重定向到一個頁面,要求您激活SMTP2GO。
轉到您的郵箱,點擊SMTP2GO收到的郵件。點擊激活帳戶。
現(xiàn)在輸入用戶名,即您的電子郵件id和密碼。您的用戶名將打開一個新頁面。將這些用戶名和密碼保存在記事本文件中,這將在稍后的Arduino IDE代碼中用到。現(xiàn)在點擊設置,然后點擊用戶。將打開一個包含您的用戶名和SMTP服務器詳細信息的新頁面。保存SMTP服務器和SMTP端口,因為這些將在Arduino代碼中用于與SMTP服務器連接。
編碼為Base64值
在將用戶名和密碼發(fā)送到SMTPTOGO服務器之前,我們需要將它們編碼為Base64。
這里只需輸入要編碼為base64的用戶名和密碼,然后單擊encode以生成編碼值。復制并保存已編碼的值。
例如,如果您的用戶名是,那么在給定的文本區(qū)域輸入此用戶名,然后單擊“編碼”。編碼后的base64值為“cGFzc3dvcmQ=”。對于密碼也同樣如此。
線路圖
這個基于物聯(lián)網(wǎng)的火災報警器的電路圖只包括三個組件- NodeMCU,火災傳感器和蜂鳴器。
工作原理和代碼說明
按照電路圖中的規(guī)定進行連接,并復制本教程末尾給出的完整代碼。然后使用Arduino IDE將代碼上傳到NodeMCU中?;鹧?zhèn)鞲衅鬟B接在D0引腳,為NodeMCU提供數(shù)字輸入,蜂鳴器連接在D1引腳,從NodeMCU獲得數(shù)字輸出。如果火焰?zhèn)鞲衅鳈z測到火災,則給出“0”,NodeMCU打開蜂鳴器,并自動向使用SMTP2GO的人發(fā)送警報電子郵件。
如前所述,在本教程的末尾給出了完整的代碼。這里我們將解釋代碼的工作原理。
首先包括所需的庫,并為Wi-Fi SSID和密碼定義變量,以初始化Wi-Fi連接。由于我們需要連接到SMTP服務器,因此聲明了一個帶有服務器地址的變量。D0是NodeMCU上的引腳,用于火焰?zhèn)鞲衅鞯臄?shù)字輸入。
下面的代碼用于連接到Wi-Fi網(wǎng)絡并在串行監(jiān)視器上顯示狀態(tài)消息。
這里我們將火焰?zhèn)鞲衅鞯臄?shù)字輸入存儲在一個變量中。如果輸入為“0”(低),則表示火焰傳感器已檢測到火災,并使用sendEmail()函數(shù)發(fā)送電子郵件。
Client.connect()是使用SMTP Server和SMTP Port連接SMTP服務器的函數(shù)。如果連接建立成功并使用EHLO命令確認服務器,則給出“1”。
現(xiàn)在將編碼的用戶名和密碼發(fā)送到服務器。保存在記事本文件中的SMTP2GO中的用戶名和密碼被編碼為base64值。編碼為base64值的過程已經(jīng)在上面解釋過了。
認證成功后,完整的電子郵件將由“To”、“From”、“Subject”、“Body”等字段組成。
數(shù)據(jù)發(fā)送完成后,發(fā)送QUIT命令完成郵件發(fā)送。
這就是如何通過使用三個組件輕松制作低成本物聯(lián)網(wǎng)火災報警系統(tǒng)。
本文編譯自iotdesignpro