999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Arduino的物聯網家居硬件系統設計與實現

2023-03-06 13:07:14謝明瑋李里程彭善瓊
物聯網技術 2023年2期
關鍵詞:功能模塊用戶功能

謝明瑋,李里程,彭善瓊

(湖南第一師范學院 計算機學院,湖南 長沙 410205)

0 引 言

現階段物聯網家居系統主要采用硬件模塊化設計,系統由單片機、低功耗通信硬件等組成,在房間或區域部署不同類別的傳感器,用于監測溫度、氣體等環境數據,并利用手機終端APP客戶端分析數據后將數值反饋給使用者,例如NEST HOME系統、“智能家庭”系統等。這些系統的弊端是硬件價格高昂,因此,本文嘗試利用近些年在國內外創客領域、高校流行的開源硬件平臺技術[1-5],設計與構建了一款融合多傳感器的物聯網家居硬件“IoT家居小盒子”及配套軟件,以探索低成本物聯網家居硬件系統開發的可行之道。

1 系統整體設計

系統由硬件控制子系統、軟件操作子系統構成。兩個系統共同實現了輸入設備的信號采集與分析功能。硬件控制子系統通過開發板與傳感器、執行件等電子零件連接,實現環境數據的采集檢測與用戶反饋等功能。軟件操作子系統在硬件控制子系統的基礎上,采用藍牙模塊,以無線傳輸的方式將數據反饋至手機端應用程序,便于用戶不受時間、位置等限制查看居家環境信息。系統總體架構設計如圖1所示。

圖1 系統總體架構

2 子系統詳細設計

硬件控制子系統由Arduino開發板(主控制器)、傳感器模塊、執行件模塊、紅外遙控模塊組成,如圖2所示。

圖2 硬件控制子系統架構

傳感器模塊用于系統獲取環境檢測數值,傳感器一般有3個引腳,一個正極、一個負極和一個數據接口,它與Arduino開發板的連接十分便捷,對應正負極,確定傳感器的數據傳輸為模擬信號或數字信號,再將數據引腳連接至開發板相應區域的接口處即可。硬件控制子系統使用的傳感器模塊主要包括以下內容[6-7]:

(1)LM35溫度傳感器,用于監測環境溫度,輸出的電壓與溫度成線性關系,通過對溫度數值的判斷,系統可以提醒用戶注意天氣變化。

(2)DHT11濕度傳感器,用于監測環境濕度,輸出40 bit的監測數據,通過對環境濕度數據的提取,提醒用戶防潮或注意保濕。

(3)MQ135氣體傳感器,用于檢測環境空氣質量,可以探測空氣中是否含有氮氣、煙霧、硫化物等氣體,并且通知用戶當前環境的空氣質量等級,提醒用戶通風換氣;探測家中有害氣體,如煤氣、液化氣、天然氣等,用于家居安全保障,警示用戶家中煤氣泄漏等情況。

(4)火焰傳感器,利用紅外線接收管捕捉紅外波長從而檢測火焰值,同時可以檢測環境中的光線強度,一是可以預報火情,二是提醒用戶根據光線變化注意用眼衛生。

(5)振動傳感器,通過檢測硬件擺放位置附近與本體的微弱振動信號,反饋與告警用戶。

執行件模塊主要用于人機交互,提示用戶操作成功與否,顯示數據信息,為用戶提供良好的交互體驗。硬件控制子系統使用的執行件模塊主要包括以下內容:

(1)RGB模塊,采用HSB設置,通過色相/飽和度/亮度三要素發出不同顏色、不同明暗程度的燈光。通過不同燈光的切換,提醒用戶在按下遙控器按鍵之后,開發板接收到紅外遙控器傳送的編碼,給用戶一個交互成功的反饋信息。

(2)LED模塊,設定之后會顯示警示紅燈,當主控器監測到如火情、有害氣體濃度高等危險情況時,會立即閃爍,警示用戶注意安全。

