配网部分

This commit is contained in:
yueming
2021-09-01 18:05:49 +08:00
parent 2365b8aab7
commit 5c97293269
102 changed files with 45984 additions and 46146 deletions

View File

@@ -0,0 +1,10 @@
### 一、项目简介
<br />
### 二、相关开发板
<br />

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -758,7 +758,7 @@
<Group> <Group>
<GroupName>user/data</GroupName> <GroupName>user/data</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@@ -778,7 +778,7 @@
<Group> <Group>
<GroupName>user/show</GroupName> <GroupName>user/show</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

View File

@@ -3,7 +3,10 @@
#include "stm32f10x.h" #include "stm32f10x.h"
#define Device_LCD 1 #define Device_LCD 1
#define MQTT_SCode 1
#define MQTT_AT 1
extern uint8_t UART1ReadBuf[100]; extern uint8_t UART1ReadBuf[100];
extern uint16_t UART1ReadFlag; extern uint16_t UART1ReadFlag;

View File

@@ -19,8 +19,7 @@ int main()
// LCD // LCD
#ifdef Device_LCD #ifdef Device_LCD
Delay_ms(500); Delay_ms(1000);
SimLCD_Init(); SimLCD_Init();
DevParam.AirInforGetTime = 3000; DevParam.AirInforGetTime = 3000;
@@ -54,7 +53,7 @@ int main()
{ {
// 显示部分,侧边跳动 // 显示部分,侧边跳动
Show_BroadSideBeat(); Show_BroadSideBeat();
//
// PMD4获取空气信息 // PMD4获取空气信息
PMD4_GetAirInfor(); PMD4_GetAirInfor();
} }

View File

