基於ARM的智慧型燈光控制系統總結(1 專案介紹)

2021-08-16 02:07:33 字數 2135 閱讀 4540

系統硬體:

主控模組:nanopi s2(cortex-a9 四核s5p4418)、5v轉3.3v模組、光感、聲感、5v繼電器、麵包板及led燈、串列埠轉usb除錯介面等

無線網路模組:tiny6410(arm11 三星s3c6410)、紅外感測、繼電器、麵包板及led燈

先看整體效果,主控程式的為znkg2018,網路端程式為net_light

主控及網路端程式如下:

web瀏覽器介面如下:

該項目的主要思路:

(1)主控程式znkg2018(交叉編譯移植到nanopi s2上)包含四個執行緒:

執行緒一:(用於程序間通訊)迴圈檢視共享記憶體、訊息佇列資料,根據訊息佇列的訊息型別將實時將共享記憶體資料更新到主資料結構記憶體,或者將主資料結構記憶體更新至共享記憶體;

執行緒二:(用於檢測裝置上下線)迴圈讀取5v轉3.3v模組連線的開發板gpio口資料,高電平則代表相應的感應裝置連線上了系統,可以讀取該裝置資料線連線的gpio口電平狀態了(5v轉3.3v模組、感應裝置的電源線二合一連線在一起,實現同時插拔,從而通過該執行緒檢測相應感應裝置的插拔);

執行緒三:(用於偵聽網路裝置的連線)該執行緒為網路服務端,首先建立tcp資料流(socket~bind~listen~accetp)迴圈偵聽網路客戶端的連線請求,收到情求後自己再開闢新的執行緒用於同該客戶端通訊,根據客戶端資料更新主資料結構中的網路裝置狀態,根據主資料結構中的網路裝置狀態向網路裝置傳送相應的命令。網路通訊是基於協議的,便於命令分類和傳輸校驗。

執行緒四:(用於燈光裝置開關控制)本專案共三個小燈,分別為主控端的兩個、網路端的乙個,開關均由繼電器控制,模擬了220v的客廳、書房燈及辦公室(遠端)的大燈。迴圈查詢主資料結構中的燈光裝置的開關狀態,向對應的繼電器傳送寫資料命令從而控制燈光開關。若感應裝置繫結了燈光裝置,則讀取感應裝置gpio口資料,並將該資料寫入繼電器gpio口中。網路裝置則只更新網路命令狀態值,由程序三傳送出去,再由網路端程式處理並控制其繼電器gpio,從而控制相應的燈光開關。

(2)網路客戶端程式net_light(交叉編譯移植到tiny 6410上)就乙個主程式:

該程式通過ip和埠號連線nanopi上的主控程式的網路執行緒,根據主控程式傳來的網路命令更新相應的裝置狀態。

(3)nanopi上的boa伺服器執行的cgi程式:

在nanopi上安裝了boa伺服器後,就可以通過瀏覽器來訪問nanopi中的cgi程式了,在boa的www資料夾中放上index.html檔案,其為歡迎介面,其中的選項分別連線了不同的cgi程式,這些程式都開啟了主控程式管理的共享記憶體和訊息佇列,通過修改表單並提取表單中的資料,更新共享記憶體資料,並通過訊息佇列通知主控裝置更新共享記憶體或將共享記憶體中的資料更新到主資料結構記憶體。主資料結構記憶體修改後,則主控裝置的四個執行緒會做出相應的動作的。

編輯器採用推薦的source insight,可以自動推導出變數、函式的宣告及相互間的引用,方便編寫及分析程式(但我採用的軟體其編碼格式為ascill,不是utf-8,在編譯時為亂碼,用notepad++轉換編碼格式就ok了)

基於ARM的智慧型燈光控制系統總結(4 裝置鍊錶)

通過鍊錶資料結構,把裝置鏈起來,方便資料實時動態增加和刪除 但鍊錶資料結構在記憶體中單獨開闢了空間,通過函式實現同全域性裝置資料機構之間的更新 鍊錶的功能包含了 建立頭結點,增加 查詢 刪除結點 link pro.h ifndef sl2000 link h define sl2000 link h...

基於ARM的智慧型家居遠端控制系統設計

隨著網際網路技術和資訊通訊技術向普通家庭生活的不斷普及,如何將消費電子 計算機和通訊融為一體,已成為人們非常關心的乙個問題。智慧型家電網路管理系統能夠實現家用電器的網路化 智慧型化管理。通過該系統將家中的網路電器與網際網路和gprs網路相連,這樣無論何時何地,使用者都可以通過該系統遠端操縱家用電器。...

智慧型工業監管控制系統

智慧型工業監管控制系統 以遵化海祥機械專案為例 一 專案背景 1 隨著工業4.0 中國製造2025等概念的提出,從 到地方鼓勵工業企業開啟網際網路 模式,使用工業物聯網平台 上雲 解決生產中的各種問題。2 海祥機械廠為傳統工業企業,以往生產過程主要靠人工現場監控,但需要監控的裝置 指示燈眾多,人力成...