(3)LCD模塊液晶屏采用I2C集成電路總線的串行通信方式,有串行數據線SDA和串行時鐘線SCL引腳,模塊主要顯示傳感器監測的數值,并告知用戶采取相應措施。

(4)8×8點陣屏,其由64個發光二極管組成,在用戶遙控進入不同的功能子模塊后,點陣屏會根據系統判斷的結果進入不同的場景,顯示不同的關聯圖標,實現交互目的。

(5)蜂鳴器,其與LED模塊類似,均在險情發生時警告用戶,當環境監測值達到風險閾值范圍后,蜂鳴器發出警報,長鳴告警用戶。

(6)揚聲器模塊,通過設定不同的頻率,可以產生不同的音調與旋律,提升設備使用的趣味性。

硬件具備單機按鍵使用和遠程遙控使用功能,通過紅外遙控模塊,用戶可以直接進行硬件功能切換。紅外遙控模塊流程如圖3所示。

圖3 紅外遙控模塊流程

在圖3中,硬件控制子系統設置了一個全局判斷變量,啟動系統之后會判別標志位,進入功能首頁,執行件中的LCD屏幕顯示歡迎界面。借助紅外遙控器按鍵切換功能,開發板上連接的紅外接收器會接收一個紅外編碼值,根據接收的編碼值對全局標志位進行變更,完成一輪控制,緊接著循環判斷標志位的值,進入相應的傳感器功能模塊,并開啟下一個傳感器的功能檢測。

軟件操作子系統是基于藍牙無線通信技術開發的一款安卓移動端應用程序。該程序可以通過手機藍牙模塊與低功耗藍牙模塊無線連接,從而實現軟硬件互聯互通。應用程序的功能界面可以顯示硬件傳遞的數據信息,并根據特定算法將數據信息有效利用,轉化為符合用戶閱讀習慣的圖文報告。軟件操作子系統的功能模塊設計如圖4所示。

圖4 軟件操作子系統功能模塊

3 硬件控制子系統

3.1 數據采集功能

硬件控制子系統需要獲取傳感器數據,之后對數據進行分析,最后驅動執行件依照分析結果響應。不同傳感器的硬件特性不同,獲取數據的格式也不相同,得到的數據均需進行處理,并使用不同的有效數值算法轉為可利用數值。以DHT11濕度傳感器數值獲取與轉換為例,在DHT.h文件代碼中,read_data()函數先將開發板的D9引腳拉低18 ms再拉高40 μs,通知DTH11傳感器輸入數據,DHT11傳感器收到信息后響應,向開發板傳輸1 B數據,存儲在data變量中。當DTH11傳感器出現持續50 μs的低電和20 μs的高電平時,傳輸數據為0,若高電平時長大于20 μs,則傳輸數據為1。divideData()函數將read_data()函數中讀取的字節放入dhtSensor數組,共4個字節,分別代表濕度整數位、濕度小數位、溫度整數位、溫度小數位,最后在loop()函數中以十進制顯示各字節數值。

3.2 用戶反饋功能

分析判斷傳感器的有效數據后,執行件根據判斷結果做出不同響應,實現硬件對用戶的反饋。以點陣屏執行件功能實現為例,硬件使用8×8點陣屏,該點陣屏由64個發光二極管組成,當某一列置1電平,某一行置0電平時,其對應的二極管發光。該模塊采用SPI協議與開發板通信,實現串行輸入與并行輸出控制點陣屏,因此可以基于點陣屏制作與展示簡易的圖標信息。開發點陣屏圖標顯示功能需要將點陣屏上的DIN數據接口、CLK時鐘接口、LTH鎖存接口分別連接到Arduino傳感器擴展板的數字4、5、6引腳,VCC、GND分別連接傳感器擴展板的任意一個正極、接地端口。以樹形圖標的制作為例,先將圖標的點陣編碼存在數組中,然后使用循環語句掃描點亮二極管。每個功能模塊中都會調用該功能模塊中對應的點陣屏顯示頭文件,并根據不同情形顯示不同的圖標,例如火焰報警模塊功能在安全環境中會顯示樹形圖標,當檢測到有危險的情況時,則會顯示警鈴圖標。

