使用MQTT协议需要连接到一个MQTT Broker,可以使用以下步骤在ESP32上使用MQTT:
-
安装MQTT库到您的Arduino IDE
在Arduino IDE库管理器中,搜索并安装PubSubClient库 -
连接到Wi-Fi网络
在ESP32上连接到Wi-Fi,以便连接到MQTT Broker。 -
连接到MQTT Broker
您需要知道MQTT Broker的IP地址和端口号,以及MQTT Broker所需的用户名和密码。根据这些信息,在ESP32上使用以下代码连接到MQTT Broker。//连接到MQTT Broker #include #include const char* ssid = "YourWiFiSSID"; const char* password = "YourWiFiPassword"; const char* mqtt_server = "YourMQTTBrokerIPAddress"; //初始化MQTT client WiFiClient espClient; PubSubClient client(espClient); void setup_wifi() { //连接到WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } } void reconnect() { // Loop until we're reconnected while (!client.connected()) { // Attempt to connect if (client.connect("ESP32Client", "mqtt_user_name", "mqtt_password")) { //连接成功 client.subscribe("test/auth"); } else { //连接失败 delay(5000); } } } void setup() { //初始化串口输出 Serial.begin(115200); //连接到WiFi setup_wifi(); //连接到MQTT Broker client.setServer(mqtt_server, 1883); } void loop() { //连接MQTT Broker if (!client.connected()) { reconnect(); } //接收消息 client.loop(); }
-
发送和接收MQTT消息
在ESP32上使用以下代码发送和接收MQTT消息。//发送MQTT消息 client.publish("test/data", "Hello from ESP32"); //接收MQTT消息 void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } void setup() { //初始化串口输出 Serial.begin(115200); //连接到WiFi setup_wifi(); //连接到MQTT Broker client.setServer(mqtt_server, 1883); //订阅MQTT消息 client.setCallback(callback); } void loop() { //连接MQTT Broker if (!client.connected()) { reconnect(); } //接收消息 client.loop(); }
通过这些步骤,您可以在ESP32上轻松地使用MQTT协议。