Gateway con agregar controles mediante firebase
Dependencies: mbed mbed-http ESP01 Pulse RFDecoder
main.cpp@2:bc3973471585, 2019-05-25 (annotated)
- Committer:
- Thrillex13
- Date:
- Sat May 25 18:08:19 2019 +0000
- Revision:
- 2:bc3973471585
- Parent:
- 1:cf6a75de25ce
- Child:
- 3:5dceee1c49fc
Se cambio la libreria de ESP01 de Quevedo por la de William Thenaers
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Thrillex13 | 0:f4f503a32dca | 1 | #include "mbed.h" |
Thrillex13 | 0:f4f503a32dca | 2 | #include <string> |
Thrillex13 | 1:cf6a75de25ce | 3 | #include "ESP01.h" |
Thrillex13 | 1:cf6a75de25ce | 4 | #include "https_request.h" |
Thrillex13 | 1:cf6a75de25ce | 5 | #include "mbed_trace.h" |
Thrillex13 | 1:cf6a75de25ce | 6 | #include "TCPSocket.h" |
Thrillex13 | 1:cf6a75de25ce | 7 | #include "ESP8266Interface.h" |
Thrillex13 | 0:f4f503a32dca | 8 | |
Thrillex13 | 0:f4f503a32dca | 9 | // Objects |
Thrillex13 | 0:f4f503a32dca | 10 | Serial pc(USBTX, USBRX); |
Thrillex13 | 1:cf6a75de25ce | 11 | ESP01 wifi(PTC17, PTC16, 115200); //Con este objeto implementamos los metodos que requieren comandos AT del modulo de WIFI |
Thrillex13 | 1:cf6a75de25ce | 12 | //ESP8266Interface net(PTC17, PTC16); //Con este objeto implementamos todas las funciones de red para la creacion de Sockets |
Thrillex13 | 0:f4f503a32dca | 13 | |
Thrillex13 | 0:f4f503a32dca | 14 | DigitalOut led_rojo(LED_RED); |
Thrillex13 | 0:f4f503a32dca | 15 | DigitalOut led_verde(LED_GREEN); |
Thrillex13 | 0:f4f503a32dca | 16 | DigitalOut led_azul(LED_BLUE); |
Thrillex13 | 0:f4f503a32dca | 17 | |
Thrillex13 | 0:f4f503a32dca | 18 | #define ON 0; |
Thrillex13 | 0:f4f503a32dca | 19 | #define OFF 1; |
Thrillex13 | 0:f4f503a32dca | 20 | |
Thrillex13 | 0:f4f503a32dca | 21 | // Global variables |
Thrillex13 | 0:f4f503a32dca | 22 | char snd[255], rcv[1000]; // Strings for sending and receiving commands / data / replies |
Thrillex13 | 0:f4f503a32dca | 23 | |
Thrillex13 | 0:f4f503a32dca | 24 | void wifiInit(void); |
Thrillex13 | 0:f4f503a32dca | 25 | bool isConnectedToWifi(void); |
Thrillex13 | 0:f4f503a32dca | 26 | void wifiConnect(void); |
Thrillex13 | 1:cf6a75de25ce | 27 | |
Thrillex13 | 1:cf6a75de25ce | 28 | void http_demo(NetworkInterface *net); |
Thrillex13 | 1:cf6a75de25ce | 29 | |
Thrillex13 | 1:cf6a75de25ce | 30 | |
Thrillex13 | 1:cf6a75de25ce | 31 | /* List of trusted root CA certificates |
Thrillex13 | 1:cf6a75de25ce | 32 | * currently two: Amazon, the CA for os.mbed.com and Let's Encrypt, the CA for httpbin.org |
Thrillex13 | 1:cf6a75de25ce | 33 | * |
Thrillex13 | 1:cf6a75de25ce | 34 | * To add more root certificates, just concatenate them. |
Thrillex13 | 1:cf6a75de25ce | 35 | */ |
Thrillex13 | 1:cf6a75de25ce | 36 | const char SSL_CA_PEM[] = |
Thrillex13 | 1:cf6a75de25ce | 37 | "-----BEGIN CERTIFICATE-----\n" |
Thrillex13 | 1:cf6a75de25ce | 38 | "MIIFmzCCBIOgAwIBAgIRAJRuZHok8dQjAQAAAAApJGwwDQYJKoZIhvcNAQELBQAw\n" |
Thrillex13 | 1:cf6a75de25ce | 39 | "QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET\n" |
Thrillex13 | 1:cf6a75de25ce | 40 | "MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0xOTAzMTMyMTMwNTdaFw0yMDAzMTEyMTMw\n" |
Thrillex13 | 1:cf6a75de25ce | 41 | "NTdaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\n" |
Thrillex13 | 1:cf6a75de25ce | 42 | "Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRcwFQYDVQQDEw5m\n" |
Thrillex13 | 1:cf6a75de25ce | 43 | "aXJlYmFzZWlvLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkd\n" |
Thrillex13 | 1:cf6a75de25ce | 44 | "/jeM+PrwIYmM6IE28iN7CjKnBWy+tqNrs5z2AJwM5iLgtgcbc+THuXGElTN7zAWB\n" |
Thrillex13 | 1:cf6a75de25ce | 45 | "SKWv+ezAGe5NiTEEUiWgX1z1VFDj85xpz+Cysn/Oi8MtoN6h8yCmYPtXv8YPInw0\n" |
Thrillex13 | 1:cf6a75de25ce | 46 | "JLkSM5e2uuWVwc/tR1Fh+awpiYQFqGm6DvMq6yAYB/nuL3Gyc4XFgRrxje+VQ+g3\n" |
Thrillex13 | 1:cf6a75de25ce | 47 | "oWE+9NVfqu4smFCutSIGlEdRhGdr/m2u+sc+dnBZNoVOqwSyyFyjpAZvMMvuE5Ip\n" |
Thrillex13 | 1:cf6a75de25ce | 48 | "3ovfA1tq57nl9eQw8fcKsdXOeeXYHc1KBUUC7Xb8F/1+upVML8a5GMULpYkClLXt\n" |
Thrillex13 | 1:cf6a75de25ce | 49 | "OKRRfCJa53YynILJdPkCAwEAAaOCAmQwggJgMA4GA1UdDwEB/wQEAwIFoDATBgNV\n" |
Thrillex13 | 1:cf6a75de25ce | 50 | "HSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBS03YhV70g6\n" |
Thrillex13 | 1:cf6a75de25ce | 51 | "+7MUxtOiluRi1T2GAzAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBk\n" |
Thrillex13 | 1:cf6a75de25ce | 52 | "BggrBgEFBQcBAQRYMFYwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnBraS5nb29n\n" |
Thrillex13 | 1:cf6a75de25ce | 53 | "L2d0czFvMTArBggrBgEFBQcwAoYfaHR0cDovL3BraS5nb29nL2dzcjIvR1RTMU8x\n" |
Thrillex13 | 1:cf6a75de25ce | 54 | "LmNydDArBgNVHREEJDAigg5maXJlYmFzZWlvLmNvbYIQKi5maXJlYmFzZWlvLmNv\n" |
Thrillex13 | 1:cf6a75de25ce | 55 | "bTAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAdZ5AgUDMC8GA1UdHwQoMCYw\n" |
Thrillex13 | 1:cf6a75de25ce | 56 | "JKAioCCGHmh0dHA6Ly9jcmwucGtpLmdvb2cvR1RTMU8xLmNybDCCAQIGCisGAQQB\n" |
Thrillex13 | 1:cf6a75de25ce | 57 | "1nkCBAIEgfMEgfAA7gB1ALIeBcyLos2KIE6HZvkruYolIGdr2vpw57JJUy3vi5Be\n" |
Thrillex13 | 1:cf6a75de25ce | 58 | "AAABaXkuFzgAAAQDAEYwRAIgVssWhLEYItcpljMfJfkBhnxUrw32ik3C7IyBhkS6\n" |
Thrillex13 | 1:cf6a75de25ce | 59 | "jQcCIAHzoq/0QsRXY8RITJ5z6pThPzJhiSeLhWb6v2MDs6+NAHUAXqdz+d9WwOe1\n" |
Thrillex13 | 1:cf6a75de25ce | 60 | "Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFpeS4XEQAABAMARjBEAiBgwY3jVuyU\n" |
Thrillex13 | 1:cf6a75de25ce | 61 | "HTDrfXt7Hhq3AL9kD8hASq/qIXFvHAel1AIgV2DY0UI7PvVl2uHicvaL9BfUPQjP\n" |
Thrillex13 | 1:cf6a75de25ce | 62 | "8/7b5W5jd6HEKbowDQYJKoZIhvcNAQELBQADggEBAAFG/f9zTyPTiYjjbPKpIC3T\n" |
Thrillex13 | 1:cf6a75de25ce | 63 | "MMD8dWvny1DJpL2fQPMcpAkkduW7sFG8mLRh14mSBsWqAusj99nAKt6NJhxZewhp\n" |
Thrillex13 | 1:cf6a75de25ce | 64 | "JKwbcawanW+w2DUzFr0FauVxNIs4xPxcgkCNAGeUj8ZI+cDcSaMOY4WxNrjOgbbI\n" |
Thrillex13 | 1:cf6a75de25ce | 65 | "feOxHsCmIWxch6/vNVxh+54BZFCy723DL8Fo/tDRU73b+gxPJusJva4ABuXSqSFT\n" |
Thrillex13 | 1:cf6a75de25ce | 66 | "EDaRGzdj8AKkoDmRkWLcEg/6a/2dfw8VV7fIAlqVxNQwZWZLtIsBGazxZ5xflrVz\n" |
Thrillex13 | 1:cf6a75de25ce | 67 | "I5AHejNR7guDaWAimhkSOlG11W8BzPtdAo/xJ6JyI4K5kPGIXucniVRmQfmojxc=\n" |
Thrillex13 | 1:cf6a75de25ce | 68 | "-----END CERTIFICATE-----\n" |
Thrillex13 | 1:cf6a75de25ce | 69 | "-----BEGIN CERTIFICATE-----\n" |
Thrillex13 | 1:cf6a75de25ce | 70 | "MIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAw\n" |
Thrillex13 | 1:cf6a75de25ce | 71 | "HgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFs\n" |
Thrillex13 | 1:cf6a75de25ce | 72 | "U2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEy\n" |
Thrillex13 | 1:cf6a75de25ce | 73 | "MTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3Qg\n" |
Thrillex13 | 1:cf6a75de25ce | 74 | "U2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUA\n" |
Thrillex13 | 1:cf6a75de25ce | 75 | "A4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnv\n" |
Thrillex13 | 1:cf6a75de25ce | 76 | "UA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRr\n" |
Thrillex13 | 1:cf6a75de25ce | 77 | "mBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++Ac\n" |
Thrillex13 | 1:cf6a75de25ce | 78 | "xGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmK\n" |
Thrillex13 | 1:cf6a75de25ce | 79 | "FsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7X\n" |
Thrillex13 | 1:cf6a75de25ce | 80 | "rJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNV\n" |
Thrillex13 | 1:cf6a75de25ce | 81 | "HQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1Ud\n" |
Thrillex13 | 1:cf6a75de25ce | 82 | "EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8G\n" |
Thrillex13 | 1:cf6a75de25ce | 83 | "A1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAl\n" |
Thrillex13 | 1:cf6a75de25ce | 84 | "BggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzAp\n" |
Thrillex13 | 1:cf6a75de25ce | 85 | "MCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0g\n" |
Thrillex13 | 1:cf6a75de25ce | 86 | "BDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9y\n" |
Thrillex13 | 1:cf6a75de25ce | 87 | "ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7H\n" |
Thrillex13 | 1:cf6a75de25ce | 88 | "TgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN\n" |
Thrillex13 | 1:cf6a75de25ce | 89 | "FvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrz\n" |
Thrillex13 | 1:cf6a75de25ce | 90 | "mqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wW\n" |
Thrillex13 | 1:cf6a75de25ce | 91 | "IRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZ\n" |
Thrillex13 | 1:cf6a75de25ce | 92 | "USpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==\n" |
Thrillex13 | 1:cf6a75de25ce | 93 | "-----END CERTIFICATE-----\n"; |
Thrillex13 | 1:cf6a75de25ce | 94 | |
Thrillex13 | 1:cf6a75de25ce | 95 | |
Thrillex13 | 1:cf6a75de25ce | 96 | void dump_response(HttpResponse* res) { |
Thrillex13 | 1:cf6a75de25ce | 97 | printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str()); |
Thrillex13 | 1:cf6a75de25ce | 98 | |
Thrillex13 | 1:cf6a75de25ce | 99 | printf("Headers:\n"); |
Thrillex13 | 1:cf6a75de25ce | 100 | for (size_t ix = 0; ix < res->get_headers_length(); ix++) { |
Thrillex13 | 1:cf6a75de25ce | 101 | printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str()); |
Thrillex13 | 1:cf6a75de25ce | 102 | } |
Thrillex13 | 1:cf6a75de25ce | 103 | printf("\nBody (%lu bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str()); |
Thrillex13 | 1:cf6a75de25ce | 104 | } |
Thrillex13 | 0:f4f503a32dca | 105 | |
Thrillex13 | 0:f4f503a32dca | 106 | int main() { |
Thrillex13 | 0:f4f503a32dca | 107 | led_azul = OFF; |
Thrillex13 | 0:f4f503a32dca | 108 | led_rojo = OFF; |
Thrillex13 | 0:f4f503a32dca | 109 | led_verde = OFF; |
Thrillex13 | 0:f4f503a32dca | 110 | |
Thrillex13 | 0:f4f503a32dca | 111 | pc.baud(115200); |
Thrillex13 | 0:f4f503a32dca | 112 | wifi.Quit(); |
Thrillex13 | 0:f4f503a32dca | 113 | wifiInit(); |
Thrillex13 | 0:f4f503a32dca | 114 | wifiConnect(); |
Thrillex13 | 0:f4f503a32dca | 115 | |
Thrillex13 | 2:bc3973471585 | 116 | |
Thrillex13 | 2:bc3973471585 | 117 | |
Thrillex13 | 1:cf6a75de25ce | 118 | //NextToDo: Crear un servidor y a la vez hacer get y post |
Thrillex13 | 1:cf6a75de25ce | 119 | |
Thrillex13 | 1:cf6a75de25ce | 120 | ESP8266Interface net(PTC17, PTC16); //Con este objeto implementamos todas las funciones de red para la creacion de Sockets |
Thrillex13 | 2:bc3973471585 | 121 | |
Thrillex13 | 1:cf6a75de25ce | 122 | http_demo(&net); |
Thrillex13 | 1:cf6a75de25ce | 123 | |
Thrillex13 | 2:bc3973471585 | 124 | wifi.StartServerMode(333); |
Thrillex13 | 2:bc3973471585 | 125 | wifi.RcvReply(rcv, 1000); |
Thrillex13 | 2:bc3973471585 | 126 | pc.printf("%s", rcv); |
Thrillex13 | 2:bc3973471585 | 127 | wait(20); |
Thrillex13 | 2:bc3973471585 | 128 | |
Thrillex13 | 2:bc3973471585 | 129 | http_demo(&net); |
Thrillex13 | 2:bc3973471585 | 130 | |
Thrillex13 | 2:bc3973471585 | 131 | |
Thrillex13 | 2:bc3973471585 | 132 | |
Thrillex13 | 0:f4f503a32dca | 133 | |
Thrillex13 | 0:f4f503a32dca | 134 | |
Thrillex13 | 0:f4f503a32dca | 135 | while(1); |
Thrillex13 | 0:f4f503a32dca | 136 | } |
Thrillex13 | 0:f4f503a32dca | 137 | |
Thrillex13 | 0:f4f503a32dca | 138 | void wifiInit(void){ |
Thrillex13 | 0:f4f503a32dca | 139 | pc.printf("Gateway Sistema de Control de Cotos\r\n"); |
Thrillex13 | 0:f4f503a32dca | 140 | pc.printf("Resetting WiFi\r\n"); |
Thrillex13 | 0:f4f503a32dca | 141 | wifi.Reset(); |
Thrillex13 | 0:f4f503a32dca | 142 | wait(2); |
Thrillex13 | 0:f4f503a32dca | 143 | wifi.DisableEcho(); |
Thrillex13 | 1:cf6a75de25ce | 144 | pc.printf("Set mode to Station+AP\r\n"); |
Thrillex13 | 2:bc3973471585 | 145 | wifi.SetMode(BOTH); |
Thrillex13 | 0:f4f503a32dca | 146 | wifi.RcvReply(rcv, 1000); |
Thrillex13 | 0:f4f503a32dca | 147 | pc.printf("%s", rcv); |
Thrillex13 | 0:f4f503a32dca | 148 | wait(2); |
Thrillex13 | 1:cf6a75de25ce | 149 | pc.printf("Configure for multiple sockets\r\n"); |
Thrillex13 | 1:cf6a75de25ce | 150 | wifi.SetMultiple(); |
Thrillex13 | 1:cf6a75de25ce | 151 | wifi.RcvReply(rcv, 1000); |
Thrillex13 | 1:cf6a75de25ce | 152 | pc.printf("%s", rcv); |
Thrillex13 | 1:cf6a75de25ce | 153 | wait(2); |
Thrillex13 | 1:cf6a75de25ce | 154 | pc.printf("Enable DHCP\r\n"); |
Thrillex13 | 1:cf6a75de25ce | 155 | wifi.EnableDHCP(); |
Thrillex13 | 1:cf6a75de25ce | 156 | wifi.RcvReply(rcv, 1000); |
Thrillex13 | 1:cf6a75de25ce | 157 | pc.printf("%s", rcv); |
Thrillex13 | 1:cf6a75de25ce | 158 | wait(2); |
Thrillex13 | 0:f4f503a32dca | 159 | } |
Thrillex13 | 0:f4f503a32dca | 160 | |
Thrillex13 | 0:f4f503a32dca | 161 | void wifiConnect(void){ |
Thrillex13 | 0:f4f503a32dca | 162 | Timer t; |
Thrillex13 | 0:f4f503a32dca | 163 | if(isConnectedToWifi()){ |
Thrillex13 | 0:f4f503a32dca | 164 | pc.printf("Gateway is already connected to wifi with the following IP address\r\n"); |
Thrillex13 | 0:f4f503a32dca | 165 | wifi.GetIP(rcv); |
Thrillex13 | 0:f4f503a32dca | 166 | pc.printf("%s", rcv); |
Thrillex13 | 0:f4f503a32dca | 167 | led_azul = OFF; |
Thrillex13 | 0:f4f503a32dca | 168 | led_verde = ON; |
Thrillex13 | 0:f4f503a32dca | 169 | wait(2); |
Thrillex13 | 0:f4f503a32dca | 170 | }else{ |
Thrillex13 | 0:f4f503a32dca | 171 | t.start(); |
Thrillex13 | 0:f4f503a32dca | 172 | pc.printf("Starting Smart Config\r\n"); |
Thrillex13 | 0:f4f503a32dca | 173 | led_azul = ON; |
Thrillex13 | 0:f4f503a32dca | 174 | wifi.StartSmartConfig(); |
Thrillex13 | 1:cf6a75de25ce | 175 | wifi.RcvReply(rcv, 15000); |
Thrillex13 | 0:f4f503a32dca | 176 | pc.printf("%s", rcv); |
Thrillex13 | 0:f4f503a32dca | 177 | wait(5); |
Thrillex13 | 0:f4f503a32dca | 178 | while(!isConnectedToWifi()){ |
Thrillex13 | 0:f4f503a32dca | 179 | if(t.read_ms() > 30000) { |
Thrillex13 | 0:f4f503a32dca | 180 | led_azul = OFF; |
Thrillex13 | 0:f4f503a32dca | 181 | led_rojo = ON; |
Thrillex13 | 0:f4f503a32dca | 182 | pc.printf("No se pudo conectar al Wifi"); |
Thrillex13 | 0:f4f503a32dca | 183 | break; |
Thrillex13 | 0:f4f503a32dca | 184 | } |
Thrillex13 | 0:f4f503a32dca | 185 | } |
Thrillex13 | 0:f4f503a32dca | 186 | } |
Thrillex13 | 0:f4f503a32dca | 187 | } |
Thrillex13 | 0:f4f503a32dca | 188 | |
Thrillex13 | 0:f4f503a32dca | 189 | bool isConnectedToWifi(void){ |
Thrillex13 | 0:f4f503a32dca | 190 | bool status; |
Thrillex13 | 2:bc3973471585 | 191 | wifi.GetConnStatusCode(rcv); |
Thrillex13 | 0:f4f503a32dca | 192 | //pc.printf("%s", rcv); |
Thrillex13 | 0:f4f503a32dca | 193 | if(strcmp(rcv,"STATUS:2\r")==0){ |
Thrillex13 | 0:f4f503a32dca | 194 | led_azul = OFF; |
Thrillex13 | 0:f4f503a32dca | 195 | led_rojo = OFF; |
Thrillex13 | 0:f4f503a32dca | 196 | led_verde = ON; |
Thrillex13 | 0:f4f503a32dca | 197 | status=true; |
Thrillex13 | 0:f4f503a32dca | 198 | }else{ |
Thrillex13 | 0:f4f503a32dca | 199 | status=false; |
Thrillex13 | 0:f4f503a32dca | 200 | } |
Thrillex13 | 0:f4f503a32dca | 201 | return status; |
Thrillex13 | 0:f4f503a32dca | 202 | |
Thrillex13 | 1:cf6a75de25ce | 203 | } |
Thrillex13 | 1:cf6a75de25ce | 204 | |
Thrillex13 | 1:cf6a75de25ce | 205 | void http_demo(NetworkInterface *network){ |
Thrillex13 | 1:cf6a75de25ce | 206 | TLSSocket* socket = new TLSSocket(); |
Thrillex13 | 1:cf6a75de25ce | 207 | |
Thrillex13 | 1:cf6a75de25ce | 208 | nsapi_error_t r; |
Thrillex13 | 1:cf6a75de25ce | 209 | // make sure to check the return values for the calls below (should return NSAPI_ERROR_OK) |
Thrillex13 | 1:cf6a75de25ce | 210 | r = socket->open(network); |
Thrillex13 | 1:cf6a75de25ce | 211 | r = socket->set_root_ca_cert(SSL_CA_PEM); |
Thrillex13 | 1:cf6a75de25ce | 212 | r = socket->connect("https://cotoceiba.firebaseio.com", 443); |
Thrillex13 | 1:cf6a75de25ce | 213 | |
Thrillex13 | 1:cf6a75de25ce | 214 | printf("\n----- HTTPS GET request -----\n"); |
Thrillex13 | 1:cf6a75de25ce | 215 | |
Thrillex13 | 1:cf6a75de25ce | 216 | HttpsRequest* get_req = new HttpsRequest(socket, HTTP_GET, "https://cotoceiba.firebaseio.com/Condominos/94.json?auth=ZpXLLURU9KWmW5t1kzBYD2IuBE0V7wdv5vXwDgsH"); |
Thrillex13 | 1:cf6a75de25ce | 217 | |
Thrillex13 | 1:cf6a75de25ce | 218 | HttpResponse* get_res = get_req->send(); |
Thrillex13 | 1:cf6a75de25ce | 219 | if (!get_res) { |
Thrillex13 | 1:cf6a75de25ce | 220 | printf("HttpRequest failed (error code %d)\n", get_req->get_error()); |
Thrillex13 | 1:cf6a75de25ce | 221 | //return 1; |
Thrillex13 | 1:cf6a75de25ce | 222 | } |
Thrillex13 | 1:cf6a75de25ce | 223 | printf("\n----- HTTPS GET response -----\n"); |
Thrillex13 | 1:cf6a75de25ce | 224 | dump_response(get_res); |
Thrillex13 | 1:cf6a75de25ce | 225 | delete get_req; |
Thrillex13 | 1:cf6a75de25ce | 226 | |
Thrillex13 | 1:cf6a75de25ce | 227 | printf("\n----- HTTPS POST request -----\n"); |
Thrillex13 | 1:cf6a75de25ce | 228 | |
Thrillex13 | 1:cf6a75de25ce | 229 | HttpsRequest* post_req = new HttpsRequest(socket, HTTP_POST, "https://cotoceiba.firebaseio.com/Condominos/52.json?auth=ZpXLLURU9KWmW5t1kzBYD2IuBE0V7wdv5vXwDgsH"); |
Thrillex13 | 1:cf6a75de25ce | 230 | post_req->set_header("Content-Type", "application/json"); |
Thrillex13 | 1:cf6a75de25ce | 231 | |
Thrillex13 | 1:cf6a75de25ce | 232 | const char body[] = "{\"nombre\":\"Posteado por Wifi Perros\",\"numcasa\":\"64\"}"; |
Thrillex13 | 1:cf6a75de25ce | 233 | |
Thrillex13 | 1:cf6a75de25ce | 234 | HttpResponse* post_res = post_req->send(body, strlen(body)); |
Thrillex13 | 1:cf6a75de25ce | 235 | if (!post_res) { |
Thrillex13 | 1:cf6a75de25ce | 236 | printf("HttpRequest failed (error code %d)\n", post_req->get_error()); |
Thrillex13 | 1:cf6a75de25ce | 237 | //return 1; |
Thrillex13 | 1:cf6a75de25ce | 238 | } |
Thrillex13 | 1:cf6a75de25ce | 239 | |
Thrillex13 | 1:cf6a75de25ce | 240 | printf("\n----- HTTPS POST response -----\n"); |
Thrillex13 | 1:cf6a75de25ce | 241 | dump_response(post_res); |
Thrillex13 | 1:cf6a75de25ce | 242 | delete post_req; |
Thrillex13 | 0:f4f503a32dca | 243 | } |