mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-17 16:36:03 +08:00
修订
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
### 一、项目简介
|
### 一、项目简介
|
||||||
**本项目主要实现配网以及通过MQTT连接服务器的过程。
|
本项目实现设备端从进行小程序配网到通过mqtt连接服务器的整个流程。
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -180,87 +180,17 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>UART2ReadBuf</ItemText>
|
<ItemText>DevParam,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>1</count>
|
<count>1</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>DevParam,0x0A</ItemText>
|
<ItemText>Usart3ReadBuf</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>2</count>
|
<count>2</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>PublishData</ItemText>
|
<ItemText>UART3ReadFlag</ItemText>
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>3</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>StringData</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>4</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>NetWorkFlow,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>5</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>cmd</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>6</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>UART2ReadBuf</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>7</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>ret</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>8</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>haystack</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>9</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>needle</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>10</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>i,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>11</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>j,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>12</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>StringData</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>13</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>NewSite,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>14</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>byte2,0x10</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>15</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>wait,0x10</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>16</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>byte1</ItemText>
|
|
||||||
</Ww>
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
|
|||||||
@@ -67,8 +67,6 @@ void BSP_UART3Init(uint32_t bound){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 读取USARTx->SR能避免莫名其妙的错误
|
// 读取USARTx->SR能避免莫名其妙的错误
|
||||||
uint8_t Usart3ReadBuf[60] = {0};
|
|
||||||
uint16_t Usart3ReadFlag = 0;
|
|
||||||
void USART3_IRQHandler(void)
|
void USART3_IRQHandler(void)
|
||||||
{
|
{
|
||||||
uint8_t res = 0;
|
uint8_t res = 0;
|
||||||
@@ -77,13 +75,12 @@ void USART3_IRQHandler(void)
|
|||||||
res = USART_ReceiveData(USART3);
|
res = USART_ReceiveData(USART3);
|
||||||
|
|
||||||
// 是否存在数据没有处理
|
// 是否存在数据没有处理
|
||||||
if( (Usart3ReadFlag&0x8000)==0 )
|
if( (UART3ReadFlag&0x8000)==0 )
|
||||||
{
|
{
|
||||||
Usart3ReadBuf[Usart3ReadFlag] = res;
|
UART3ReadBuf[UART3ReadFlag++] = res;
|
||||||
Usart3ReadFlag++;
|
if(UART3ReadFlag>=59)
|
||||||
if(Usart3ReadFlag>=59)
|
|
||||||
{
|
{
|
||||||
Usart3ReadFlag |= (1 << 15);
|
UART3ReadFlag |= (1 << 15);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ int main()
|
|||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
// 网络配网部分
|
// 网络配网部分
|
||||||
ESP8266_NetWorkFlow();
|
//ESP8266_NetWorkFlow();
|
||||||
|
|
||||||
// 网络数据接收处理
|
// 网络数据接收处理
|
||||||
ESP8266_NetReceiveInfor();
|
ESP8266_NetReceiveInfor();
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ void Bat_GetWorkInfor(void)
|
|||||||
DevParam.BatCheck++;
|
DevParam.BatCheck++;
|
||||||
/***获取电池电压***/
|
/***获取电池电压***/
|
||||||
DevParam.BatVoltage = ADC_GetSimpleData();
|
DevParam.BatVoltage = ADC_GetSimpleData();
|
||||||
if(DevParam.BatVoltage >= 3.58)
|
if(DevParam.BatVoltage >= 3.58) {
|
||||||
{
|
|
||||||
/***转换电池容量***/
|
/***转换电池容量***/
|
||||||
if(DevParam.BatVoltage>=4.16)
|
if(DevParam.BatVoltage>=4.16)
|
||||||
DevParam.ShortBatSOC = 100;
|
DevParam.ShortBatSOC = 100;
|
||||||
@@ -66,7 +65,7 @@ void Show_BatIconShapeRefresh(void)
|
|||||||
/*显示部分,电池图标刷新*/
|
/*显示部分,电池图标刷新*/
|
||||||
void Show_BatIconRefresh(void)
|
void Show_BatIconRefresh(void)
|
||||||
{
|
{
|
||||||
if((DevParam.BatIconRefreshTime>=500)&&(DevParam.BatCheck>=2))
|
if((DevParam.BatIconRefreshTime>=500)&&(DevParam.BatCheck>=2)&&(DevParam.RunPhase!=0))
|
||||||
{
|
{
|
||||||
#ifdef Device_LCD
|
#ifdef Device_LCD
|
||||||
uint8_t i = 0;
|
uint8_t i = 0;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ void Dev_ScanExtIndicate(void) {
|
|||||||
Delay_ms(200);
|
Delay_ms(200);
|
||||||
if(Read_BootKey())
|
if(Read_BootKey())
|
||||||
{
|
{
|
||||||
|
Power_3V3(1);
|
||||||
while(Read_BootKey());
|
while(Read_BootKey());
|
||||||
DevParam.ShortRunPhase = RunPhase_Runing;
|
DevParam.ShortRunPhase = RunPhase_Runing;
|
||||||
}
|
}
|
||||||
@@ -32,8 +33,7 @@ void Dev_ScanExtIndicate(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 运行模式
|
// 运行模式
|
||||||
if(DevParam.RunPhase==RunPhase_Runing)
|
if(DevParam.RunPhase==RunPhase_Runing) {
|
||||||
{
|
|
||||||
if(Read_BootKey())
|
if(Read_BootKey())
|
||||||
{
|
{
|
||||||
Delay_ms(200);
|
Delay_ms(200);
|
||||||
@@ -60,6 +60,8 @@ void Dev_SwitchWorkMode(void)
|
|||||||
{
|
{
|
||||||
// 显示初始化
|
// 显示初始化
|
||||||
#ifdef Device_LCD
|
#ifdef Device_LCD
|
||||||
|
Power_3V3(1);
|
||||||
|
|
||||||
Power_LCD(0);
|
Power_LCD(0);
|
||||||
|
|
||||||
/*显示部分,基础外形刷新*/
|
/*显示部分,基础外形刷新*/
|
||||||
@@ -68,8 +70,6 @@ void Dev_SwitchWorkMode(void)
|
|||||||
/*显示部分,电池图标外形刷新*/
|
/*显示部分,电池图标外形刷新*/
|
||||||
if(DevParam.RunPhase == 0)
|
if(DevParam.RunPhase == 0)
|
||||||
Show_BatIconShapeRefresh();
|
Show_BatIconShapeRefresh();
|
||||||
else
|
|
||||||
Power_LCD(1);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 侧边跳动初始化
|
// 侧边跳动初始化
|
||||||
@@ -78,6 +78,8 @@ void Dev_SwitchWorkMode(void)
|
|||||||
/*空气检测仪初始化*/
|
/*空气检测仪初始化*/
|
||||||
PMD4_Init();
|
PMD4_Init();
|
||||||
|
|
||||||
|
Power_LCD(1);
|
||||||
|
|
||||||
DevParam.RunPhase = RunPhase_Runing;
|
DevParam.RunPhase = RunPhase_Runing;
|
||||||
}
|
}
|
||||||
if(DevParam.ShortRunPhase == RunPhase_Standby)
|
if(DevParam.ShortRunPhase == RunPhase_Standby)
|
||||||
@@ -91,6 +93,8 @@ void Dev_SwitchWorkMode(void)
|
|||||||
{
|
{
|
||||||
/*显示部分,电池图标外形刷新*/
|
/*显示部分,电池图标外形刷新*/
|
||||||
Show_BatIconShapeRefresh();
|
Show_BatIconShapeRefresh();
|
||||||
|
|
||||||
|
Power_LCD(1);
|
||||||
}
|
}
|
||||||
else if(DevParam.RunPhase==RunPhase_Runing)
|
else if(DevParam.RunPhase==RunPhase_Runing)
|
||||||
{
|
{
|
||||||
@@ -113,9 +117,13 @@ void Dev_SwitchWorkMode(void)
|
|||||||
if(DevParam.ShortRunPhase == RunPhase_Close)
|
if(DevParam.ShortRunPhase == RunPhase_Close)
|
||||||
{
|
{
|
||||||
Delay_ms(1000);
|
Delay_ms(1000);
|
||||||
|
|
||||||
Power_PMD4(0);
|
Power_PMD4(0);
|
||||||
|
|
||||||
Power_LCD(0);
|
Power_LCD(0);
|
||||||
|
|
||||||
Power_3V3(0);
|
Power_3V3(0);
|
||||||
|
|
||||||
DevParam.RunPhase = RunPhase_Close;
|
DevParam.RunPhase = RunPhase_Close;
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,18 +184,13 @@ uint8_t ESP8266_STAConnect(char *name, char *password){
|
|||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSTART=\"TCP\",\"192.168.0.102\",8086\r\n",(uint8_t *)"OK",200));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSTART=\"TCP\",\"192.168.0.102\",8086\r\n",(uint8_t *)"OK",200));
|
||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPMODE=1\r\n",(uint8_t *)"OK",200));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPMODE=1\r\n",(uint8_t *)"OK",200));
|
||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSEND\r\n",(uint8_t *)"OK",20));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSEND\r\n",(uint8_t *)"OK",20));
|
||||||
UART2ReadFlag = 0;
|
|
||||||
memset((void *)UART2ReadBuf, 0, sizeof(UART2ReadBuf));
|
|
||||||
return 0;
|
|
||||||
#elif UDP_Mode
|
#elif UDP_Mode
|
||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPMUX=0\r\n",(uint8_t *)"OK",200));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPMUX=0\r\n",(uint8_t *)"OK",200));
|
||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSTART=\"UDP\",\"192.168.1.6\",8086,8086,0\r\n",(uint8_t *)"OK",200));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSTART=\"UDP\",\"192.168.1.6\",8086,8086,0\r\n",(uint8_t *)"OK",200));
|
||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPMODE=1\r\n",(uint8_t *)"OK",200));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPMODE=1\r\n",(uint8_t *)"OK",200));
|
||||||
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSEND\r\n",(uint8_t *)"OK",20));
|
while(ESP8266_SendCMD((uint8_t *)"AT+CIPSEND\r\n",(uint8_t *)"OK",20));
|
||||||
UART2ReadFlag = 0;
|
|
||||||
memset((void *)UART2ReadBuf, 0, sizeof(UART2ReadBuf));
|
|
||||||
return 0;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
UART2ReadFlag = 0;
|
UART2ReadFlag = 0;
|
||||||
memset((void *)UART2ReadBuf, 0, sizeof(UART2ReadBuf));
|
memset((void *)UART2ReadBuf, 0, sizeof(UART2ReadBuf));
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ uint8_t NetWorkFlow = 1;
|
|||||||
uint8_t Wssid[20] = "";
|
uint8_t Wssid[20] = "";
|
||||||
uint8_t Wpassword[20] = "";
|
uint8_t Wpassword[20] = "";
|
||||||
|
|
||||||
|
#ifdef MQTT_SCode
|
||||||
char MQTT_ServerIP[20] = "106.12.9.213";
|
char MQTT_ServerIP[20] = "106.12.9.213";
|
||||||
uint32_t MQTT_ServerPort = 1883;
|
uint32_t MQTT_ServerPort = 1883;
|
||||||
|
|
||||||
@@ -33,6 +34,15 @@ static char MQTT_DeviceID[20] = "E8DB84933299";
|
|||||||
static char MQTT_ClientID[100] = "user";
|
static char MQTT_ClientID[100] = "user";
|
||||||
static char MQTT_Username[20] = "test";
|
static char MQTT_Username[20] = "test";
|
||||||
static char MQTT_Password[20] = "123456";
|
static char MQTT_Password[20] = "123456";
|
||||||
|
#elif MQTT_AT
|
||||||
|
char MQTT_ServerIP[20] = "106.12.9.213";
|
||||||
|
uint32_t MQTT_ServerPort = 1883;
|
||||||
|
|
||||||
|
static char MQTT_DeviceID[20] = "E8DB84933299";
|
||||||
|
static char MQTT_ClientID[100] = "user";
|
||||||
|
static char MQTT_Username[20] = "test";
|
||||||
|
static char MQTT_Password[20] = "123456";
|
||||||
|
#endif
|
||||||
|
|
||||||
uint8_t PublishData[500] = {0};
|
uint8_t PublishData[500] = {0};
|
||||||
int len = 0;
|
int len = 0;
|
||||||
@@ -173,8 +183,7 @@ void ESP8266_NetWorkFlow(void) {
|
|||||||
/********************************/
|
/********************************/
|
||||||
/********************************/
|
/********************************/
|
||||||
#ifdef MQTT_AT
|
#ifdef MQTT_AT
|
||||||
if(DevParam.MQTTSendTime >= 5000)
|
if(DevParam.MQTTSendTime >= 5000) {
|
||||||
{
|
|
||||||
// 定时发布设备状态
|
// 定时发布设备状态
|
||||||
memset((void *)PublishData, 0, sizeof(PublishData));
|
memset((void *)PublishData, 0, sizeof(PublishData));
|
||||||
sprintf((char *)PublishData,"AT+MQTTPUB=0,\"%s\",\"{\\\"deviceNum\\\":\\\"%s\\\"\\,\\\"isOnline\\\":1\\,\\\"rssi\\\":-73\\,\\\"airTemperature\\\":%d\\,\\\"remark\\\":\\\"\\\"}\",0,0\r\n",\
|
sprintf((char *)PublishData,"AT+MQTTPUB=0,\"%s\",\"{\\\"deviceNum\\\":\\\"%s\\\"\\,\\\"isOnline\\\":1\\,\\\"rssi\\\":-73\\,\\\"airTemperature\\\":%d\\,\\\"remark\\\":\\\"\\\"}\",0,0\r\n",\
|
||||||
|
|||||||
@@ -21,10 +21,13 @@ uint8_t PMD4_CheckSum(uint8_t *data) {
|
|||||||
}
|
}
|
||||||
// PM 初始化
|
// PM 初始化
|
||||||
void PMD4_Init(void) {
|
void PMD4_Init(void) {
|
||||||
|
Power_PMD4(1);
|
||||||
|
|
||||||
|
Delay_ms(200);
|
||||||
|
|
||||||
BSP_UART3Init(9600);
|
BSP_UART3Init(9600);
|
||||||
|
|
||||||
Power_PMD4(1);
|
Delay_ms(200);
|
||||||
Delay_ms(20);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 请求获取空气信息
|
// 请求获取空气信息
|
||||||
@@ -71,7 +74,7 @@ void PMD4_GetAirInfor(void)
|
|||||||
}
|
}
|
||||||
if(DevParam.AirInforGetTime >= 2000)
|
if(DevParam.AirInforGetTime >= 2000)
|
||||||
{
|
{
|
||||||
PMD4_ReqGetAirInfor(0xE2);
|
//PMD4_ReqGetAirInfor(0xE2);
|
||||||
DevParam.AirInforGetTime = 0;
|
DevParam.AirInforGetTime = 0;
|
||||||
}
|
}
|
||||||
/**********显示实时空气信息*****************/
|
/**********显示实时空气信息*****************/
|
||||||
@@ -133,8 +136,7 @@ void PMD4_GetAirInfor(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
/*显示部分,基础外形刷新*/
|
/*显示部分,基础外形刷新*/
|
||||||
void Show_BasicShapeRefresh(void)
|
void Show_BasicShapeRefresh(void) {
|
||||||
{
|
|
||||||
#ifdef Device_LCD
|
#ifdef Device_LCD
|
||||||
uint16_t x = 0, y = 0;
|
uint16_t x = 0, y = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user