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.
Dependencies: Motordriver Servo mbed-dev mbed-rtos
Fork of ESP8266_wifi_robot by
ESP8266.cpp
00001 #include "ESP8266.h" 00002 00003 00004 ESP8266::ESP8266(PinName tx, PinName rx, PinName reset, char * SSID, char * password) : 00005 _esp(tx, rx), _reset(reset) { 00006 strcpy(_ssid, SSID); 00007 strcpy(_pwd, password); 00008 } 00009 00010 // Setup for ESP8266 00011 void ESP8266::setup() { 00012 00013 /* Set wifi mode */ 00014 send("wifi.setmode(wifi.STATION)\r\n"); 00015 00016 /* Set SSID and password */ 00017 strcpy(_snd, "wifi.sta.config(\""); 00018 strcat(_snd, _ssid); 00019 strcat(_snd, "\",\""); 00020 strcat(_snd, _pwd); 00021 strcat(_snd, "\")\r\n"); 00022 send(); 00023 00024 wait(7); 00025 00026 /* Set up HTTP server */ 00027 send("srv=net.createServer(net.TCP)\r\n"); 00028 send("srv:listen(80,function(conn)\r\n"); 00029 send("conn:on(\"receive\",function(conn,payload)\r\n"); 00030 send("print(payload:match(\"Z%u\"))\r\n"); 00031 send("conn:send(\"<!DOCTYPE html>\")\r\n"); 00032 send("conn:send(\"<html>\")\r\n"); 00033 send("conn:send(\"<h1>Control Robot</h1>\")\r\n"); 00034 send("conn:send('<form action=\"\" method=\"POST\">\r\n')"); 00035 send("conn:send('<input type=\"submit\" name=\"ZF\" value=\"Forward\">\r\n')"); 00036 send("conn:send('<input type=\"submit\" name=\"ZB\" value=\"Back\">\r\n')"); 00037 send("conn:send('<input type=\"submit\" name=\"ZL\" value=\"Left\">\r\n')"); 00038 send("conn:send('<input type=\"submit\" name=\"ZR\" value=\"Right\">\r\n')"); 00039 send("conn:send('<input type=\"submit\" name=\"ZS\" value=\"Servo Left\">\r\n')"); 00040 send("conn:send('<input type=\"submit\" name=\"ZP\" value=\"Servo Right\">\r\n')"); 00041 send("conn:send('</form>\r\n')"); 00042 send("conn:send(\"</html>\")\r\n"); 00043 send("end)\r\n"); 00044 send("conn:on(\"sent\",function(conn) conn:close() end)\r\n"); 00045 send("end)\r\n"); 00046 wait(10); 00047 } 00048 00049 void ESP8266::send() 00050 { 00051 _esp.printf("%s", _snd); 00052 Thread::wait(500); 00053 } 00054 00055 void ESP8266::send(char * command) { 00056 _esp.printf("%s", command); 00057 Thread::wait(500); 00058 } 00059 00060 void ESP8266::reset() { 00061 _reset = 0; 00062 wait(1); /* Not RTOS friendly */ 00063 _reset = 1; 00064 } 00065 00066 void ESP8266::baud(int baudrate) { 00067 char buffer[32]; 00068 sprintf(buffer, "AT+CIOBAUD=%d\r\n", baudrate); 00069 send(buffer); 00070 00071 _esp.baud(baudrate); 00072 } 00073 00074 void ESP8266::getIP() { 00075 send("\r\nprint(wifi.sta.getip())\r\n"); 00076 } 00077 00078 void ESP8266::getMAC() { 00079 send("\r\nprint(wifi.sta.getmac())\r\n"); 00080 } 00081 00082 int ESP8266::putc(int c) { 00083 return _esp.putc(c); 00084 } 00085 00086 int ESP8266::getc() { 00087 return _esp.getc(); 00088 } 00089 00090 int ESP8266::readable() { 00091 return _esp.readable(); 00092 } 00093 int ESP8266::writeable() { 00094 return _esp.writeable(); 00095 } 00096 00097 void ESP8266::attach(Callback< void()> func, SerialBase::IrqType type) { 00098 _esp.attach(func, type); 00099 }
Generated on Sun Jul 17 2022 22:45:40 by
1.7.2
