資料介紹
描述
項目級別:中級到高級
軟件先決條件
- 視窗 10
- 視覺工作室 2015
- 安卓工作室
- MPLAB X IDE(帶 XC8 編譯器)
介紹
Windows IoT 新的 Windows IoT 為開發人員提供了一些功能,可以在更短的時間內創建強大而高效的應用程序。Windows IoT 驅動的 Raspberry Pi 是這個家庭自動化項目的關鍵要素。 ??

Raspberry Pi 充當系統的主人。Raspberry Pi 通過 2.4GHz ISM Band RF Link 連接到許多從屬設備。從設備是一個基于 PIC18F 微控制器的電路板,具有與 Raspberry Pi 建立雙工無線鏈路所需的電路和程序。除了不同的設備 ID/地址(應該是唯一的)和設備類型編號外,每個從設備都具有相同的電路和 PCB 設計。Windows IoT 上的 C# 程序能夠同時處理任意數量的從屬設備。?
特征
2. Raspberry Pi 通過 ISM 頻段 2.4GHz 無線鏈路連接到一個或多個從設備。
3. 這些從屬設備允許Raspberry Pi 遠程控制家用電器/電子設備。
4. 可以進行不同級別的控制。
一種。基于繼電器的控制(簡單的開/關功能)。
b. 基于 Triac 的控制(可以控制光強度或平均功率)
d. 用戶可以毫不費力地添加其他控制方法,如 PWM、反饋系統等。
5. 我已經編寫了一個移動應用程序來啟用基于 Internet 和本地網絡(數據報套接字)的控制。
6. 樹莓派添加新的從設備無需更改程序。只需點擊奴隸的“添加我”按鈕。Raspberry Pi 會自動將設備添加到網絡(自動掃描選項也可用)。
7. 數字和模擬傳感器都可以連接到從設備。由于 Raspberry Pi 從設備通信是雙向 RF 鏈路,因此 Raspberry Pi 無需任何物理連接即可讀取傳感器讀數。
8. 簡潔的GUI C#程序將幫助用戶檢查連接狀態、網絡監控、設備控制等。
9. 存在基于定時器的控制選項。設置您想要關閉/打開特定設備的時間,Raspberry Pi 將完成剩下的工作。
10.無需太多修改即可輕松引入語音檢測/語音命令。
11. 傳感器讀數可以寫入帶有時間戳的 Azure 數據庫。電氣設備也可以通過 Azure 云數據庫進行控制。
樹莓派連接?

在這個家庭自動化系統中,Raspberry Pi 沒有任何物理連接,除了 nRF SPI 通信鏈路 [不包括電源、以太網/WiFi 和 HDMI(可選)等基本連接]。所有的控制、監控、決策、觸發和切換操作都在 Raspberry Pi 中完成。Raspberry Pi 使用雙工無線鏈路(非 WiFi 或藍牙標準)與從屬設備通信。整個C#程序可以從本文的軟件部分(GitHub)下載。
(注意:由于程序的硬件IO要求,編譯到x64/x86平臺可能無法正常工作。
注意:我為無線模塊編寫的 nRF 類沒有利用該模塊的真正潛力。一旦我有足夠的時間,我將更新 GitHub nRF 類文件。)

?
? ?C# 應用程序支持 3 種方式來控制家用電器甚至工業系統。
1. RPi 的 GUI。在 Raspberry Pi 中運行的漂亮 C# GUI 將允許您監視網絡命令、不同的傳感器讀數、控制家用電器和自動控制以及其他后臺任務,如 Azure DB 讀/寫、計時器等。

