テキストコピッド
ホーム >ニュース IoT環境の設定

Raspberry Pi でエンドツーエンドの IoT 環境を構成

バイ Ponlakshmi


mqtt broker on raspberry pi

過去数年間、MQTTの特長お問い合わせ 最も一般的に自分自身を確立し始めます IoTプロジェクト向けのメッセージングプロトコルを使用 この文書は開発者に完全なものを提供します セットアップと実行方法に関するガイドMQTTブローカーラズベリー わずか数分です。 また、Edge にインテリジェンスを追加できる方法もわかります ESP8266 を使用したデバイス。 知識を得たらMQTTブローカー使用方法 作ることができる 独自のIoTプロジェクト。

概要:

Raspberry Pi で MQTT ブローカーを設定する手順は、

  • MQTTのインストール Raspberry Piのブローカー
  • MQTTBrokerの構成
  • ESP8266の設定
  • 点滅ESP8266
  • ESP8266をMQTTサーバーに接続する
  • MQTTブローカーユーザーインターフェイス

MQTTの特長

MQTTの特長軽量なメッセージング 任意のメッセージを送信できるプロトコル あらゆる興味ある装置へのネットワーク。 公開/サブスクリプションメソッドを使用してデータを交換 クライアントとサーバーの間で。

MQTTのインストール Raspberry Piのブローカー

お問い合わせBevywise MQTT(ビービービーワイワイズ MQTT) ブローカーRaspberry Pi 3 は Raspbian Jessie の最新バージョンを実行しています。 このチュートリアルで。

Bevywise MQTTブローカーとそのクライアントパッケージをインストールするには、以下の手順に従ってください

  • ブローカーをダウンロードすることができます
  • ダウンロードフォームでは、必要なすべての詳細を Raspberry OS を選択し、 MQTTブローカーをダウンロードします。
  • ダウンロードしたファイルはzip形式になります。
  • ダウンロードしたzipフォルダをコマンドで解凍
  • unzip Bevywise_MQTT_Route_Raspbian.zip
  • ファイルを解凍すると、Bevywiseフォルダが作成されます。

Raspberry PiでMQTTBrokerの設定

  • ブローカーを設定するには、ダウンロード -> Bevywise -> MQTTRoute → conf フォルダー。
  • confフォルダには2つのconfファイルがあります。
  • ブローカー.conf
  • データストア.conf

ブローカー.conf

  • MQTT ブローカーを構成するには、ブローカー.confBevywiseパッケージのconfフォルダ内のファイル。
  • デフォルトでは、ブローカーは実行されます非TLSモードとモード ポート番号1883年, そして、認証無効です。
  • MQTTブローカーは暗号化されたデータ転送と認証を有効にするオプションを提供します。
  • SSL/TLS対応で製品を実行するには、変更TLS_ENABLEDの特長 パスワード ログインそして、 ポート番号を変更する8883.88号
  • エッジデバイスをより安全に接続することもできます。MQTTの特長 認証。
  • 認証変更を有効にする交通アクセス パスワード はい。
  • これにより、MQTT を提供する必要があります。パスワードそして、パスワードエッジデバイスが接続されている場合。
  • ユーザー名とパスワードは、ブローカーユーザーインターフェイスで利用できます。
  • ブローカーを実行すると、ユーザーインターフェイスが表示されます。
  • 下のユーザー インターフェイスで「認証」タブ、そこに ユーザー名とパスワードになります。
  • 安全なデバイス接続には、そのユーザー名とパスワードを使うことができます。
MQTTRoute conf

データストア.conf

  • ログインMQTTブローカーのデフォルトデータストレージです。
  • 大量のデータを保存するには、ストレージ設定を変更して保存することができます。MySQLまたはMSSQL。
  • データの強力な可視化と解析のために、データを保存することができます。弾性検索その他ビッグデータエンジンカスタム実装を使用して。
  • これらのオプションは、データストア.confconf フォルダ内のファイル。
  • MySQLをデータストレージの変更として使用するため、DB_SERVER= MySQL。
  • MySQL に必要なユーザー名とパスワードを指定します。
  • これで、データが指定されたファイルの名前のデータフォルダの中に保存されます。MYSQL_DB の
