UNSL/2018 / Mbed 2 deprecated LAB3

Dependencies:   mbed

Committer:
juancarlos2018
Date:
Tue Nov 20 16:00:44 2018 +0000
Revision:
0:71e6ca69d41f
Child:
1:b20b759ee10e
A VER QUE TIENE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
juancarlos2018 0:71e6ca69d41f 1 #include "mbed.h"
juancarlos2018 0:71e6ca69d41f 2
juancarlos2018 0:71e6ca69d41f 3 RawSerial pc(USBTX, USBRX); // Comunicacion serial via USB KL46Z a la PC
juancarlos2018 0:71e6ca69d41f 4 RawSerial dev(PTE16,PTE17); // Comunicacion serial desde KL46Z a ESP8266
juancarlos2018 0:71e6ca69d41f 5 DigitalOut led1(LED1);
juancarlos2018 0:71e6ca69d41f 6 DigitalOut led2(LED2);
juancarlos2018 0:71e6ca69d41f 7 DigitalIn sw1(PTC3); // Interrupcion para cambiar
juancarlos2018 0:71e6ca69d41f 8 DigitalIn sw2(PTC12); // Interrupcion para cambiar
juancarlos2018 0:71e6ca69d41f 9
juancarlos2018 0:71e6ca69d41f 10 void dev_recv() // Funcion de SerialPasstrough
juancarlos2018 0:71e6ca69d41f 11 {
juancarlos2018 0:71e6ca69d41f 12 led1 = !led1;
juancarlos2018 0:71e6ca69d41f 13 while(dev.readable()) {
juancarlos2018 0:71e6ca69d41f 14 pc.putc(dev.getc());
juancarlos2018 0:71e6ca69d41f 15 }
juancarlos2018 0:71e6ca69d41f 16 }
juancarlos2018 0:71e6ca69d41f 17
juancarlos2018 0:71e6ca69d41f 18 void pc_recv() // Funcion de SerialPasstrough
juancarlos2018 0:71e6ca69d41f 19 {
juancarlos2018 0:71e6ca69d41f 20 led2 = !led2 ;
juancarlos2018 0:71e6ca69d41f 21 while(pc.readable()) {
juancarlos2018 0:71e6ca69d41f 22 dev.putc(pc.getc());
juancarlos2018 0:71e6ca69d41f 23 }
juancarlos2018 0:71e6ca69d41f 24 }
juancarlos2018 0:71e6ca69d41f 25
juancarlos2018 0:71e6ca69d41f 26 int main()
juancarlos2018 0:71e6ca69d41f 27 {
juancarlos2018 0:71e6ca69d41f 28 pc.baud(115200); // Sincronismo de transmicion hacia la PC
juancarlos2018 0:71e6ca69d41f 29 dev.baud(115200); // Sincronismo de transmicion hacia el dispositivo
juancarlos2018 0:71e6ca69d41f 30
juancarlos2018 0:71e6ca69d41f 31 pc.attach(&pc_recv, Serial::RxIrq);
juancarlos2018 0:71e6ca69d41f 32 dev.attach(&dev_recv, Serial::RxIrq);
juancarlos2018 0:71e6ca69d41f 33
juancarlos2018 0:71e6ca69d41f 34 dev.puts("AT+RESTORE\r\n"); // configuracion en modo estacion al dispositivo ESP8266 por comandos AT
juancarlos2018 0:71e6ca69d41f 35 wait(1); // Tiempo de espera de 1 seg. para esperar respuesta del ESP8266
juancarlos2018 0:71e6ca69d41f 36
juancarlos2018 0:71e6ca69d41f 37 dev.puts("AT+MODE=1\r\n"); // configuracion en modo estacion al dispositivo ESP8266 por comandos AT
juancarlos2018 0:71e6ca69d41f 38 wait(1); // Tiempo de espera de 1 seg. para esperar respuesta del ESP8266
juancarlos2018 0:71e6ca69d41f 39
juancarlos2018 0:71e6ca69d41f 40 dev.puts("AT+CWJAP=\"SE18\",\"12345678\"\r\n"); // Se enlaza a la red de nombre "SE18" y su password "12345678" a traves de comandos AT
juancarlos2018 0:71e6ca69d41f 41 wait(1);
juancarlos2018 0:71e6ca69d41f 42
juancarlos2018 0:71e6ca69d41f 43 dev.puts("AT+CIPSTA=\"192.168.4.3\",\"192.168.4.1\",\"255.255.255.0\"\r\n"); // Se coloca IP fijo, con el IP del Servidor y mascara /24
juancarlos2018 0:71e6ca69d41f 44 wait(1);
juancarlos2018 0:71e6ca69d41f 45
juancarlos2018 0:71e6ca69d41f 46 dev.puts("AT+CIPMUX=1\r\n"); // Se declara que el Modulo ESP8266 trabaje con conexciones multiples
juancarlos2018 0:71e6ca69d41f 47 wait(1);
juancarlos2018 0:71e6ca69d41f 48
juancarlos2018 0:71e6ca69d41f 49 while(1) {
juancarlos2018 0:71e6ca69d41f 50 if (sw1==0){
juancarlos2018 0:71e6ca69d41f 51 dev.puts("AT+CIPCLOSE=1\r\n");
juancarlos2018 0:71e6ca69d41f 52 wait(1);
juancarlos2018 0:71e6ca69d41f 53 dev.puts("AT+CIPSTART=1,\"UDP\",\"192.168.4.1\",1001,1003,0\r\n"); // coneccion con Curu
juancarlos2018 0:71e6ca69d41f 54 wait(1);
juancarlos2018 0:71e6ca69d41f 55 dev.puts("AT+CIPCLOSE=2\r\n");
juancarlos2018 0:71e6ca69d41f 56 wait(1);
juancarlos2018 0:71e6ca69d41f 57 dev.puts("AT+CIPSTART=2,\"UDP\",\"192.168.4.2\",1002,1003,0\r\n"); // coneccion con BJ
juancarlos2018 0:71e6ca69d41f 58 wait(1);
juancarlos2018 0:71e6ca69d41f 59 }
juancarlos2018 0:71e6ca69d41f 60 if (sw2==0){
juancarlos2018 0:71e6ca69d41f 61 dev.puts("AT+CIPSEND=4,8\r\n");
juancarlos2018 0:71e6ca69d41f 62 wait(1);
juancarlos2018 0:71e6ca69d41f 63 dev.puts("FUNCIONA");
juancarlos2018 0:71e6ca69d41f 64 wait(1);
juancarlos2018 0:71e6ca69d41f 65 }
juancarlos2018 0:71e6ca69d41f 66 }
juancarlos2018 0:71e6ca69d41f 67 }