ホームページ  >  記事  >  バックエンド開発  >  PHPとMQTTを使用したリモートデバイス制御のテクニカルガイド

PHPとMQTTを使用したリモートデバイス制御のテクニカルガイド

王林
王林オリジナル
2023-07-08 17:09:111815ブラウズ

PHP および MQTT を使用したリモート デバイス制御のテクニカル ガイド

はじめに:
現代テクノロジーの急速な発展により、モノのインターネット (IoT) が徐々に現実になってきました。モノのインターネットでは、さまざまな機器をインターネットを介して接続することで、機器の遠隔制御や監視を実現します。 MQTT は、デバイス間の通信を容易にする軽量のメッセージ転送プロトコルです。この記事では、PHP および MQTT プロトコルを使用してリモート デバイス制御を実現する方法を紹介します。

1. 準備:
始める前に、MQTT サーバーと PHP をインストールする必要があります。最も一般的なオプションは、Mosquitto を MQTT サーバーとして使用することです。これは、apt-get などのコマンドを通じてインストールできます。 PHPの場合はLAMPやXAMPPなど様々な方法でインストールできます。

2. MQTT サーバーの構築:

1. Mosquitto のインストール:
次のコマンドを使用して Mosquitto をインストールします:

sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

インストールが完了すると、Mosquitto が起動します自動的に。

2. Mosquitto サーバーをテストします:
次のコマンドを実行して、Mosquitto サーバーが正常に実行されているかどうかをテストできます:

mosquitto_pub -h localhost -t test -m "Hello, MQTT"
mosquitto_sub -h localhost -t test

すべてが正常であれば、次のことが確認できるはずです。端末上で「Hello, MQTT」 このニュース。

3. PHP での MQTT の使用:

1. PHP の MQTT 拡張機能のインストール:
PHP には MQTT をネイティブにサポートする機能がないため、MQTT 拡張機能をインストールする必要があります。次のコマンドでインストールできます:

sudo apt-get install php-pear php-dev libmosquitto-dev
sudo pecl install Mosquitto-alpha

インストールが完了したら、php.ini ファイルに次の内容を追加します:

extension=mosquitto.so

Apache サーバーを再起動して設定を有効にします。

2. PHP プログラムを作成します:
以下は、MQTT サーバーに接続してメッセージをパブリッシュするための簡単な PHP プログラムの例です:

<?php
$mqtt = new MosquittoClient();

$mqtt->connect("localhost", 1883, 60);

$message = "Hello, MQTT";
$mqtt->publish("test", $message);

$mqtt->disconnect();
unset($mqtt);
?>

上記のコードはローカル MQTT に接続します。サーバーにアクセスし、メッセージを「テスト」トピックにパブリッシュします。

3. MQTT メッセージのサブスクライブ:
メッセージの公開に加えて、デバイスのステータスや制御命令を取得するためにメッセージをサブスクライブすることもできます。以下は、MQTT メッセージをサブスクライブする PHP プログラムの例です。

<?php
$mqtt = new MosquittoClient();

$mqtt->onMessage(function($message){
    echo $message->payload;
});

$mqtt->connect("localhost", 1883, 60);

$mqtt->subscribe("test", 1);

while($mqtt->loop() == 0){
    
}

$mqtt->disconnect();
unset($mqtt);
?>

上記のコードは、ローカル MQTT サーバーに接続し、「test」トピックのメッセージをサブスクライブします。メッセージを受信すると、端末にメッセージが表示されます。

4. リモート デバイス制御の例:
上記の手順により、デバイスをローカルでリモート制御および監視することができます。次に、簡単な例を使用して、インターネットを介してリモート デバイス制御を実現する方法を示します。

1. デバイス側コード:

<?php
$mqtt = new MosquittoClient();

$mqtt->onConnect(function() use ($mqtt){
    $mqtt->publish("test", "Device connected", 0, false);
});

$mqtt->connect("mqtt.example.com", 1883, 60);

while($mqtt->loop() == 0){
    $mqtt->publish("test", "Device is working", 0, false);
    sleep(1);
}

$mqtt->disconnect();
unset($mqtt);
?>

上記のコードでは、デバイスは「mqtt.example.com」という名前の MQTT サーバーに接続し、「デバイスは動作しています」というメッセージを送信します。 「テスト」のトピック。

2. 制御端末コード:

<?php
$mqtt = new MosquittoClient();

$mqtt->onMessage(function($message){
    echo $message->payload;
});

$mqtt->connect("mqtt.example.com", 1883, 60);

$mqtt->subscribe("test", 1);

while($mqtt->loop() == 0){
    $mqtt->publish("test", "Control message", 0, false);
    sleep(1);
}

$mqtt->disconnect();
unset($mqtt);
?>

上記のコードでは、制御端末は同じ MQTT サーバーに接続し、「テスト」トピックのメッセージをサブスクライブします。同時に、「コントロール メッセージ」メッセージが 1 秒ごとに「テスト」トピックに送信されます。デバイスはメッセージを受信すると、対応する制御操作を実行できます。

結論:
PHP および MQTT プロトコルを使用することで、便利なリモート デバイスの制御と監視を実現できます。この記事では、MQTT サーバーをセットアップする方法と、PHP コードを使用してサーバーに接続し、メッセージをパブリッシュおよびサブスクライブする方法について説明します。簡単なリモート デバイス制御の例を通じて、インターネット経由でリモート制御を実現する方法を示します。これはモノのインターネットの氷山の一角にすぎません。読者の役に立つことを願っています。

参考:

  1. MQTT 公式 Web サイト: http://mqtt.org/
  2. Mosquitto プロジェクトページ: https://mosquitto.org/
  3. Eclipse Paho プロジェクト ページ: https://www.eclipse.org/paho/clients/php/

以上がPHPとMQTTを使用したリモートデバイス制御のテクニカルガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。