MQTT Broker conf
  • ブローカー構成の後、MQTTブローカーを開始できます。
  • MQTTBroker をサービスとして実行するには、Monit バージョン 5.25 を使用します。

僧侶を設定する手順:

  • サーバーに基づいて、Monit for Raspberry Pi 3をダウンロードします。
  • アーカイブの抽出tar -xzf < ダウンロードしたファイル>.
  • monit-5.25.25.2/bin に移動します。
  • コマンドを使用して、monit を /usr/bin フォルダにコピーする
  • sudo cp monit /usr/bin ディレクティブ
  • monit-5.25.25.2/conf に移動します。
  • 以下のコマンドを使用して、monitrcファイルを「/etc/」にコピーします。
  • sudo cp monitrc /etc/ ディレクティブ

Monit の設定:

  • monit conf ファイルを変更します。
  • Monitは、ポート2812で実行されているWebサーバーが付属しています。
  • ウェブインターフェイスを構成するには、設定された httpd ポートから始まるセクションを非コメント 2812の お問い合わせ/etc/monitrc ディレクティブファイル。

それから使用して下さい

  • sudo vi /etc/monitrc ディレクティブ
  • そして、変更して下さいユーザー名とパスワードあなたの必要性によって。

監視サービスを追加:

  • 終了時/etc/monitrc ディレクティブ以下を追加します。

チェック プロセス MQTT ブローカー, と pidfile Bevywise/MQTTRoute/Broker.pid。

タイムアウト2秒でプログラム=「Bevywise/MQTTRoute/bin/runbroker.sh」を開始します。 タイムアウト2秒でプログラム = “Bevywise/MQTTRoute/bin/stopbroker.sh” を停止します。

  • 設定の変更を再ロードするには、実行

sudo monit リロード

  • 監視するMQTTブローカープロセスを追加するには、

sudo monit スタート MQTTRoute

  • Raspberry Piを再起動します。
  • 今、ブローカーはバックグラウンドで実行を開始します。

ESP8266の設定

以下の手順では、Arduino IDE を使用して ESP8266 でクライアントライブラリをフラッシュする方法について説明します。


ステップ1:インターネットでPCを接続する

  • ESP8266をフラッシュしようとしているインターネットに接続します。
  • イーサネットケーブルまたはWiFiで接続できます。

ステップ2:最新のArduino IDEをインストール

  • 最新の Arduino IDE をインストールするには、Arduino のページに次の手順を実行します。 リンク https://www.arduino.cc
  • オペレーティングシステムを選択し、最新のソフトウェアをダウンロードします。

ステップ3:ESP8266をインストールする ボード

  • Arduinoソフトウェアをインストールしたら、開きます。
  • ファイルに移動 → 設定 → 追加のボードマネージャ URL を指定します。
  • このテキストボックスでは、次のリンクをコピーして貼り付けます。http://arduino.esp8266.com/stable/package_esp8266com_index.json

Arduino preference

  • 「OK」をクリックして変更を保存します。
  • ボードマネージャーを開きます。
  • ツール → ボード -> 取締役会長

sketch tools

  • 選択するESP8266 コミュニティによる esp8266パッケージおよび取付け お問い合わせ
board manager

  • 次に、ツールからESP8266ボードを選択 → ボード -> ジェネリック ESP8266 モジュール (ESP8266-01).
  • ツール -> ボード -> NodeMCU 1.0 ESP-12 Eモジュール(ESP8266-12 E&Development Board)
  • 最後にArduino IDEを再オープンします。

ステップ4:デバイスドライバソフトウェアをインストール - CDM21226

  • FTDI USB用のドライバソフトウェアをダウンロード zipファイルからTTLシリアルアダプタモジュールへ。
  • ダウンロードしたフォルダを解凍します。
  • CDM21226_setup.exeファイルを実行してインストールします。
  • ESP8266 を PC の USB に接続します。

