前言
樹莓派(Raspberry Pi,RPi)是專門為學生計算機編程教育而設計,只有信用卡大小的卡片式電腦,可以運行Linux或者Windows 10 IoT Core操作系統。本文將利用樹莓派和UWP(Universal Windows Platform)開發技術搭建一個可以實時監控的氣象站系統。
硬件和涉及技術
硬件部分:
樹莓派2或3一塊,8G以上內存卡一張,讀卡器(或帶sd卡接口的電腦)一個;
Dht11溫濕度傳感器一個,GY-68 BMP180氣壓計一個;
LY-69 土壤濕度計一個,MQ-2 煙霧氣敏傳感器一個,雨滴傳感器一個;
公母杜邦線若干,面包板一個,micro USB線一根,電源一個;
HDMI接口顯示器一臺(或HDMI轉其它接口)。
開發部分:
集成開發環境: Visual Studio 2017(建議使用社區版);
開發語言:C#;
開發平臺:UWP;
通信協議:MQTT;
樹莓派操作系統:WIndows 10 IoT Core;
數據庫:Sqlite
操作系統的下載與安裝:
安裝Windows 10 IoT Core Dashboard 應用, 訪問微軟開發者中心 依次選擇Raspberry Pi 3,Install onto my blank microSD card,Windows10 IoT core,點擊Next按鈕來到新頁面,點擊Download Dashboard按鈕下載,然后安裝。
燒錄操作系統到MicroSD卡,安裝完成后選擇設置新設備項進入燒錄頁面。設備類型選擇Raspberry Pi 2&3;OS內部版本選擇Windows 10 IoT Core(15063);驅動器選擇插入的MicroSD卡;輸入設備名稱、密碼、確認密碼;勾選WLAN網絡連接(勾選此項后可以將當前電腦連接的WLAN信息復制給樹莓派開發板的操作系統,省去再次配置的麻煩);至此,樹莓派安裝Windows 10 IoT操作系統完成。
如下圖:
Windows Device Portal:
在同一網絡環境下的瀏覽器輸入樹莓派的IP地址,端口為8080,回車后會提示輸入用戶名和密碼。默認用戶名為Administrator,密碼為燒錄操作系統時設置的密碼,如果忘記密碼則只能重新安裝。登陸成功后會看到樹莓派開發板的當前操作系統下的詳細信息,應用程序管理界面,設置默認程序以及開機自啟動等。
實現
MQTT通信:
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個即時通訊協議。經過多年的發展,MQTT在各個領域的應用均有凸顯,它可以作為手機客戶端的消息推送工具,并且在安卓應用中有比較大的占比。作為一款專為物聯網設計的通信協議,MQTT具有在低帶寬、不穩定的網絡環境下正常工作的特性。它的消息傳遞有三種模式:
至多一次,會發生消息丟失或重復,這種模式適合傳感器類的數據傳輸,即使消息丟失,很快會再次發送。
只有一次,確保消息到達且不發生重復數據,適合需要精確數據的系統,例如計費系統。
至少一次,確保消息可以到達,但可能發生重復。
關于MQTT服務器的搭建可以參考:
MQTT在UWP下的使用可以參考:
要在UWP下使用MQTT需要安裝nuget包m2mqtt
在這里我還是貼一下MQTT的連接代碼:
public class Mqtt : MqttClient {public Mqtt(string host) : base(host, 61613, false, MqttSslProtocols.None) { Connect(Guid.NewGuid().ToString(), "admin", "password"); Subscribe(new string[] { "atmo" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE }); // PostData("Hello World!"); } public void RequestData(string msg) { Publish("atmo", Encoding.UTF8.GetBytes(msg)); }public void PostData(string msg) { Publish("atmo", Encoding.UTF8.GetBytes(msg)); } }
Sqlite實現:
要在UWP下使用Sqlite需要先安裝VS擴展Sqlite for Universal Windows Platform和Nuget包SQLite.Net-PCL。關于sqlite的詳細使用方法參照:
下面是本系統中Database類:
public class DataBase : SQLiteConnection {public static string path = Path.Combine(ApplicationData.Current.LocalFolder.Path, "atmo.db");public DataBase() : base(new SQLitePlatformWinRT(), path) { CreateTable<DataModel>(); } }
INotifyPropertyChanged接口實現
public class ViewModelBase : INotifyPropertyChanged {public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName]string name = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } }
樹莓派GPIO圖
硬件連接圖:
傳感器引腳圖:
項目地址:
該項目還不完善,歡迎大家補充和指正!
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注本站行業資訊頻道,感謝您對本站的支持。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
郵政銀行信用卡怎么申請?【1】官網申請在百度瀏覽器中搜索并直接進入中國郵政儲蓄銀行官網,選擇“信用卡”欄目,跳轉頁面后選擇“我要辦卡”,再根據自身的喜好選擇要辦理的信用卡種類,根據頁面提示填寫申請信息,最后提交申請即可?!?】公眾號申請登錄微信,在搜索框查找“中國郵政儲蓄銀行”并關注,點擊“郵金融”,在...
興業銀行資金營運中心怎么樣?興業銀行資金營運中心主要有什么業務?興業銀行是在2007年2月初在上交所正式上市,興業銀行資金營運中心是總行直屬機構,成立于2003年11月3日,興業銀行資金營運中心是我國首家單獨領取金融許可證和營業執照,獨立核算、自主經營的商業銀行綜合性、專業化的資金運作機構。銀行賬戶長期構建高收益、低風險的投資組合,收益率均跑贏大市,在人民幣匯率、利率、貴金屬等領域保持最活躍做市商...
隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如為什么唯品會不能加入購物車,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!使用唯品會的用戶,發現唯品會不能加入購物車,想知道為什么商品不能加入購物車,不清楚究竟怎么回事的,就一起來看看這個答案吧。(資料圖片)為什么唯品會不能加入購物車1、該商品是預售,預售商品不可以加入購物車2、商品缺貨無法加入購物車3、系統...