1. 程式人生 > >2018深圳迪爾西科技最新物聯網智慧家居總體設計方案3步曲!

2018深圳迪爾西科技最新物聯網智慧家居總體設計方案3步曲!

20世紀80年代初,隨著大量採用電子技術的家用電器面市,住宅電子化(HE,Homen Electronics)出現。80年代中期,將家用電器、通訊裝置與安保防災裝置各自獨立的功能綜合為一體後,形成了住宅自動化概念(HA, Home Automation)。

圖片來源於網路

80年代末,由於通訊與資訊科技的發展,出現了對住宅中各種通訊、家電、安保裝置通過匯流排技術進行監視、控制與管理的商用系統,這在美國稱為Smart Home,也就是現在智慧家居的原型。

中國人口眾多,城市住宅也多選擇密集型的住宅小區方式,因此很多房地產商會站在整個小區智慧化的角度來看待家居的智慧化,也就出現了一統天下、無所不包的智慧小區。歐美由於獨體別墅的居住模式流行,因此住宅多散佈城鎮周邊,沒有一個很集中的規模,當然也就沒有類似國內的小區這一級,住宅多與市鎮相關係統直接相連。

這一點也可解釋為什麼美國仍盛行ADSL、Cable Modem等寬頻接入方式,而國內光纖乙太網發展如此迅猛。因此歐美的智慧家居獨立安裝,自成體系。而國內習慣上已將它當作智慧小區的子系統考慮,這種做法在前一階段應該是可行的,而且是實用的,因為以前設計選用的智慧家居功能系統多是小區配套的系統。

但智慧家居最終會獨立出來成為一個自成體系和系統,作為住宅的主人完全可以自由選擇智慧家居系統,即使是小區配套來統一安裝,也應該可以根據需要自由選擇相應產品和功能、可以要求升級、甚至你對整個設計不感興趣,完全可以獨立安裝一套。

本文主要圍繞著基於物聯網的智慧家居的開發過程進行論述。主要從軟體方面進行詳盡的描述並且涵蓋了硬體的實施。包括相關的移植和應用技術。並且利用了IP網和串列埠進行通訊。主控部分是建立在作業系統之上,整個系統採用了LINUX。

圖片來源於網路

LINUX是一個嵌入式平臺十分優秀的作業系統。這要可以保證家居系統的穩定執行。各個功能模組採用物聯網的思想進行構建。每個模組若出現故障不會對其他部分造成影響,這樣保證了程式的可執行性。

本文主要從整體的軟硬體構建流程進行詳盡的描述。將整體的流程圖與說明結合。從全域性觀察本系統的各個功能以及實現過程,並且將Linux和QT的移植進行了簡要的介紹。

一、系統核心控制軟體流程及其說明

智慧家居系統控制流程圖

現代智慧家居系統,對於室內溫度的控制要求比較高,比如夏天的溫度要在26攝氏度左右才適合人體。因此我們決定將溫度控制在25至27攝氏度的範圍內。一旦溫度升高,超過了27攝氏度,這時候空調將自動開啟,進行製冷。

當感測器溫度在27攝氏度以下時,空調停止工作。由於空調對詩文的調節可能是非線性的。並且感測器與空調的位置也可能會影響對於室溫的控制。這時候我們選擇了25至27攝氏度這個範圍內。避免了受固定數值的影響。

因為如果將溫度設定為一個固定的數值,將可能造成的結果是空調一直工作,不斷地調整溫度,反覆的開關很可能損害空調的壽命,並且對於電力資源的消耗極大。我們出於對環保的高要求考慮進行了以上調整。

由於現代家居對於門禁系統有較高的要求,傳統的鑰匙已經不再能滿足家庭的需求。因此我們採用了門禁系統。使用者刷卡,然後由系統自動識別ID卡,是否開門等。門禁系統的核心採用了AT89S52微控制器來進行控制,通過感測器識別ID卡,然後進行判斷,如果正確將進行開門。如果不正確將保持關門狀態。

這使得家庭的安全得到了保障。此智慧家居系統不但出於安全性的考慮增加了安防系統。而且對於現代家庭的休閒放鬆還增加了娛樂功能。有嵌入式播放器,電子相簿,文字閱讀等等功能,並且對於智慧家居的控制系統主題提供了變換功能,不僅可以使用系統預設的主題,還可以根據使用者的個人喜好,進行主題的變換。

智慧家居核心控制軟體流程

二、Linux核心移植
對於 PXA270 這樣的基於ARM10系列的 CPU和S3C2410這樣基於ARM9系列的CPU,支援記憶體管理單元,可以採用傳統的Linux核心,對程序進行保護,提高了嵌入式系統中多程序的保護能力。使使用者應用程式的可靠性得以提高,降低了使用者的開發難度。

Linux版本

現在的Linux版本為2.6.x,最新的核心已經升級到2.6.38,本系統採用了2.6.24核心版本。 所謂 Linux 移植就是把 Linux 作業系統針對具體的硬體平臺做必要改寫之後,安裝到該目標平臺使其正確的執行起來。這個概念目前在嵌入式開發領域講的比較多。

