PHP 및 MQTT: 실시간 기상 데이터 수집 및 표시 시스템 구축
요약: 이 기사에서는 PHP 및 MQTT 프로토콜을 사용하여 실시간 기상 데이터 수집 및 표시 시스템을 구축하는 방법을 소개합니다. 데이터 교환 및 실시간 업데이트를 위해 MQTT 프로토콜을 사용함으로써 날씨 데이터 소스에서 최신 날씨 정보를 얻어 웹사이트에 표시할 수 있습니다.
require 'vendor/autoload.php'; $client = new PhpMqttClientMqttClient('mqtt://your-mqtt-server'); $client->connect(); $client->subscribe('weather', function (string $topic, string $message) { // 处理收到的天气数据 }); while ($client->loop()) { // 始终保持连接 }
코드에서는 mqtt.php 라이브러리를 사용하여 MQTT 클라이언트를 생성한 다음 MQTT 서버에 연결합니다. 그런 다음 subscribe()
메서드를 호출하여 "weather"라는 주제를 구독하고 수신된 날씨 데이터를 처리할 콜백 함수를 지정합니다. 마지막으로 루프를 사용하여 MQTT 서버에 대한 연결을 유지하여 계속해서 데이터를 수신할 수 있도록 합니다. subscribe()
方法来订阅一个名为"weather"的主题,并指定一个回调函数来处理收到的天气数据。最后,我们使用循环来保持与MQTT服务器的连接,确保我们能够持续接收数据。
function getWeatherData() { $apiKey = 'your-api-key'; $city = 'your-city'; $url = "http://api.openweathermap.org/data/2.5/weather?q=$city&appid=$apiKey"; $response = file_get_contents($url); $data = json_decode($response, true); return $data['weather'][0]['description']; } $weatherData = getWeatherData();
在代码中,我们定义了一个名为getWeatherData()
的函数,它会发送一个HTTP请求到OpenWeatherMap API来获取天气数据。我们需要提供一个API密钥和城市名称作为参数。然后,我们使用file_get_contents()
函数发送HTTP请求,并使用json_decode()
函数解析响应。最后,我们返回天气数据中的描述信息。
$client->publish('weather', $weatherData);
在代码中,我们使用publish()
方法将天气数据发布到名为"weather"的主题。可以在每次获取到新的天气数据后调用这个方法,以便将最新的天气数据发送给订阅者。
<!DOCTYPE html> <html> <head> <title>实时天气数据</title> </head> <body> <h1>实时天气数据</h1> <div id="weather"></div> <script> var client = new Paho.MQTT.Client('your-mqtt-server', 1883, 'clientId'); client.connect({ onSuccess: function () { client.subscribe('weather'); } }); client.onMessageArrived = function (message) { document.getElementById('weather').innerHTML = message.payloadString; } </script> </body> </html>
在代码中,我们首先创建一个MQTT客户端,并使用connect()
方法连接到MQTT服务器。然后,我们使用subscribe()
다음으로 날씨 데이터 소스에서 실시간 날씨 데이터를 가져와야 합니다. OpenWeatherMap API 또는 Weather.com API와 같은 공개 날씨 API를 사용할 수 있습니다. 다음 예에서는 OpenWeatherMap API를 사용하여 날씨 데이터를 얻는다고 가정합니다.
getWeatherData()
라는 함수를 정의합니다. API 키와 도시 이름을 매개변수로 제공해야 합니다. 그런 다음 file_get_contents()
함수를 사용하여 HTTP 요청을 보내고 json_decode()
함수를 사용하여 응답을 구문 분석합니다. 마지막으로 날씨 데이터의 설명 정보를 반환합니다. 🎜publish()
메서드를 사용하여 "weather"라는 주제에 날씨 데이터를 게시합니다. 테마. 이 메서드는 새로운 날씨 데이터를 얻을 때마다 호출되어 최신 날씨 데이터를 구독자에게 보낼 수 있습니다. 🎜connect()
메서드를 사용하여 MQTT 서버에 연결합니다. 그런 다음 subscribe()
메서드를 사용하여 "날씨" 주제를 구독하고 새 메시지가 수신되면 웹페이지의 날씨 데이터를 업데이트합니다. 🎜🎜결론🎜PHP와 MQTT 프로토콜을 사용하여 실시간 기상 데이터 수집 및 표시 시스템을 구축할 수 있습니다. 날씨 데이터 소스로부터 실시간 데이터를 획득하고 MQTT 프로토콜을 사용하여 데이터를 구독자에게 전달함으로써 사용자에게 정확한 날씨 정보를 제공할 수 있습니다. 이 글이 실시간 기상 데이터 표시 시스템을 구축하고 더 나은 사용자 경험을 제공하는 데 도움이 되기를 바랍니다. 🎜위 내용은 PHP 및 MQTT: 실시간 기상 데이터 수집 및 표시 시스템 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!