将原有的mqtt库二次封装了一下;变得简洁好用
(BUG已修复,更新日期:2024-05-20)
目录
第一部分:库的安装
第一步:安装库文件
- ESP8266WiFi
- PubSubClient
第二步:下载BigHomewrokMqtt库
链接:https://pan.baidu.com/s/13kEWACxfpVbglJCJfKmMmQ?pwd=7iow
提取码:7iow
第三步:使用arduino IDE添加zip库
第四步:将BigHomewrokMqtt导入项目中
#include "BigHomewrokMqtt_ycsAndlyf.h"
char* ssid = "天怀后援团";
char* password = "buct721721";
char* mqtt_server = "192.168.31.84";
String ID = "ycs_ESP";
void setup(){
Serial.begin(115200);
setUp_func(ssid,password,mqtt_server,callback,ID);
Publish("ycs_ESP_connect","1");
pinMode(0, INPUT);
}
void callback(char* topic, byte* payload, unsigned int length){
}
void loop(){
loop_func(ID);
if(!digitalRead(0)){
Publish("ycs_ESP_test","678");
while (!digitalRead(0));
}
}
第二部分:库函数说明
注意:该库内置print,若初始化串口后,会自动打印必要信息
void setUp_func(char* ssid, char* password, char* mqtt_server,void (*callback)(char*, byte*, unsigned int), String clientId);
void loop_func(String clientId);
void Publish(char *topic,char *msg);
void Subscribe(char *topic);
setUp_func函数:初始化内置函数
该函数应加在项目文件setup函数中
- ssid:WIFI名称
- passwrod:WIFI密码
- mqtt_server:服务器地址
- callbanck:订阅功能回调函数
- clientId:该板子的ID(可在服务器端查看)
loop_func函数:循环内置函数
该函数应加在项目文件setup函数中
- clientId:该板子的ID(可在服务器端查看)
Publish函数:发布消息函数
- topic:发布消息的主题
- msg:发布消息的内容
Subscribe函数:订阅消息函数
- topic:订阅消息的主题
第三部分:示例
#include "BigHomewrokMqtt.h"
char* ssid = "天怀后援团";
char* password = "buct721721";
char* mqtt_server = "192.168.31.84";
String ID = "ycs_ESP";
void setup(){
Serial.begin(115200);
setUp_func(ssid,password,mqtt_server,callback,ID);
Publish("ycs_ESP_connect","1");// 注意若不传入char型指针,应为双引号
Subscribe("outTopic");
pinMode(0, INPUT);
}
void callback(char* topic, byte* payload, unsigned int length){
Serial.print(topic);
Serial.print(":");
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}//payload是具体的消息,比如Hello World;length是消息长度;payload是个字符串,因此这里将字符串的每个字符依次打印出来
Serial.println();
}
void loop(){
loop_func(ID);
if(!digitalRead(0)){
Publish("ycs_ESP_test","678");
while (!digitalRead(0));
}
}
原创不易,感谢支持!