@@ -4,18 +4,34 @@
配网流程 配网流程
1、将无线设备初始化为AP模式默认设置为 1、将无线设备初始化为AP模式默认设置为
2、 2、
// 配置 MQTT 用户属性
// AT+MQTTUSERCFG=0,1,"8bf209cd00704760b7a60b2f71be9d8c","test","123456",0,0,""\r\n
// 配置 MQTT 连接属性
// AT+MQTTCONNCFG=0,120,0,"","",0,0\r\n
// 连接/查询 MQTT Broker
// AT+MQTTCONN=0,"106.12.9.213",1883,0\r\n
// 发布主题
// {"deviceNum":"7CDFA1049ADA","categoryId":2,"firmwareVersion":"1.0","ownerId":"1"}
// AT+MQTTPUB=0,"device_info","{"deviceNum":"E8DB84933050","categoryId":1,"firmwareVersion":"1.0","ownerId":"1"}",0,0\r\n
// 订阅/查询主题
// AT+MQTTSUB=0,"status/set/E8DB84933050",1\r\n
// 取消订阅主题
// AT+MQTTUNSUB=0,"status/set/E8DB84933050"
// 关闭连接, 释放资源
// AT+MQTTCLEAN=0
****************************/ ****************************/
static uint8_t NetWorkFlow = 1; static uint8_t NetWorkFlow = 1;
static uint32_t Nport = 0; static uint32_t Nport = 0;
static uint8_t Nssid[20] = {0}; static uint8_t Nssid[20] = {0};
static uint8_t Npassword[20] = {0}; static uint8_t Npassword[20] = {0};
#ifdef MQTT_SCode
MQTTPacket_connectData MQTT_ConnectData = MQTTPacket_connectData_initializer; MQTTPacket_connectData MQTT_ConnectData = MQTTPacket_connectData_initializer;
char MQTT_ClientId[150] = {0}; char MQTT_ClientId[150] = {0};
char MQTT_Username[65] = {0}; char MQTT_Username[65] = {0};
char MQTT_Password[65] = {0}; char MQTT_Password[65] = {0};
volatile uint16_t MQTT_ReadBufLen = 0; volatile uint16_t MQTT_ReadBufLen = 0;
#endif
int ESP8266_WaitData(unsigned char* buf, int count) int ESP8266_WaitData(unsigned char* buf, int count)
{ {
@@ -30,7 +46,7 @@ int ESP8266_WaitData(unsigned char* buf, int count)
Delay_ms(10); Delay_ms(10);
} }
} }
#ifdef MQTT_SCode
uint8_t MQTT_UserSubscribe(char *pSubTopic) { uint8_t MQTT_UserSubscribe(char *pSubTopic) {
uint8_t buf[200] = {0}; uint8_t buf[200] = {0};
uint32_t buflen = sizeof(buf); uint32_t buflen = sizeof(buf);
@@ -70,6 +86,8 @@ uint8_t MQTT_UserSubscribe(char *pSubTopic) {
return 0; return 0;
} }
} }
#endif
#ifdef MQTT_SCode
// MQTT_Publish("/mqtt/topic/0", "hello0"); // MQTT_Publish("/mqtt/topic/0", "hello0");
void MQTT_UserPublish(char *pPubTopic, char *payload, int payloadlen) { void MQTT_UserPublish(char *pPubTopic, char *payload, int payloadlen) {
uint8_t buf[400] = {0}; uint8_t buf[400] = {0};
@@ -81,6 +99,7 @@ void MQTT_UserPublish(char *pPubTopic, char *payload, int payloadlen) {
len += MQTTSerialize_publish((unsigned char *)(buf + len), buflen - len, 0, 0, 0, 0, topicString, (unsigned char *)payload, payloadlen); len += MQTTSerialize_publish((unsigned char *)(buf + len), buflen - len, 0, 0, 0, 0, topicString, (unsigned char *)payload, payloadlen);
ESP8266_SendStr((char *)buf); ESP8266_SendStr((char *)buf);
} }
#endif
uint8_t buf[400] = {0}; uint8_t buf[400] = {0};
int buflen = 0; int buflen = 0;
void ESP8266_NetWorkFlow(void) void ESP8266_NetWorkFlow(void)
@@ -110,12 +129,13 @@ void ESP8266_NetWorkFlow(void)
NetWorkFlow = 5; NetWorkFlow = 5;
} }
else if(NetWorkFlow == 5) { else if(NetWorkFlow == 5) {
MQTT_ConnectData.MQTTVersion = 4; // 3.1.1 #ifdef MQTT_SCode
MQTT_ConnectData.keepAliveInterval = 60; // 设置心跳包间隔时间 // MQTT_ConnectData.MQTTVersion = 4; // 3.1.1
MQTT_ConnectData.clientID.cstring = (char *)MQTT_ClientId;// 客户端ID // MQTT_ConnectData.keepAliveInterval = 60; // 设置心跳包间隔时间
MQTT_ConnectData.username.cstring = (char *)MQTT_Username;// 用户名 // MQTT_ConnectData.clientID.cstring = (char *)MQTT_ClientId;// 客户端ID
MQTT_ConnectData.password.cstring = (char *)MQTT_Password;// 密码 // MQTT_ConnectData.username.cstring = (char *)MQTT_Username;// 用户名
MQTT_ConnectData.cleansession = 0; // 清除会话 // MQTT_ConnectData.password.cstring = (char *)MQTT_Password;// 密码
// MQTT_ConnectData.cleansession = 0; // 清除会话
//rc = aiotMqttSign(product_key, device_name, device_secret, \ //rc = aiotMqttSign(product_key, device_name, device_secret, \
//MQTT_ConnectData.clientID.cstring, MQTT_ConnectData.username.cstring, MQTT_ConnectData.password.cstring); //MQTT_ConnectData.clientID.cstring, MQTT_ConnectData.username.cstring, MQTT_ConnectData.password.cstring);
@@ -131,51 +151,59 @@ void ESP8266_NetWorkFlow(void)
// 发送 登录数据 // 发送 登录数据
// 将连接字符串格式化一下,现在还没有发送 // 将连接字符串格式化一下,现在还没有发送
memset(buf, 0 ,sizeof(buf)); // memset(buf, 0 ,sizeof(buf));
buflen = sizeof(buf); // buflen = sizeof(buf);
//
MQTTSerialize_connect( buf, buflen, &MQTT_ConnectData); // MQTTSerialize_connect( buf, buflen, &MQTT_ConnectData);
UART2ReadFlag = 0; // UART2ReadFlag = 0;
ESP8266_SendStr((char *)buf); // ESP8266_SendStr((char *)buf);
// 等待connack // 等待connack
if (MQTTPacket_read(buf, buflen, ESP8266_WaitData) == CONNACK){ // if (MQTTPacket_read(buf, buflen, ESP8266_WaitData) == CONNACK){
unsigned char sessionPresent, connack_rc; // unsigned char sessionPresent, connack_rc;
if (MQTTDeserialize_connack(&sessionPresent, &connack_rc, buf, buflen) != 1 || connack_rc != 0) // if (MQTTDeserialize_connack(&sessionPresent, &connack_rc, buf, buflen) != 1 || connack_rc != 0)
{ // {
//Sys_SendLog("Unable to connect,return code %d\r\n", connack_rc); // //Sys_SendLog("Unable to connect,return code %d\r\n", connack_rc);
//return -1; // //return -1;
} // }
} // }
/*订阅*/ /*订阅*/
MQTT_UserSubscribe("status/set/7CDFA1049ADA"); //更新设备状态 // MQTT_UserSubscribe("status/set/7CDFA1049ADA"); //更新设备状态
MQTT_UserSubscribe("status/get/7CDFA1049ADA"); //获取设备状态 // MQTT_UserSubscribe("status/get/7CDFA1049ADA"); //获取设备状态
MQTT_UserSubscribe("setting/set/7CDFA1049ADA");//更新设备配置 // MQTT_UserSubscribe("setting/set/7CDFA1049ADA");//更新设备配置
MQTT_UserSubscribe("setting/get/7CDFA1049ADA");//获取设备配置 // MQTT_UserSubscribe("setting/get/7CDFA1049ADA");//获取设备配置
#endif
/********************************/
#ifdef MQTT_AT
#endif
/********************************/
} }
else if(NetWorkFlow == 10) else if(NetWorkFlow == 10)
{ {
if(DevParam.ESP8266SendTime >= 2000) #ifdef MQTT_SCode
{ // if(DevParam.ESP8266SendTime >= 2000)
MQTTSerialize_pingreq(buf, buflen);// 发送心跳 // {
ESP8266_SendStr((char *)buf); // MQTTSerialize_pingreq(buf, buflen);// 发送心跳
DevParam.ESP8266SendTime = 0; // ESP8266_SendStr((char *)buf);
} // DevParam.ESP8266SendTime = 0;
// }
// 发布设备状态 // 发布设备状态
else if(DevParam.ESP8266SendTime>=1500){ // else if(DevParam.ESP8266SendTime>=1500){
// /a1ykSq0uPgd/qmvH76OCy2FeGp9DDMPx/user/update // // /a1ykSq0uPgd/qmvH76OCy2FeGp9DDMPx/user/update
// 0x00 00000001 0032 0100 001223 // // 0x00 00000001 0032 0100 001223
char txBuf[30] = {0}; // char txBuf[30] = {0};
char txLen = 0; // char txLen = 0;
//txBuf[txLen++] = COMMAND_REPORT;// 属性上报 // //txBuf[txLen++] = COMMAND_REPORT;// 属性上报
txBuf[txLen++] = 0x00;txBuf[txLen++] = 0x00;txBuf[txLen++] = 0x00;txBuf[txLen++] = 0x01;// ID // txBuf[txLen++] = 0x00;txBuf[txLen++] = 0x00;txBuf[txLen++] = 0x00;txBuf[txLen++] = 0x01;// ID
//txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 8);txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 0); // INT16 // //txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 8);txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 0); // INT16
//txBuf[txLen++] = DeviceData.prop_bool; // BOOL // //txBuf[txLen++] = DeviceData.prop_bool; // BOOL
//txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 8);txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 0);// FLOAT // //txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 8);txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 0);// FLOAT
MQTT_UserPublish("device_info", txBuf, txLen); // MQTT_UserPublish("device_info", txBuf, txLen);
DevParam.ESP8266SendTime = 0; // DevParam.ESP8266SendTime = 0;
} // }
#endif
} }
} }
@@ -186,8 +214,7 @@ uint16_t i = 0;
uint8_t rbuf[256] = {0}; uint8_t rbuf[256] = {0};
uint8_t rlen = 0; uint8_t rlen = 0;
void ESP8266_NetReceiveInfor(void) void ESP8266_NetReceiveInfor(void) {
{
if(UART2ReadFlag&0x8000) if(UART2ReadFlag&0x8000)
{ {
if(NetWorkFlow == 2) { if(NetWorkFlow == 2) {
@@ -224,6 +251,7 @@ void ESP8266_NetReceiveInfor(void)
} }
if(NetWorkFlow == 10) if(NetWorkFlow == 10)
{ {
#ifdef MQTT_SCode
rlen = UART2ReadFlag&(~(1<<15)); rlen = UART2ReadFlag&(~(1<<15));
memcpy(rbuf, (void*)&UART2ReadBuf, rlen); memcpy(rbuf, (void*)&UART2ReadBuf, rlen);
memset(UART2ReadBuf, 0, sizeof(UART2ReadBuf)); memset(UART2ReadBuf, 0, sizeof(UART2ReadBuf));
@@ -248,6 +276,7 @@ void ESP8266_NetReceiveInfor(void)
// memset(rbuf, 0, sizeof(rbuf)); // memset(rbuf, 0, sizeof(rbuf));
} }
} }
#endif
} }
} }
} }