Gateway con agregar controles mediante firebase migracion a OS5
Dependencies: mbed-http ESP01 Pulse RFDecoder
main.cpp
- Committer:
- Thrillex13
- Date:
- 2019-05-12
- Revision:
- 0:f4f503a32dca
- Child:
- 1:cf6a75de25ce
File content as of revision 0:f4f503a32dca:
#include "mbed.h"
#include <string>
#include "ESP8266.h"
// Objects
Serial pc(USBTX, USBRX);
ESP8266 wifi(PTC17, PTC16, 115200);
DigitalOut led_rojo(LED_RED);
DigitalOut led_verde(LED_GREEN);
DigitalOut led_azul(LED_BLUE);
#define ON 0;
#define OFF 1;
// Global variables
char snd[255], rcv[1000]; // Strings for sending and receiving commands / data / replies
void wifiInit(void);
bool isConnectedToWifi(void);
void wifiConnect(void);
int main() {
led_azul = OFF;
led_rojo = OFF;
led_verde = OFF;
pc.baud(115200);
wifi.Quit();
wifiInit();
wifiConnect();
while(1);
}
void wifiInit(void){
pc.printf("Gateway Sistema de Control de Cotos\r\n");
pc.printf("Resetting WiFi\r\n");
wifi.Reset();
wait(2);
wifi.DisableEcho();
pc.printf("Set mode to Station\r\n");
wifi.SetMode(1);
wifi.RcvReply(rcv, 1000);
pc.printf("%s", rcv);
wait(2);
}
void wifiConnect(void){
Timer t;
if(isConnectedToWifi()){
pc.printf("Gateway is already connected to wifi with the following IP address\r\n");
wifi.GetIP(rcv);
pc.printf("%s", rcv);
led_azul = OFF;
led_verde = ON;
wait(2);
}else{
t.start();
pc.printf("Starting Smart Config\r\n");
led_azul = ON;
wifi.StartSmartConfig();
wifi.RcvReply(rcv, 5000);
pc.printf("%s", rcv);
wait(5);
while(!isConnectedToWifi()){
if(t.read_ms() > 30000) {
led_azul = OFF;
led_rojo = ON;
pc.printf("No se pudo conectar al Wifi");
break;
}
}
}
}
bool isConnectedToWifi(void){
bool status;
wifi.GetConnStatus(rcv);
//pc.printf("%s", rcv);
if(strcmp(rcv,"STATUS:2\r")==0){
led_azul = OFF;
led_rojo = OFF;
led_verde = ON;
status=true;
}else{
status=false;
}
return status;
}