【正文】
cp av user/emilibreadonly ehome/ 進入到該目錄,運行命令編譯開發(fā)板以及 PC 機使用的 emilib 函數(shù)庫: cd ehome/emilibreadonly make f clean make f 基于 ARMcortexA8 內(nèi)核的嵌入式智能家居系統(tǒng)的設(shè)計與開發(fā) 16 make f install make f clean make f mkdirp ../libs/pclib/bin ../libs/pclib/include ../libs/pclib/lib make f install 此時 ,新項目根 目錄的 libs 子目錄下就包含了 PC 和開發(fā)板上 emilib 相關(guān)文件。 在發(fā)送終端會顯示: hello 在接收終端會顯示: msgcmd 5, msgdata hello 證明收發(fā)消息成功。 printf(%s\n,buf)。 參數(shù) ret_size 和 ret_data 表示返回數(shù)據(jù)的大小和首地址。 下面列出的是 中常用的函數(shù) ( 1)初始化函數(shù) Int emi_ini(void)。最后在信號處理函數(shù)內(nèi)部從 emi_core 提供的共享內(nèi)存中讀取發(fā)送端發(fā)來的信息。 本嵌入式系統(tǒng)結(jié)構(gòu)主要分為了三大塊,分 別是: emilib : 抽象數(shù)據(jù)通信。 下圖 31 為超級終端接受傳感器信號的數(shù)據(jù) [10]。 UartInitial()。接下來程序會進入 while()循環(huán),只要 Zigbee保持連接,發(fā)送模塊就會一直處準備在發(fā)送模式或者正在發(fā)送模式。 basicRfReceiveOff()?;?ARMcortexA8 內(nèi)核的嵌入式智能家居系統(tǒng)的設(shè)計與開發(fā) 8 3 系統(tǒng)詳細設(shè)計 Zigbee系統(tǒng) 軟 硬件設(shè)計 由于資金有限,無法購置大量的 Zigbee 模塊,這里采用兩個 Zigbee,并將四個傳感器搭載到一個 Zigbee 模塊上,模擬組網(wǎng)系統(tǒng)。 嵌入式操作系統(tǒng) 的 用戶接口 一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向 用戶程序 提供 服務。 ( 2)實時性強。 ( 5) 可靠 性強 :如果傳輸過程中出現(xiàn)問題 同樣具有 重發(fā) 機制 。 然后通過多個 ZigBee 實現(xiàn)傳輸距離的無限延長 ,達到理想的傳輸距離 [1]。接線方便,只需一條 IO 線即可與未處理前相連,實現(xiàn)雙向通信。 同時為了演示智能家居項目的反控制效果,在 Zigbee 中加入了繼電器控制白熾燈的小模塊,協(xié)調(diào)器可以接受來自開發(fā)板串口的命令,將遠處的 Zigbee 一個 IO 管教拉高,通過繼電器控制白熾燈的開關(guān),以此達到演示控制任意家用電器的功能。同時用戶可以通過 PC 的應用進程登陸系統(tǒng),獲取信息并控制繼電器來實現(xiàn)遠程對家電的控制,雖然離現(xiàn)實的成熟的智能家居系統(tǒng)無論是功能上,還是制作上都存在一定差距,但是初步體現(xiàn)出智能家居的思想,達到展示的效果,并且體現(xiàn)一定的實用價值。 CityPlaceBuilding 的建成拉開了人們對智能家居項目投入的序幕。 關(guān)鍵詞 : 智能家居;嵌入式開發(fā); Zigbee;傳感器; S5PV210 II The Design and Development of Intelligent Home System Based on ARMcortexA8 Kernel Abstract: With the development of Inter of things, intelligent home bees a hot research field for household electrical appliance enterprises in recent years. This project is based on S5PV210 chip. The embedded system development method is adopted and Zigbee working technology is used to simulate a simple set of intelligent home system. Zigebee work technology is used to monitor water, sound, flame, shock remotely. User can municate with development board by the coordinator or log in development board by PC machine. The ARMcortexA8 is adopted as kernel in the system. The system has advantages such as fast operation, low power consumptio n, small size and can be patible with a variety of plex peripherals. The Zigbee is a perfect choice for small system, which supports unlimited expansion mode work. By testing, the system has realized expected functions. Keywords: intelligent home。本人授權(quán)青島農(nóng)業(yè)大學可以將本畢業(yè)論文(設(shè)計) 全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本畢業(yè)論文(設(shè)計)。本人離校后發(fā)表或使用該畢業(yè)論文(設(shè)計)或與該論文(設(shè)計)直接相關(guān)的學術(shù)論文或成果時,單位署名為青島農(nóng)業(yè)大學。 embedded development。 近年來隨著“物聯(lián)網(wǎng)”的發(fā)展,無論是物聯(lián)網(wǎng)技術(shù)的成熟,還是智能移動終端的普及,都使得智能家居獲得了長足的發(fā)展,智能家居行業(yè)也達到了以前從未有過的高度?;?ARMcortexA8 內(nèi)核的嵌入式智能家居系統(tǒng)的設(shè)計與開發(fā) 2 1 系統(tǒng)整體分析與方案論證 項目 方案分析 項目需求 分析 結(jié)合現(xiàn)實生活中的實際需要,以及 現(xiàn)在人們對 智能家居的理解,確定了一下該智能家居項目應該實現(xiàn)的功能,最終定下功能目標主要分為四大部分: 一、能過利用 Zigbee 組網(wǎng)對家庭內(nèi)的震動、聲音、火焰、煙霧進行監(jiān)控。最后設(shè)計方案更改如圖 12。且封裝形式多樣能夠適應各種環(huán)境。 ZigBee 技術(shù)特點 ZigBee 說到底 是一種可 以工作在三個頻段上的無線傳輸技術(shù),分別是 全球通用的 、 歐洲支持的 868MHz和 能在美國使用的 915 MHz3 上 , 分別 能夠達到 最高 250kbit/s、 20kbit/s 和 40kbit/s 的 傳輸速率 。 ( 6) 安全 度高 : ZigBee 提供了基于 循環(huán)冗余校驗 (CRC)的數(shù)據(jù)包完整性檢查功能 ,支持鑒權(quán)和認證,采用了 AES128 的 加密算法 ,每個 應用可以確定 其安全屬性 的高低 [3]。 EOS 實時性一般較強,可用于各種設(shè)備控制中。 ( 6)固化代碼。即一個 Zigbee 上分別搭載了火焰、震動、水滴、聲音傳感器。 while (TRUE) { pTxData[0] = KeyScan()。由于使用的是四個開關(guān)量傳感器,這里作為四個按鍵,不停地對連接了四個傳感器的 IO 關(guān)鍵進行按鍵掃描,獲取相應的鍵值,并賦值給 Pxdata[]數(shù)組,并使用系統(tǒng)調(diào)用函數(shù) basicRfSendPacket()將信息發(fā)送出去。 while (TRUE) { while(!basicRfPacketIsReady())。 圖 31 超級終端截圖 同時 Zigbee 也可以接受來自超級終端的數(shù)據(jù)(在這里超級終端作為開發(fā)板的一個替代品),如圖 32 在超級終端發(fā)送 ledon 命令, Zigbee 的一個 IO 管教被拉高, led 燈亮發(fā)送 ledoff, led 燈滅如圖 32。 Hmanager:基于 QT的 PC 端圖形控制程序。如此就完成了一次數(shù)據(jù)通信。 這絕對是最常用也是最重要的函數(shù),因為它必須在注冊消息之前運行,但是每個進程只需要運行一次。 參數(shù) cmd,表示發(fā)送者要發(fā)送給接受者的命令。 添加到 源文件的核心代碼: int test_func(struct emi_msg *msg){ printf(msgcmd %d, msgdata %s\n,msgcmd, msgdata)。 環(huán)境部署以及 eh_server 基于 ARMcortexA8 內(nèi)核的嵌入式智能家居系統(tǒng)的設(shè)計與開發(fā) 15 下面來大體介紹下 eh_server, eh_serve 主要實現(xiàn)了兩個功能,即便利指定的文件夾,找到以 .so 結(jié)尾的文件,并生成一個列表,調(diào)用 .So 文件里的函數(shù)。 進入新項目根目錄 ,新建 eh_server 相關(guān)文件夾。 代碼修改后如下: emi_msg_send_highlevel_blockreturn(,12345678,6,hello,4,buf, 5)。開發(fā)板受到 Qt 傳來的密碼,跟預先保存在本地文件中的密碼進行比較,如果一致 , 則說明認證成功,將成功結(jié)果返回給 Qt 程序,否則認證失敗。 MainWindow mainwindow。 if (() == QDialog::Accepted) { MainWindow mainwindow。 由于開發(fā)板在啟動的時候需要有一個默認 IP 地址, 因此 , 結(jié)合上述腳本 ,需要在開發(fā)板的 /home/etc/目錄下建立一個名為 config 的文件, 將想要設(shè)置的默認 IP 地址保存到該文件中: 比如 , 假設(shè)開發(fā)板默認 IP 地址為 : echo ~/ehome/rootfs/home/etc/config 基于 ARMcortexA8 內(nèi)核的嵌入式智能家居系統(tǒng)的設(shè)計與開發(fā) 21 同時,開發(fā)板使用的驅(qū)動程序也需要在自啟動時加載,因此結(jié)合上述腳本,需要把驅(qū)動程序存放到開發(fā)板 /home/modules/目錄下。 首先復制工具 : mkdir – p ~/ehome/tools/ cp ~/user/tools/mkyaffs2imag