<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 業(yè)界動態(tài) > 基于STM32智能家居系統的設計與實現

          基于STM32智能家居系統的設計與實現

          作者: 時間:2015-03-12 來源:網絡 收藏

            CAN總線通信具有較高的通信速率、高可靠性、便于連接和性價比高的優(yōu)勢,它因為高速網絡以及作為較低成本的各種網絡而普及應用。由于系統的通信是在家庭供電線路的復雜電磁干擾中,本系統采用一種CAN雙絞線轉換器,組成一個家電通信網絡,足夠可靠地應用于強干擾的惡劣環(huán)境中。

          本文引用地址:http://www.ex-cimer.com/article/270915.htm

            3系統軟件設計

            其中一個重要目的是為了實現舒適便捷的家居生活,因此必須設計一套用戶體驗良好的上位機操作界面,包括電腦端對智能家電的詳細設置,以及能體現出手機便捷性對家電基本控制需求的Android客戶端應用程序。其主要軟件設計流程如圖2所示。系統任務的實現由兩個不同的線程實現:網絡通信用的NetStream程序和本地數據處理的程序。

            

           

            圖2 上位機軟件設計流程

            本地數據處理程序根據任務又分為以下兩部分:用戶操作響應部分,視頻流數據處理部分。用戶操作響應部分主要負責采集用戶對上位機軟件按下的按鈕、輸入的命令等數據,并將這些采集到的數據進行運算和處理,得到結果后再進行加密并編碼,最后加載到網絡流上,自動通過網絡發(fā)送到下位機。視頻流數據處理部分則是智能家居安防監(jiān)控功能的承載,上位機的軟件定時器產生一定時間間隔的溢出中斷后,通過TCP連接到路由器,賬號和密碼驗證無誤后,即可獲取監(jiān)控攝像頭每一幀JPEG格式的圖像信息,經過處理,可將這些JPEG圖像信息合成24幀每秒顯示在上位機界面上,由于人眼的視覺暫留效益(Persistence of vision),這些連續(xù)的圖像可以被看成是達到了流暢的視頻效果。

            NetStream部分則主要是解決上位機與下位機通信的問題。智能家居系統的安全是一個很重要的問題,建立一個穩(wěn)定安全的連接就顯得尤為重要。本系統采用一種SSL加密的TCP/IP協議。SSL又叫“安全套接層(Secure Sockets Layer)協議”,是一種在客戶端和服務器端之間建立安全通道的協議,充分保證了系統通信過程的安全。

            4智能家電網絡的構建

            為了實現對智能家電控制的目的,就必須要將各個家電進行聯網,本系統的下位機家電網絡包括CAN總線網絡,2.4G射頻無線網絡以及視距紅外無線網絡。同時應用了這3種通信網絡,同時具備了智能家居網絡的可靠性好,連接方便,通用性強等優(yōu)點,彌補了單一通信方式的局限性,若能合理安排組建網絡,將會有效地降低系統成本。

            下位機軟件部分最重要的一個功能,就是接收到上位機發(fā)送過來的帶有加密的數據后進行處理。數據解密后,是一個帶有功能描述與對應參數的字符串,為了方便程序的編寫,需要將字符串中的參數部分由連續(xù)且未知長度的數字轉化為整形變量儲存在內存中,實現的代碼如下:

            

          pa相關文章:pa是什么


          路由器相關文章:路由器工作原理


          路由器相關文章:路由器工作原理




          關鍵詞: STM32 智能家居

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();