1 00:00:00,000 --> 00:00:11,460 Buenas tardes. Tengo aquí otro esquema en el que únicamente lo que he leído en WorkWe 2 00:00:11,460 --> 00:00:20,000 es una placa ESP32. Vamos a hacer ahora envío de datos. Vamos a simular una estación meteorológica, 3 00:00:20,000 --> 00:00:27,679 pero sin sensor, sino que cada cierto tiempo le vamos a ir enviando una serie de valores que 4 00:00:27,679 --> 00:00:31,039 serán las temperaturas y lo vamos a enviar a una página que va a ser 5 00:00:31,039 --> 00:00:35,020 Thingspeak en el que nos va a permitir 6 00:00:35,020 --> 00:00:37,399 que allí se pueda representar 7 00:00:37,399 --> 00:00:42,460 por medio de una gráfica esos valores que vamos enviando. 8 00:00:43,240 --> 00:00:47,679 La página de Thingspeak es esta en el que si yo 9 00:00:47,679 --> 00:00:51,659 me pongo aquí donde tengo canales, entonces tenéis que 10 00:00:51,659 --> 00:00:54,780 dar de alta en ella y una vez que da de alta en 11 00:00:54,780 --> 00:00:59,340 en mis canales, veis yo tengo varios canales, yo puedo crear un nuevo canal 12 00:00:59,340 --> 00:01:03,159 donde lo que quiero es que se conecte a esta página 13 00:01:03,159 --> 00:01:07,299 y esos datos de temperatura me los vaya apareciendo en una gráfica 14 00:01:07,299 --> 00:01:11,480 conforme los va enviando, yo puedo crear un nuevo canal como veis aquí 15 00:01:11,480 --> 00:01:15,340 y le puedo llamar pues como le he llamado, estación meteorológica vamos a poner 16 00:01:15,340 --> 00:01:19,579 1 y podéis poner aquí 17 00:01:19,579 --> 00:01:23,239 la descripción, los datos que queréis que se vayan a enviar 18 00:01:23,239 --> 00:01:39,480 Por ejemplo, temperatura. Y bueno, aquí tenéis un montón de campos que podéis añadir y una serie de datos que podéis añadirle. Bueno, para hacer el vídeo un poco más corto, vamos a salvar este nuevo canal que le llamamos Estación Meteorológica 1 para que veáis cómo es. 19 00:01:39,480 --> 00:01:42,079 y le dais a ejecutar 20 00:01:42,079 --> 00:01:43,780 y veis que ya nos aparece un dashboard aquí 21 00:01:43,780 --> 00:01:45,760 y nos aparece una gráfica de temperaturas 22 00:01:45,760 --> 00:01:47,019 que va a ir enviando 23 00:01:47,019 --> 00:01:49,599 desde nuestro proyecto en Wotwi 24 00:01:49,599 --> 00:01:51,439 podemos permitir que Wotwi 25 00:01:51,439 --> 00:01:53,400 veis aquí, ahora explicaré el código 26 00:01:53,400 --> 00:01:55,859 el servidor donde va a enviar 27 00:01:55,859 --> 00:01:58,120 vhttp los valores 28 00:01:58,120 --> 00:01:59,840 de las temperaturas sería este que 29 00:01:59,840 --> 00:02:02,120 aparece aquí, que sería la página de Cinespeak 30 00:02:02,120 --> 00:02:03,799 y luego lo único que necesitamos 31 00:02:03,799 --> 00:02:05,780 es una API Key en el que 32 00:02:05,780 --> 00:02:07,840 aquí tengo varias API Key 33 00:02:07,840 --> 00:02:12,000 esta es la piqui que tenía del primer proyecto, esta sería la segunda, lo voy a poner 34 00:02:12,000 --> 00:02:16,099 comentado y para que veáis que tendríamos que coger la nueva piqui 35 00:02:16,099 --> 00:02:20,159 del nuevo canal que hemos generado, vamos a meternos aquí 36 00:02:20,159 --> 00:02:22,680 y 37 00:02:22,680 --> 00:02:28,719 este sería el canal y aquí vamos a ver 38 00:02:28,719 --> 00:02:40,060 vamos a ver aquí de todos 39 00:02:40,060 --> 00:02:45,379 los que tenemos, que serían estos de aquí 40 00:02:45,379 --> 00:03:13,800 tenemos este, vamos a ver los canales que tenemos públicos, veis que por cada canal podemos permitir que esos datos sean enviados y puedan aparecer en la gráfica, yo doy mis canales, tengo los tres que he generado, este tercero es el que acabo de generar y en el que tenemos que poner su key, vamos a coger su, esta sería la API key para escribir ese dato en mi propia gráfica 41 00:03:13,800 --> 00:03:17,560 tenemos que ponerlo en el propio código ahora luego explicaré cómo como en qué 42 00:03:17,560 --> 00:03:24,800 consiste dicho código lo único que voy a hacer aquí es añadir el nuevo api key 43 00:03:25,080 --> 00:03:28,759 sería esta de aquí voy a borrar todas las demás 44 00:03:28,759 --> 00:03:33,780 le he hecho una nueva para que veáis cómo se hace y por medio de esta api key 45 00:03:33,780 --> 00:03:38,960 lo que va a hacer y la dirección del servidor va a permitir que dicha página 46 00:03:38,960 --> 00:03:45,240 web reciba mis datos y me lo vaya sacando en una gráfica. Lo que vamos a hacer a continuación es 47 00:03:45,240 --> 00:03:52,840 ejecutar de nuevo el código, va a tardar un poquito y veremos cómo se conecta a Zinespeak 48 00:03:52,840 --> 00:04:00,060 y cómo a través de Swapiki y ese canal que he creado va a permitir que los datos de temperatura 49 00:04:00,060 --> 00:04:06,000 puedan ser enviados a Zinespeak y allí vayan saliendo en una gráfica. Esto lo va a hacer en 50 00:04:06,000 --> 00:04:11,340 el código a través de cada 15 segundos. Aquí hemos puesto un delay de 15.000 milisegundos. 51 00:04:11,699 --> 00:04:20,560 Luego explicaré todo el programa. Aquí nos ponemos en el dashboard y veis que no hay 52 00:04:20,560 --> 00:04:24,019 ningún dato. No hemos recibido todavía ninguno porque esto todavía no se ha ejecutado. Ya 53 00:04:24,019 --> 00:04:27,300 se ha ejecutado, se está conectando a la Wi-Fi y ahora se está conectando y nos ha enviado 54 00:04:27,300 --> 00:04:32,079 un código HTTP 200 que indica que ha sido correcto. El primer dato que envía es con 55 00:04:32,079 --> 00:04:37,060 el valor de 25. Vamos a ver si la gráfica se ha actualizado. Se ha actualizado a 25 56 00:04:37,060 --> 00:04:40,120 grados que ha enviado nuestro propio 57 00:04:40,120 --> 00:04:42,100 programa. Esto lo suyo sería 58 00:04:42,100 --> 00:04:43,600 hacerlo con un sensor en el que 59 00:04:43,600 --> 00:04:45,759 en un cultivo va recogiendo el sensor 60 00:04:45,759 --> 00:04:47,819 cada uno de los datos y esos datos van pasando 61 00:04:47,819 --> 00:04:49,959 a una página web. Esa página 62 00:04:49,959 --> 00:04:52,199 veis ahora cada 15 segundos va actualizando 63 00:04:52,199 --> 00:04:53,980 y veis lo que va haciendo es 64 00:04:53,980 --> 00:04:56,199 que va realizando 65 00:04:56,199 --> 00:04:57,980 la operación es muy 66 00:04:57,980 --> 00:04:59,920 sencilla, lo único que va haciendo es 67 00:04:59,920 --> 00:05:01,579 aquí lo tenéis 68 00:05:01,579 --> 00:05:08,639 lo único que va haciendo es 69 00:05:08,639 --> 00:05:10,240 incrementando un valor 70 00:05:10,240 --> 00:05:18,040 de temperatura ese valor se va incrementando para que se vaya actualizando aquí veis que el primer 71 00:05:18,040 --> 00:05:25,660 valor ha sido de 25 el segundo ha sido de 20 y el tercero ha pasado a ser también de temperatura de 72 00:05:25,660 --> 00:05:33,420 20 luego veremos el programa lo modificaremos y veremos cómo cómo hacer que eso varía bien 73 00:05:33,420 --> 00:05:42,019 Sabiendo ya que este programa se va a conectar con la placa SP32 a través de su Wi-Fi a la página de Cinespeak 74 00:05:42,019 --> 00:05:46,139 y que permite enviar los datos, vamos a explicar el código y cómo se hace esto. 75 00:05:47,120 --> 00:05:50,519 Sigue enviando datos y esto lo sigue actualizando, ¿lo veis? 76 00:05:52,699 --> 00:05:59,259 WhatWe tiene, como es vía cloud, pues no podemos hacerlo directamente con un servidor local, 77 00:05:59,259 --> 00:06:01,379 sino tendremos que hacerlo a través de un intermediario. 78 00:06:01,379 --> 00:06:09,800 que lo veremos luego en el NGROC en la práctica final del paso 10. 79 00:06:10,459 --> 00:06:13,660 Aquí lo único que hemos hecho es a través de esta página 80 00:06:13,660 --> 00:06:18,500 que nos permite desarrollar proyectos IoT y tener un servidor 81 00:06:18,500 --> 00:06:20,860 donde poder enviar los datos, lo hemos simulado aquí. 82 00:06:22,379 --> 00:06:26,540 En cuanto al código es sencillo, lo único que comienza 83 00:06:26,540 --> 00:06:30,600 es primero con una inclusión de las dos librerías 84 00:06:30,600 --> 00:06:33,459 que necesitamos para que esto se lleve a cabo. 85 00:06:33,459 --> 00:06:36,439 Una sería la de Wi-Fi, que ya lo vimos en el ejemplo anterior 86 00:06:36,439 --> 00:06:39,779 para la conexión, y otro sería el htclient.h, 87 00:06:39,980 --> 00:06:42,060 este es el fichero cabecera en el que luego veremos 88 00:06:42,060 --> 00:06:45,060 los propios métodos que va a utilizar. 89 00:06:45,699 --> 00:06:50,040 Entonces, en definitiva, vamos a ver un ejemplo completo 90 00:06:50,040 --> 00:06:52,500 de proyecto IoT usando ESP32. 91 00:06:52,660 --> 00:06:55,040 El objetivo es enviar datos a una plataforma IT en la nube, 92 00:06:55,699 --> 00:06:57,319 en este caso hemos utilizado Cinespeak, 93 00:06:57,319 --> 00:07:01,300 y visualizarlos en un dashboard o con gráficas en tiempo real. 94 00:07:01,439 --> 00:07:05,339 Es un ejemplo muy típico y además totalmente compatible con WebWin. 95 00:07:05,459 --> 00:07:06,699 Como veis, funciona. 96 00:07:08,199 --> 00:07:12,139 Por ello, necesitamos WebWin para poderlo realizar 97 00:07:12,139 --> 00:07:15,759 y hay que decir que con respecto a Cinespeak, 98 00:07:15,759 --> 00:07:21,759 es una plataforma IoT que nos permite recibir datos desde dispositivos como el ESP32 99 00:07:22,399 --> 00:07:24,879 y mostrarlos en gráficos como estáis viendo automáticamente. 100 00:07:24,879 --> 00:07:35,680 Luego veremos por qué ha disminuido la temperatura en 5 grados y va sacando siempre el mismo valor. 101 00:07:35,800 --> 00:07:41,199 Luego haremos la gráfica para que nos vaya generando una gráfica diferente. 102 00:07:41,980 --> 00:07:47,120 Entonces lo muestra en gráficos automáticamente y es muy usada en proyectos educativos y prototipos de sensores, 103 00:07:47,500 --> 00:07:49,259 como estaciones meteorológicas, como este es el caso. 104 00:07:49,259 --> 00:07:51,740 esta habéis visto en la página de Cinespeak 105 00:07:51,740 --> 00:07:53,839 es un canal con una gráfica 106 00:07:53,839 --> 00:07:56,100 que aparece en la imagen, que ese sería el dashboard 107 00:07:56,100 --> 00:07:58,079 el objetivo del proyecto, ¿cuál sería? 108 00:07:58,319 --> 00:08:00,279 el ESP32 se conecta 109 00:08:00,279 --> 00:08:02,040 a una red wifi, genera un dato 110 00:08:02,040 --> 00:08:04,279 de ejemplo, en este caso una temperatura simulada 111 00:08:04,279 --> 00:08:06,160 y lo envía periódicamente a Cinespeak 112 00:08:06,160 --> 00:08:07,720 usando, en este caso 113 00:08:07,720 --> 00:08:09,920 cada 15 segundos 114 00:08:09,920 --> 00:08:11,779 ¿lo veis? aquí lo he pospuesto 115 00:08:11,779 --> 00:08:14,319 Cinespeak permite un envío cada 15 segundos 116 00:08:14,319 --> 00:08:16,100 lo envía 117 00:08:16,100 --> 00:08:17,879 periódicamente a Cinespeak usando el que? 118 00:08:17,879 --> 00:08:21,420 la petición HTTP. Por eso necesitamos de la librería 119 00:08:21,420 --> 00:08:26,199 HTTP client. Zinespeak lo muestra automáticamente en una gráfica 120 00:08:26,199 --> 00:08:29,779 y poco más. Bien, vamos a ver en cuanto al código. 121 00:08:30,040 --> 00:08:34,019 Hemos visto que lo primero que aparece aquí serían las dos librerías que necesitamos. 122 00:08:34,120 --> 00:08:37,799 La primera librería sería la de Wi-Fi, en el que para conectarnos a una red Wi-Fi 123 00:08:37,799 --> 00:08:41,980 y la segunda, la de http client.h, sería para enviar datos por 124 00:08:41,980 --> 00:08:45,240 HTTP, que es lo que se usa para Zinespeak. 125 00:08:45,240 --> 00:09:12,039 Bien, a continuación genera los datos de Cinespeak. Estos datos de Cinespeak que tenemos aquí serían tanto una constante que sería pues que nos aparece, veis que aquí esto es un puntero, bueno, esto es un puntero porque en C++ para crear una cadena lo crea así, esta sería una cadena de caracteres donde el puntero, se crea un puntero que se llama server. 126 00:09:12,039 --> 00:09:16,039 Y este sería el servidor al que se va a conectar, que sería justamente Cinespeak. 127 00:09:16,360 --> 00:09:25,919 También necesitamos una cadena, la Piqui, que es la que nos genera Cinespeak para que se pueda conectar a la propia página, que ya lo habéis visto anteriormente. 128 00:09:26,980 --> 00:09:35,559 Bien, y por último necesitamos un valor decimal, almacenado una variable float, que sería temperatura y que como comienzo va a tener un valor de 25. 129 00:09:35,559 --> 00:09:37,679 bien, pasamos al 130 00:09:37,679 --> 00:09:39,720 voice setup, el voice setup es muy sencillo 131 00:09:39,720 --> 00:09:41,840 se crea el monitor 132 00:09:41,840 --> 00:09:43,960 en serie igual, con los 115.200 133 00:09:43,960 --> 00:09:45,940 baudios y se inicializa 134 00:09:45,940 --> 00:09:47,879 con dos valores, tanto con el valor 135 00:09:47,879 --> 00:09:49,899 del SSID y con la password 136 00:09:49,899 --> 00:09:51,419 el 137 00:09:51,419 --> 00:09:53,320 SSID será 138 00:09:53,320 --> 00:09:55,659 hemos puesto walkway west, que es la propia 139 00:09:55,659 --> 00:09:57,940 wifi de 140 00:09:57,940 --> 00:09:59,740 de walkway 141 00:09:59,740 --> 00:10:01,659 y luego la password que hemos puesto 142 00:10:01,659 --> 00:10:03,240 vacía, porque no 143 00:10:03,240 --> 00:10:07,899 vamos a dejar que no necesite password. Para inicializar 144 00:10:07,899 --> 00:10:11,860 la Wi-Fi hemos puesto el begin y necesita de esos dos parámetros, tanto 145 00:10:11,860 --> 00:10:15,799 el ssid como el password. A continuación imprimimos conectando a Wi-Fi, que es lo que 146 00:10:15,799 --> 00:10:18,820 ha puesto aquí, ¿veis? Y 147 00:10:18,820 --> 00:10:23,820 luego hay que establecer si se conecta o no. 148 00:10:24,179 --> 00:10:27,779 Para ello viene implícito la conexión a Wi-Fi. La conexión 149 00:10:27,779 --> 00:10:30,980 a Wi-Fi la simula el propio programa Huawei. 150 00:10:30,980 --> 00:10:34,759 a través de un while se compara el estado 151 00:10:34,759 --> 00:10:36,159 de esa wifi y se dice si 152 00:10:36,159 --> 00:10:38,779 está conectada o no, si no está conectada 153 00:10:38,779 --> 00:10:39,360 pues entonces 154 00:10:39,360 --> 00:10:42,820 para el programa durante medio segundo 155 00:10:42,820 --> 00:10:44,379 y escribe un puntito 156 00:10:44,379 --> 00:10:46,600 y así en el while hasta que 157 00:10:46,600 --> 00:10:48,620 se conecte, una vez que se ha conectado 158 00:10:48,620 --> 00:10:50,820 salda del while y por tanto pondrá que la wifi 159 00:10:50,820 --> 00:10:52,860 ha sido conectada, aquí como lo ha hecho rápidamente 160 00:10:52,860 --> 00:10:53,879 no ha sacado ningún 161 00:10:53,879 --> 00:10:56,179 ha sacado directamente 162 00:10:56,179 --> 00:10:58,779 bueno, ha puesto tres puntitos 163 00:10:58,779 --> 00:11:00,480 que eso es lo que ha tardado, tres veces que ha pasado 164 00:11:00,480 --> 00:11:05,200 y a continuación has conectado con la wifi 165 00:11:05,200 --> 00:11:09,039 eso sería en cuanto al setup 166 00:11:09,039 --> 00:11:11,399 sencillo, que tenemos en cuanto al loop 167 00:11:11,399 --> 00:11:14,340 el loop igual, volvemos a poner un condicional 168 00:11:14,340 --> 00:11:16,519 en el que cada vez que entre en el loop 169 00:11:16,519 --> 00:11:20,600 quiere ver si el estado de la wifi, el método status 170 00:11:20,600 --> 00:11:23,539 es igual a conectado, si es igual a conectado 171 00:11:23,539 --> 00:11:25,860 entonces realizará todo esto, si no pues se lo saltará 172 00:11:25,860 --> 00:11:29,539 lo primero que crea es un objeto HTTP client 173 00:11:29,539 --> 00:11:32,379 que le llama http, acordado, la librería está aquí 174 00:11:32,379 --> 00:11:36,100 y necesitamos esta librería para poder 175 00:11:36,100 --> 00:11:38,940 crear este objeto 176 00:11:38,940 --> 00:11:44,429 bien, con respecto 177 00:11:44,429 --> 00:11:49,009 a url 178 00:11:49,009 --> 00:11:52,669 aquí lo que va a hacer es crear una url 179 00:11:52,669 --> 00:11:56,809 con el campo a enviar, la url que va a incluir 180 00:11:56,809 --> 00:12:00,070 va a incluir la piki y el valor que queremos enviar 181 00:12:00,070 --> 00:12:10,309 en este caso sería este valor, fill1, que sería la temperatura, que si veis aquí lo he puesto aquí dentro. 182 00:12:11,070 --> 00:12:16,929 Esto lo que genera no es nada más que una cadena de texto, una cadena que sea toda la URL, 183 00:12:17,230 --> 00:12:26,970 que sería el servidor, server, que sería esta cadena, luego le pone, porque lo va a enviar a través de un método get, 184 00:12:26,970 --> 00:12:30,929 no post y pone api key igual a la api key 185 00:12:30,929 --> 00:12:33,529 que hemos puesto aquí arriba que sería esta 186 00:12:33,529 --> 00:12:39,070 a continuación le pone que añade un campo 187 00:12:39,070 --> 00:12:42,549 que sería este y cuyo campo va a ser la temperatura que vamos a enviar 188 00:12:42,549 --> 00:12:46,230 en forma de cadena, todo esto será por tanto una cadena 189 00:12:46,230 --> 00:12:49,669 y lo va a englobar dentro de url 190 00:12:49,669 --> 00:12:54,450 entonces como inicia el objeto http o http client con begin 191 00:12:54,450 --> 00:12:59,049 y añadir siempre una URL con este método, que va a ser el método get. 192 00:13:00,750 --> 00:13:04,610 Después, lo que utiliza es el método get de este objeto. 193 00:13:04,950 --> 00:13:08,669 ¿Para qué? Para ver, concretamente, 194 00:13:09,070 --> 00:13:11,690 usamos esta petición get para enviar el dato a thin speak. 195 00:13:15,549 --> 00:13:18,830 Lógicamente, cuando apliquemos el método get al objeto HTTP, 196 00:13:19,250 --> 00:13:23,169 nos va a dar un código de HTTP, que será un entero. 197 00:13:23,169 --> 00:13:28,169 Este nos puede dar un valor de 200, en el que el valor de 100 significa que el envío ha sido correcto. 198 00:13:28,809 --> 00:13:35,990 Entonces, lo que hará después es imprimir el código HTTP y el código que ha recibido al aplicar el método GET al objeto HTTP. 199 00:13:36,769 --> 00:13:44,429 Y por último, lo único que hace es cerrar ese envío o ese objeto HTTP. 200 00:13:45,190 --> 00:13:52,889 Una vez que se ha realizado la simulación y ha enviado ese dato, lo que hace es que ahora lo que va a hacer es un incremento de la temperatura. 201 00:13:52,889 --> 00:14:12,769 Esto que aparece aquí sería lo mismo que temperatura igual a temperatura más 10,5. Nos dice que si temperatura es mayor que 30, que ponga siempre temperatura de 20. Por eso, cuando aquí está enviando, está enviando constantemente un valor de temperatura de 20. ¿Por qué? Porque le está diciendo, por ejemplo, en el primer incremento aquí, ¿qué es lo que ha pasado? 202 00:14:12,769 --> 00:14:26,750 En el primer incremento aquí lo que hace es que temperatura es igual a, como la he sumado 10,5, será igual a, como la he partido de 25, sería 35,5. 203 00:14:26,970 --> 00:14:32,210 Al ser mayor de 30, entonces la temperatura siempre le pone un valor de 20. 204 00:14:32,210 --> 00:14:43,929 Vamos a poner aquí un valor de 60 para que vaya incrementando, bueno, vamos a poner de 100 para que la vaya incrementando y nos genere una serie de picos. 205 00:14:44,269 --> 00:14:53,269 El siguiente valor sería de 35,5, luego le suma 45,5, así sucesivamente y genera una pendiente. 206 00:14:54,529 --> 00:14:58,370 Vamos, por tanto, como le he puesto mayor que 100, ahora nos dirá que si la temperatura es mayor que 100, 207 00:14:58,370 --> 00:15:02,669 entonces le ponga un valor de 20, pero si no, permita estos incrementos. 208 00:15:03,429 --> 00:15:06,129 Vamos a ejecutarlo de nuevo, va a tardar otro poquito. 209 00:15:10,279 --> 00:15:15,620 Veis que la última línea es que cada lectura la realice cada 15 segundos. 210 00:15:15,620 --> 00:15:19,419 cada 15 segundos va a volver otra vez al loop 211 00:15:19,419 --> 00:15:22,279 y lo que hará es que se enviará, creará otro objeto 212 00:15:22,279 --> 00:15:25,279 HTTP y con él la misma URL, pero ahora con un valor 213 00:15:25,279 --> 00:15:28,460 de temperatura incrementado en 10,5 214 00:15:28,460 --> 00:15:29,460 grados 215 00:15:29,460 --> 00:15:32,659 vamos a ver si lo ejecuta 216 00:15:32,659 --> 00:15:36,840 bien, veis que se está conectando la wifi 217 00:15:36,840 --> 00:15:39,139 y veis que 218 00:15:39,139 --> 00:15:45,659 vamos a ver, y aquí cuando se actualice 219 00:15:45,659 --> 00:15:49,360 el último valor que hemos obtenido era de 20 220 00:15:49,360 --> 00:16:06,340 Veis cómo ya ha pasado a 35, pasaría como tiene un valor de 20, le ha incrementado 10,5, tendría un valor de 25,5. Aquí le he puesto un valor de 25. Vamos a ver en la segunda lectura qué es lo que realiza. 221 00:16:06,340 --> 00:16:11,480 Hasta que nos tengamos aquí un código HTTP 200 no habrá enviado otro valor. 222 00:16:11,820 --> 00:16:21,379 Como espera 15 segundos, vamos a esperar 15 segundos a ver que ya ha enviado otro y a continuación se actualizará en Zinespeak y veis la ha generado de 35. 223 00:16:21,379 --> 00:16:40,139 Si veis, no está aplicando los valores de, porque yo le estoy incrementando en 10.5, pero directamente él está aplicando valores de, está aplicando valores como si incrementara en vez de 10.5, incrementara en valores de 10. 224 00:16:40,139 --> 00:16:45,879 este posible error, aunque esto es un float 225 00:16:45,879 --> 00:16:49,100 vamos a ver si es que 226 00:16:49,100 --> 00:16:56,460 porque la escala la estamos poniendo cada 10 227 00:16:56,460 --> 00:17:01,019 vamos a ver si podemos modificar la escala del mismo, vamos a ver en el canal 228 00:17:01,019 --> 00:17:04,440 que sería esta 229 00:17:04,440 --> 00:17:14,079 y los datos importados 230 00:17:14,079 --> 00:17:20,630 vale, y las características 25 231 00:17:20,630 --> 00:17:46,279 si vemos algún error 232 00:17:46,279 --> 00:17:48,839 hay porque no nos refleja 233 00:17:48,839 --> 00:17:52,819 veis va incrementando, ves 45 234 00:17:52,819 --> 00:17:56,779 aquí ya ha puesto, ah no, si si si 235 00:17:56,779 --> 00:17:58,359 estaba bien, no lo había visto yo 236 00:17:58,359 --> 00:18:00,440 era 25 así que aquí ya le he incrementado 237 00:18:00,440 --> 00:18:02,559 en 10.5, lo veis, que sea entre 238 00:18:02,559 --> 00:18:04,599 5.5 y luego pues aquí 239 00:18:04,599 --> 00:18:06,759 ya como tiene que incrementarle 10.5 240 00:18:06,759 --> 00:18:08,619 pasa a 46 que sería este, estaría 241 00:18:08,619 --> 00:18:10,480 correcto, y esto sería 242 00:18:10,480 --> 00:18:12,400 en definitiva cómo podemos hacer una 243 00:18:12,400 --> 00:18:14,359 estación metodológica muy sencillita, nada más que enviando 244 00:18:14,359 --> 00:18:16,079 datos a un 245 00:18:16,079 --> 00:18:17,799 servidor como puede ser Cinespeak. 246 00:18:18,779 --> 00:18:20,480 Repaso de todo el código. 247 00:18:21,099 --> 00:18:22,140 Necesitamos dos librerías. 248 00:18:22,380 --> 00:18:23,359 Serían las librerías, 249 00:18:23,900 --> 00:18:26,299 para establecer la Wi-Fi y la 250 00:18:26,299 --> 00:18:28,259 HTTP client para generar las peticiones 251 00:18:28,259 --> 00:18:29,759 GET HTTP. 252 00:18:30,579 --> 00:18:32,359 Necesitamos dos constantes, una que 253 00:18:32,359 --> 00:18:34,339 aparezca el nombre de la Wi-Fi y otra que 254 00:18:34,339 --> 00:18:36,079 sea que aparezca la password. Como 255 00:18:36,079 --> 00:18:38,119 password lo vamos a dejar en blanco, pues 256 00:18:38,119 --> 00:18:40,160 sería así. Y luego necesitamos otra 257 00:18:40,160 --> 00:18:44,599 constante que sería un la url que sería la página donde se va a ser enviada que va a ser haciendo 258 00:18:44,599 --> 00:18:52,859 speak puntocom barra update y necesitamos el api key para que el propio canal sepamos que a qué 259 00:18:52,859 --> 00:18:59,440 canal tiene que enviarlo este sería la epique en el canal que nos lo ha dado el propio cuando la 260 00:18:59,440 --> 00:19:05,400 cuando lo creí. Aquí estaba, vamos a verlo dónde estaba, en las settings. 261 00:19:06,779 --> 00:19:11,319 No generaba, no, aquí, perdón, en API Keys. Esta es la que he puesto aquí. 262 00:19:12,059 --> 00:19:16,980 Bien, una vez que tenemos también la API Key, tenemos que generar un valor float, 263 00:19:17,200 --> 00:19:21,559 porque va a tener, a alojar valores decimales, que sería el de temperatura. 264 00:19:22,500 --> 00:19:28,460 Iniciamos el monitor, creamos la Wi-Fi con Begin y con dos parámetros, 265 00:19:28,460 --> 00:19:30,059 el SID y el password 266 00:19:30,059 --> 00:19:32,660 y ponemos que conectado a wifi en el monitor 267 00:19:32,660 --> 00:19:34,880 a continuación comprobamos el estado 268 00:19:34,880 --> 00:19:37,079 si el estado de la wifi no está conectado 269 00:19:37,079 --> 00:19:37,960 esto es una constante 270 00:19:37,960 --> 00:19:40,700 WLConnected 271 00:19:40,700 --> 00:19:43,099 es una constante en la que nos va a decir 272 00:19:43,099 --> 00:19:45,079 si está conectado o no, si no está conectado 273 00:19:45,079 --> 00:19:46,460 entonces espera medio segundo 274 00:19:46,460 --> 00:19:48,380 imprime un puntito, vuelve otra vez 275 00:19:48,380 --> 00:19:51,119 no está conectado o imprime otro puntito y así sucesivamente 276 00:19:51,119 --> 00:19:52,740 él tarda poquito porque 277 00:19:52,740 --> 00:19:54,559 solo imprime tres puntos, a continuación 278 00:19:54,559 --> 00:19:56,640 wifi conectado, veis, sería aquí 279 00:19:56,640 --> 00:20:10,920 Y luego ya en el loop es el que va a entrar de manera continua, de manera continua, de manera infinitas veces hasta que paremos la aplicación. Lo único que hace es que primero comprueba que el estado de la Wi-Fi está conectada, ¿veis? Y si está, entonces realizaría todo esto que aparece aquí. 280 00:20:10,920 --> 00:20:18,500 Lo primero que hace es que crea un objeto de tipo HTTP client, que se llama HTTP, crea una URL, que sería el nombre del servidor, que es Cinespeak. 281 00:20:19,799 --> 00:20:28,380 Como va a ser un envío en GET, va a ir a través de la URL, entonces el API key le pone el valor del API key y el campo, pues el de la temperatura. 282 00:20:29,019 --> 00:20:36,559 A continuación, inicia el objeto HTTP con BEGIN y con la URL hacia donde va a ser enviado. 283 00:20:36,559 --> 00:20:55,839 Y posteriormente vemos, al ejecutar el método GET de ese objeto HTTP, vemos qué tipo de código nos devuelve, que va a ser un código de tipo entero. Y lo imprime. Nos imprime un valor de código HTTP de 200, que quiere decir que se ha enviado de manera correcta. 284 00:20:55,839 --> 00:20:58,980 cierra el objeto HTTP y finaliza el envío 285 00:20:58,980 --> 00:21:01,500 a continuación lo que hace es que 286 00:21:01,500 --> 00:21:04,000 le incrementa en 10.5 287 00:21:04,000 --> 00:21:07,859 y compara la temperatura con el valor de 100 288 00:21:07,859 --> 00:21:11,240 si es mayor de 100 le dice que vuelva al valor de 20 289 00:21:11,240 --> 00:21:14,059 pero si no que le vaya incrementando 10.5 valores 290 00:21:14,059 --> 00:21:17,880 esto lo va a realizar cada 15 segundos 291 00:21:17,880 --> 00:21:20,940 puesto que hemos puesto aquí un delay de 15.000 segundos 292 00:21:20,940 --> 00:21:23,740 si vemos el dashboard 293 00:21:23,740 --> 00:21:29,740 veis que ha ido incrementando incrementando hasta que llega a 100 porque hemos dicho en 98.5 ya 294 00:21:29,740 --> 00:21:35,859 como era mayor que 100 pasa el valor a 20 después de 20 pues va a incrementar no se veis 30 con 5 295 00:21:35,859 --> 00:21:43,779 41 51 con 5 etcétera y veis que lo va actualizando en nuestro dashboard en cinespeak y esto es 296 00:21:43,779 --> 00:21:48,980 básicamente lo que es una estación meteorológica muy sencilla y como previo a la estación 297 00:21:48,980 --> 00:21:52,759 meteorológica que vamos a hacer en el proyecto final donde ya si nosotros 298 00:21:52,759 --> 00:21:57,200 crearemos un propio un servidor propio y a través de negro conectaremos o 299 00:21:57,200 --> 00:22:00,619 actuará como intermediario entre nuestro servidor y nuestra estación 300 00:22:00,619 --> 00:22:06,160 meteorológica en el que incluiremos además un sensor que simulará un cultivo 301 00:22:06,160 --> 00:22:11,039 en donde estamos en dicho cultivo capturando a través del sensor las 302 00:22:11,039 --> 00:22:14,940 temperaturas que va teniendo cada un cierto tiempo y esas son enviados a 303 00:22:14,940 --> 00:22:17,480 a través de una gráfica, a nuestro propio servidor.