>  기사  >  백엔드 개발  >  PHP와 MQTT를 이용한 원격 장치 제어 기술 가이드

PHP와 MQTT를 이용한 원격 장치 제어 기술 가이드

王林
王林원래의
2023-07-08 17:09:111858검색

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 서버에 연결하고 "test" 주제에 메시지를 게시합니다. 우수한.

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 서버에 연결하고 1초마다 "장치가 작동 중입니다"라는 메시지를 "테스트"합니다. 주제.

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 서버에 연결하고 "test" 주제에 대한 메시지를 구독합니다. 동시에 "제어 메시지" 메시지가 1초마다 "테스트" 주제로 전송됩니다. 장치는 메시지를 수신하면 해당 제어 작업을 수행할 수 있습니다.

결론:
PHP 및 MQTT 프로토콜을 사용하면 편리한 원격 장치 제어 및 모니터링이 가능합니다. 이 문서에서는 MQTT 서버를 설정하는 방법과 PHP 코드를 사용하여 서버에 연결하고, 메시지를 게시하고 구독하는 방법을 설명합니다. 간단한 원격 장치 제어 예를 통해 인터넷을 통해 원격 제어를 수행하는 방법을 보여줍니다. 이것은 사물 인터넷의 빙산의 일각에 불과하며, 독자들에게 도움이 되기를 바랍니다.

참고자료:

  1. MQTT 공식 홈페이지: http://mqtt.org/
  2. Mosquitto 프로젝트 페이지: https://mosquitto.org/
  3. Eclipse Paho 프로젝트 페이지: https://www.eclipse.org / 파호/클라이언트/php/

위 내용은 PHP와 MQTT를 이용한 원격 장치 제어 기술 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.