mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-17 16:36:03 +08:00
[update] 移植设备mqtt协议,暂未完成
This commit is contained in:
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
@@ -74,6 +74,24 @@ void delay_ms(int ms)
|
||||
{
|
||||
HAL_Delay(ms);
|
||||
}
|
||||
|
||||
// ESP8266<36><36><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>MCU<43><55><EFBFBD><EFBFBD>
|
||||
int wifi_data_recv_fun(type_recv_e type, uint8_t *data, int len)
|
||||
{
|
||||
switch((int)type)
|
||||
{
|
||||
case TYPE_RECV_DISCONNECT:
|
||||
printf("WIFI DISCONNECT!\r\n");
|
||||
break;
|
||||
case TYPE_RECV_GOT_IP:
|
||||
printf("WIFI GOT IP!\r\n");
|
||||
break;
|
||||
case TYPE_RECV_SUBSCRIBE:
|
||||
printf("recv_fun sucribe data : %s\r\n", data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/**
|
||||
@@ -144,11 +162,14 @@ int main(void)
|
||||
{
|
||||
printf("enable time4 pwm output\r\n");
|
||||
}
|
||||
set_sg90(50);
|
||||
|
||||
if (HAL_TIM_Base_Start_IT(&htim3))
|
||||
{
|
||||
printf("enable time3 base isr\r\n");
|
||||
}
|
||||
|
||||
ESP8266_Fram_Record_Struct.wifi_data_recv_cb = wifi_data_recv_fun; // <20><><EFBFBD><EFBFBD>ϵͳ<CFB5>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ESP8266_STA_MQTTClient_Init();
|
||||
printf("ready go into while1\r\n");
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -330,18 +330,6 @@
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\User\xiaoyi_wifi\tcp.c</PathWithFileName>
|
||||
<FilenameWithoutPath>tcp.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\User\xiaoyi_wifi\mqtt.c</PathWithFileName>
|
||||
<FilenameWithoutPath>mqtt.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
@@ -349,7 +337,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -369,7 +357,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -381,7 +369,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -393,7 +381,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -405,7 +393,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -417,7 +405,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -429,7 +417,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>4</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -449,7 +437,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -461,7 +449,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -473,7 +461,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileNumber>22</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -485,7 +473,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileNumber>23</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -497,7 +485,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileNumber>24</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -509,7 +497,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileNumber>25</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -521,7 +509,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileNumber>26</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -533,7 +521,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileNumber>27</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -545,7 +533,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileNumber>28</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -557,7 +545,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileNumber>29</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -569,7 +557,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileNumber>30</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -581,7 +569,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileNumber>31</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -593,7 +581,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileNumber>32</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -605,7 +593,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileNumber>33</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -617,7 +605,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileNumber>34</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -629,7 +617,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileNumber>35</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -641,7 +629,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileNumber>36</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -653,7 +641,7 @@
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileNumber>37</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
@@ -673,7 +661,7 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
||||
@@ -446,11 +446,6 @@
|
||||
<Group>
|
||||
<GroupName>Application/User/Process</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>tcp.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>..\User\xiaoyi_wifi\tcp.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>mqtt.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
|
||||
@@ -21,6 +21,8 @@ void start_buzz(void);
|
||||
|
||||
void stop_buzz(void);
|
||||
|
||||
void set_sg90(int value);
|
||||
|
||||
void process_local_handle(uint16_t value_humi);
|
||||
|
||||
void process_report_data(void);
|
||||
|
||||
@@ -78,6 +78,22 @@ void ESP8266_AT_Test(void)
|
||||
}
|
||||
}
|
||||
|
||||
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ESP8266_ATE0(void)
|
||||
{
|
||||
char count=0;
|
||||
delay_ms(1000);
|
||||
while(count < 10)
|
||||
{
|
||||
if(ESP8266_Send_AT_Cmd("ATE0","OK",NULL,500))
|
||||
{
|
||||
printf("OK\r\n");
|
||||
return;
|
||||
}
|
||||
++ count;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//ѡ<><D1A1>ESP8266<36>Ĺ<EFBFBD><C4B9><EFBFBD>ģʽ
|
||||
// enumMode ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
@@ -231,13 +247,13 @@ uint8_t ESP8266_Get_LinkStatus ( void )
|
||||
{
|
||||
if (ESP8266_Send_AT_Cmd( "AT+CIPSTATUS", "OK", 0, 500 ) )
|
||||
{
|
||||
if ( strstr ( ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:2\r\n" ) )
|
||||
if ( strstr ( (char *)ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:2\r\n" ) )
|
||||
return 2;
|
||||
|
||||
else if ( strstr ( ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:3\r\n" ) )
|
||||
else if ( strstr ( (char *)ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:3\r\n" ) )
|
||||
return 3;
|
||||
|
||||
else if ( strstr ( ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:4\r\n" ) )
|
||||
else if ( strstr ( (char *)ESP8266_Fram_Record_Struct.Data_RX_BUF, "STATUS:4\r\n" ) )
|
||||
return 4;
|
||||
|
||||
}
|
||||
@@ -370,98 +386,4 @@ void USART_printf ( char * Data, ... )
|
||||
}
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ΪESP8266MQTT<54><54><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
|
||||
/*
|
||||
*MQTT<54><54><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*scheme <20><><EFBFBD>ӷ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>MQTT over TCP,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1
|
||||
*client_id MQTTclientID <20><><EFBFBD>ڱ<EFBFBD>־client<6E><74><EFBFBD><EFBFBD>
|
||||
*username <20><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> username
|
||||
*password <20><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> password
|
||||
*cert_key_ID ֤<><D6A4> ID, Ŀǰ֧<C7B0><D6A7>һ<EFBFBD><D2BB> cert ֤<><D6A4>, <20><><EFBFBD><EFBFBD>Ϊ 0
|
||||
*CA_ID Ŀǰ֧<C7B0><D6A7>һ<EFBFBD><D2BB> CA ֤<><D6A4>, <20><><EFBFBD><EFBFBD>Ϊ 0
|
||||
*path <20><>Դ·<D4B4><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ""
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTUSERCFG( char * pClient_Id, char * pUserName,char * PassWord)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd, "AT+MQTTUSERCFG=0,1,\"%s\",\"%s\",\"%s\",0,0,\"\"", pClient_Id,pUserName,PassWord );
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*<2A><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*IP<49><50>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>Ӧ<EFBFBD><D3A6>IP<49><50>ַ
|
||||
*ComNum MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>Ӧ<EFBFBD>Ķ˿ںţ<DABA>һ<EFBFBD><D2BB>Ϊ1883
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTCONN( char * Ip, int Num)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd,"AT+MQTTCONN=0,\"%s\",%d,0", Ip,Num);
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
/*
|
||||
*<2A><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD> MQTT <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6>IJ<EFBFBD>ͬ topic
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*Topic <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTopic
|
||||
*Qosֵ<73><D6B5>һ<EFBFBD><D2BB>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTSUB(char * Topic)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd, "AT+MQTTSUB=0,\"%s\",1",Topic );
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*<2A><>LinkID<49><44>ͨ<EFBFBD><CDA8> topic <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data, <20><><EFBFBD><EFBFBD> data Ϊ<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*Topic <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTopic
|
||||
*data<74><61><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTPUB( char * Topic,char *temp)
|
||||
{
|
||||
char cCmd [512];
|
||||
sprintf (cCmd, "AT+MQTTPUB=0,\"%s\",\"%s\",0,0", Topic ,temp);
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 1000 );
|
||||
}
|
||||
|
||||
/*
|
||||
*<2A>ر<EFBFBD> MQTT Client Ϊ LinkID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>ͷ<EFBFBD><CDB7>ڲ<EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Դ
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*Topic <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTopic
|
||||
*data<74><61><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTCLEAN(void)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd, "AT+MQTTCLEAN=0");
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
//ESP8266<36><36><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
//enumEnUnvarnishTx<54>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><CDB8>ģʽ
|
||||
//pStr<74>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
//ulStrLength<74>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//ucId <20><><EFBFBD>Ӻ<EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65> <20><>֮false
|
||||
bool MQTT_SendString(char * pTopic,char *temp2)
|
||||
{
|
||||
|
||||
bool bRet = false;
|
||||
ESP8266_MQTTPUB(pTopic,temp2);
|
||||
delay_ms(1000);
|
||||
bRet = true;
|
||||
return bRet;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ typedef enum{
|
||||
enumTCP,
|
||||
enumUDP,
|
||||
} ENUM_NetPro_TypeDef;
|
||||
|
||||
//<2F><><EFBFBD>Ӻţ<D3BA>ָ<EFBFBD><D6B8>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>Ӻſ<D3BA><C5BF>Է<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC>˿ڶ<CBBF><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
typedef enum{
|
||||
Multiple_ID_0 = 0,
|
||||
@@ -34,6 +35,26 @@ typedef enum{
|
||||
Single_ID_0 = 5,
|
||||
} ENUM_ID_NO_TypeDef;
|
||||
|
||||
|
||||
//ESP8266<36><36><EFBFBD><EFBFBD>״̬
|
||||
typedef enum{
|
||||
NET_STATUS_INIT = 0,
|
||||
NET_STATUS_WIFI_CONNECTING,
|
||||
NET_STATUS_WIFI_CONNECTED,
|
||||
NET_STATUS_WIFI_FAILED,
|
||||
NET_STATUS_CLOUD_SUCCESS,
|
||||
NET_STATUS_CLOUD_FAIL,
|
||||
}connect_status_e;
|
||||
|
||||
//ESP8266<36><36><EFBFBD><EFBFBD>״̬
|
||||
typedef enum{
|
||||
TYPE_RECV_CONNECT = 0,
|
||||
TYPE_RECV_DISCONNECT,
|
||||
TYPE_RECV_GOT_IP,
|
||||
TYPE_RECV_SUBSCRIBE, // <20><><EFBFBD><EFBFBD>MQTT<54>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
TYPE_RECV_NONE,
|
||||
}type_recv_e;
|
||||
|
||||
#define ESP8266_RST_Pin GPIO_PIN_4 //<2F><>λ<EFBFBD>ܽ<EFBFBD>
|
||||
#define ESP8266_RST_Pin_Port GPIOA //<2F><>λ
|
||||
|
||||
@@ -55,6 +76,10 @@ typedef enum{
|
||||
|
||||
|
||||
#define RX_BUF_MAX_LEN 1024 //<2F><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
|
||||
typedef int (*wifi_data_arrvied)(type_recv_e type, uint8_t *data, int len); // <20><><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD>WIFI<46><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
extern struct STRUCT_USART_Fram //<2F><><EFBFBD><EFBFBD>֡<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
{
|
||||
uint8_t Data_RX_BUF[RX_BUF_MAX_LEN];
|
||||
@@ -67,13 +92,16 @@ extern struct STRUCT_USART_Fram //
|
||||
__IO uint16_t FramFinishFlag :1; // 15
|
||||
}InfBit;
|
||||
};
|
||||
wifi_data_arrvied wifi_data_recv_cb;
|
||||
|
||||
}ESP8266_Fram_Record_Struct;
|
||||
|
||||
|
||||
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>TCP<43><50><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
void ESP8266_Init(uint32_t bound);
|
||||
void ESP8266_AT_Test(void);
|
||||
void ESP8266_ATE0(void);
|
||||
bool ESP8266_Send_AT_Cmd(char *cmd,char *ack1,char *ack2,uint32_t time);
|
||||
void ESP8266_Rst(void);
|
||||
bool ESP8266_Net_Mode_Choose(ENUM_Net_ModeTypeDef enumMode);
|
||||
|
||||
@@ -1,42 +1,324 @@
|
||||
#include "mqtt.h"
|
||||
|
||||
void ESP8266_STA_MQTTClient_Init(void)
|
||||
#define MQTT_NAME "n87ieud/my_board2"
|
||||
#define MQTT_PW "k4e9trh5qjwjhc2q"
|
||||
#define MQTT_CLIENT_ID "my_board2"
|
||||
|
||||
#define MQTT_TOPIC_UPDATE "$baidu/iot/shadow/my_board2/update"
|
||||
#define MQTT_TOPIC_DELTA "$baidu/iot/shadow/my_board2/delta"
|
||||
#define MQTT_TOPIC_SNAPSHOT "$baidu/iot/shadow/my_board2/update/snapshot"
|
||||
|
||||
|
||||
char str[] = "{\"deviceNum\": \"E8DB84933089\",\"relayStatus\": 0,\"lightStatus\": 0,\"isOnline\": 1,\"rssi\": -54,\"deviceTemperature\": 38}";
|
||||
|
||||
static int mqtt_send(uint8_t head, uint32_t vlen, uint8_t *vhead,
|
||||
uint32_t pay_len, uint8_t *payload)
|
||||
{
|
||||
char str[] = "{\
|
||||
\"deviceNum\": \"E8DB84933089\",\
|
||||
\"relayStatus\": 0,\
|
||||
\"lightStatus\": 0,\
|
||||
\"isOnline\": 1,\
|
||||
\"rssi\": -54,\
|
||||
\"deviceTemperature\": 40,\
|
||||
\"airTemperature\": 0,\
|
||||
\"airHumidity\": 0,\
|
||||
\"triggerSource\": 0,\
|
||||
\"brightness\": 11,\
|
||||
\"lightInterval\": 432,\
|
||||
\"lightMode\": 0,\
|
||||
\"fadeTime\": 259,\
|
||||
\"red\": 255,\
|
||||
\"green\": 0,\
|
||||
\"blue\": 0,\
|
||||
\"remark\":{\"door_status\":1, \"light\":60}\
|
||||
}";
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ESP8266<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n");
|
||||
// ESP8266_AT_Test();//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ģʽ
|
||||
ESP8266_Net_Mode_Choose(STA);
|
||||
while(!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD));
|
||||
ESP8266_MQTTUSERCFG(User_ESP8266_client_id,User_ESP8266_username,User_ESP8266_password);
|
||||
ESP8266_MQTTCONN( User_ESP8266_MQTTServer_IP, User_ESP8266_MQTTServer_PORT);
|
||||
ESP8266_MQTTSUB( User_ESP8266_MQTTServer_Topic_SUB);
|
||||
printf("\r\nMQTT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
int32_t tmp_encode, tmp_x;
|
||||
uint32_t i = 0;
|
||||
uint8_t msg[RX_BUFF_LEN];
|
||||
msg[i++] = head;
|
||||
|
||||
// sprintf(str,"{}");//<2F><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MQTT_SendString (User_ESP8266_MQTTServer_Topic_PUB,str);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
tmp_x = vlen + pay_len;
|
||||
do {
|
||||
tmp_encode = tmp_x % 128;
|
||||
tmp_x = tmp_x / 128;
|
||||
if (tmp_x > 0) {
|
||||
tmp_encode = tmp_encode | 128;
|
||||
}
|
||||
msg[i++] = tmp_encode;
|
||||
} while (tmp_x > 0);
|
||||
|
||||
// while(1)
|
||||
// {
|
||||
if (vlen != 0) {
|
||||
memcpy(&msg[i], vhead, vlen);
|
||||
i = i + vlen;
|
||||
}
|
||||
if (pay_len != 0) {
|
||||
memcpy(&msg[i], payload, pay_len);
|
||||
i = i + pay_len;
|
||||
}
|
||||
esp8266_send(msg, i);
|
||||
|
||||
// delay_ms(20);
|
||||
// }
|
||||
return 0;
|
||||
}
|
||||
static int mqtt_str_fill(uint8_t *outbuff, char *instr)
|
||||
{
|
||||
uint8_t *p_tmp;
|
||||
p_tmp = &outbuff[2];
|
||||
outbuff[0] = strlen(instr) / 256;
|
||||
outbuff[1] = strlen(instr) % 256;
|
||||
strcpy((char*) p_tmp, (char*) instr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mqtt_recv(uint8_t *ackbuff, uint16_t *ack_len, int timeout)
|
||||
{
|
||||
|
||||
do {
|
||||
if (esp8266_recv(ackbuff, &ack_len) == 0) {
|
||||
return 0;
|
||||
}
|
||||
if (timeout > 0) {
|
||||
HAL_Delay(100);
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
} while (timeout--);
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int mqtt_ack_check(uint8_t head, int timeout, uint16_t msg_id)
|
||||
{
|
||||
uint8_t recv_head;
|
||||
uint8_t recv_buff[RX_BUFF_LEN];
|
||||
uint16_t recv_len;
|
||||
|
||||
if (mqtt_recv(recv_buff, &recv_len, timeout) != 0) {
|
||||
return -1;
|
||||
}
|
||||
recv_head = recv_buff[0];
|
||||
|
||||
if ((head & recv_head) != head) {
|
||||
return -1;
|
||||
}
|
||||
switch (recv_head & 0xF0) {
|
||||
case MQTT_CONNACK:
|
||||
return 0;
|
||||
case MQTT_PUBACK:
|
||||
return 0;
|
||||
case MQTT_SUBACK:
|
||||
return 0;
|
||||
case MQTT_PINGRESP:
|
||||
return 0;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int mqtt_connect(char *name, char *pwd, char *client_id)
|
||||
{
|
||||
uint32_t i, j;
|
||||
uint8_t vhead[512];
|
||||
uint8_t payload[512];
|
||||
uint8_t connec_flag = 0;
|
||||
uint8_t head;
|
||||
uint16_t keep_alive = 60;
|
||||
|
||||
i = 0;
|
||||
vhead[i++] = 0;
|
||||
vhead[i++] = 4;
|
||||
vhead[i++] = 'M';
|
||||
vhead[i++] = 'Q';
|
||||
vhead[i++] = 'T';
|
||||
vhead[i++] = 'T';
|
||||
vhead[i++] = 4;
|
||||
|
||||
if (name != NULL) {
|
||||
connec_flag = connec_flag | CONNECT_FLAG_NAME;
|
||||
}
|
||||
if (pwd != NULL) {
|
||||
connec_flag = connec_flag | CONNECT_FLAG_PWD;
|
||||
}
|
||||
vhead[i++] = connec_flag;
|
||||
vhead[i++] = keep_alive / 256;
|
||||
vhead[i++] = keep_alive % 256;
|
||||
|
||||
j = 0;
|
||||
mqtt_str_fill(&payload[j], client_id);
|
||||
j = j + strlen(client_id) + 2;
|
||||
mqtt_str_fill(&payload[j], name);
|
||||
j = j + strlen(name) + 2;
|
||||
mqtt_str_fill(&payload[j], pwd);
|
||||
j = j + strlen(pwd) + 2;
|
||||
|
||||
head = MQTT_CONNECT;
|
||||
|
||||
mqtt_send(head, i, vhead, j, payload);
|
||||
if (mqtt_ack_check(MQTT_CONNACK, 100, 0) != 0) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mqtt_disconnect(void)
|
||||
{
|
||||
uint8_t head;
|
||||
head = MQTT_DISCONNECT;
|
||||
mqtt_send(head, 0, NULL, 0, NULL);
|
||||
}
|
||||
static int mqtt_publish(char *topic, uint8_t *msg, uint16_t msg_len,
|
||||
uint16_t msg_id)
|
||||
{
|
||||
uint32_t i, j;
|
||||
uint8_t vhead[512];
|
||||
uint8_t head;
|
||||
uint8_t payload[512];
|
||||
|
||||
head = 0;
|
||||
head = head | MQTT_PUBLISH;
|
||||
head = head | PUBLISH_FLAG_RETN;
|
||||
head = head | PUBLISH_FLAG_QOS1;
|
||||
|
||||
i = 0;
|
||||
mqtt_str_fill(&vhead[i], topic);
|
||||
i = i + strlen(topic) + 2;
|
||||
vhead[i++] = msg_id >> 8;
|
||||
vhead[i++] = msg_id;
|
||||
|
||||
j = 0;
|
||||
memcpy(payload, msg, msg_len);
|
||||
j = j + msg_len;
|
||||
|
||||
mqtt_send(head, i, vhead, j, payload);
|
||||
|
||||
if (mqtt_ack_check(MQTT_PUBACK, 100, msg_id) != 0) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mqtt_publish_ack(uint16_t msg_id)
|
||||
{
|
||||
uint32_t i, j;
|
||||
uint8_t vhead[512];
|
||||
uint8_t head;
|
||||
uint8_t payload[512];
|
||||
head = MQTT_PUBACK;
|
||||
i = 0;
|
||||
vhead[i++] = msg_id >> 8;
|
||||
vhead[i++] = msg_id;
|
||||
j = 0;
|
||||
mqtt_send(head, i, vhead, j, payload);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mqtt_subscriber(char *topic, uint16_t msg_id)
|
||||
{
|
||||
uint32_t i, j;
|
||||
uint8_t vhead[512];
|
||||
uint8_t payload[512];
|
||||
uint8_t head;
|
||||
head = MQTT_SUBSCRIBE;
|
||||
head = head | 0x02;
|
||||
i = 0;
|
||||
vhead[i++] = msg_id >> 8;
|
||||
vhead[i++] = msg_id;
|
||||
|
||||
j = 0;
|
||||
mqtt_str_fill(&payload[j], topic);
|
||||
j = j + strlen(topic) + 2;
|
||||
payload[j++] = 1;
|
||||
mqtt_send(head, i, vhead, j, payload);
|
||||
if (mqtt_ack_check(MQTT_SUBACK, 100, msg_id) != 0) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mqtt_publish_from_cloud(uint8_t *ackbuff, uint16_t ack_len)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
uint16_t multiplier = 1;
|
||||
uint32_t remain_len = 0;
|
||||
uint32_t vhead_len;
|
||||
uint32_t payload_len;
|
||||
uint8_t byte;
|
||||
uint8_t payload[512];
|
||||
uint16_t msg_id;
|
||||
uint8_t topic[256];
|
||||
i = 1;
|
||||
|
||||
memset(topic, 0, 256);
|
||||
memset(payload, 0, 256);
|
||||
do {
|
||||
byte = ackbuff[i++];
|
||||
remain_len += (byte & 0x7F) * multiplier;
|
||||
multiplier *= 128;
|
||||
if (multiplier > 128 * 128 * 128) {
|
||||
return -1;
|
||||
}
|
||||
} while ((byte & 0x80) != 0);
|
||||
vhead_len = ackbuff[i++];
|
||||
vhead_len = (vhead_len * 256) + ackbuff[i++];
|
||||
memcpy(topic, &ackbuff[i], vhead_len);
|
||||
|
||||
i = i + vhead_len;
|
||||
msg_id = ackbuff[i++];
|
||||
msg_id = (msg_id * 256) + ackbuff[i++];
|
||||
|
||||
payload_len = remain_len - vhead_len - 4;
|
||||
|
||||
memcpy(payload, &ackbuff[i], payload_len);
|
||||
if (strcmp((char*) topic, MQTT_TOPIC_DELTA) == 0) {
|
||||
sensor_data_set(payload);
|
||||
}
|
||||
mqtt_publish_ack(msg_id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint16_t msg_id = 1;
|
||||
|
||||
int mqtt_beat(void)
|
||||
{
|
||||
uint8_t head = MQTT_PINGREQ;
|
||||
uint8_t vhead[5];
|
||||
uint8_t payload[5];
|
||||
uint32_t i = 0, j = 0;
|
||||
mqtt_send(head, i, vhead, j, payload);
|
||||
if (mqtt_ack_check(MQTT_PINGRESP, 100, 0) != 0) {
|
||||
if (mqtt_connect(MQTT_NAME, MQTT_PW, MQTT_CLIENT_ID) != 0) {
|
||||
return -1;
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mqtt_handle(void)
|
||||
{
|
||||
uint8_t recv_head;
|
||||
uint8_t recv_buff[RX_BUFF_LEN];
|
||||
uint16_t recv_len;
|
||||
|
||||
if (mqtt_recv(recv_buff, &recv_len, 0) != 0) {
|
||||
return -1;
|
||||
}
|
||||
recv_head = recv_buff[0];
|
||||
|
||||
switch (recv_head & 0xF0) {
|
||||
case MQTT_PUBLISH:
|
||||
return mqtt_publish_from_cloud(recv_buff, recv_len);
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int mqtt_publish_update(uint8_t *msg, uint16_t msg_len)
|
||||
{
|
||||
if (mqtt_publish(MQTT_TOPIC_UPDATE, msg, msg_len, msg_id++) != 0) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mqtt_init(void)
|
||||
{
|
||||
if (mqtt_connect(MQTT_NAME, MQTT_PW, MQTT_CLIENT_ID) != 0) {
|
||||
mqtt_disconnect();
|
||||
esp8266_init();
|
||||
HAL_Delay(100);
|
||||
if (mqtt_connect(MQTT_NAME, MQTT_PW, MQTT_CLIENT_ID) != 0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (mqtt_subscriber(MQTT_TOPIC_DELTA, msg_id++) != 0) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,27 +1,70 @@
|
||||
#ifndef __MQTT_H
|
||||
#define __MQTT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "main.h"
|
||||
#include "esp8266.h"
|
||||
|
||||
/*
|
||||
*<2A><><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<DEB8><C4B2>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD>ù<EFBFBD>
|
||||
*/
|
||||
|
||||
|
||||
#define User_ESP8266_SSID "brown" //wifi<66><69>
|
||||
#define User_ESP8266_PWD "123456789a" //wifi<66><69><EFBFBD><EFBFBD>
|
||||
|
||||
#define User_ESP8266_client_id "50fccfefb50a48b98a93ce27bb04591f" //MQTTclientID <20><><EFBFBD>ڱ<EFBFBD>־client<6E><74><EFBFBD><EFBFBD> <20>256<35>ֽ<EFBFBD>
|
||||
#define User_ESP8266_username "admin" //<2F><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> username, <20> 64 <20>ֽ<EFBFBD>
|
||||
#define User_ESP8266_password "admin13" //<2F><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> password, <20> 64 <20>ֽ<EFBFBD>
|
||||
#define User_ESP8266_password "admin123" //<2F><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> password, <20> 64 <20>ֽ<EFBFBD>
|
||||
#define User_ESP8266_MQTTServer_IP "106.12.9.213" //MQTT<54><54><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>IP
|
||||
#define User_ESP8266_MQTTServer_PORT 1883 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
|
||||
#define User_ESP8266_MQTTServer_Topic_PUB "status" //<2F><><EFBFBD><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD>
|
||||
#define User_ESP8266_MQTTServer_Topic_SUB "status/set/E8DB84933089" //<2F><><EFBFBD><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD>
|
||||
|
||||
enum{
|
||||
MQTT_NULL = 0,
|
||||
MQTT_CONNECT = 1 << 4,
|
||||
MQTT_CONNACK = 2 << 4,
|
||||
MQTT_PUBLISH = 3 << 4,
|
||||
MQTT_PUBACK = 4 << 4,
|
||||
MQTT_PUBREC = 5 << 4,
|
||||
MQTT_PUBREL = 6 << 4,
|
||||
MQTT_PUBCOMP = 7 << 4,
|
||||
MQTT_SUBSCRIBE = 8 << 4,
|
||||
MQTT_SUBACK = 9 << 4,
|
||||
MQTT_UNSUBSCRIBE= 10 << 4,
|
||||
MQTT_UNSUBACK = 11 << 4,
|
||||
MQTT_PINGREQ = 12 << 4,
|
||||
MQTT_PINGRESP = 13 << 4,
|
||||
MQTT_DISCONNECT = 14 << 4,
|
||||
}MQTT_HEAD_T;
|
||||
|
||||
void ESP8266_STA_MQTTClient_Init(void);
|
||||
enum{
|
||||
CONNECT_FLAG = 0,
|
||||
CONNECT_FLAG_NAME = 1 << 7,
|
||||
CONNECT_FLAG_PWD = 1 << 6,
|
||||
CONNECT_FLAG_RETAIN = 1 << 5,
|
||||
CONNECT_FLAG_QOS = 1 << 4,
|
||||
CONNECT_FLAG_FLAG = 1 << 2,
|
||||
CONNECT_FLAG_CLS = 1 << 1,
|
||||
}CONNECT_T;
|
||||
|
||||
enum{
|
||||
PUBLISH_FLAG_RETN = 1,
|
||||
PUBLISH_FLAG_QOS0 = 0,
|
||||
PUBLISH_FLAG_QOS1 = 1 << 1,
|
||||
PUBLISH_FLAG_QOS2 = 1 << 2,
|
||||
PUBLISH_FLAG_DUP = 1 << 3,
|
||||
}PUBLISH_FLAG_T;
|
||||
|
||||
int mqtt_init(void);
|
||||
int mqtt_handle(void);
|
||||
int mqtt_beat(void);
|
||||
int mqtt_publish_update(uint8_t *msg, uint16_t msg_len);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __MQTT_H */
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ spring:
|
||||
master:
|
||||
url: jdbc:mysql://localhost:3306/wumei-smart?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: root
|
||||
password: admin123
|
||||
password: root
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
|
||||
@@ -65,7 +65,7 @@ spring:
|
||||
# 数据库索引
|
||||
database: 0
|
||||
# 密码
|
||||
password: admin123
|
||||
password:
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
|
||||
Reference in New Issue
Block a user