美文网首页
MQTT笔记

MQTT笔记

作者: StormerX | 来源:发表于2020-07-16 21:29 被阅读0次

mosquitto官网: http://mosquitto.org/man/mqtt-7.html

在macOS安装mosquitto: https://www.jianshu.com/p/4b545332b495

安装MQTT.Fx:http://www.jensd.de/apps/mqttfx/1.7.1/

MQTT.fx的安装和使用:https://blog.csdn.net/tiantang_1986/article/details/85101366

Arduino Client for MQTT pubsubclient

Arduino Client for MQTTAPI Documentation https://pubsubclient.knolleary.net/api

代码参考: https://gist.github.com/boverby/d391b689ce787f1713d4a409fb43a0a4

arduino, Wemos D1测试订阅topic代码:

 
#include <ESP8266WiFi.h>
#include <PubSubClient.h> 

const char* ssid = "xxx";  // wifi名称
const char* password = "xxxxxx"; // wifi密码
const char* mqtt_server = "192.168.0.3";  // mqtt服务器地址

int status = WL_IDLE_STATUS;     // the starting Wifi radio's status

WiFiClient wifiClient;
PubSubClient client(wifiClient);
 
const byte ledPin = D8; // 需要控制的led灯
 
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++) 
  {
    char receivedChar = (char)payload[i];
    Serial.print(receivedChar); // 打印mqtt接收到消息
    
    if (receivedChar == '1') {  // 收到消息是 '1' 点亮LED灯
      digitalWrite(ledPin, HIGH);
    }
    if (receivedChar == '0')    // 收到消息是 '0' 关闭LED灯
     digitalWrite(ledPin, LOW);
  }
  Serial.println();
}
 
 
void reconnect() {
 while (!client.connected()) 
 {
   Serial.print("Attempting MQTT connection...");
   
   if (client.connect("Stormer")) 
   {
    Serial.println("connected");
    client.subscribe("light");  // 订阅topic
   } 
   else 
   {
     Serial.print("failed, rc=");
     Serial.print(client.state());
     Serial.println(" try again in 5 seconds");
     delay(5000);
   }
 }
}

 
void setup()
{
 Serial.begin(115200);
 pinMode(ledPin, OUTPUT);

  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
 
 client.setServer(mqtt_server, 1883); // 连接mqtt
 client.setCallback(callback);        // 设置回调,控制led灯
 
 
}
 
void loop()
{
 if (!client.connected()) 
 {
  reconnect();
 }
 
 client.loop();
}

相关文章

  • 树莓派的MQTT配置

    参考文章 MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用 主要记录初次接触树莓派和MQTT的一...

  • 对MQTT的一些笔记整理

    这里只是做了一些简单的笔记,这些内容都是通过看一个大神的文章和MQTT协议中文版文档总结的一些笔记: 1.MQTT...

  • MQTT笔记

    mosquitto官网: http://mosquitto.org/man/mqtt-7.html 在macOS安...

  • MQTT笔记

    参考: https://www.jianshu.com/p/54e0238d3fae 三种服务质量(QOS) 0(...

  • MQTT笔记

    首先在本机macOS安装ActiveMQhttps://activemq.apache.org/getting-s...

  • MQTT 折腾笔记----协议简读

    MQTT 折腾笔记----协议简读 http://www.cnblogs.com/youxilua/archive...

  • iOS开发--MQTT实时处理数据

    最近公司实现实时传输数据,使用的是MQTT实现的,接下来描述一下内容,当作是笔记了 一. MQTT 一个物联网项目...

  • MQTT详解及百度物接入连接手机测试(含源码)

    MQTT简介 MQTT定义 MQTT(Message Queuing Telemetry Transport,消息...

  • MQTT协议笔记

    MQTT MQTT协议基于TCP/IP,提供有序、无损、双向连接适用范围:在低带宽、不可靠的网络下提供基于云平台的...

  • MQTT 协议笔记

    MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。 用MQTT 3.1.1版本 5的版本还没有流行 M...

网友评论

      本文标题:MQTT笔记

      本文链接:https://www.haomeiwen.com/subject/ahnmhktx.html