Gateway con agregar controles mediante firebase migracion a OS5
Dependencies: mbed-http ESP01 Pulse RFDecoder
main.h@6:4d6d133709bb, 2019-09-16 (annotated)
- Committer:
- Thrillex13
- Date:
- Mon Sep 16 18:24:07 2019 +0000
- Revision:
- 6:4d6d133709bb
- Parent:
- 4:8fed3705384e
Migracion a OS 5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Thrillex13 | 3:5dceee1c49fc | 1 | #ifndef MAIN_H |
Thrillex13 | 3:5dceee1c49fc | 2 | #define MAIN_H |
Thrillex13 | 3:5dceee1c49fc | 3 | |
Thrillex13 | 3:5dceee1c49fc | 4 | #include "mbed.h" |
Thrillex13 | 3:5dceee1c49fc | 5 | #include <string> |
Thrillex13 | 3:5dceee1c49fc | 6 | #include "ESP01.h" |
Thrillex13 | 3:5dceee1c49fc | 7 | #include "https_request.h" |
Thrillex13 | 3:5dceee1c49fc | 8 | #include "ESP8266Interface.h" |
Thrillex13 | 3:5dceee1c49fc | 9 | #include "RFDecoder.h" |
Thrillex13 | 4:8fed3705384e | 10 | #include "mbed_memory_status.h" |
Thrillex13 | 3:5dceee1c49fc | 11 | |
Thrillex13 | 3:5dceee1c49fc | 12 | #define ON 0 |
Thrillex13 | 3:5dceee1c49fc | 13 | #define OFF 1 |
Thrillex13 | 3:5dceee1c49fc | 14 | |
Thrillex13 | 3:5dceee1c49fc | 15 | #define LEDAMARILLO_ON led_azul = OFF; led_verde = ON; led_rojo = ON; |
Thrillex13 | 3:5dceee1c49fc | 16 | #define LEDVERDE_ON led_azul = OFF; led_verde = ON; led_rojo = OFF; |
Thrillex13 | 3:5dceee1c49fc | 17 | |
Thrillex13 | 3:5dceee1c49fc | 18 | #define LEDS_OFF led_azul = OFF; led_verde = OFF; led_rojo = OFF; |
Thrillex13 | 3:5dceee1c49fc | 19 | |
Thrillex13 | 4:8fed3705384e | 20 | //Configuraciones del Sistema |
Thrillex13 | 3:5dceee1c49fc | 21 | #define SERVER_PORT 5558 |
Thrillex13 | 3:5dceee1c49fc | 22 | #define TCPCOMMSBYTESMAX 10 |
Thrillex13 | 3:5dceee1c49fc | 23 | #define TCPSTATSBYTESMAX 5 |
Thrillex13 | 4:8fed3705384e | 24 | #define MAXTIMERXCONTROL 40000 //Tiempo maximo para recibir el codigo del control de 433MHz en milisegundos |
Thrillex13 | 4:8fed3705384e | 25 | #define INTERVALFIREBASECHECK 15.0 |
Thrillex13 | 4:8fed3705384e | 26 | #define MAXWIFICONNCHECKS 3 |
Thrillex13 | 4:8fed3705384e | 27 | |
Thrillex13 | 4:8fed3705384e | 28 | //Comandos de Firebase |
Thrillex13 | 4:8fed3705384e | 29 | //Los comandos provenientes de la app al Gateway son de tipo String. |
Thrillex13 | 4:8fed3705384e | 30 | #define NINGUNCOMANDO "02" |
Thrillex13 | 4:8fed3705384e | 31 | #define AGREGARCONTROL "10" //La funcion .compare solo acepta String |
Thrillex13 | 4:8fed3705384e | 32 | |
Thrillex13 | 4:8fed3705384e | 33 | // Las respuestas del Gateway a la App debe ser tipo CHAR |
Thrillex13 | 4:8fed3705384e | 34 | #define WAITING_RF_CODE 10 |
Thrillex13 | 4:8fed3705384e | 35 | #define NEW_CONTROL_RESPONSE 11 |
Thrillex13 | 4:8fed3705384e | 36 | |
Thrillex13 | 4:8fed3705384e | 37 | |
Thrillex13 | 3:5dceee1c49fc | 38 | |
Thrillex13 | 3:5dceee1c49fc | 39 | //Codigos de Status de TCP |
Thrillex13 | 3:5dceee1c49fc | 40 | #define COMMANDREC 0x01 //Se recibio un comando valido por TCP |
Thrillex13 | 3:5dceee1c49fc | 41 | |
Thrillex13 | 3:5dceee1c49fc | 42 | //Comandos de TCP |
Thrillex13 | 3:5dceee1c49fc | 43 | #define NEW_CONTROL_REGISTER 0x10 |
Thrillex13 | 3:5dceee1c49fc | 44 | #define CONTROL_REGISTER_INFO 0x11 |
Thrillex13 | 3:5dceee1c49fc | 45 | |
Thrillex13 | 3:5dceee1c49fc | 46 | //Otros TCP |
Thrillex13 | 3:5dceee1c49fc | 47 | #define HEARBEAT_REQUEST 0xFA |
Thrillex13 | 3:5dceee1c49fc | 48 | #define HEARBEAT_RESPONSE 0xFB |
Thrillex13 | 3:5dceee1c49fc | 49 | |
Thrillex13 | 3:5dceee1c49fc | 50 | |
Thrillex13 | 3:5dceee1c49fc | 51 | |
Thrillex13 | 3:5dceee1c49fc | 52 | /* List of trusted root CA certificates |
Thrillex13 | 3:5dceee1c49fc | 53 | * currently two: Amazon, the CA for os.mbed.com and Let's Encrypt, the CA for httpbin.org |
Thrillex13 | 3:5dceee1c49fc | 54 | * |
Thrillex13 | 3:5dceee1c49fc | 55 | * To add more root certificates, just concatenate them. |
Thrillex13 | 3:5dceee1c49fc | 56 | */ |
Thrillex13 | 3:5dceee1c49fc | 57 | const char SSL_CA_PEM[] = |
Thrillex13 | 3:5dceee1c49fc | 58 | "-----BEGIN CERTIFICATE-----\n" |
Thrillex13 | 3:5dceee1c49fc | 59 | "MIIFmzCCBIOgAwIBAgIRAJRuZHok8dQjAQAAAAApJGwwDQYJKoZIhvcNAQELBQAw\n" |
Thrillex13 | 3:5dceee1c49fc | 60 | "QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET\n" |
Thrillex13 | 3:5dceee1c49fc | 61 | "MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0xOTAzMTMyMTMwNTdaFw0yMDAzMTEyMTMw\n" |
Thrillex13 | 3:5dceee1c49fc | 62 | "NTdaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\n" |
Thrillex13 | 3:5dceee1c49fc | 63 | "Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRcwFQYDVQQDEw5m\n" |
Thrillex13 | 3:5dceee1c49fc | 64 | "aXJlYmFzZWlvLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkd\n" |
Thrillex13 | 3:5dceee1c49fc | 65 | "/jeM+PrwIYmM6IE28iN7CjKnBWy+tqNrs5z2AJwM5iLgtgcbc+THuXGElTN7zAWB\n" |
Thrillex13 | 3:5dceee1c49fc | 66 | "SKWv+ezAGe5NiTEEUiWgX1z1VFDj85xpz+Cysn/Oi8MtoN6h8yCmYPtXv8YPInw0\n" |
Thrillex13 | 3:5dceee1c49fc | 67 | "JLkSM5e2uuWVwc/tR1Fh+awpiYQFqGm6DvMq6yAYB/nuL3Gyc4XFgRrxje+VQ+g3\n" |
Thrillex13 | 3:5dceee1c49fc | 68 | "oWE+9NVfqu4smFCutSIGlEdRhGdr/m2u+sc+dnBZNoVOqwSyyFyjpAZvMMvuE5Ip\n" |
Thrillex13 | 3:5dceee1c49fc | 69 | "3ovfA1tq57nl9eQw8fcKsdXOeeXYHc1KBUUC7Xb8F/1+upVML8a5GMULpYkClLXt\n" |
Thrillex13 | 3:5dceee1c49fc | 70 | "OKRRfCJa53YynILJdPkCAwEAAaOCAmQwggJgMA4GA1UdDwEB/wQEAwIFoDATBgNV\n" |
Thrillex13 | 3:5dceee1c49fc | 71 | "HSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBS03YhV70g6\n" |
Thrillex13 | 3:5dceee1c49fc | 72 | "+7MUxtOiluRi1T2GAzAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBk\n" |
Thrillex13 | 3:5dceee1c49fc | 73 | "BggrBgEFBQcBAQRYMFYwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnBraS5nb29n\n" |
Thrillex13 | 3:5dceee1c49fc | 74 | "L2d0czFvMTArBggrBgEFBQcwAoYfaHR0cDovL3BraS5nb29nL2dzcjIvR1RTMU8x\n" |
Thrillex13 | 3:5dceee1c49fc | 75 | "LmNydDArBgNVHREEJDAigg5maXJlYmFzZWlvLmNvbYIQKi5maXJlYmFzZWlvLmNv\n" |
Thrillex13 | 3:5dceee1c49fc | 76 | "bTAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAdZ5AgUDMC8GA1UdHwQoMCYw\n" |
Thrillex13 | 3:5dceee1c49fc | 77 | "JKAioCCGHmh0dHA6Ly9jcmwucGtpLmdvb2cvR1RTMU8xLmNybDCCAQIGCisGAQQB\n" |
Thrillex13 | 3:5dceee1c49fc | 78 | "1nkCBAIEgfMEgfAA7gB1ALIeBcyLos2KIE6HZvkruYolIGdr2vpw57JJUy3vi5Be\n" |
Thrillex13 | 3:5dceee1c49fc | 79 | "AAABaXkuFzgAAAQDAEYwRAIgVssWhLEYItcpljMfJfkBhnxUrw32ik3C7IyBhkS6\n" |
Thrillex13 | 3:5dceee1c49fc | 80 | "jQcCIAHzoq/0QsRXY8RITJ5z6pThPzJhiSeLhWb6v2MDs6+NAHUAXqdz+d9WwOe1\n" |
Thrillex13 | 3:5dceee1c49fc | 81 | "Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFpeS4XEQAABAMARjBEAiBgwY3jVuyU\n" |
Thrillex13 | 3:5dceee1c49fc | 82 | "HTDrfXt7Hhq3AL9kD8hASq/qIXFvHAel1AIgV2DY0UI7PvVl2uHicvaL9BfUPQjP\n" |
Thrillex13 | 3:5dceee1c49fc | 83 | "8/7b5W5jd6HEKbowDQYJKoZIhvcNAQELBQADggEBAAFG/f9zTyPTiYjjbPKpIC3T\n" |
Thrillex13 | 3:5dceee1c49fc | 84 | "MMD8dWvny1DJpL2fQPMcpAkkduW7sFG8mLRh14mSBsWqAusj99nAKt6NJhxZewhp\n" |
Thrillex13 | 3:5dceee1c49fc | 85 | "JKwbcawanW+w2DUzFr0FauVxNIs4xPxcgkCNAGeUj8ZI+cDcSaMOY4WxNrjOgbbI\n" |
Thrillex13 | 3:5dceee1c49fc | 86 | "feOxHsCmIWxch6/vNVxh+54BZFCy723DL8Fo/tDRU73b+gxPJusJva4ABuXSqSFT\n" |
Thrillex13 | 3:5dceee1c49fc | 87 | "EDaRGzdj8AKkoDmRkWLcEg/6a/2dfw8VV7fIAlqVxNQwZWZLtIsBGazxZ5xflrVz\n" |
Thrillex13 | 3:5dceee1c49fc | 88 | "I5AHejNR7guDaWAimhkSOlG11W8BzPtdAo/xJ6JyI4K5kPGIXucniVRmQfmojxc=\n" |
Thrillex13 | 3:5dceee1c49fc | 89 | "-----END CERTIFICATE-----\n" |
Thrillex13 | 3:5dceee1c49fc | 90 | "-----BEGIN CERTIFICATE-----\n" |
Thrillex13 | 3:5dceee1c49fc | 91 | "MIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAw\n" |
Thrillex13 | 3:5dceee1c49fc | 92 | "HgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFs\n" |
Thrillex13 | 3:5dceee1c49fc | 93 | "U2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEy\n" |
Thrillex13 | 3:5dceee1c49fc | 94 | "MTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3Qg\n" |
Thrillex13 | 3:5dceee1c49fc | 95 | "U2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUA\n" |
Thrillex13 | 3:5dceee1c49fc | 96 | "A4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnv\n" |
Thrillex13 | 3:5dceee1c49fc | 97 | "UA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRr\n" |
Thrillex13 | 3:5dceee1c49fc | 98 | "mBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++Ac\n" |
Thrillex13 | 3:5dceee1c49fc | 99 | "xGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmK\n" |
Thrillex13 | 3:5dceee1c49fc | 100 | "FsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7X\n" |
Thrillex13 | 3:5dceee1c49fc | 101 | "rJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNV\n" |
Thrillex13 | 3:5dceee1c49fc | 102 | "HQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1Ud\n" |
Thrillex13 | 3:5dceee1c49fc | 103 | "EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8G\n" |
Thrillex13 | 3:5dceee1c49fc | 104 | "A1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAl\n" |
Thrillex13 | 3:5dceee1c49fc | 105 | "BggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzAp\n" |
Thrillex13 | 3:5dceee1c49fc | 106 | "MCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0g\n" |
Thrillex13 | 3:5dceee1c49fc | 107 | "BDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9y\n" |
Thrillex13 | 3:5dceee1c49fc | 108 | "ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7H\n" |
Thrillex13 | 3:5dceee1c49fc | 109 | "TgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN\n" |
Thrillex13 | 3:5dceee1c49fc | 110 | "FvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrz\n" |
Thrillex13 | 3:5dceee1c49fc | 111 | "mqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wW\n" |
Thrillex13 | 3:5dceee1c49fc | 112 | "IRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZ\n" |
Thrillex13 | 3:5dceee1c49fc | 113 | "USpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==\n" |
Thrillex13 | 3:5dceee1c49fc | 114 | "-----END CERTIFICATE-----\n"; |
Thrillex13 | 3:5dceee1c49fc | 115 | |
Thrillex13 | 3:5dceee1c49fc | 116 | //Port Definition |
Thrillex13 | 3:5dceee1c49fc | 117 | DigitalOut led_rojo(LED_RED); |
Thrillex13 | 3:5dceee1c49fc | 118 | DigitalOut led_verde(LED_GREEN); |
Thrillex13 | 4:8fed3705384e | 119 | DigitalOut led_azul(LED_BLUE); |
Thrillex13 | 4:8fed3705384e | 120 | |
Thrillex13 | 4:8fed3705384e | 121 | DigitalIn esp01_en(D4); |
Thrillex13 | 4:8fed3705384e | 122 | DigitalIn esp01_rst(D5); |
Thrillex13 | 3:5dceee1c49fc | 123 | |
Thrillex13 | 3:5dceee1c49fc | 124 | //Function Prototypes |
Thrillex13 | 3:5dceee1c49fc | 125 | void wifiInit(void); |
Thrillex13 | 3:5dceee1c49fc | 126 | bool isConnectedToWifi(void); |
Thrillex13 | 3:5dceee1c49fc | 127 | void wifiConnect(void); |
Thrillex13 | 3:5dceee1c49fc | 128 | void startServer(int port); |
Thrillex13 | 3:5dceee1c49fc | 129 | int getTCPContent(char *espdata, char *command, char *status); |
Thrillex13 | 3:5dceee1c49fc | 130 | void convertToCharArray(char *arr, unsigned long number); |
Thrillex13 | 3:5dceee1c49fc | 131 | |
Thrillex13 | 3:5dceee1c49fc | 132 | void dump_response(HttpResponse* res); |
Thrillex13 | 3:5dceee1c49fc | 133 | void http_demo(NetworkInterface *net); |
Thrillex13 | 4:8fed3705384e | 134 | string getFirebaseCommand(NetworkInterface *network); |
Thrillex13 | 4:8fed3705384e | 135 | void putFirebaseCommand(NetworkInterface *network, char comando, unsigned long numcode); |
Thrillex13 | 4:8fed3705384e | 136 | void firebaseCheckTimeout(void); |
Thrillex13 | 3:5dceee1c49fc | 137 | |
Thrillex13 | 3:5dceee1c49fc | 138 | |
Thrillex13 | 3:5dceee1c49fc | 139 | |
Thrillex13 | 3:5dceee1c49fc | 140 | #endif //MAIN_H |