3.3 紅外遙控功能

要實現硬件控制子系統中的紅外遙控功能[8],在Arduino IDE中編寫紅外遙控測試代碼上傳到開發板后,可以按下遙控器按鍵,觀察ComMonitor串口監視器中是否接收到正確的遙控器編碼。其次,通過導入IRremote頭文件,定義紅外接收器引腳號SensorIRreceive,調用頭文件IRrecv類創建一個紅外接收對象IRrecv,在程序入口setup函數中開始運行監聽紅外代碼enableIRIn()函數,接著循環判斷,如果接收到紅外遙控器發出的紅外編碼就將其以十六進制的格式打印在串口監視框中,然后調用resume()方法開始重新監聽一段代碼,最后得到遙控器所有按鍵值的編碼。

得到所有遙控按鍵的編碼值后,為每個按鍵設置特定響應動作,本系統選取6個按鍵作為硬件的響應按鈕:PREV/NEXT按鍵,切換主功能模塊(主界面、顯示時間、播放音樂、顯示溫度、火焰報警、振動報警、紅外檢測);ENTER/BACK按鍵:硬件功能的確認與返回;VOL-/VOL+按鍵:調整硬件音量。調用IRremote頭文件中的控制函數,接收判斷紅外遙控編碼,增加自定義算法,實現標志位的變更。紅外遙控功能控制流程如圖5所示。

圖5 紅外遙控功能控制流程

4 軟件操作子系統

4.1 應用程序界面

手機端應用程序的主界面由軟件名稱、連接設備、硬件功能、簡介模塊構成[9]。具體界面設計如圖6所示。

圖6 Android端應用程序主界面

應用程序“IoT家居小盒子”主界面中的軟件名稱和功能簡介模塊由TextView控件構建,中間連接設備模塊是一個按鈕控件,硬件功能模塊區域是GridView布局,布局中鑲嵌多個按鈕子控件,每個按鈕子控件對應一個標志位,點擊某按鈕后,通過識別其標志位找到對應按鈕響應事件[10]。

4.2 藍牙通信功能

藍牙通信功能的實現需通過4個Java語言的源代碼文件,如圖7所示。newBleConnect文件的功能為注冊廣播,按鈕點擊事件中又分為連接設備、斷開設備、掃描附近設備等,這些模塊會發出不同的廣播信號。BluetoothClientService文件中的onCreate函數用于處理接收到的廣播信號;hanlder子線程用于發送廣播信號,可以將接收的數據發送至各功能模塊。manageConnectedSocket文件用于接發數據的處理,首先進行數據類型的轉換,run函數中接收緩沖區數據,將數據劃分,再發給對應的功能模塊,write函數發送指令給硬件控制程序,cancel函數中關閉socket傳輸流,close函數用于清空數據緩沖區。ConnectThread文件用于連接子線程。

圖7 藍牙通信功能的源代碼文件結構

4.3 功能模塊組件

針對應用程序功能模塊的實現,以有害氣體功能模塊為例,其使用界面如圖8所示。實時數據顯示389 ppm,可檢測的化合物包含一氧化碳、甲烷、丙烷、丁烷等,室內通風后,可從折線圖的示意中直觀感受有害氣體的含量持續下降。

圖8 有害氣體功能模塊界面

其他檢測功能模塊與有害氣體功能模塊的代碼結構類似,均包含2個函數,如圖9所示。onStart()函數用于接收廣播ACTION_DATA_TO_GAME和廣播ACTION_CONNECT_SUCCESS,其中廣播ACTION_DATA_TO_GAME用于接收數據的折線圖顯示,以及數據閾值判斷。廣播ACTION_CONNECT_SUCCESS用于通知其他模塊數據接收成功。onCreate()函數用于響應topBar和接收數據按鈕的點擊事件,在接收數據按鈕的點擊事件中會攜帶harmgas模塊的標識,發送廣播ACTION_DATA_SERVICE,然后在有害氣體功能模塊的界面中顯示有害氣體的濃度值。