設備框列出了所有可用的從屬設備。您可以隨時刪除或添加從屬設備。?
在 GUI 的頂部,您可以看到通過 nRF 無線鏈接從從屬設備提取的不同傳感器讀數。C# 應用程序使用這些傳感器讀數來自動控制電氣設備。
在底部,“網絡日志”框顯示通過 Azure 云數據庫或 LAN 從移動設備/計算機接收到的所有命令以及連接設備的 IP 地址和名稱。在其下方,放置了一個狀態欄。它向用戶顯示所有必要的信息和通知。通過打開“自動更新”按鈕,您將從選定的從屬設備的傳感器數據中獲得實時更新(可以將這些傳感器數據寫入帶有時間戳的 Azure DB 中)。此按鈕還可用于檢查從設備是否在 nRF24 的 RF 鏈接的無線范圍內。“自動控制”復選框用于啟用“自動控制”模式,該模式可以根據光強度傳感器讀數調整光強度。在 PIR 傳感器的幫助下,還可以對人員存在發出警報。
除了控制之外,還可以通過 LAN 或 Azure 云數據庫傳輸消息。

2.本地數據報包。
?我開發了一個簡單的 Android 和 Windows 通用應用程序,用于通過本地網絡 (LAN) 控制設備。
3. 基于Azure 云數據庫的控制。?
上面說的同一個應用程序有一個特殊的模式通過互聯網(通過 Azure 云)向 Raspberry Pi 發送命令 ? ?

(注意:我制作這些應用程序只是為了測試功能。如果你擅長 GUI 設計,你可以做得更好
注意:如果沒有運行 Windows IoT 的強大 Raspberry Pi 和上述 C# 應用程序,則無法使用此應用程序。
注意:所有網絡命令都以一個字符開頭,?'!'
您可以在 Pi 的 C# 程序的 MainPage.cs 文件中看到完整的命令。)
?
?
從機
從設備是一塊基于 PIC18F24K20 的板,帶有 nRF24 無線模塊。除了單獨的設備類型代碼和唯一的 ID/地址編號外,所有從屬設備都具有相同的電路和固件程序。因此,不費吹灰之力就可以輕松制作任意數量的從屬設備。

每個從屬設備都有一個“AddMe”和“RemoveMe”按鈕,用于將該從屬設備注冊到 Raspberry Pi 或刪除從屬設備。?
更新 (15/09/2015)
我添加了一個“自動掃描”選項。現在,連同“AddMe”按鈕,您可以掃描其無線范圍內的從屬設備。此選項將允許您添加樹莓派無線范圍內的所有從屬設備,而無需按從屬設備的“AddMe”按鈕。您所需要的只是“掃描”并等待可用設備列出。>
傳感器可用
1.溫度傳感器(LM35)
2.光強度傳感器(LDR)
3. PIR傳感器(HC-SR601)

從設備原理圖和 PCB 設計
您可以從本文的硬件部分下載 Eagle CAD 文件。
(我沒有在互聯網上找到任何好的 nRF Eagle 庫。所以我自己制作了一個。您可以在本文的自定義部件和外殼部分找到這個 nRF24L01+ 庫)

從設備如何工作
Slave Devices類似于無線擴展樹莓派的IO口。盡管無線通信系統有點復雜,但使用起來非常方便。永遠不可能僅僅為了實施自動化系統而為整個家庭布線。所以,我決定選擇無線系統。另一個附加優勢是,您可以隨時將家庭自動化系統擴展到任何房間,而無需添加或更新一行代碼。您所需要的只是奴隸的“點擊添加我”按鈕。想象一下用有線系統做同樣的事情!!

正如我所說,slave 設備以靈活性和更多控制擴展了 Raspberry Pi 的范圍。由用戶決定他/她應該分配給從屬設備的控制功能。就像模板一樣,我制作了 5 種不同類型的從屬控件。您可以毫不費力地將它擴展到任何類型的任何數字。
public enum device_type : byte
{
? ? ? Test_Device = 0, ? //Used a prototype for testing
? ? ? Triac_Device = 1, ?//Triac/Solid state relay high speed switching
? ? ? Relay_Device = 2, ?//Common Relay Control
? ? ? Buzzer_Device = 3, //Buzzer and Alarm Control board (Not implemented)
? ? ? Motor_Device = 4
};
上面的枚舉語句顯示了我的程序中可能的從屬類型。
A. 三端雙向可控硅裝置
(注:對功率器件不熟悉的可以省略該類Slave Devices。)
Triac 是一種交流功率器件,可用于電機速度控制、光強度控制等快速開關應用。適當的觸發是必要的,在設計 Triac 電路時還應考慮換向方法。從設備和 TRIAC 控制板的集成使系統更加有用和靈活。Triac 的觸發有點棘手。您需要一個過零檢測器來了解交流電 (LM358) 的過零點。從機內部的 PIC18F24K20 微控制器將識別過零點(來自 LM358 的方波)并根據我們從 Raspberry Pi 發送的觸發延遲觸發三端雙向可控硅開關。


B. 中繼裝置
作為中繼設備配置和連接從站非常容易。除了 5v 或 12v 繼電器、BC547 NPN 晶體管 1k 電阻器和 1N4001/1N4004/1N4007 二極管或 ULN2003 達林頓對 IC 之外,您不需要任何額外的大型電路。我建議使用現成的簡單繼電器板(它非常便宜且容易獲得,不會超過 2 美元[至少在我們地區])

C. 12v直流電機裝置
它是中繼設備的擴展。這里不是繼電器電路,從設備控制兩個 12v 直流電機。流行的電機驅動器 IC L293 或 L93D 可用于這些設備。

樹莓派從機無線通信
對于 Raspberry Pi 和從屬設備之間的無線通信,我使用了 nRF24L01+ 模塊并在 10 字節的有效載荷內創建了自定義數據包結構。

數據包類型和從設備 ID
來自從設備的“add_me_packet”將在 Raspberry Pi 的設備列表中注冊該從設備 ID。Raspberry Pi 將使用這個唯一的設備 ID 與特定的從設備進行進一步的通信。?
同樣,數據包通常由樹莓派下發,用于控制操作。
從屬設備在收到來自樹莓派的更新數據包請求后,將以其傳感器讀數和連接設備的狀態作為數據包響應給樹莓派。如果您知道系統的工作原理,您可以輕松地將我的 10 字節數據包系統更改為 20 或 32(最大)數據包系統。
設備類型
我們已經看到了 Triac 器件、繼電器和電機控制板。Raspberry Pi 如何知道或識別從設備將要執行的操作類型(你已經知道,每個從設備都有相同的固件和電路)。這由數據包的第 3 個字節定義。
要將從設備配置為電機設備,您需要更改給定嵌入式 C 程序的#define 語句。
//#define triac
#define relay //////need to change according to your device
#define device_id 59 //////need to change according to your device
///////////////////////////////////////////////////////////
#define device_type 4 ??
///Device type declaration for program
/*?
Test_Device = 0,
Triac_Device = 1,
Relay_Device = 2,
Buzzer_Device = 3,
Motor_Device = 4
?*/
對于可控硅設備
#define triac ? ///Uncomment this define statement?
//#define relay //////need to change according to your device
#define device_id 59 //////need to change according to your device
///////////////////////////////////////////////////////////
#define device_type 1 ///change to 1
對于繼電器設備?
//#define triac
#define relay //////need to change according to your device
#define device_id 59 //////need to change according to your device
///////////////////////////////////////////////////////////
#define device_type 2
?一些溝通情況




---------------------------------------------- -
其他有用的鏈接和注釋
- 要啟用 Internet 控制,您需要注冊 Azure 帳戶并使用 Azure 數據庫。此鏈接將為您簡要介紹 Azure 數據庫和 Azure 移動服務Azure
-
(Pi 的 C# 僅使用第一個表條目)
?????1 / 4 ? hi world 或任何文本:Pi 將在網絡日志窗口中顯示此消息?
-
可以將不同的傳感器讀數插入到 Azure 數據庫中。我沒有在我的系統中使用它,但你只需要 2 行代碼就可以做到這一點。只需將更新代碼放置在?
azureMonitor_tick
計時器滴答事件中。
//Note free Azure Subscription has 20MB database size limit.
- 您必須輸入自己的 Azure 訂閱密鑰、表條目 ID 和其他信息,才能在您的計算機/樹莓派/手機上運行我的程序。
? ? ?public static MobileServiceClient MobileService = new ? ? ? ? ? ? ? ? ? ? ? ? MobileServiceClient(
? ? ? ? ? ? ? ? ? "https://myandroid.azure-mobile.net/",
? ? ? ? ? ? ? ? ? "Replace this string");
和
? ? ?item_default.Id = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
//Inside this case statement of?data_received(byte[] data_byte) function
case (byte)packet_type.update_packet:
..................
? if ((bool)autocontrol.IsChecked)
{
byte[] bb = {0x00,0x00, 0x00
, 0x00 , 0x00 , 0x00 };
if (temp < 140)
bb[0] = (byte)(temp);
else
bb[0] = 140;
bb[1] = data_byte[8]; ? ? ? ? ?//Added code (This will enable buzzer based?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //PIR reading.
bb[2] = lastitem.device3_state;
bb[3] = lastitem.device4_state;
nrf_send_data(bb, lastitem.device_address, packet_type.data_packet);
}
.......
}
最后一點
Windows IoT 家庭自動化與其他系統

附錄?
有些人可能不熟悉微控制器 (uC) 和 uC 編程。我將解釋刻錄從屬設備的 .hex 文件所需的一些基本內容。
1.您需要安裝Microchip的MPLAB X IDE和XC8 Compiler才能重新編譯程序。如果只需要燒錄程序,則不需要安裝 XC8 編譯器。
您可以從此鏈接下載 MPLAB X 和 XC8 編譯器MPLAB X 和 XC8
2. 編程硬件工具或簡單的編程器是將程序燒錄到 uC 中必不可少的。對于 Microchip 的 PIC 控制器,可以使用 PicKit3、PicKit2 或 ICD3/2。(需要連接 MCLR、VDD、GND、PGD 和 PGC 引腳)。

3. 你可以在PCB設計中看到PicKit3的header。
..................................................... ..................................................... ......................
不可能在這里解釋整個程序。因此,請閱讀給定代碼文件的注釋。我在本文末尾添加了一些有用的代碼片段。
隨時發表您對這個項目的評論、意見和疑問。
謝謝 :)
阿南德。
- 基于Raspberry PI的應用程序的典型場景家庭自動化
- 基于諾基亞5110的Raspberry Pi帽子 0次下載
- 基于樹莓派的開源庫存管理系統和MySQL數據庫 0次下載
- 基于Microsoft Azure和Raspberry Pi的鳥類探測器
- 帶有使用Raspberry Pi的數據庫安全系統的鍵盤
- ACS數據庫與RSC數據庫比較研究
- 數據庫系統原理與應用教程之關系數據庫的詳細資料說明 4次下載
- 創建新的數據庫和更改SQL Server CE數據庫中的數據操作教程免費下載 5次下載
- 數據庫教程之數據庫的設計過程資料說明 10次下載
- 數據庫學習教程之數據庫的發展狀況如何數據庫有什么新發展 5次下載
- 數據庫教程之如何進行數據庫設計 21次下載
- 如何進行數據庫設計?數據庫設計介紹和需求分析及結構設計資料概述 0次下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- 無線家庭自動化IPv6和特 4次下載
- 現代家庭自動化遙控系統電路圖
- 無模式數據庫的利與弊 528次閱讀
- 一款數據庫自動化提權工具 733次閱讀
- 多平臺的關系數據庫管理和開發工具 937次閱讀
- 什么是數據庫 1474次閱讀
- Python-mysql數據庫基礎 740次閱讀
- 常見的數據庫管理 2110次閱讀
- 基于Raspberry Pi Pico開發先進的家庭自動化系統 3003次閱讀
- 云數據庫和自建數據庫的區別及應用 4669次閱讀
- 利用Raspberry Pi構建存儲和虛擬化時間序列數據 952次閱讀
- 自動駕駛技術虛擬場景數據庫的介紹和特點及仿真場景的詳細概述 1.1w次閱讀
- 一文看懂數據庫原理與應用 11.8w次閱讀
- 數據庫引擎是什么 1.1w次閱讀
- 什么是數據庫技術_數據庫技術的基礎知識 1.3w次閱讀
- 目前流行的數據庫_構建數據庫系統的流程 7166次閱讀
- 基于COM技術的SCADA系統數據庫設計 2460次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論