ESP8266 Node Mcu开发板连接WIFI并上报数据到MQTT服务器——物联网应用开发

一、前言

本文主要介绍关于ESP8266 Node Mcu开发板如何连接WIFI并将本地采集的数据上传到MQTT服务器中。

大家调试可以使用MQTTBox

二、WIFI连接

首先,导入WIFI连接所需的头文件,引入所需库。

cs 复制代码
#include <ESP8266WiFi.h>

声明字符串常量,以存储用于连接的WIFI名和密码。

cs 复制代码
//这里更改WIFI名称
const char* wifi_name= "TP-LINK_AA01";
//这里填写WIFI密码
const char* password = "00000000";

初始化WIFI模块并等待连接成功。注意:ESP8266开发板本身有WIFI模块的开发库,而不需AT指令控制WIFI模块。

cs 复制代码
  WiFi.begin(wifi_name, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

如果你有设置静态IP、网关等的需求,可以通过下面的代码来完成。

首先,声明相关参数的字符串常量:

cs 复制代码
IPAddress ip(0.0.0.0);
IPAddress mask(255,255,255,0);
IPAddress gateway(0.0.0.0);

随后执行下面代码绑定配置。

cs 复制代码
  WiFi.config(staticIP,Mask,Gateway);

三、连接MQTT服务器

首先,导入连接MQTT服务器的头文件,引入所需库。

cs 复制代码
WiFiClient espClient;
PubSubClient client(espClient);

随后,声明需要上传的MQTT报文主题的字符串常量。

cs 复制代码
//设置你的主题
const char* Topic = "my_topic";

声明并初始化客户端对象。

cs 复制代码
WiFiClient wifi;
PubSubClient client(wifi);

声明有关MQTT服务器的字符串常量。

cs 复制代码
const char* mqttServer = "broker.cn";
const int mqttPort = 1883;
const char* mqttUser = "admin";
const char* mqttPassword = "admin";
const char* clientID="abc001";

设置MQTT服务器信息并设置消息接收回调函数。

cs 复制代码
client.setServer(mqttServer, mqttPort);
client.setCallback(callback);

其中,我们必须声明并自定义callback函数。

cs 复制代码
void callback(char* topic, byte* payload, unsigned int length) {
  Serial.println("Receive Message");
}

连接MQTT服务器,并订阅报文。

cs 复制代码
client.connect(clientID, mqttUser, mqttPassword);
client.subscribe(Topic);

声明字符数组,并上报数据,其中Message的内容需要根据实际数据格式化并赋值。

cs 复制代码
char message[200];
client.publish(Topic, message);
相关推荐
嵌入式×边缘AI:打怪升级日志10 分钟前
MX6ULL 的 GPIO 操作方法(保姆级教程)
stm32·单片机·嵌入式硬件
点灯小铭26 分钟前
基于单片机的球类比赛专用计分与暂停管理系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
自小吃多2 小时前
TMC220X芯片 串口工具连接交互
笔记·嵌入式硬件
笨笨饿2 小时前
34_数据结构_栈
c语言·开发语言·数据结构·人工智能·嵌入式硬件·算法
Wave8452 小时前
基于 STM32 的模块化多功能手表系统:从架构设计到低功耗深度实践
stm32·嵌入式硬件·智能手表
清风6666663 小时前
基于单片机的安全带长度高度拉力监测与自动锁紧控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
笨笨饿3 小时前
32_复变函数在工程中实际应用区别于联系
linux·服务器·c语言·人工智能·单片机·算法·学习方法
悟渔3 小时前
用于STM32的C++编程的LED对象
c++·stm32·单片机
yongui478344 小时前
基于STM32+W5500的IAP远程升级程序设计
stm32·单片机·嵌入式硬件
LCG元4 小时前
STM32实战:基于STM32CubeMX的串口通信(UART)与DMA传输优化
stm32·单片机·嵌入式硬件