其基本內容是:獲取某一版本的 Linux 核心原始碼,根據我們的具體目標平臺對這原始碼進行必要的改寫(主要是修改體系結構相關部分),然後新增一些外設的驅動,打造一個適合於我們目標平臺的新作業系統,對該系統進行鍼對我們目標平臺的交叉編譯,生成一個核心映象檔案,最後通過一些手段把該映像檔案燒寫(安裝)到我們目標平臺中。

而通常對 Linux原始碼的改寫工作難度較大,它要求不僅對 Linux 核心結構要非常熟悉,還要求您對目標平臺的硬體結構要非常熟悉。同時還要求您對相關版本的組合語言較熟悉因為與體系結構相關的部分原始碼往往是用匯編寫的。所以這部分工作一般由目標平臺提供商來完成。

比如說針對目前嵌入式系統中最流行的ARM平臺,它的這部分工作就是由英國ARM公司的工程師完成的,我們所要做的就是從其網站上下載相關版本 Linux核心的補丁(Patch)。把它打到我們的 Linux 核心上,再進行交叉編譯就行。

其基本過程是這樣的: 1)到ftp://ftp.arm.Linux.org.uk上下載Linux2.6.24核心及其關於ARM平臺的補丁。 2)給Linux2.6.24打補丁。 3)準備交叉編譯環境。交叉編譯環境工具鏈一般包括binutils(含AS彙編器,LD連結器等),arm-linux-gcc,glibc等。 4)修改核心目錄下的makefile檔案,主要是以下幾行: ARCH:=$(shell uname–m | sed –e s/i.86/i386/-e s/sun4u/sparc64/ -e s/arm. */arm/ - e s/sa110/arm/)這一行。ARCH :=改為ARCH := arm CROSS_COMPILE:=改為CROSS_COMPILE=交叉編譯工具中arm-linux所在目錄/arm-linux- 例如:CROSS_COMPILE=/opt/crosstool/arm-Linux/bin/arm-linux- 5)此後就可以進行編譯。 6)以上可以使他在目標板上跑起 Linux 系統。 有了作業系統對於V4L,UDP,無線網絡卡等驅動就簡單了很多。並且多工的調控完全交給了作業系統支配。

三、QT Embedded移植
Qt/Embedded的底層圖形引擎完全依賴於FrameBuffer,因此在移植時需考慮目標平臺的Linux核心版本和FrameBuffer驅動程式的實現情況,包括解析度和顏色深度等在內的資訊。

當前嵌入式CPU大多內部整合LCD控制器,並支援多種配置方式。Qt/Embedded能夠較好地根據系統已有的FrameBuffer驅動介面構建上層的圖形引擎。 Qt/Embedded圖形引擎中的圖形繪製操作函式都是由原始碼目錄src/kernel/中的src/kernel/qgfxreaster_qws.cpp所定義的QgfxRasterBase類發起的宣告。對於裝置更加底層的抽象描述,則在src/kernel目錄qgfx_qws.cpp的Qscreen類中給予相應定義。

這些是對FrameBuffer裝置直接操作的基礎,包括點、線、區域填充、alpha混合和螢幕繪製等函式均在其中定義實現。在FrameBuffer驅動程式除錯通過後,配置Qt/Embedded的編譯選項,可以保證Qt/Embedded的圖形引擎正常工作。 Qt/Embedded中的輸入裝置,同樣分為滑鼠類與鍵盤類。其中滑鼠裝置在原始碼目錄中的src/kernel/qwsmouse_qws.cpp中實現,從該類中又重新派生出一些特殊滑鼠類裝置的實現類。

當然也可以根據具體硬體驅動程式實現的介面,實現類似的介面函式。 Qt/Embedded中對於鍵盤響應的實際函式位於src/kernel/qkeyboard_qws.cpp 中,在qkeyboard_qws.h中,定義了鍵盤類裝置介面的基類QWSKeyboardHandler。具體的鍵盤硬體介面依然要建立在鍵盤驅動程式基礎上,移植時需要根據鍵盤驅動程式從該類派生出實現類,實現鍵盤事件處理函式processKeyEvent()即可。 Qt/Embedded內部對於字符集處理採用了UNICODE編碼標準。

Qt/Embedded同時支援兩種對於其他編碼標準(如GB2312和GBK)的支援方式:靜態編譯和動態外掛裝載。通過配置config.h檔案新增相應的編碼支援巨集定義,可以獲得其他編碼標準向UNICODE的轉換支援,從而在Qfont類中得以轉換與顯示。

由於UNICODE涵蓋了中文部分,所以Qt/Embedded對中文支援也非常好。 安裝交叉編譯工具鏈arm-linux-gcc3.4.1。並設定環境變數 安裝QT 4.6 for ARM ./configure -make libs -embedded arm -xplatform qws/linux-arm-g++ -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -no-qt3support -no-libmng -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -nomake examples -nomake tools -nomake docs -nomake demo -D__ARM_ARCH_5TEJ__ 由於在系統中沒有使用觸控式螢幕,所以沒有對tslib進行編譯。而是使用usb滑鼠進行控制,這樣觸控式螢幕與視訊顯示之間的衝突將可以避免。

目前中國物聯網還只是處於萌芽階段,未來的發展方向一定是屬於物聯網產業人工智慧化。小編不才,收集整理了《50套物聯網商業計劃書和技術方案作品》相信對您從事物聯網技術有非常大的幫助,關注公號索取【迪爾西科技】