116 lines
6.6 KiB
C
116 lines
6.6 KiB
C
#ifndef __ESP8266_SAMPLE_H__
|
||
#define __ESP8266_SAMPLE_H__
|
||
|
||
#include "stm32f10x.h"
|
||
#include <stdio.h>
|
||
#include <stdbool.h>
|
||
#include <string.h>
|
||
#include "Delay.h"
|
||
#include "USART.h"
|
||
|
||
#if defined ( __CC_ARM )
|
||
#pragma anon_unions
|
||
#endif
|
||
|
||
/******************************* ESP8266 数据类型定义 ***************************/
|
||
typedef enum{
|
||
STA,
|
||
AP,
|
||
STA_AP
|
||
} eNetMode_t;
|
||
|
||
typedef enum{
|
||
ALIYUN = 0,
|
||
EMQX
|
||
} eMqttServerMode_t;
|
||
|
||
typedef enum{
|
||
enumTCP,
|
||
enumUDP,
|
||
} eNetPro_t;
|
||
|
||
typedef enum{
|
||
Multiple_ID_0 = 0,
|
||
Multiple_ID_1,
|
||
Multiple_ID_2,
|
||
Multiple_ID_3,
|
||
Multiple_ID_4,
|
||
Single_ID_0,
|
||
} eIdNo_t;
|
||
|
||
typedef enum{
|
||
OPEN = 0,
|
||
WEP,
|
||
WPA_PSK,
|
||
WPA2_PSK,
|
||
WPA_WPA2_PSK,
|
||
} eApPsdMode_t;
|
||
|
||
/* ESP8266 连接引脚定义 */
|
||
#define macESP8266_CH_PD_CLK RCC_APB2Periph_GPIOA
|
||
#define macESP8266_CH_PD_PORT GPIOA
|
||
#define macESP8266_CH_PD_PIN GPIO_Pin_5
|
||
#define macESP8266_RST_CLK RCC_APB2Periph_GPIOA
|
||
#define macESP8266_RST_PORT GPIOA
|
||
#define macESP8266_RST_PIN GPIO_Pin_6
|
||
|
||
/* ESP8266 函数宏定义 */
|
||
// #define vEsp8266Printf(*format, ...) vUsartPrintf(macESP8266_USART, *format, ...)
|
||
#define macESP8266_CH_ENABLE() GPIO_SetBits ( macESP8266_CH_PD_PORT, macESP8266_CH_PD_PIN )
|
||
#define macESP8266_CH_DISABLE() GPIO_ResetBits ( macESP8266_CH_PD_PORT, macESP8266_CH_PD_PIN )
|
||
#define macESP8266_RST_HIGH_LEVEL() GPIO_SetBits ( macESP8266_RST_PORT, macESP8266_RST_PIN )
|
||
#define macESP8266_RST_LOW_LEVEL() GPIO_ResetBits ( macESP8266_RST_PORT, macESP8266_RST_PIN )
|
||
|
||
/* 用户需要设置的参数 */
|
||
#define ESP8266_APSSID "CMCC-5bjx" // 要连接的热点的名称
|
||
// #define ESP8266_APSSID "TESTAP"
|
||
#define ESP8266_APPWD "jp7qpqn3" // 要连接的热点的密钥
|
||
|
||
#define ALIYUN 0
|
||
#define EMQX 1
|
||
#define ESP8266_MQTT_SERVER_MODE ALIYUN // 选择MQTT服务器模式:ALIYUN/EMQX
|
||
|
||
#define ESP8266_EMQX_MQTT_SERVER_IP "121.36.104.9" // MQTT服务器IP地址
|
||
#define ESP8266_EMQX_MQTT_SERVER_PORT 1883 // MQTT服务器端口号
|
||
#define ESP8266_EMQX_MQTT_CLIENTID "LoRaEnvAssistant&stm32" // MQTT客户端ID
|
||
#define ESP8266_EMQX_MQTT_USERNAME "stm32" // MQTT用户名
|
||
#define ESP8266_EMQX_MQTT_PASSWORD "123456789" // MQTT密码
|
||
#define ESP8266_EMQX_MQTT_SUBSCRIBE_TOPIC "/LoRaEnvAssistant/LoRaEnvAssistant&mqttfx/topics" // 订阅主题
|
||
#define ESP8266_EMQX_MQTT_PUBLISH_TOPIC "/LoRaEnvAssistant/LoRaEnvAssistant&stm32/topics" // 发布主题
|
||
|
||
#define ESP8266_ALIYUN_MQTT_IP "iot-06z00by9al78fmz.mqtt.iothub.aliyuncs.com"
|
||
#define ESP8266_ALIYUN_MQTT_PORT 1883
|
||
#define ESP8266_ALIYUN_MQTT_CLIENTID "k11ilqnf8mF.GATEWAY_STM32_ESP8266|securemode=2\\,signmethod=hmacsha256\\,timestamp=1768415322303|"
|
||
#define ESP8266_ALIYUN_MQTT_USERNAME "GATEWAY_STM32_ESP8266&k11ilqnf8mF"
|
||
#define ESP8266_ALIYUN_MQTT_PASSWORD "a74261b04d7dda672342776b88e956f26f74f4d9d104461f8b65cbf544ab9c03"
|
||
#define ESP8266_ALIYUN_MQTT_SUBSCRIBE_TOPIC "/k11ilqnf8mF/GATEWAY_STM32_ESP8266/user/get"
|
||
#define ESP8266_ALIYUN_MQTT_PUBLISH_TOPIC "/k11ilqnf8mF/GATEWAY_STM32_ESP8266/user/update"
|
||
|
||
/* ESP8266 函数声明 */
|
||
void vEsp8266GpioConfig ( void );
|
||
void vEsp8266Rst ( void );
|
||
bool bEsp8266Command ( char * pcCmd, char * pcAck1,
|
||
char * pcAck2, uint32_t ulWaittime );
|
||
void vEsp8266AtTest ( void );
|
||
bool bEsp8266NetModeChoose ( eNetMode_t xMode );
|
||
bool bEsp8266JoinAp ( char * pcSsid, char * pcPassWord );
|
||
bool bEsp8266MqttInit ( char * pcMqttUserName, char * pcMqttPassword, char * pcMqttClientId,
|
||
char * pcMqttServerIp, uint16_t usMqttServerPort, char * pcMqttSubscribeTopic );
|
||
bool bEsp8266BuildAp ( char * pcSsid, char * pcPassWord, eApPsdMode_t xPsdMode );
|
||
bool bEsp8266EnableMultipleId ( FunctionalState xEnumEnUnvarnishTx );
|
||
bool bEsp8266LinkServer ( eNetPro_t xNetProtocol, char * pcIp,
|
||
char * pcComNum, eIdNo_t xId);
|
||
bool bEsp8266StartOrShutServer ( FunctionalState xMode, char * pcPortNum, char * pcTimeOver );
|
||
uint8_t ucEsp8266GetLinkStatus ( void );
|
||
uint8_t ucEsp8266GetIdLinkStatus ( void );
|
||
uint8_t ucEsp8266InquireApIp ( char * pcApIp, uint8_t ucArrayLength );
|
||
bool bEsp8266UnvarnishSend ( void );
|
||
void vEsp8266ExitUnvarnishSend ( void );
|
||
bool bEsp8266SendString ( FunctionalState xEnumEnUnvarnishTx, char * pcStr,
|
||
uint32_t ulStrLength, eIdNo_t xId );
|
||
char * pcEsp8266ReceiveString ( FunctionalState xEnumEnUnvarnishTx );
|
||
|
||
/* 外部全局变量 */
|
||
|
||
#endif /* __ESP8266_H */
|