樹莓派(Raspberry Pi,RPi)是什么意思?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有保亭黎族免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
前言
樹莓派(Raspberry Pi,RPi)是專門為學(xué)生計(jì)算機(jī)編程教育而設(shè)計(jì),只有信用卡大小的卡片式電腦,可以運(yùn)行Linux或者Windows 10 IoT Core操作系統(tǒng)。本文將利用樹莓派和UWP(Universal Windows Platform)開發(fā)技術(shù)搭建一個(gè)可以實(shí)時(shí)監(jiān)控的氣象站系統(tǒng)。
硬件和涉及技術(shù)
硬件部分:
樹莓派2或3一塊,8G以上內(nèi)存卡一張,讀卡器(或帶sd卡接口的電腦)一個(gè);
Dht11溫濕度傳感器一個(gè),GY-68 BMP180氣壓計(jì)一個(gè);
LY-69 土壤濕度計(jì)一個(gè),MQ-2 煙霧氣敏傳感器一個(gè),雨滴傳感器一個(gè);
公母杜邦線若干,面包板一個(gè),micro USB線一根,電源一個(gè);
HDMI接口顯示器一臺(tái)(或HDMI轉(zhuǎn)其它接口)。
開發(fā)部分:
集成開發(fā)環(huán)境: Visual Studio 2017(建議使用社區(qū)版);
開發(fā)語言:C#;
開發(fā)平臺(tái):UWP;
通信協(xié)議:MQTT;
樹莓派操作系統(tǒng):WIndows 10 IoT Core;
數(shù)據(jù)庫:Sqlite
操作系統(tǒng)的下載與安裝:
安裝Windows 10 IoT Core Dashboard 應(yīng)用, 訪問微軟開發(fā)者中心 依次選擇Raspberry Pi 3,Install onto my blank microSD card,Windows10 IoT core,點(diǎn)擊Next按鈕來到新頁面,點(diǎn)擊Download Dashboard按鈕下載,然后安裝。
燒錄操作系統(tǒng)到MicroSD卡,安裝完成后選擇設(shè)置新設(shè)備項(xiàng)進(jìn)入燒錄頁面。設(shè)備類型選擇Raspberry Pi 2&3;OS內(nèi)部版本選擇Windows 10 IoT Core(15063);驅(qū)動(dòng)器選擇插入的MicroSD卡;輸入設(shè)備名稱、密碼、確認(rèn)密碼;勾選WLAN網(wǎng)絡(luò)連接(勾選此項(xiàng)后可以將當(dāng)前電腦連接的WLAN信息復(fù)制給樹莓派開發(fā)板的操作系統(tǒng),省去再次配置的麻煩);至此,樹莓派安裝Windows 10 IoT操作系統(tǒng)完成。
如下圖:
Windows Device Portal:
在同一網(wǎng)絡(luò)環(huán)境下的瀏覽器輸入樹莓派的IP地址,端口為8080,回車后會(huì)提示輸入用戶名和密碼。默認(rèn)用戶名為Administrator,密碼為燒錄操作系統(tǒng)時(shí)設(shè)置的密碼,如果忘記密碼則只能重新安裝。登陸成功后會(huì)看到樹莓派開發(fā)板的當(dāng)前操作系統(tǒng)下的詳細(xì)信息,應(yīng)用程序管理界面,設(shè)置默認(rèn)程序以及開機(jī)自啟動(dòng)等。
實(shí)現(xiàn)
MQTT通信:
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測傳輸)是IBM開發(fā)的一個(gè)即時(shí)通訊協(xié)議。經(jīng)過多年的發(fā)展,MQTT在各個(gè)領(lǐng)域的應(yīng)用均有凸顯,它可以作為手機(jī)客戶端的消息推送工具,并且在安卓應(yīng)用中有比較大的占比。作為一款專為物聯(lián)網(wǎng)設(shè)計(jì)的通信協(xié)議,MQTT具有在低帶寬、不穩(wěn)定的網(wǎng)絡(luò)環(huán)境下正常工作的特性。它的消息傳遞有三種模式:
至多一次,會(huì)發(fā)生消息丟失或重復(fù),這種模式適合傳感器類的數(shù)據(jù)傳輸,即使消息丟失,很快會(huì)再次發(fā)送。
只有一次,確保消息到達(dá)且不發(fā)生重復(fù)數(shù)據(jù),適合需要精確數(shù)據(jù)的系統(tǒng),例如計(jì)費(fèi)系統(tǒng)。
至少一次,確保消息可以到達(dá),但可能發(fā)生重復(fù)。
關(guān)于MQTT服務(wù)器的搭建可以參考:
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實(shí)現(xiàn):
要在UWP下使用Sqlite需要先安裝VS擴(kuò)展Sqlite for Universal Windows Platform和Nuget包SQLite.Net-PCL。關(guān)于sqlite的詳細(xì)使用方法參照:
下面是本系統(tǒng)中Database類:
public class DataBase : SQLiteConnection {public static string path = Path.Combine(ApplicationData.Current.LocalFolder.Path, "atmo.db");public DataBase() : base(new SQLitePlatformWinRT(), path) { CreateTable(); } }
INotifyPropertyChanged接口實(shí)現(xiàn)
public class ViewModelBase : INotifyPropertyChanged {public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName]string name = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } }
樹莓派GPIO圖
硬件連接圖:
傳感器引腳圖:
項(xiàng)目地址:
該項(xiàng)目還不完善,歡迎大家補(bǔ)充和指正!
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。