樹莓派(Raspberry Pi,RPi)的詳細介紹

來源:互聯網
上載者:User
前言

  樹莓派(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具有在低頻寬、不穩定的網路環境下正常工作的特性。它的訊息傳遞有三種模式:

  1. 至多一次,會發生訊息丟失或重複,這種模式適合感應器類的資料轉送,即使訊息丟失,很快會再次發送。

  2. 只有一次,確保訊息到達且不發生重複資料,適合需要精確資料的系統,例如計費系統。

  3. 至少一次,確保訊息可以到達,但可能發生重複。

關於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圖

硬體串連圖:

感應器引腳圖:

項目地址:

該項目還不完善,歡迎大家補充和指正!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.