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);
相关推荐
小柯博客1 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
c语言·stm32·单片机·嵌入式硬件·php·嵌入式
SY师弟4 小时前
51单片机基础部分——独立按键检测
单片机·嵌入式硬件·51单片机
Mapleay5 小时前
FMC STM32H7 SDRAM
stm32·单片机·嵌入式硬件
自小吃多5 小时前
STC8H系列 驱动步进电机
笔记·单片机
易知嵌入式小菜鸡5 小时前
STM32CubeMX-H7-19-ESP8266通信(中)--单片机控制ESP8266实现TCP地址通信
stm32·单片机·嵌入式硬件
乄夜6 小时前
嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
c语言·c++·单片机·嵌入式硬件·物联网·面试·职场和发展
c7_ln8 小时前
STM32 低功耗设计全攻略:PWR 模块原理 + 睡眠 / 停止 / 待机模式实战(串口 + 红外 + RTC 应用全解析)
stm32·单片机·实时音视频·江协科技
待什么青丝9 小时前
【TMS570LC4357】之相关驱动开发学习记录2
c语言·arm开发·驱动开发·单片机·学习
小柯博客9 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
c语言·stm32·单片机·嵌入式硬件·物联网
云山工作室10 小时前
一种停车场自动停车导航器的设计(论文+源码)
单片机·嵌入式硬件·毕业设计·毕设