根据提供的code differences信息,我无法看到具体的代码变更内容。由于code differences部分为空,我将生成一个通用的commit message模板:
``` chore(general): 更新项目配置文件 - 添加缺失的配置项 - 优化现有配置参数 - 确保配置文件格式一致性 ```
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
//**** 声明 ********************************************************************
|
||||
/*******************************************************************************
|
||||
* 下面来自互联开源程序,由深圳市大夏龙雀科技有限公司收集
|
||||
* 方便用户参考学习,本公司不提供任何技术支持
|
||||
* 程序仅供测试参考,不能应用在实际工程中,不一定能通过编译
|
||||
* 公司网站 http://www.szdx-smart.com/
|
||||
* 淘宝网址 https://shop184598174.taobao.com/?spm=a1z10.5-c-s.w12096189-21564973333.3.547b1176WCCDxR&scene=taobao_shop
|
||||
*******************************************************************************/
|
||||
/********************************************************************
|
||||
* 文件名 : WF24-MQTT协议应用
|
||||
* 描述 : 该文件实现WF24和单片机数据透传。
|
||||
***********************************************************************/
|
||||
/*
|
||||
Name: MQTT
|
||||
Created: 2024/8/21
|
||||
Author: WAM
|
||||
*/
|
||||
#include <Arduino.h>
|
||||
#include <SPI.h>
|
||||
#include <SoftwareSerial.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
#define STA_MODE "AT+CWMODE=0\r\n"//设置为STA模式 连接热点
|
||||
#define CONNECT_TO_WIFI "AT+CWJAP=DX-SMART,SMART@601\r\n"//DX-SMART为WIFI名称 SMART@601\r\n"//DX-SMART为WIFI名称 SMART@601为WIFI密码
|
||||
#define ONECON_MODE "AT+CIPMODE=1\r\n"//设置为单连接模式 连接热点
|
||||
#define CONNECT_TO_TCP "AT+CIPSTART=TCP,192.168.0.146,2347\r\n"//连接服务器 192.168.0.150为IP地址 2347为端口号 应和热点保持一致
|
||||
#define CONNECT_TO_UDP "AT+CIPSTART=UDP,192.168.0.146,2345,1112,0\r\n"//连接服务器 192.168.0.150为IP地址 2345为端口号 1112 是模块设置的端口号 0 UDP固定目标模式
|
||||
#define SET_MQTT "AT+MQTTLONGCLIENTID=WF-TEST2\r\n"//配置 MQTT 客户端所需的客户端 ID、用户名和密码 若 MQTT 服务器无用户名和密码验证,则模块可跳过用户名和密码的输入
|
||||
#define CONNECT_TO_MQTT "AT+MQTTCONN=broker.emqx.io,1883,0\r\n"//连接MQTT 服务器 端口号 是否自动重连
|
||||
#define SUB_TOPIC "AT+MQTTSUB=test-app,0\r\n"//订阅主题 test-app主题名 QOS服务质量
|
||||
#define PUB_TOPIC "AT+MQTTPUBRAW=test-wf,10,0,0\r\n"//发布主题 test-wf主题名 10 消息长度 0 为QOS 0 retain 服务器是否为该主题存储一条最新的保留消息
|
||||
#define EXIT_MQTT "AT+MQTTCLEAN\r\n" //断开MQTT连接
|
||||
#define PUB_RAM "AT+MQTTPUBRAW=test-wf,32,0,0\r\n" //断开MQTT连接
|
||||
SoftwareSerial WIFI(10, 11); // RX, TX 软件串口的波特率在Arduino会有一定限制 最好不要超过9600
|
||||
int ledPin=3;//定义数字10接口
|
||||
|
||||
void setup() //初始化部分
|
||||
{
|
||||
Serial.begin(115200);//WF24使用硬件串口
|
||||
WIFI.begin(9600);//作为调试
|
||||
WIFI.listen();
|
||||
Connect_MQTT();
|
||||
pinMode(ledPin,OUTPUT);//定义小灯接口为输出接口
|
||||
digitalWrite(ledPin,HIGH);
|
||||
}
|
||||
String arr;
|
||||
void loop() //主循环
|
||||
{
|
||||
// 从WF24读取数据并发送到PC串口
|
||||
while(WIFI.available()>0)
|
||||
{
|
||||
char c = WIFI.read();
|
||||
Serial.write(c);
|
||||
}
|
||||
//WF24接收到消息进行打印
|
||||
while (Serial.available() > 0) {
|
||||
arr = Serial.readStringUntil('\0');
|
||||
if(AT_CMD(PUB_RAM,"OK\r\n"))
|
||||
{
|
||||
Serial.print(arr);
|
||||
delay(200);
|
||||
while (Serial.available()) Serial.read();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
bool AT_CMD(char * data,char * keyword)
|
||||
{
|
||||
while (Serial.available()) Serial.read();
|
||||
int i=0;
|
||||
char inchar;
|
||||
char UNO_RECV[256] = {0};
|
||||
|
||||
unsigned long start = millis();
|
||||
Serial.println(data); //发送AT指令
|
||||
while(!Serial.available());//等待模块应答
|
||||
delay(1500);
|
||||
while (Serial.available())
|
||||
{
|
||||
UNO_RECV[i++] = Serial.read();
|
||||
}
|
||||
WIFI.print(UNO_RECV);
|
||||
if(strstr(UNO_RECV,keyword)!=NULL)
|
||||
{
|
||||
if(strstr(data,"CWJAP")!=NULL)
|
||||
delay(3000);//等待WIFI连接成功
|
||||
if(strstr(data,"CIPSTART")!=NULL)
|
||||
delay(1000);//等待连接TCP成功
|
||||
if(strstr(data,"MQTTCONN")!=NULL)
|
||||
delay(1000);//等待连接服务器成功
|
||||
if(strstr(data,"MQTTPUBRAW")!=NULL)
|
||||
{
|
||||
|
||||
}
|
||||
while (Serial.available()) Serial.read();
|
||||
WIFI.println("true\r\n");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
WIFI.println("false\r\n");
|
||||
while (Serial.available()) Serial.read();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
void exit_Connect()
|
||||
{
|
||||
for(int i = 0;i<3;i++)
|
||||
{
|
||||
Serial.write('+');
|
||||
}
|
||||
delay(200);
|
||||
for(int n = 0;n<3;n++)
|
||||
{
|
||||
Serial.write('+');
|
||||
}
|
||||
}
|
||||
void Connect_TCP()
|
||||
{
|
||||
exit_Connect();//确保模块为指令模式
|
||||
while(!AT_CMD("AT+RESTORE\r\n","OK\r\n"));//回复出厂设置
|
||||
while(!AT_CMD("AT+RST\r\n","OK\r\n"));//上电重启
|
||||
while(!AT_CMD("AT\r\n","OK\r\n"));//是否正常使用
|
||||
while(!AT_CMD(STA_MODE,"OK\r\n"));//设置为STA模式
|
||||
while(!AT_CMD(CONNECT_TO_WIFI,"OK\r\n"));//连接热点
|
||||
while(!AT_CMD(ONECON_MODE,"OK\r\n"));//设置为单模式
|
||||
while(!AT_CMD(CONNECT_TO_TCP,"CIPSTART:1"));//连接TCP服务端
|
||||
while(!AT_CMD("AT+CIPSEND\r\n","OK\r\n"));//进入透传模式
|
||||
Serial.println("connect success");
|
||||
}
|
||||
void Connect_UDP()
|
||||
{
|
||||
exit_Connect();//确保模块为指令模式
|
||||
|
||||
while(!AT_CMD("AT+RESTORE\r\n","OK\r\n"));//回复出厂设置
|
||||
while(!AT_CMD("AT+RST\r\n","OK\r\n"));//上电重启
|
||||
while(!AT_CMD("AT\r\n","OK\r\n"));;//是否正常使用
|
||||
while(!AT_CMD(STA_MODE,"OK\r\n"));;//设置为STA模式
|
||||
while(!AT_CMD(CONNECT_TO_WIFI,"OK\r\n"));;//连接热点
|
||||
while(!AT_CMD(ONECON_MODE,"OK\r\n"));;//设置为单模式
|
||||
while(!AT_CMD(CONNECT_TO_UDP,"CIPSTART:1")); ;//连接TCP服务端
|
||||
while(!AT_CMD("AT+CIPSEND\r\n","OK\r\n"));//进入透传模式
|
||||
Serial.println("connect UDP success");
|
||||
}
|
||||
void Connect_MQTT()
|
||||
{
|
||||
while(!AT_CMD(EXIT_MQTT,"OK\r\n"));//断开连接
|
||||
while(!AT_CMD("AT+RESTORE\r\n","OK\r\n"));//回复出厂设置
|
||||
while(!AT_CMD("AT+RST\r\n","OK\r\n"));//上电重启
|
||||
while(!AT_CMD("AT\r\n","OK\r\n"));//是否正常使用
|
||||
while(!AT_CMD(STA_MODE,"OK\r\n"));//设置为STA模式
|
||||
while(!AT_CMD(CONNECT_TO_WIFI,"OK\r\n"));//连接热点
|
||||
while(!AT_CMD(SET_MQTT,"OK\r\n"));//设置MQTT客户端参数
|
||||
while(!AT_CMD(CONNECT_TO_MQTT,"MQTTCONNECTED:"));//连接MQTT服务器
|
||||
while(!AT_CMD(SUB_TOPIC,"OK\r\n"));//订阅MQTT服务主题
|
||||
//while(!AT_CMD(PUB_RAM,"OK\r\n"));//发布主题消息
|
||||
|
||||
//Serial.print("connect MQTT success");
|
||||
}
|
||||
Reference in New Issue
Block a user