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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C2440的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)解決方案

          基于S3C2440的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)解決方案

          作者: 時(shí)間:2012-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

          3 系統(tǒng)的軟件設(shè)計(jì)

          3.1 的軟件組成

          的軟件系統(tǒng)由設(shè)備驅(qū)動(dòng)程序、嵌入式Linux 操作系統(tǒng)和應(yīng)用程序構(gòu)成,如圖6所示。其中嵌入式Linux 操作系統(tǒng)采用2.6 版本的內(nèi)核。

          基于S3C2440的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)解決方案

          Web 服務(wù)器使用Boa , 視頻服務(wù)器使用Servfox5 , 這是兩款Linux 下的開(kāi)源軟件, 將源碼進(jìn)行適當(dāng)修改就可以移植到嵌入式系統(tǒng)中。

          3.2 驅(qū)動(dòng)程序的開(kāi)發(fā)

          用戶(hù)進(jìn)程是通過(guò)設(shè)備驅(qū)動(dòng)文件控制硬件, 對(duì)設(shè)備文件的操作方式就是系統(tǒng)調(diào)用, 如open 、read 、write 、close等。編寫(xiě)設(shè)備驅(qū)動(dòng)程序的主要工作就是編寫(xiě)子函數(shù),并填充file_operations 結(jié)構(gòu)體的各個(gè)域。步進(jìn)電機(jī)、LED 和溫度傳感器DS18B20 都是通過(guò)通用I/O 控制的,做為字符型設(shè)備。USB 攝像頭屬于USB 設(shè)備。下面以步進(jìn)電機(jī)驅(qū)動(dòng)程序?yàn)槔f(shuō)明Linux 驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程,具體步驟如下:

          (1 ) 編寫(xiě)驅(qū)動(dòng)程序源代碼, 將程序源文件motor.c , 添加到內(nèi)核的drivers/char 目錄下。

          (2 ) 編輯drivers/char 目錄下的配置文件Kconfig,添加如下內(nèi)容:config MOTOR tristate"Motor Driver"

          (3 ) 在char 目錄下打開(kāi)Makefile , 添加obj -$ (CONFIG_MOTOR)+=motor.o

          (4 ) 在內(nèi)核目錄下執(zhí)行make menuconfig 命令, 進(jìn)行內(nèi)核配置: 在Device Driver -Character Driver 下將MOTOR 選為M, 模塊方式, 退出保存設(shè)置。

          (5 ) 執(zhí)行命令make modules , 編譯驅(qū)動(dòng)模塊。在char目錄下產(chǎn)生motor.ko 的文件, 即所需的步進(jìn)電機(jī)驅(qū)動(dòng)模塊。通過(guò)NFS 方式傳到開(kāi)發(fā)板上。

          (6) 加載驅(qū)動(dòng)模塊, 執(zhí)行insmod motor.ko .

          (7 ) 建立文件節(jié)點(diǎn), 執(zhí)行mknod/dev/MOTOR_Driver c228 0 .

          3.3 實(shí)現(xiàn)基于Web 的遠(yuǎn)程監(jiān)控

          可以通過(guò)Web 服務(wù)器為用戶(hù)提供簡(jiǎn)潔, 美觀的操作界面。網(wǎng)絡(luò)控制部分包括登錄界面、用戶(hù)認(rèn)證、主界面、門(mén)窗控制、照明控制、溫度監(jiān)測(cè)及視頻監(jiān)控。

          用戶(hù)認(rèn)證是通過(guò)CGI 程序?qū)崿F(xiàn)的。首先在登錄界面中使用HTML 語(yǔ)言添加表單:

          form method="post" action="/cgi-bin/logon.cgi">

          用戶(hù)名:input type="text" name="user">br>

          密碼: input type = "password" name = "pwd" >br >

          nbspnbspnbspinput type="submit" value=" 登錄"> /form>

          參數(shù)action 指明處理該表單的CGI 程序, 此表單所填的內(nèi)容會(huì)通過(guò)Web 服務(wù)器以name=value1pwd=value2的方式傳給logon.cgi 程序處理, 該程序?qū)τ脩?hù)名和密碼進(jìn)行認(rèn)證。用戶(hù)認(rèn)證界面如圖7 所示, 門(mén)窗控制界面如圖8 所示。使用表單在網(wǎng)頁(yè)中添加2 個(gè)按鈕, 分別控制門(mén)窗的打開(kāi)和關(guān)閉。對(duì)應(yīng)的CGI 程序調(diào)用步進(jìn)電機(jī)的驅(qū)動(dòng)程序, 控制電機(jī)轉(zhuǎn)動(dòng), 模擬門(mén)窗控制。

          基于S3C2440的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)解決方案

          基于S3C2440的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)解決方案



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁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); })();