商朝歌,黃義定,海 濤
(南陽師范學(xué)院 機(jī)電工程學(xué)院,河南 南陽 473061)
由于物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,傳感器采集的數(shù)據(jù)已經(jīng)可以實(shí)時地進(jìn)行無線傳輸.由于其精確、迅速、可靠性高、成本低、研發(fā)周期短等優(yōu)點(diǎn)成為近幾年的熱點(diǎn)行業(yè).本文采用ESP8266-ModeMCU、DHT11溫濕度傳感器、MQ-2煙霧氣敏傳感器、蜂鳴器和LED燈等元器件,設(shè)計(jì)出一個報警器,報警器可以采集溫度、濕度和可燃性氣體密度的參數(shù),實(shí)時檢測周圍環(huán)境[1].采用了無線信息傳輸技術(shù),同時具有結(jié)構(gòu)簡單,成本低等優(yōu)點(diǎn),因此可以廣泛應(yīng)用于智能倉儲系統(tǒng)、智能工廠系統(tǒng),作為物聯(lián)網(wǎng)中的基本模塊,對于改進(jìn)工業(yè)生產(chǎn),提高生產(chǎn)智能化具有重要意義.
系統(tǒng)以ESP8266-ModeMCU為核心,將溫濕度和可燃性氣體密度通過ESP8266-ModeMCU上的WiFi模塊傳輸?shù)桨头ㄔ破脚_,通過巴法云平臺或者微信小程序可以實(shí)時監(jiān)控溫濕度和可燃性氣體密度數(shù)值[2],并且可以在巴法云平臺或者微信小程序上對環(huán)境現(xiàn)場實(shí)現(xiàn)遠(yuǎn)程智能控制,如LED燈的開關(guān)狀態(tài)或其他控制接口功能等,如圖1所示.各部分主要功能是:
圖1 功能設(shè)計(jì)框圖
1.1 DHT11溫濕度傳感器[3]和MQ-2煙霧氣敏傳感器[4]實(shí)時檢測周圍的溫度、濕度和可燃性氣體密度,并將數(shù)據(jù)通過ESP8266-ModeMCU的WiFi模塊實(shí)時地傳送到巴法云平臺,并且固定時間每3 s檢測更新一次.
1.2 通過程序設(shè)計(jì)溫度、濕度和可燃性氣體密度的閾值,當(dāng)溫度、濕度或者可燃性氣體密度其中一個或者多個超出設(shè)定值時,蜂鳴器發(fā)出聲音,用來提醒用戶,也可通過控制加濕器[5]風(fēng)扇和排氣扇等設(shè)備,從而使溫度、濕度和可燃性氣體密度回到設(shè)定值的閾值,從而使蜂鳴器停止發(fā)聲.
1.3 通過云平臺或者微信小程序也可實(shí)現(xiàn)遠(yuǎn)程控制,本文用LED燈的熄滅來模擬此功能.
本文硬件電路包括三部分:電源模塊,ESP8266-ModeMCU模塊,傳感器模塊.電路原理圖如圖2.
圖2 電路原理圖
2.1 無線報警器電源模塊設(shè)計(jì)
電源模塊采用直流電池供電,供電電壓為4.5 V,采用DC/DC電源模塊為系統(tǒng)提供3 V電壓,其電路原理如圖3所示.
圖3 電源模塊原理圖
2.2 ESP8266-ModeMCU模塊設(shè)計(jì)
ESP8266-ModeMCU是一種集成了WiFi功能的開發(fā)板,能直接和WiFi相連.它可以用C語言進(jìn)行編寫代碼,還可以直接進(jìn)行燒錄,而且擁有許多的庫函數(shù)可以直接進(jìn)行調(diào)用.本設(shè)計(jì)便是采用的這種開發(fā)環(huán)境.模塊以ESP8266-ModeMCU芯片為核心,包括時鐘電路、復(fù)位電路、GPIO接口電路等.
2.3 傳感器模塊設(shè)計(jì)
該模塊包括DHT11溫濕度傳感器、MQ-2煙霧氣敏傳感器、蜂鳴器和LED燈電路設(shè)計(jì),其電路原理如圖4所示.
圖4 DHT11溫濕度傳感器原理圖
3.1 ESP8266-ModeMCU接入WiFi網(wǎng)絡(luò)
ESP8266-ModeMCU芯片自帶WiFi接入功能模塊,首先加載ESP8266WiFi,設(shè)置添加WiFi的名稱和密碼,核心程序?qū)崿F(xiàn)如下:
#include
const char* ssid = "TP-LINK_310C";//修改為自己的WiFi名字
const char* password = "l1234567";//修改為自己的WiFi密碼
3.2 ESP8266-ModeMCU接入云平臺
對于ESP8266-ModeMCU作為客戶端,接入MQTT服務(wù)器,如圖4所示.
圖5 MQTT客戶端—服務(wù)器
接入巴法云平臺,部分程序如下:
const char* mqtt_server = "bemfa.com";//默認(rèn)MQTT服務(wù)器地址
const int mqtt_server_port = 9501;//默認(rèn)MQTT服務(wù)器端口
#define ID_MQTT "16a0b18fd9544e6338e5455304a9ce65"http://MQTT客戶端ID,修改為自己的開發(fā)者密鑰
const char* topic = "light";//Led主題名字,在巴法云控制臺自行創(chuàng)建,名稱隨意
const char * dhttopic = "sht11";//溫濕度主題名字,在巴法云MQTT控制臺創(chuàng)建
在巴法云官網(wǎng),登錄之后,找到控制臺,可以找到自己的私鑰[6],如圖6所示.
圖6 獲取私鑰
在MQTT設(shè)備云創(chuàng)建主題,如圖7所示.
圖7 創(chuàng)建主題
3.3 DHT11溫濕度傳感器的程序設(shè)計(jì)
DHT11溫濕度傳感器的DATA端口接ESP8266的D4端口,VCC和GND端口分別接ESP8266的3.3V和GND端口.
#include
dht11 DHT11;//定義傳感器類型
#define DHT11PIN 2//定義傳感器連接引腳.此處的PIN2在ModeMcu8266開發(fā)板上對應(yīng)的引腳是D4
double Fahrenheit(double celsius)//下面幾段程序是把攝氏溫度轉(zhuǎn)換為華氏溫度和開氏溫度[7]
{
return 1.8 * celsius + 32; }
double Kelvin(double celsius)
{
return celsius + 273.15; }
void setup()
{
Serial.begin(115200);//設(shè)置波特率為115200
Serial.println(" ");
Serial.println("esp8266讀取DHT11傳感器數(shù)值 ");
Serial.println("串口會分別打印當(dāng)前濕度(%),當(dāng)前攝氏溫度,當(dāng)前華氏溫度和當(dāng)前開氏溫度 ");
Serial.print("DHT11庫文件版本: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
}
void loop()
{
Serial.println(" ");
DHT11.read(DHT11PIN);//更新傳感器所有信息
Serial.print("當(dāng)前濕度(%): ");
Serial.println((float)DHT11.humidity, 2);
Serial.print("當(dāng)前溫度(℃): ");
Serial.println((float)DHT11.temperature, 2);
Serial.print("當(dāng)前溫度(℉): ");
Serial.println(Fahrenheit(DHT11.temperature), 2);
Serial.print("當(dāng)前溫度(K): ");
Serial.println(Kelvin(DHT11.temperature), 2);
delay(2000);//每兩秒打印一次
}
4.1 無線報警器的功能測試
本系統(tǒng)是在Arduino IDE環(huán)境下開發(fā)的Arduino IDE軟件支持C語言的編程,運(yùn)用方便.在完成程序編寫和燒錄之后,還需對其各部分功能進(jìn)行驗(yàn)證,MQ-2煙霧氣敏傳感器通電后,需要預(yù)熱20 s左右測量的數(shù)據(jù)才穩(wěn)定.查看目前的溫度和濕度,并且與自己設(shè)定的報警值相比較,若當(dāng)前溫度沒有超過閾值,可以去干預(yù)DHT11傳感器,讓溫度和濕度超過報警值,測試蜂鳴器是否可以報警.可燃性氣體濃度可以人為干預(yù)或者修改程序,超過閾值時,蜂鳴器是否會觸發(fā)報警.查看巴法云平臺是否接收到數(shù)據(jù),從云平臺是否可以控制LED燈.如圖8所示.
圖8 巴法云平臺接收數(shù)據(jù)
4.2 微信小程序的測試
運(yùn)行微信小程序,查看是否接收到數(shù)據(jù),是否可以控制LED燈,如圖9所示.
圖9 微信小程序界面
本設(shè)計(jì)是以ESP8266-ModeMCU為控制器件,將溫濕度和可燃性氣體濃度數(shù)值發(fā)送到云平臺,實(shí)時監(jiān)控環(huán)境數(shù)值,報警系統(tǒng)采用蜂鳴器,LED作為控制模擬.本系統(tǒng)設(shè)計(jì)簡單,運(yùn)用的硬件少,性能可靠穩(wěn)定,成本低,可廣泛應(yīng)用于智能倉儲、智能工廠等應(yīng)用場景中,具有較高的應(yīng)用價值.