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