圖9 有害氣體功能模塊的代碼結構

5 結 語

本設計采用了硬件控制子系統與軟件操作子系統相結合的方式,可以很好利用開源硬件平臺實現低成本的物聯網家居硬件系統開發。開發的設備原型經過長期測試,能夠滿足目標用戶的基本需求。現階段,硬件原型采集的所有數據都存于手機端應用程序,后期會通過搭建基于容器化技術的物聯網設備云平臺實現硬件與終端數據交互的遠程傳遞。

猜你喜歡
功能模塊用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關于非首都功能疏解的幾點思考
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
基于ASP.NET標準的采購管理系統研究
軟件導刊(2016年9期)2016-11-07 21:35:42
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
輸電線路附著物測算系統測算功能模塊的研究
M市石油裝備公服平臺網站主要功能模塊設計與實現
石油知識(2016年2期)2016-02-28 16:20:16
功能模塊的設計與應用研究
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 99re热精品视频中文字幕不卡| 91小视频在线| 国产91av在线| 久久香蕉国产线| 亚洲精品在线影院| 亚洲男人的天堂久久香蕉| 国产在线视频自拍| 欧美中文字幕一区二区三区| 国产91在线|日本| 亚洲精品综合一二三区在线| 91久久精品日日躁夜夜躁欧美| 欧美国产精品不卡在线观看| 日韩少妇激情一区二区| 玖玖精品在线| 在线观看无码av五月花| 91视频青青草| 亚洲精品无码日韩国产不卡| 九色综合伊人久久富二代| 91在线丝袜| 永久免费无码日韩视频| 亚洲无码精彩视频在线观看| 欧亚日韩Av| 久久人人爽人人爽人人片aV东京热 | 日韩av资源在线| 91丨九色丨首页在线播放| 亚洲妓女综合网995久久| JIZZ亚洲国产| 久久青草精品一区二区三区| 曰AV在线无码| 国产午夜精品一区二区三区软件| 国产手机在线ΑⅤ片无码观看| 麻豆国产原创视频在线播放| 中文纯内无码H| 国产欧美性爱网| 无码一区二区三区视频在线播放| 青青青伊人色综合久久| 中文字幕有乳无码| 91啦中文字幕| 国产精品一区二区无码免费看片| 少妇精品网站| 日韩无码视频网站| 国产超碰在线观看| 亚洲二区视频| 91九色国产porny| 亚洲精品欧美重口| 色综合婷婷| 91亚洲免费| 97免费在线观看视频| 国产区在线观看视频| 免费在线一区| 亚洲成人www| 日韩在线第三页| 人妻少妇久久久久久97人妻| 996免费视频国产在线播放| 92精品国产自产在线观看| av在线手机播放| 日本高清成本人视频一区| 久久semm亚洲国产| 久久精品aⅴ无码中文字幕| 欧美精品高清| 久久这里只有精品23| 国产欧美在线| 欧美日韩中文国产| 久久久久88色偷偷| 国产精品蜜芽在线观看| 国产黑丝一区| 久久亚洲AⅤ无码精品午夜麻豆| 五月婷婷综合网| 日韩欧美国产另类| 狠狠躁天天躁夜夜躁婷婷| 免费一看一级毛片| 国产97色在线| 午夜三级在线| 在线观看国产小视频| 午夜高清国产拍精品| 国产激情无码一区二区APP| 国产97视频在线观看| 福利在线一区| 中文字幕2区| 中文字幕欧美日韩高清| 综合社区亚洲熟妇p| 国产成人免费手机在线观看视频 |