||
傳統的可燃氣體監測儀為單機設備,只能檢測一定區域的范圍并在此范圍內發出警報,在一般情況能夠達到火災報警的需要。但在一些夜間無人值守的區域如倉庫、變電站、商場、燃氣管道等,單機的設備即使發出警報也不能及時傳達到人們手中,等人們發覺時往往已經造成了不可挽回的損失。針對這種情況,傳統的報警器已經不再適用,需要能夠接入網絡并實時監測且能夠及時發送報警信息至安全員手中的新一代設備,下面我們將開啟新一代設備的開發實現之路,請看后續內容。
本案例基于百度云物接入功能實現,開發者需要注冊百度云并開通物接入服務,關于百度云物接入服務后續有詳細介紹。
代碼說明目錄 | 說明 |
---|---|
TiJOSApp | TiJOS應用源碼, 通過Eclipse(Ti-Dev Studio)打開, 可運行于TiKit開發板 |
Android | 對應的Android應用源碼, 可通過AndroidStudio打開 |
名稱 | 功能 |
---|---|
ESP-8266 | 核心開發板 |
TiOLED_UG2864 | 顯示屏 |
TiRelay | 繼電器 |
TiLED | LED燈 |
TiMQ2 | 溫濕度計 |
TiDHT | 可燃氣體感應器 |
TiButton | 按鍵 |
TiBuzzer | 蜂鳴器 |
上面列表為開發中所用到的硬件傳感器部分,請參照文檔《GasMonitoring可燃氣體監測儀例程》中的描述連接好開發板上的傳感器,請確保連接正確,避免出現短路損壞開發板或傳感器。
新一代設備可通過Wifi或GPRS接入互聯網,實時上傳當前溫濕度和報警數據。ESP-8266支持Wifi快速接入,如需GPRS接入可外加模塊。
功能介紹通過架構圖我們可以看到整個架構分為三大部分,硬件設備、IOT Hub、監控端。硬件設備部分基于ESP-8266開發板開發并連接溫濕度計、復位按鈕、繼電器、Led燈、顯示屏幕、蜂鳴器、可燃氣體感應器等外設。ESP-8266自帶Wifi模塊可接入無線網絡,能夠滿足聯網需求。在工作狀態下ESP-8266通過可燃氣體感應器監測周圍環境,當監測到可燃氣體時ESP-8266會收到監測事件,控制蜂鳴器發出聲音以及Led燈閃爍并切斷繼電器電源。同時在聯網情況下通過Wifi向云端IOT Hub發送警報信息,由IOT Hub將警報通知到相關人員手中。在警報解除前如果按下復位按鈕則關閉蜂鳴器,但Led燈和繼電器以及可燃氣體感應器仍然為警報狀態,這種狀態會一直持續到警報解除才會復位。溫濕度計實時采集當前環境數據并顯示在屏幕外設上,在聯網狀態下會每10秒向IOT Hub發送一次,方便相關人員了解當前的實時溫濕度。IOT Hub部分使用百度云的物接入功能,基于MQTT協議可以方便快捷的傳輸數據。物接入中有相關的設備管理、密鑰管理和訪問規則控制等功能,能夠很好的維護設備的關聯關系。監控端部分分為手機端監控和PC端監控,手機端適合人員在不固定的場景情況下隨時接收警報信息,PC端適合有固定的場景如監控室或中心實時監測環境。
開通百度云首先訪問百度云官網注冊賬戶并進入管理控制臺,在百度云管理控制臺中開通物接入服務(注:使用百度云下的服務需要對賬戶進行實名認證,請自行參考官方說明進行實名認證)。物接入服務成功開通后進入物接入控制臺創建實例,實例名稱任意,此處取名GAS,創建成功后點擊實例名稱進入實例控制臺并在實例控制臺下創建設備、身份、策略等操作。實例下會自動生成三個broker地址,可通過不同的協議連接對應的地址。
tcp://gas.mqtt.iot.bj.baidubce.com:1883
ssl://gas.mqtt.iot.bj.baidubce.com:1884
wss://gas.mqtt.iot.bj.baidubce.com:8884
首先創建策略,即為設備分配相應的Topic以及設置相關權限,此處創建兩個策略分別為gas、admin,策略主題如下。
其次創建身份:1.創建身份,輸入名稱,由于是為設備創建授權,名稱建議與硬件設備名稱一致。2.設置策略,選擇前面創建的策略gas即可。3.確認信息,保存好密鑰信息,設備連接需要驗證密鑰。
在創建完設備esp8266-000001身份后繼續創建設備admin的身份,策略選擇admin即可。
繼續創建設備:1.創建設備,輸入的名稱與硬件中獲取的設備名稱保持一致,假設此處為esp8266-000001。2.設置身份,選擇esp8266-000001即可。3.設置策略,點擊確認即可。
下面將創建admin設備,admin設備是手機端管理和接收報警信息角色。創建過程同TIJOS設備創建一樣,名稱為admin,身份選擇admin即可。
至此百度云配置完畢,下面將轉入源碼進行編譯。
代碼編譯
從GitHub下載已完成的代碼,通過Ti-Dev Studio導入到Workspace中(注:Ti-Dev Studio工具的安裝請參考文檔《Ti-Dev Studio用戶手冊》)。在Ti-Dev Studio中可以看到工程基于TiJOS Framework開發,所有源碼和API都是Java代碼,依托于Java的跨平臺特性,我們可以將代碼運行在任何硬件平臺上。TiJOS Framework對各種外設傳感器做了抽象封裝,通過API可方便快捷的操作外設硬件。下面將修改工程源碼進行上線前調試。
轉到包net.tijos.gas.mqtt下找到BaiduMqttService類,BaiduMqttService類包含基于MQTT協議的接入百度云的代碼,在代碼前面部分有與連接相關的常量參數,分別對應設備名稱、broker地址、用戶名、用戶密碼。將參數修改為我們前面百度云物接入配置對應的數據,然后保存。接著將修改后的代碼下載至設備中,下載步驟選中工程右鍵彈出菜單點擊Run as --> TiJOS Application實時下載至硬件中。
代碼中的數據修改完后轉入Ti-Device Manager工具下,Ti-Device Manager能夠自動檢測COM端口識別硬件。在Ti-Device Manager點擊刷新后選中設備,然后點擊工具欄設備屬性按鈕,切換到WLAN頁面下進行配置。WLAN頁面下的信息為Wifi連接配置信息,請輸入正確的配置信息確保硬件在上電后能夠自動連接Wifi接入網絡。
手機端監控基于Android平臺開發,從GitHub下載手機端監控代碼,使用Android Studio導入。在Android Studio中我們可以看到監控端的工程信息和代碼,代碼不用修改即可直接編譯使用,通過Android Studio直接安裝至手機端并運行。運行后進入登錄界面,提示輸入broker地址以及用戶名和密碼,此處信息輸入在百度云物接入中創建的admin用戶和密鑰然后登錄。成功登錄后跳轉到監控臺,可以看到當前實時的狀態以及溫濕度等信息,當收到警報是監控臺會立刻發出聲音和震動通知使用者。監控臺中有靜音按鈕,與設備上復位按鈕作用相同,用于發生警報時關閉設備蜂鳴器聲音。
至此,基于物聯網的新一代可燃氣體監測儀的開發設計介紹完畢,按照此方案設計出來的產品已達到火災警報,溫濕度監測以及數據實時處理等功能需求。在實際應用中,如要對硬件擴展功能,只需購買相應的外設接入硬件,在代碼中調用相關api即可,詳細介紹請觀看TiJOS相關教程。