ステップ5:必要なライブラリをダウンロードしてインストールする

  • ESP8266 をプログラミングする前に、Arduino ライブラリにインストールする必要があります。 マネージャー。
  • 利用可能なArduino互換のMQTTクライアントはいくつかあります。
  • 有名なクライアントの1つは、パブサブクライアントです。
  • それは非常によく機能し、使いやすいです。
  • ここからライブラリをダウンロードGitHub の
  • PubSubClient ライブラリをインストールし、文書にコピーして貼り付ける → アーディノ → 図書館。
  • Arduino IDE を再起動します。

ステップ6:メインプログラムをコンパイルする

  • これらのライブラリをインストールしたら、コードを実行できます。
  • 現在はプログラミングを始める前に、様々なカップルを選ぶ必要があります。 代替品。
  • ツールメニュー選択で、ボードのESP8266、CPU周波数の80 MHz、4Mを選択します。 フラッシュサイズ、115200 アップロード速度。
  • また、使用するCOMポートを選択してみてください(これはあなたの信頼に頼ります) セットアップ)。
  • 今度は、MQTT Brokerのユーザー インターフェイスをに開けて下さいダウンロード デフォルトライブラリインフォメーション Bevywise MQTTブローカー。
  • MQTT Clientsタブの下、OSと互換性のあるクライアントコードをダウンロードします。
  • Arduino を起動すると、Arduino IDE でファイルを開き、新しいファイルを開きます。
  • ESPMQTT_Client でプログラムをコピーします。
  • ファイルを新しいファイルに貼り付けます。
  • メインプログラムをコンパイルするには、ArduinoIDE Sketch -> check/compile に移動します。

ESPMQTT_クライアント

