Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: PIR_Sensor_wifi myESP8266forLOstFound Motin_Activated_Temperature_Humidity_BluetoothHC-06_ESP8266_IOT 1Project3_Robot1_Final ... more
Revision 2:77388e8f0697, committed 2014-12-28
- Comitter:
- quevedo
- Date:
- Sun Dec 28 21:58:49 2014 +0000
- Parent:
- 1:399414d48048
- Commit message:
- Added functions: Get connection status, Start server mode, Close server mode; now the ESP serial baudrate is passed as a parameter in the constructor
Changed in this revision
| ESP8266.cpp | Show annotated file Show diff for this revision Revisions of this file |
| ESP8266.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/ESP8266.cpp Wed Dec 17 13:54:34 2014 +0000
+++ b/ESP8266.cpp Sun Dec 28 21:58:49 2014 +0000
@@ -1,8 +1,8 @@
#include "ESP8266.h"
// Constructor
-ESP8266::ESP8266(PinName tx, PinName rx) : comm(tx, rx) {
- comm.baud(115200);
+ESP8266::ESP8266(PinName tx, PinName rx, int br) : comm(tx, rx) {
+ comm.baud(br);
}
// Destructor
@@ -25,6 +25,29 @@
s[k + 1] = 0;
}
+// Converts integer number to null-terminated string
+void ESP8266::itoa(int n, char * s) {
+ char k = 0;
+ char r[11];
+
+ if(n == 0) {
+ s[0] = '0';
+ s[1] = 0;
+ } else {
+ while(n != 0) {
+ r[k]= (n % 10) + '0';
+ n = n / 10;
+ k++;
+ }
+ while(k > 0) {
+ s[n] = r[k - 1] + '0';
+ n++;
+ k--;
+ }
+ s[n] = 0;
+ }
+}
+
// Sends command to ESP8266. Receives the command string
void ESP8266::SendCMD(char * s) {
AddEOL(s);
@@ -117,4 +140,29 @@
char rs[15];
strcpy(rs, "AT+CIPMUX=1");
SendCMD(rs);
+}
+
+// Gets connection status. Parameter: string to contain status
+void ESP8266::GetConnStatus(char * st) {
+ char cmd[15];
+ strcpy(cmd, "AT+CIPSTATUS");
+ SendCMD(cmd);
+ RcvReply(st, 2000);
+}
+
+// Starts server mode. Parameter: port to be used
+void ESP8266::StartServerMode(int port) {
+ char rs[25];
+ char t[4];
+ strcpy(rs, "AT+CIPSERVER=1,");
+ itoa(port, t);
+ strcat(rs, t);
+ SendCMD(rs);
+}
+
+// Close server mode.
+void ESP8266::CloseServerMode(void) {
+ char rs[20];
+ strcpy(rs, "AT+CIPSERVER=0");
+ SendCMD(rs);
}
\ No newline at end of file
--- a/ESP8266.h Wed Dec 17 13:54:34 2014 +0000
+++ b/ESP8266.h Sun Dec 28 21:58:49 2014 +0000
@@ -12,8 +12,9 @@
*
* @param tx TX pin
* @param rx RX pin
+ * @param br Baud Rate
*/
- ESP8266(PinName tx, PinName rx);
+ ESP8266(PinName tx, PinName rx, int br);
/**
* ESP8266 destructor
@@ -30,11 +31,15 @@
void Quit(void);
void SetSingle(void);
void SetMultiple(void);
+void GetConnStatus(char * st);
+void StartServerMode(int port);
+void CloseServerMode(void);
private:
Serial comm;
void AddEOL(char * s);
void AddChar(char * s, char c);
+void itoa(int c, char s[]);
};
@@ -51,12 +56,12 @@
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+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=?
+ 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
*/
\ No newline at end of file