Files
FreeRTOS_LoRa_Environment_A…/STM32/Gateway_Node/Drivers/ESP8266.h

116 lines
6.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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 */