Libreria basica para el manejo del ESP01
Dependents: Gateway_Cotosys Gateway_Cotosys_os5
ESP01.h
- Committer:
- Thrillex13
- Date:
- 2020-01-06
- Revision:
- 9:21290fc75c17
- Parent:
- 7:8c6f56470ba7
File content as of revision 9:21290fc75c17:
#ifndef ESP01_H
#define ESP01_H
#include <string>
#include "mbed.h"
#define CMD_END "\r\n"
/**
* Info about host to send data.
* Owner: Name of who owns the host
* Host: IP or address
* GETstring: String to fill in sensor ID and data
*/
typedef struct {
char* Owner;
char* Host;
char* GETstring;
} HostInfo;
/**
* Info about WiFi networks
* Owner: Name of who owns the network
* SSID: Name of the network
* password: Password of the network
*/
typedef struct {
char* Owner;
char* SSID;
char* password;
} WifiInfo;
typedef enum { STATION = 1, ACCESS_POINT, BOTH} WiFiMode;
class ESP01 {
public:
/**
* ESP01 constructor
*
* @param tx TX pin
* @param rx RX pin
* @param br Baud Rate
*/
ESP01(PinName tx, PinName rx, int br);
/**
* ESP01 destructor
*/
~ESP01();
void SendCMD(char *s);
void Reset(void);
bool RcvReply(char *r, int to);
bool GetList(char *l);
void Join(char *id, char *pwd);
bool GetIP(char *ip);
void SetMode(WiFiMode mode);
void Quit(void);
void SetSingle(void);
void SetMultiple(void);
bool GetConnStatus(char *st);
void StartServerMode(int port);
void CloseServerMode(void);
void setTransparent(void);
void startTCPConn(char *IP, int port);
void sendURL(char *URL, char *IP, char *command);
void deepsleep(size_t ms);
//Funciones que yo he agregado
void StartSmartConfig(void);
void DisableEcho(void);
void EnableDHCP(void);
void RcvSingleReply(char * r);
void GetConnStatusCode(char * st);
void SetMaxTCPConn(int maxconn);
bool TCPDataAvailable(char *data);
void SendTCPData(int socket,int len, char *data);
private:
Serial comm;
void AddEOL(char * s);
void AddChar(char * s, char c);
};
#endif //ESP01_H
/*
COMMAND TABLE
Basic:
AT: Just to generate "OK" reply
Wifi:
AT+RST: restart the module
AT+CWMODE: define wifi mode; AT+CWMODE=<mode> 1= Sta, 2= AP, 3=both; Inquiry: AT+CWMODE? or AT+CWMODE=?
AT+CWJAP: join the AP wifi; AT+ CWJAP =<ssid>,< pwd > - ssid = ssid, pwd = wifi password, both between quotes; Inquiry: AT+ CWJAP?
AT+CWLAP: list the AP wifi
AT+CWQAP: quit the AP wifi; Inquiry: AT+CWQAP=?
* AT+CWSAP: set the parameters of AP; AT+CWSAP= <ssid>,<pwd>,<chl>,<ecn> - ssid, pwd, chl = channel, ecn = encryption; Inquiry: AT+CWJAP?
TCP/IP:
AT+CIPSTATUS: get the connection status
* AT+CIPSTART: set up TCP or UDP connection 1)single connection (+CIPMUX=0) AT+CIPSTART= <type>,<addr>,<port>; 2) multiple connection (+CIPMUX=1) AT+CIPSTART= <id><type>,<addr>, <port> - id = 0-4, type = TCP/UDP, addr = IP address, port= port; Inquiry: AT+CIPSTART=?
* AT+CIPSEND: send data; 1)single connection(+CIPMUX=0) AT+CIPSEND=<length>; 2) multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>; Inquiry: AT+CIPSEND=?
* AT+CIPCLOSE: close TCP or UDP connection; AT+CIPCLOSE=<id> or AT+CIPCLOSE; Inquiry: AT+CIPCLOSE=?
AT+CIFSR: Get IP address; Inquiry: AT+ CIFSR=?
AT+CIPMUX: set mutiple connection; AT+ CIPMUX=<mode> - 0 for single connection 1 for mutiple connection; Inquiry: AT+CIPMUX?
AT+CIPSERVER: set as server; AT+ CIPSERVER= <mode>[,<port> ] - mode 0 to close server mode, mode 1 to open; port = port; Inquiry: AT+CIFSR=?
* +IPD: received data
*/