Raspberry Pi (RPi) の詳細な紹介

零下一度
リリース: 2017-06-24 10:15:17
オリジナル
6672 人が閲覧しました

はじめに

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 オペレーティング システム: Windows 10 IoT Core;
  • データベース: Sqlite
  • オペレーティング システムのダウンロードとインストール:
  • IoT Core ダッシュボード アプリケーション、にアクセスしてくださいMicrosoft Developer Center にアクセスし、Raspberry Pi 3 を選択し、空の microSD カード、Windows10 IoT コアにインストールし、[次へ] ボタンをクリックして新しいページに移動し、[ダッシュボードのダウンロード] ボタンをクリックしてダウンロードし、インストールします。
  • インストールが完了したら、[新しいデバイスの設定] 項目を選択して書き込みページに入ります。デバイスの種類として Raspberry Pi 2&3 を選択し、OS の内部バージョンとして Windows 10 IoT Core (15063) を選択します。デバイス名、パスワードを入力し、WLAN ネットワーク接続を確認します。現在のコンピューターを接続するオプション (接続されている WLAN 情報が Raspberry Pi 開発ボードのオペレーティング システムにコピーされるため、再構成の手間が省けます)。この時点で、Raspberry Pi への Windows 10 IoT オペレーティング システムのインストールが完了します。 。

以下に示すように:
  • Windows Device Portal:
  • 同じネットワーク環境のブラウザで、Raspberry Pi の IP アドレス、ポートは 8080 を入力し、Enter キーを押すと、ユーザー名とパスワードの入力を求められます。デフォルトのユーザー名は Administrator で、パスワードはオペレーティング システムの書き込み時に設定されたパスワードです。パスワードを忘れた場合は、再インストールするしかありません。ログインに成功すると、Raspberry Pi 開発ボードの現在のオペレーティング システム、アプリケーション管理インターフェイス、デフォルト プログラムの設定、起動時の自動起動に関する詳細情報が表示されます。

MQTT 通信を実装します:

MQTT (Message Queuing Telemetry Transport) は、IBM によって開発されたインスタント メッセージング プロトコルです。長年の開発を経て、MQTT はさまざまな分野のアプリケーションで注目を集めるようになり、モバイル クライアントのメッセージ プッシュ ツールとして使用でき、Android アプリケーションの比較的大きな割合を占めています。 MQTT は、モノのインターネット向けに特別に設計された通信プロトコルであり、低帯域幅で不安定なネットワーク環境でも正常に動作するという特徴があります。メッセージングには 3 つのモードがあります:

メッセージの損失または重複は最大 1 回発生します。このモードは、メッセージが失われた場合でも、すぐに再送信されます。

1 回だけなので、重複データなしでメッセージが確実に到着します。請求システムなど、正確なデータを必要とするシステムに適しています。

    メッセージが確実に届くように少なくとも 1 回は送信されますが、重複が発生する可能性があります。
  1. MQTT サーバーの構築については、こちらを参照してください。

  2. UWP での MQTT の使用については、こちらを参照してください。

  3. 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 を使用するには、まずユニバーサル 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート