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 */