MQTT+ardunio+ESP8266开发(不含mqtt服务器部署)


实现准备—MQTT协议

前言

1. PUBLISH – 发布消息
发布消息控制报文是指客户端向服务端(或服务端)向客户端传输一个消息。
2. SUBSCRIBE - 订阅主题
客户端向服务端发送SUBSCRIBE报文用来创建一个或多个订阅。为了将应用消息转发给订阅匹配的主题,服务端将发送PUBLISH报文给客户端。SUBSCRIBE报文也为每个订阅指定了QoS等级,服务端将根据等级发送消息给客户端。
QoS等级:
a.QoS 0:发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息。
b.QoS 1:送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK。在Qos1情况下,Broker可能接受到重复消息。
c.QoS 2 :Qos2使用两阶段确认来保证消息的不丢失和不重复。在Qos2情况下,Broker肯定会收到消息,且只收到一次。

如果有想更多了解MQTT控制报文请点击:MQTT中文协议

总流程:
在这里插入图片描述
图片来源:一个大佬id:liefyuan

(特此鸣谢很多大佬,他们的文章给与我很多帮助)

第一步 软件硬件准备

1.ESP8266 CP2102物联网模块

这是我淘的板子
2.公对母杜邦线若干
3.arduino uno开发板或者同类开发板。
软件要求:
arduino ide
实物图:在这里插入图片描述
引脚连接:
ESP8266 ------UNO
VCC-----------3.3v
GND----------GND
RX-------------TX PIN2 (用的SoftWareSerialExample)
TX-------------RX PIN3(用的SoftWareSerialExample)

之前用的01TXRX结果一直不行,没想到软串口通信成功解决。

pubsub库可与ESP8266开发板/库单独一起使用。
步骤如下:
要安装ESP8266开发板(使用Arduino 1.6.4+):
-在“文件->首选项->附加开发板管理器网址”下添加以下第三网址: http://arduino.esp8266.com/stable/package_esp8266com_index.json
-打开“工具->板->板管理器”,然后为ESP8266单击“安装”
-在“工具->开发板”中选择ESP8266

第一步 配网 + 连接

来!我们用库!!!!MQTT的库有很多,本文将采用PubSubClient库. 此库可以在Arduino IDE的库管理器中找到。工具->管理库->找到PubSubClient根据自己想要的版本下载,之后打开实例
在这里插入图片描述
(1)联网

A、ssid为自己WIFI无线网络的名称,password为WIFI无线网络密码。
在这里插入图片描述

B、利用WiFi.begin(ssid, password);进行连接网络,此函数为库中封装函数,传入两个关键值进行连接。

C、进行联网随之取出连接状态进行判断while (WiFi.status() != WL_CONNECTED) {…}

(2)连接MQTT服务器
A、定义自己的服务器地址

B、client.setServer(mqtt_server, 1883); 此封装函数用来连接MQTT服务器,1883是默认的MQTT端口

C、client.setCallback(callback);设定回调方式,当ESP8266收到订阅消息时会调用此方法

下面是软串口代码:10和11就是开发板的RX和TX 连接MQTT与ardunio

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
   
   
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
   
   
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println("HELLO!JINYU");

// set the data rate for the SoftwareSerial port
mySerial.begin(115200);
mySerial.println("JINYU");
}

void loop
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值