配网部分

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

View File

@@ -3,7 +3,10 @@
#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 uint16_t UART1ReadFlag;

View File

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

View File

@@ -4,18 +4,34 @@
配网流程
1、将无线设备初始化为AP模式默认设置为
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 uint8_t Nssid[20] = {0};
static uint8_t Npassword[20] = {0};
static uint8_t Nssid[20] = {0};
static uint8_t Npassword[20] = {0};
#ifdef MQTT_SCode
MQTTPacket_connectData MQTT_ConnectData = MQTTPacket_connectData_initializer;
char MQTT_ClientId[150] = {0};
char MQTT_Username[65] = {0};
char MQTT_Password[65] = {0};
volatile uint16_t MQTT_ReadBufLen = 0;
#endif
int ESP8266_WaitData(unsigned char* buf, int count)
{
@@ -30,7 +46,7 @@ int ESP8266_WaitData(unsigned char* buf, int count)
Delay_ms(10);
}
}
#ifdef MQTT_SCode
uint8_t MQTT_UserSubscribe(char *pSubTopic) {
uint8_t buf[200] = {0};
uint32_t buflen = sizeof(buf);
@@ -70,6 +86,8 @@ uint8_t MQTT_UserSubscribe(char *pSubTopic) {
return 0;
}
}
#endif
#ifdef MQTT_SCode
// MQTT_Publish("/mqtt/topic/0", "hello0");
void MQTT_UserPublish(char *pPubTopic, char *payload, int payloadlen) {
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);
ESP8266_SendStr((char *)buf);
}
#endif
uint8_t buf[400] = {0};
int buflen = 0;
void ESP8266_NetWorkFlow(void)
@@ -110,12 +129,13 @@ void ESP8266_NetWorkFlow(void)
NetWorkFlow = 5;
}
else if(NetWorkFlow == 5) {
MQTT_ConnectData.MQTTVersion = 4; // 3.1.1
MQTT_ConnectData.keepAliveInterval = 60; // 设置心跳包间隔时间
MQTT_ConnectData.clientID.cstring = (char *)MQTT_ClientId;// 客户端ID
MQTT_ConnectData.username.cstring = (char *)MQTT_Username;// 用户名
MQTT_ConnectData.password.cstring = (char *)MQTT_Password;// 密码
MQTT_ConnectData.cleansession = 0; // 清除会话
#ifdef MQTT_SCode
// MQTT_ConnectData.MQTTVersion = 4; // 3.1.1
// MQTT_ConnectData.keepAliveInterval = 60; // 设置心跳包间隔时间
// MQTT_ConnectData.clientID.cstring = (char *)MQTT_ClientId;// 客户端ID
// MQTT_ConnectData.username.cstring = (char *)MQTT_Username;// 用户名
// MQTT_ConnectData.password.cstring = (char *)MQTT_Password;// 密码
// MQTT_ConnectData.cleansession = 0; // 清除会话
//rc = aiotMqttSign(product_key, device_name, device_secret, \
//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));
buflen = sizeof(buf);
MQTTSerialize_connect( buf, buflen, &MQTT_ConnectData);
UART2ReadFlag = 0;
ESP8266_SendStr((char *)buf);
// memset(buf, 0 ,sizeof(buf));
// buflen = sizeof(buf);
//
// MQTTSerialize_connect( buf, buflen, &MQTT_ConnectData);
// UART2ReadFlag = 0;
// ESP8266_SendStr((char *)buf);
// 等待connack
if (MQTTPacket_read(buf, buflen, ESP8266_WaitData) == CONNACK){
unsigned char sessionPresent, connack_rc;
if (MQTTDeserialize_connack(&sessionPresent, &connack_rc, buf, buflen) != 1 || connack_rc != 0)
{
//Sys_SendLog("Unable to connect,return code %d\r\n", connack_rc);
//return -1;
}
}
// if (MQTTPacket_read(buf, buflen, ESP8266_WaitData) == CONNACK){
// unsigned char sessionPresent, connack_rc;
// if (MQTTDeserialize_connack(&sessionPresent, &connack_rc, buf, buflen) != 1 || connack_rc != 0)
// {
// //Sys_SendLog("Unable to connect,return code %d\r\n", connack_rc);
// //return -1;
// }
// }
/*订阅*/
MQTT_UserSubscribe("status/set/7CDFA1049ADA"); //更新设备状态
MQTT_UserSubscribe("status/get/7CDFA1049ADA"); //获取设备状态
MQTT_UserSubscribe("setting/set/7CDFA1049ADA");//更新设备配置
MQTT_UserSubscribe("setting/get/7CDFA1049ADA");//获取设备配置
// MQTT_UserSubscribe("status/set/7CDFA1049ADA"); //更新设备状态
// MQTT_UserSubscribe("status/get/7CDFA1049ADA"); //获取设备状态
// MQTT_UserSubscribe("setting/set/7CDFA1049ADA");//更新设备配置
// MQTT_UserSubscribe("setting/get/7CDFA1049ADA");//获取设备配置
#endif
/********************************/
#ifdef MQTT_AT
#endif
/********************************/
}
else if(NetWorkFlow == 10)
{
if(DevParam.ESP8266SendTime >= 2000)
{
MQTTSerialize_pingreq(buf, buflen);// 发送心跳
ESP8266_SendStr((char *)buf);
DevParam.ESP8266SendTime = 0;
}
#ifdef MQTT_SCode
// if(DevParam.ESP8266SendTime >= 2000)
// {
// MQTTSerialize_pingreq(buf, buflen);// 发送心跳
// ESP8266_SendStr((char *)buf);
// DevParam.ESP8266SendTime = 0;
// }
// 发布设备状态
else if(DevParam.ESP8266SendTime>=1500){
// /a1ykSq0uPgd/qmvH76OCy2FeGp9DDMPx/user/update
// 0x00 00000001 0032 0100 001223
char txBuf[30] = {0};
char txLen = 0;
//txBuf[txLen++] = COMMAND_REPORT;// 属性上报
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++] = DeviceData.prop_bool; // BOOL
//txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 8);txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 0);// FLOAT
// else if(DevParam.ESP8266SendTime>=1500){
// // /a1ykSq0uPgd/qmvH76OCy2FeGp9DDMPx/user/update
// // 0x00 00000001 0032 0100 001223
// char txBuf[30] = {0};
// char txLen = 0;
// //txBuf[txLen++] = COMMAND_REPORT;// 属性上报
// 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++] = DeviceData.prop_bool; // BOOL
// //txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 8);txBuf[txLen++] = (uint8_t)(DeviceData.prop_int16 >> 0);// FLOAT
MQTT_UserPublish("device_info", txBuf, txLen);
DevParam.ESP8266SendTime = 0;
}
// MQTT_UserPublish("device_info", txBuf, txLen);
// DevParam.ESP8266SendTime = 0;
// }
#endif
}
}
@@ -186,8 +214,7 @@ uint16_t i = 0;
uint8_t rbuf[256] = {0};
uint8_t rlen = 0;
void ESP8266_NetReceiveInfor(void)
{
void ESP8266_NetReceiveInfor(void) {
if(UART2ReadFlag&0x8000)
{
if(NetWorkFlow == 2) {
@@ -224,6 +251,7 @@ void ESP8266_NetReceiveInfor(void)
}
if(NetWorkFlow == 10)
{
#ifdef MQTT_SCode
rlen = UART2ReadFlag&(~(1<<15));
memcpy(rbuf, (void*)&UART2ReadBuf, rlen);
memset(UART2ReadBuf, 0, sizeof(UART2ReadBuf));
@@ -248,6 +276,7 @@ void ESP8266_NetReceiveInfor(void)
// memset(rbuf, 0, sizeof(rbuf));
}
}
#endif
}
}
}