![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Simple usage of wifi module ESP826601.
Revision 0:47830fe8d357, committed 2020-11-19
- Comitter:
- zvonimir
- Date:
- Thu Nov 19 11:42:27 2020 +0000
- Commit message:
- Upravljanje wifi modulom esp826601.
Changed in this revision
diff -r 000000000000 -r 47830fe8d357 ESP826601/ES826601.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ESP826601/ES826601.cpp Thu Nov 19 11:42:27 2020 +0000 @@ -0,0 +1,96 @@ +#include "ESP826601.h" +#include "mbed.h" + +Serial pc(USBTX, USBRX, 115200); +Serial esp(p28, p27, 115200); +DigitalOut reset(p26); + +bool flag = false; +bool flagConnection = false; +bool flagSend = false; + +char connection = '0'; + +char command[500]; +int counter = 0; + +Esp::Esp(){} + +void Esp::init(void){ + reset = 0; + wait(0.2); + reset = 1; + wait(5); + esp.attach(&ESP_interrupt, Serial::RxIrq); + pc.printf("------------\n"); +} + +void Esp::send(char* text){ + pc.printf("PC: "); + pc.printf(text); + pc.putc('\r'); + esp.printf(text); + esp.printf("\r\n"); +} + +void Esp::waitResponse(){ + while(!flag){ + wait_ms(100); + } + flag = false; +} + +void Esp::waitConnection(){ + while(!flagConnection){ + wait_ms(100); + } + flagConnection = false; + + esp.printf("AT+CIPSEND="); + esp.putc(connection); + esp.printf(",20\r\n"); + + Esp::waitResponse(); +} + +void Esp::closeConnection(){ + while(!flagSend){ + wait_ms(100); + } + flagSend = false; + + esp.printf("AT+CIPCLOSE="); + esp.putc(connection); + esp.printf("\r\n"); + + Esp::waitResponse(); +} + +void Esp::printToPC(char* text){ + pc.printf(text); +} + +void Esp::printToPC(char c){ + pc.putc(c); +} + +void ESP_interrupt(){ + char c = esp.getc(); + if(c == '\n' || c == '\r'){ + if(counter != 0){ + pc.printf("ESP: "); + for(int i=0; i<counter; i++) pc.putc(command[i]); + pc.putc('\r'); + counter = 0; + if(command[0] == 'O' && command[1] == 'K') flag = true; + if(command[2] == 'C' && command[3] == 'O' && command[4] == 'N' && command[5] == 'N') { + connection = command[0]; + flagConnection = true; + } + if(command[0] == 'S' && command[1] == 'E' && command[2] == 'N' && command[3] == 'D') flagSend = true; + } + }else { + command[counter] = c; + counter++; + } +} \ No newline at end of file
diff -r 000000000000 -r 47830fe8d357 ESP826601/ESP826601.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ESP826601/ESP826601.h Thu Nov 19 11:42:27 2020 +0000 @@ -0,0 +1,20 @@ +#ifndef ESP826601_H +#define ESP826601_H + +#include "mbed.h" + +void ESP_interrupt(); + +class Esp{ + public: + Esp(void); + void init(void); + void waitResponse(void); + void waitConnection(void); + void closeConnection(void); + void send(char* text); + void printToPC(char* text); + void printToPC(char c); +}; + +#endif \ No newline at end of file
diff -r 000000000000 -r 47830fe8d357 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Nov 19 11:42:27 2020 +0000 @@ -0,0 +1,33 @@ +#include "mbed.h" +#include "ESP826601.h" + +Esp ESP; +DigitalOut myled(LED1); +Ticker tick; + +void readData(){ + myled = !myled; +} + +int main() { + tick.attach(&readData, 0.5); + + ESP.init(); + ESP.send("AT+CIFSR"); + ESP.waitResponse(); + ESP.send("AT+CIPMUX=1"); + ESP.waitResponse(); + ESP.send("AT+CIPSERVER=1,80"); + ESP.waitResponse(); + + tick.detach(); + myled = 0; + + while(1){ + ESP.waitConnection(); + ESP.send("Pozdrav od Zvonimira"); + ESP.closeConnection(); + } +} + +
diff -r 000000000000 -r 47830fe8d357 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Nov 19 11:42:27 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file