PHP 및 MQTT를 사용한 원격 조명 제어 기술 가이드
소개:
사물 인터넷의 지속적인 발전으로 인해 원격 제어 장치가 점점 더 보편화되고 있습니다. 원격 조명 제어도 애플리케이션 중 하나이며 이 기능은 PHP 및 MQTT를 사용하여 쉽게 구현할 수 있습니다. 이 기사에서는 PHP 및 MQTT를 사용하여 원격 조명 제어를 구현하는 방법을 소개하고 독자의 참조를 위한 코드 예제를 제공합니다.
1. 준비
데이터베이스 테이블 만들기
조명 상태 정보를 저장할 데이터베이스 테이블을 만듭니다. MySQL 또는 기타 데이터베이스 관리 시스템을 사용하여 테이블을 생성할 수 있으며 테이블 구조는 다음과 같습니다.
CREATE TABLE `lights` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `status` ENUM('off', 'on') NOT NULL DEFAULT 'off', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MQTT 클라이언트 라이브러리 설치
PHP에서 MQTT를 사용하려면 MQTT 클라이언트 라이브러리를 사용해야 합니다. MQTT 클라이언트 라이브러리는 mosquitto 패키지를 사용하여 설치할 수 있습니다. mosquitto 패키지는 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install mosquitto sudo apt-get install php-mosquitto
설치가 완료된 후 php -m grep mosquitto
를 실행하여 mosquitto 확장 프로그램이 성공적으로 설치되었는지 확인할 수 있습니다. php -m | grep mosquitto
来验证mosquitto扩展是否安装成功。
二、编写PHP代码
首先,需要编写PHP代码来实现远程灯光控制。
连接MQTT服务器
首先,需要引入MQTT客户端库,并使用MosquittoClient
来连接MQTT服务器。代码如下所示:
$client = new MosquittoClient(); $client->connect('127.0.0.1', 1883, 60);
订阅MQTT主题
接下来,需要订阅MQTT主题以接收远程控制指令。可以使用MosquittoClient
的onMessage
方法来处理收到的消息。代码如下所示:
$client->onMessage(function($message){ // 处理收到的消息 }); $client->subscribe('light_control/#', 1);
处理收到的消息
在onMessage
먼저 원격 조명 제어를 구현하려면 PHP 코드를 작성해야 합니다.
MosquittoClient
를 사용하여 MQTT 서버에 연결해야 합니다. 코드는 다음과 같습니다. $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); });MQTT 주제 구독
다음으로 원격 제어 지침을 받으려면 MQTT 주제를 구독해야 합니다. MosquittoClient
의 onMessage
메서드를 사용하여 수신된 메시지를 처리할 수 있습니다. 코드는 다음과 같습니다.
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); }🎜🎜🎜수신된 메시지 처리하기🎜
onMessage
콜백 함수에서 수신된 메시지를 처리할 수 있습니다. 이 예에서는 데이터베이스의 표시등 상태를 업데이트하고 현재 상태를 구독자에게 게시합니다. 코드는 다음과 같습니다. 🎜connect('127.0.0.1', 1883, 60); $client->onMessage(function($message) use ($client){ $payload = $message->payload; list($command, $lightId) = explode('/', $message->topic); // 更新数据库中的灯光状态 // ... // 发布当前状态给订阅者 $client->publish("light_status/$lightId", $payload, 1); }); $client->subscribe('light_control/#', 1); if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['lightId']) && isset($_GET['status'])) { $lightId = $_GET['lightId']; $status = $_GET['status']; // 更新数据库中的灯光状态 // ... // 发布状态给订阅者 $client->publish("light_status/$lightId", $status, 1); } while (true) { $client->loop(); sleep(1); } ?>🎜🎜🎜조명 상태 제어🎜마지막으로 조명 상태를 제어할 수 있는 인터페이스를 제공해야 합니다. 이 예에서는 GET 요청을 사용하여 조명 상태를 제어합니다. 코드는 다음과 같습니다. 🎜rrreee🎜전체 PHP 코드 예제는 이 기사의 부록에서 찾을 수 있습니다. 🎜🎜🎜🎜3. 요약🎜🎜이 글에서는 PHP와 MQTT를 사용하여 원격 조명 제어를 구현하는 방법을 소개합니다. 먼저 MQTT 서버를 설치하고 해당 데이터베이스 테이블을 생성해야 합니다. 그런 다음 PHP 코드를 작성하여 MQTT 서버에 연결하고, MQTT 주제를 구독하고, 수신된 메시지를 처리하고, 조명 상태를 제어하는 인터페이스를 제공합니다. 이 글이 독자들에게 도움이 되기를 바랍니다. 🎜🎜부록: 완전한 PHP 코드 예제🎜rrreee
위 내용은 PHP 및 MQTT를 사용한 원격 조명 제어 기술 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!