Gateway con agregar controles mediante firebase
Dependencies: mbed mbed-http ESP01 Pulse RFDecoder
main.h
00001 #ifndef MAIN_H 00002 #define MAIN_H 00003 00004 #include "mbed.h" 00005 #include <string> 00006 #include "ESP01.h" 00007 #include "https_request.h" 00008 #include "ESP8266Interface.h" 00009 #include "RFDecoder.h" 00010 #include "mbed_memory_status.h" 00011 00012 #define ON 0 00013 #define OFF 1 00014 00015 #define LEDAMARILLO_ON led_azul = OFF; led_verde = ON; led_rojo = ON; 00016 #define LEDVERDE_ON led_azul = OFF; led_verde = ON; led_rojo = OFF; 00017 00018 #define LEDS_OFF led_azul = OFF; led_verde = OFF; led_rojo = OFF; 00019 00020 //Configuraciones del Sistema 00021 #define SERVER_PORT 5558 00022 #define TCPCOMMSBYTESMAX 10 00023 #define TCPSTATSBYTESMAX 5 00024 #define MAXTIMERXCONTROL 40000 //Tiempo maximo para recibir el codigo del control de 433MHz en milisegundos 00025 #define INTERVALFIREBASECHECK 15.0 00026 #define MAXWIFICONNCHECKS 3 00027 00028 //Comandos de Firebase 00029 //Los comandos provenientes de la app al Gateway son de tipo String. 00030 #define NINGUNCOMANDO "02" 00031 #define AGREGARCONTROL "10" //La funcion .compare solo acepta String 00032 00033 // Las respuestas del Gateway a la App debe ser tipo CHAR 00034 #define WAITING_RF_CODE 10 00035 #define NEW_CONTROL_RESPONSE 11 00036 00037 00038 00039 //Codigos de Status de TCP 00040 #define COMMANDREC 0x01 //Se recibio un comando valido por TCP 00041 00042 //Comandos de TCP 00043 #define NEW_CONTROL_REGISTER 0x10 00044 #define CONTROL_REGISTER_INFO 0x11 00045 00046 //Otros TCP 00047 #define HEARBEAT_REQUEST 0xFA 00048 #define HEARBEAT_RESPONSE 0xFB 00049 00050 00051 00052 /* List of trusted root CA certificates 00053 * currently two: Amazon, the CA for os.mbed.com and Let's Encrypt, the CA for httpbin.org 00054 * 00055 * To add more root certificates, just concatenate them. 00056 */ 00057 const char SSL_CA_PEM[] = 00058 "-----BEGIN CERTIFICATE-----\n" 00059 "MIIFmzCCBIOgAwIBAgIRAJRuZHok8dQjAQAAAAApJGwwDQYJKoZIhvcNAQELBQAw\n" 00060 "QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET\n" 00061 "MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0xOTAzMTMyMTMwNTdaFw0yMDAzMTEyMTMw\n" 00062 "NTdaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\n" 00063 "Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRcwFQYDVQQDEw5m\n" 00064 "aXJlYmFzZWlvLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkd\n" 00065 "/jeM+PrwIYmM6IE28iN7CjKnBWy+tqNrs5z2AJwM5iLgtgcbc+THuXGElTN7zAWB\n" 00066 "SKWv+ezAGe5NiTEEUiWgX1z1VFDj85xpz+Cysn/Oi8MtoN6h8yCmYPtXv8YPInw0\n" 00067 "JLkSM5e2uuWVwc/tR1Fh+awpiYQFqGm6DvMq6yAYB/nuL3Gyc4XFgRrxje+VQ+g3\n" 00068 "oWE+9NVfqu4smFCutSIGlEdRhGdr/m2u+sc+dnBZNoVOqwSyyFyjpAZvMMvuE5Ip\n" 00069 "3ovfA1tq57nl9eQw8fcKsdXOeeXYHc1KBUUC7Xb8F/1+upVML8a5GMULpYkClLXt\n" 00070 "OKRRfCJa53YynILJdPkCAwEAAaOCAmQwggJgMA4GA1UdDwEB/wQEAwIFoDATBgNV\n" 00071 "HSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBS03YhV70g6\n" 00072 "+7MUxtOiluRi1T2GAzAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBk\n" 00073 "BggrBgEFBQcBAQRYMFYwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnBraS5nb29n\n" 00074 "L2d0czFvMTArBggrBgEFBQcwAoYfaHR0cDovL3BraS5nb29nL2dzcjIvR1RTMU8x\n" 00075 "LmNydDArBgNVHREEJDAigg5maXJlYmFzZWlvLmNvbYIQKi5maXJlYmFzZWlvLmNv\n" 00076 "bTAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAdZ5AgUDMC8GA1UdHwQoMCYw\n" 00077 "JKAioCCGHmh0dHA6Ly9jcmwucGtpLmdvb2cvR1RTMU8xLmNybDCCAQIGCisGAQQB\n" 00078 "1nkCBAIEgfMEgfAA7gB1ALIeBcyLos2KIE6HZvkruYolIGdr2vpw57JJUy3vi5Be\n" 00079 "AAABaXkuFzgAAAQDAEYwRAIgVssWhLEYItcpljMfJfkBhnxUrw32ik3C7IyBhkS6\n" 00080 "jQcCIAHzoq/0QsRXY8RITJ5z6pThPzJhiSeLhWb6v2MDs6+NAHUAXqdz+d9WwOe1\n" 00081 "Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFpeS4XEQAABAMARjBEAiBgwY3jVuyU\n" 00082 "HTDrfXt7Hhq3AL9kD8hASq/qIXFvHAel1AIgV2DY0UI7PvVl2uHicvaL9BfUPQjP\n" 00083 "8/7b5W5jd6HEKbowDQYJKoZIhvcNAQELBQADggEBAAFG/f9zTyPTiYjjbPKpIC3T\n" 00084 "MMD8dWvny1DJpL2fQPMcpAkkduW7sFG8mLRh14mSBsWqAusj99nAKt6NJhxZewhp\n" 00085 "JKwbcawanW+w2DUzFr0FauVxNIs4xPxcgkCNAGeUj8ZI+cDcSaMOY4WxNrjOgbbI\n" 00086 "feOxHsCmIWxch6/vNVxh+54BZFCy723DL8Fo/tDRU73b+gxPJusJva4ABuXSqSFT\n" 00087 "EDaRGzdj8AKkoDmRkWLcEg/6a/2dfw8VV7fIAlqVxNQwZWZLtIsBGazxZ5xflrVz\n" 00088 "I5AHejNR7guDaWAimhkSOlG11W8BzPtdAo/xJ6JyI4K5kPGIXucniVRmQfmojxc=\n" 00089 "-----END CERTIFICATE-----\n" 00090 "-----BEGIN CERTIFICATE-----\n" 00091 "MIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAw\n" 00092 "HgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFs\n" 00093 "U2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEy\n" 00094 "MTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3Qg\n" 00095 "U2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUA\n" 00096 "A4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnv\n" 00097 "UA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRr\n" 00098 "mBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++Ac\n" 00099 "xGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmK\n" 00100 "FsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7X\n" 00101 "rJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNV\n" 00102 "HQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1Ud\n" 00103 "EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8G\n" 00104 "A1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAl\n" 00105 "BggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzAp\n" 00106 "MCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0g\n" 00107 "BDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9y\n" 00108 "ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7H\n" 00109 "TgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN\n" 00110 "FvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrz\n" 00111 "mqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wW\n" 00112 "IRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZ\n" 00113 "USpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==\n" 00114 "-----END CERTIFICATE-----\n"; 00115 00116 //Port Definition 00117 DigitalOut led_rojo(LED_RED); 00118 DigitalOut led_verde(LED_GREEN); 00119 DigitalOut led_azul(LED_BLUE); 00120 00121 DigitalIn esp01_en(D4); 00122 DigitalIn esp01_rst(D5); 00123 00124 //Function Prototypes 00125 void wifiInit(void); 00126 bool isConnectedToWifi(void); 00127 void wifiConnect(void); 00128 void startServer(int port); 00129 int getTCPContent(char *espdata, char *command, char *status); 00130 void convertToCharArray(char *arr, unsigned long number); 00131 00132 void dump_response(HttpResponse* res); 00133 void http_demo(NetworkInterface *net); 00134 string getFirebaseCommand(NetworkInterface *network); 00135 void putFirebaseCommand(NetworkInterface *network, char comando, unsigned long numcode); 00136 void firebaseCheckTimeout(void); 00137 00138 00139 00140 #endif //MAIN_H
Generated on Thu Jul 14 2022 08:12:43 by 1.7.2