ESPMQTT_クライアント#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = “wifi”;
const char* パスワード = “wifi パスワード”;
const char* mqtt_server = “localhost”;
WiFiClient espClient;
PubSubClientクライアント(espClient)
int RECV_PIN = 5;
void reconnect()
お問い合わせ
間 (!client.connected()))
お問い合わせ
Serial.print(「MQTT接続の試み」);
if(client.connect(「ESP8266Client」)
お問い合わせ
Serial.println(「接続」)
client.subscribe(「ESP8266/LED」)。
client.publish(「ESP8266/LED」)
お問い合わせ
その他
お問い合わせ
Serial.print("failed, rc="); );
Serial.print(client.state()); ;
Serial.println(") は 5 秒で再試します。
遅延(5000);
お問い合わせ
お問い合わせ
お問い合わせ
void の設定()
お問い合わせ
pinMode(RECV_PIN、OUTPUT) は、
Serial.begin(115200)。
デジタルライト(RECV_PIN、HIGH);
セットアップ_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(コールバック)
再接続();
お問い合わせ
void setup_wifi()
お問い合わせ
遅延(10);
Serial.print(「Connect to the “」)
Serial.println(ssid) 。
WiFi.begin(ssid、パスワード);
間 (WiFi.status() != WL_CONNECTED(接続済み)
お問い合わせ
遅延(500);
Serial.print(「」)。
お問い合わせ
Serial.println(「無線LAN接続」)
Serial.println(「IPアドレス:」);
Serial.println(無線LAN.localIP()));
お問い合わせ
void コールバック(char* トピック、バイト* ペイロード、符号なしの int の長さ)
お問い合わせ
Serial.print(「メッセージが到着しました」);
Serial.print(トピック)
Serial.print(「」)
(int i = 0; i <長さ; i++)
お問い合わせ
Serial.print((char)ペイロード[i]);
お問い合わせ
if(((char)ペイロード[0] == 'o'&&(char)ペイロード[1] == ‘n’)
お問い合わせ
デジタルライト(RECV_PIN、LOW);
お問い合わせ
お問い合わせ
void loop()
お問い合わせ
もし(!client.connected())
お問い合わせ
再接続();
お問い合わせ
クライアント.loop();
お問い合わせ

以下では、何が起こっているかを理解するためのコードについて説明します。

ここでは、WIFI を設定しました。

const char* ssid = “wifi”;
const char* パスワード = “wifi パスワード”;

それからMQTT構成:

const char* mqtt_server = “localhost”;
client.setServer(mqtt_server, 1883);

  • お問い合わせクライアント.setServer、ブローカーの港番号をに与えるために MQTT の設定

MQTT と WiFi スタックを作成しました。

WiFiClient espClient;
PubSubClientクライアント(espClient)

  • 以前にダウンロードしたPubSubClientライブラリを作成しました。

Arduinoの組み立て機能:

void の設定()
お問い合わせ
pinMode(RECV_PIN、OUTPUT) は、
Serial.begin(115200)。
デジタルライト(RECV_PIN、HIGH);
セットアップ_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(コールバック)
再接続();
お問い合わせ

  • これはArduinoのセットアップ機能です。
  • まず、LEDが設定され、シリアルポートが設定され、WiFiが設定されます。
  • 最後に、クライアントはMQTT サーバー1883 アドレス、コールバック関数。

MQTT 公開/サブスクリプションの設定:

void reconnect()
お問い合わせ
間 (!client.connected()))
お問い合わせ
Serial.print(「MQTT接続の試み」);
if(client.connect(「ESP8266Client」)
お問い合わせ
Serial.println(「接続」)
client.subscribe(「ESP8266/LED」)。
client.publish(「ESP8266/LED」)
お問い合わせ
その他
お問い合わせ
Serial.print("failed, rc="); );
Serial.print(client.state()); ;
Serial.println(") は 5 秒で再試します。
遅延(5000);
お問い合わせ
お問い合わせ
お問い合わせ

  • このフェーズでは、公開と購読プロセスが発生します。
  • ザ・オブ・ザ・クライアント.connect設立しようとする 接続。
  • ザ・オブ・ザ・クライアント.公開トピック「ESP8266/LED」を公開します "on" の値で。
  • 成功すると、クライアントは「オン」メッセージを公開します。
  • インスタグラムclient.subscribe(クライアント)クライアントはトピックを購読します 「ESP8266/LED」
  • 故障が発生した場合は、再接続を試みます。

点滅ESP8266

  • ESP8266 をフラッシュするには、ArduinoIDE -> Sketch -> アップロードします。
circuit

ESP-12Eでプログラムをフラッシュするための回路図

Raspberry PiでMQTTブローカーとEPS8266を接続

  • プログラムがアップロードされたら、ESP8266 は MQTT サーバーに開始され、接続されます。
  • 接続されていることを確認するには、MQTT のユーザーインターフェイスに移動します。
  • クライアントが接続されているかどうかを確認します。

MQTTブローカーユーザーインターフェイス

  • MQTT ブローカーに接続したら、ユーザーインターフェイスで確認できます。
  • ブラウザを使用して、URLでユーザーインターフェイスを開きます「http://localhost:8080」をフォロー
  • ログインページでは、デフォルト「ユーザー名」と「パスワード」が「admin」で表示されます。 MQTTブローカーユーザーにログインするには インターフェイス。
  • ユーザは、ユーザインタフェースを介してユーザー名とパスワードを変更することもできます。
MQTT UI

  • MQTTブローカーのダッシュボードは、接続されたデバイスのクイックビューを提供します。
  • デバイスタブにアクセスすることで、個々のデバイスの詳細を見ることができます。
  • 接続状況と公開されたメッセージが動的に更新されます。

お問い合わせブローカーヘルプ ドキュメント詳しくはこちら 当社のMQTTブローカーユーザーインターフェースに関する情報。 機能について詳しく知るには、MQTTブローカーサイトマップ


注意 : ラズベリーパイボックスに家を自動化するために探している技術人はいますか? お問い合わせ永遠に 無料MQTTブローカーすべてのウィジェットとダッシュボード MQTTデバイスを監視および制御する必要があります。