树莓派 + Windows IoT Core 搭建环境监控系统
前言:Windows IoT 是微軟為嵌入式開發板設計的一種物聯網操作系統,運行Windows UWP(C# 開發),可以設計出豐富的交互界面,驅動GPIO,連接一些傳感器做有意思的事,本文詳細介紹如何使用它搭建一個環境監控系統,并將數據上傳到Microsoft Flow云服務器。
工具:一臺Windows 10電腦,樹莓派3B/3B+,(8GB(以上)容量SD卡,讀卡器。
傳感器:DHT11溫濕度傳感器、BMP180氣壓計、BH1750FVI光強傳感器、MQ-2煙霧傳感器、蜂鳴器、若干杜邦線。
系統框架:
實現室內溫濕度,光線強度,氣壓高度的采集,火災情況的報警,數據的上傳到云端。
(全是微軟的一套,PowerBi部分沒做)
PS:
1. 本系統傳感器驅動代碼來自 https://github.com/ZhangGaoxing/windows-iot-demo
搬運至碼云,加速Clone:https://gitee.com/xKryo/windows-iot-demo
2. DHT11項目代碼有一些問題,修改版本網盤下載:https://pan.baidu.com/s/11-EofiscGOnMuSyPgvFO1w 提取碼:a2p1
3. 本系統的完整代碼:https://pan.baidu.com/s/1gTaC3vrEigzjzqDfF_uA1Q 提取碼:quau
4. ?Microsoft Flow服務器現在HTTP請求觸發需要注冊高級賬戶。
正文:
一、開發平臺的搭建
1.樹莓派安裝Windows IoT
下載Windows 10 IoT Core Dashboard 和最新的固件:https://docs.microsoft.com/en-us/windows/iot-core/downloads,下載完成后解壓出FFu固件,打開Dashboard并選擇固件,設置密碼,寫入SD卡。
將SD卡插入樹莓派,漫長的等待數次重啟,中間需要通過鼠標對樹莓派進行設置,最后進入系統:
通過儀表盤(Dashboard)的“我的設備”可以掃描到局域網的樹莓派,瀏覽器輸入IP:8080,輸入用戶名Administrator和剛剛設置的密碼,進入Windows IoT的管理頁面。
?
2.Visual Studio 2017安裝,可以通過下載Visual Studio Installer安裝:
?
二、第一個傳感器驅動(DHT11 Demo)
以驅動DHT11為例,講解將傳感器連接樹莓派,并編譯打包程序并部署到樹莓派。
1.DHT11連接樹莓派,DHT11和樹莓派的引腳定義如圖,將DHT11的數據輸出引腳連接GPIO4(07號引腳),電源(VCC)和地(GND)就近接入但不要接反。
?
2.VS 2017打開DHT11 Demo 項目(IDE可能會要求安裝一些依賴的組件)
生成解決方案時,可能會出現證書過期:
?
雙擊打開項目Package.appxmanifest文件:
在新的窗口中選擇打包一欄,彈出的窗口選擇配置證書—創建測試證書(任意名稱)
重新生成解決方案:
?
我的VS 2017出現了問題,不能遠程調試,如果調試設置出現以下信息,則可以直接遠程調試安裝應用不用打包部署:
3.打包項目的安裝程序包:
右鍵項目 – 應用商店 – 創建應用程序包 – 創建旁加載包:
選擇生成包的路徑,勾選合適的體系結構,點擊創建,漫長等待生成完成:
進入瀏覽器后臺管理頁的Apps Manager選擇打包好的應用,點擊Install安裝:
安裝成功:
?
運行效果:
三、接入所有傳感器
下載系統完整代碼,用VS2017打開,里面有詳細的注釋,代碼模塊較為清晰,這里就不再分析代碼功能了。
通過重新設計交互界面,接入BMP180氣壓計、BH1750FVI光強傳感器、MQ-2煙霧傳感器。
圖中可看到傳感器功能都已經實現,關于數據上傳部分在后面會講解。
?
系統設計的電路圖:
對應樹莓派引腳的連接圖:
?
實物圖如下,先在面包板上調試,再把所有傳感器模塊焊接在實驗板上。
四、Microsoft Flow云服務
系統通過HTTP POST的方式,將數據打包成的JSON文件POST到流,服務器解析后執行流。
推薦先觀看此視頻:https://b23.tv/av21526828使用Microsoft Flow 快速采集IoT設備數據。
注意:微軟Flow的服務器升級后,HTTP請求的觸發器已不再支持免費的賬戶,如果不想注冊,則跳過該部分,通過其他的方式上傳到所需要的其他服務器。
盡管如此,還是記錄一下之前連接Flow的過程。
以視頻中的例子為基礎,代碼中數據封裝及HTTP POST部分:
服務器HTTP端觸發JSON配置:
1. 進入Microsoft Flow官網,注冊免費賬戶
2. 在“我的流”中新建,選擇觸發條件,通過搜索框搜索HTTP添加觸發條件,填入JSON配置,現在免費賬戶搜索不到。
添加條件分支,如果發生燃氣泄漏情況,推送報警和Outlook發送郵件,最終會將數據插入到Excel(OneDrive)。
具體郵件內容的設置:
?
?3. 制作好帶表頭的Excel文件,上傳到OneDrive,Flow連接OneDrive,可以找到文件,然后關聯JSON代碼內容:
上傳多次數據,可以看到表格中的內容如下:
?
如圖發生r燃氣泄漏,Flow會推送郵箱內容:
?
Microsoft Flow APP在Googe Paly 中下載,通過Flow APP 和OneDrive APP 在移動端查收:
五、總結
樹莓派搭載Windows IoT接入傳感器,基本的環境數據采集、數據展示、數據上傳都已完成。使用微軟的一套東西進行開發著實令人崩潰,所以不再深入了,1年前開發的,有些具體的步驟還不夠清晰,現在總結起來感覺有點low。
總結
以上是生活随笔為你收集整理的树莓派 + Windows IoT Core 搭建环境监控系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core 3.0深入源码理解H
- 下一篇: .net持续集成测试篇之Nunit文件断