mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-17 16:36:03 +08:00
配网部分
This commit is contained in:
10
firmware/stm32-esp/README.md
Normal file
10
firmware/stm32-esp/README.md
Normal 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
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user