はじめに
Raspberry Pi (RPi) は、学生のコンピューター プログラミング教育用に特別に設計されており、クレジット カードほどの大きさのカード型コンピューターで、Linux または Windows 10 IoT Core オペレーティング システムを実行できます。この記事では、Raspberry Pi と UWP (ユニバーサル Windows プラットフォーム) 開発テクノロジを使用して、リアルタイムで監視できる気象観測所システムを構築します。
ハードウェアおよび関連テクノロジー
ハードウェア部分:
Raspberry Pi 2 または 3、8G 以上のメモリーカード、カードリーダー (または SD カードを備えたコンピューター)インターフェース) 1 つ;
Dht11 温度および湿度センサー 1 つ、GY-68 BMP180 気圧計 1 つ、
LY-69 土壌水分計 1 つ、MQ-2 煙ガスセンサー 1 つ、雨滴センサー 1 つ;数本のオスとメスの DuPont ケーブル、ブレッドボード、マイクロ USB ケーブル、電源
HDMI インターフェース モニター (または HDMI から他のインターフェースへ)。
開発部分:
統合開発環境: Visual Studio 2017 (コミュニティ版を推奨)
開発言語: C#; UWP;
通信プロトコル: MQTT;同じネットワーク環境のブラウザで、Raspberry Pi の IP アドレス、ポートは 8080 を入力し、Enter キーを押すと、ユーザー名とパスワードの入力を求められます。デフォルトのユーザー名は Administrator で、パスワードはオペレーティング システムの書き込み時に設定されたパスワードです。パスワードを忘れた場合は、再インストールするしかありません。ログインに成功すると、Raspberry Pi 開発ボードの現在のオペレーティング システム、アプリケーション管理インターフェイス、デフォルト プログラムの設定、起動時の自動起動に関する詳細情報が表示されます。
は
MQTT 通信を実装します:
MQTT (Message Queuing Telemetry Transport) は、IBM によって開発されたインスタント メッセージング プロトコルです。長年の開発を経て、MQTT はさまざまな分野のアプリケーションで注目を集めるようになり、モバイル クライアントのメッセージ プッシュ ツールとして使用でき、Android アプリケーションの比較的大きな割合を占めています。 MQTT は、モノのインターネット向けに特別に設計された通信プロトコルであり、低帯域幅で不安定なネットワーク環境でも正常に動作するという特徴があります。メッセージングには 3 つのモードがあります:
メッセージの損失または重複は最大 1 回発生します。このモードは、メッセージが失われた場合でも、すぐに再送信されます。
1 回だけなので、重複データなしでメッセージが確実に到着します。請求システムなど、正確なデータを必要とするシステムに適しています。MQTT サーバーの構築については、こちらを参照してください。
UWP での MQTT の使用については、こちらを参照してください。
私はまだここにいます 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 を使用するには、まずユニバーサル Windows プラットフォーム用の VS 拡張機能 Sqlite をインストールする必要があります。 Nuget パッケージ SQLite.Net-PCL。 sqlite の詳しい使用方法については、以下を参照してください:
このシステムのデータベース クラスは次のとおりです: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)); } }
Raspberry Pi GPIO図
ハードウェア接続図:
センサーピン図:
プロジェクトアドレス:
このプロジェクトはまだ完璧ではありません、誰でも大歓迎です補足と修正です!
以上がRaspberry Pi (RPi) の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。