經(jīng)過3個月的不斷摸索,終于把91arm學堂階段二的項目實踐內(nèi)容基本上做了出來(視頻教程中的代碼并不全),在此把相關(guān)心得和代碼保存下來,供自己和學友們參考
系統(tǒng)硬件:
主控模塊:nanopi s2(cortex-A9 四核s5p4418)、5v轉(zhuǎn)3.3v模塊、光感、聲感、5v繼電器、面包板及LED燈、串口轉(zhuǎn)USB調(diào)試接口等
無線網(wǎng)絡模塊:tiny6410(ARM11 三星S3C6410)、紅外傳感、繼電器、面包板及LED燈
先看整體效果,主控程序的為znkg2018,網(wǎng)絡端程序為net_light
主控及網(wǎng)絡端程序如下:
web瀏覽器界面如下:
該項目的主要思路:
(1)主控程序znkg2018(交叉編譯移植到nanopi s2上)包含四個線程:
線程一:(用于進程間通信)循環(huán)查看共享內(nèi)存、消息隊列數(shù)據(jù),根據(jù)消息隊列的消息類型將實時將共享內(nèi)存數(shù)據(jù)更新到主數(shù)據(jù)結(jié)構(gòu)內(nèi)存,或者將主數(shù)據(jù)結(jié)構(gòu)內(nèi)存更新至共享內(nèi)存;
線程二:(用于檢測設備上下線)循環(huán)讀取5v轉(zhuǎn)3.3v模塊連接的開發(fā)板gpio口數(shù)據(jù),高電平則代表相應的感應設備連接上了系統(tǒng),可以讀取該設備數(shù)據(jù)線連接的gpio口電平狀態(tài)了(5v轉(zhuǎn)3.3v模塊、感應設備的電源線二合一連接在一起,實現(xiàn)同時插拔,從而通過該線程檢測相應感應設備的插拔);
線程三:(用于偵聽網(wǎng)絡設備的連接)該線程為網(wǎng)絡服務端,首先建立TCP數(shù)據(jù)流(socket~bind~listen~accetp)循環(huán)偵聽網(wǎng)絡客戶端的連接請求,收到情求后自己再開辟新的線程用于同該客戶端通信,根據(jù)客戶端數(shù)據(jù)更新主數(shù)據(jù)結(jié)構(gòu)中的網(wǎng)絡設備狀態(tài),根據(jù)主數(shù)據(jù)結(jié)構(gòu)中的網(wǎng)絡設備狀態(tài)向網(wǎng)絡設備發(fā)送相應的命令。網(wǎng)絡通信是基于協(xié)議的,便于命令分類和傳輸校驗。
線程四:(用于燈光設備開關(guān)控制)本項目共三個小燈,分別為主控端的兩個、網(wǎng)絡端的一個,開關(guān)均由繼電器控制,模擬了220v的客廳、書房燈及辦公室(遠端)的大燈。循環(huán)查詢主數(shù)據(jù)結(jié)構(gòu)中的燈光設備的開關(guān)狀態(tài),向?qū)睦^電器發(fā)送寫數(shù)據(jù)命令從而控制燈光開關(guān)。若感應設備綁定了燈光設備,則讀取感應設備gpio口數(shù)據(jù),并將該數(shù)據(jù)寫入繼電器gpio口中。網(wǎng)絡設備則只更新網(wǎng)絡命令狀態(tài)值,由進程三發(fā)送出去,再由網(wǎng)絡端程序處理并控制其繼電器gpio,從而控制相應的燈光開關(guān)。
(2)網(wǎng)絡客戶端程序net_light(交叉編譯移植到tiny 6410上)就一個主程序:
該程序通過ip和端口號連接nanopi上的主控程序的網(wǎng)絡線程,根據(jù)主控程序傳來的網(wǎng)絡命令更新相應的設備狀態(tài)。
(3)nanopi上的boa服務器運行的cgi程序:
在nanopi上安裝了boa服務器后,就可以通過瀏覽器來訪問nanopi中的cgi程序了,在boa的www文件夾中放上index.html文件,其為歡迎界面,其中的選項分別連接了不同的cgi程序,這些程序都打開了主控程序管理的共享內(nèi)存和消息隊列,通過修改表單并提取表單中的數(shù)據(jù),更新共享內(nèi)存數(shù)據(jù),并通過消息隊列通知主控設備更新共享內(nèi)存或?qū)⒐蚕韮?nèi)存中的數(shù)據(jù)更新到主數(shù)據(jù)結(jié)構(gòu)內(nèi)存。主數(shù)據(jù)結(jié)構(gòu)內(nèi)存修改后,則主控設備的四個線程會做出相應的動作的。
編輯器采用推薦的source insight,可以自動推導出變量、函數(shù)的聲明及相互間的引用,方便編寫及分析程序(但我采用的軟件其編碼格式為Ascill,不是utf-8,在編譯時為亂碼,用notepad++轉(zhuǎn)換編碼格式就OK了)
-
ARM
+關(guān)注
關(guān)注
134文章
9353瀏覽量
377572 -
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6781瀏覽量
112180
原文標題:基于ARM的智能燈光控制系統(tǒng)經(jīng)驗總結(jié)分享
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
求 基于單片機的智能燈光控制系統(tǒng)的仿真文件
基于ZigBee的智能樓宇燈光控制系統(tǒng)設計
怎樣去設計一種基于ARM的智能燈光控制系統(tǒng)
LabVIEW設計燈光照明控制系統(tǒng)
基于AT89S51單片機實現(xiàn)教室燈光智能控制系統(tǒng)的設計
基于紫金橋組態(tài)軟件的燈光控制系統(tǒng)方案

智能燈光控制系統(tǒng)的優(yōu)點
如何使用AT89S51單片機實現(xiàn)教室燈光智能控制系統(tǒng)的設計

評論