        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":5348,"date":"2020-02-05T01:11:59","date_gmt":"2020-02-05T01:11:59","guid":{"rendered":"http:\/\/rogerbit.com\/wprb\/?p=5348"},"modified":"2020-02-05T01:11:59","modified_gmt":"2020-02-05T01:11:59","slug":"medidor-de-nivel-de-agua-iot-con-uln2803-y-esp32-subiendo-datos-a-ubidots","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2020\/02\/medidor-de-nivel-de-agua-iot-con-uln2803-y-esp32-subiendo-datos-a-ubidots\/","title":{"rendered":"Medidor de nivel de agua IoT con uln2803 y esp32 subiendo datos a Ubidots"},"content":{"rendered":"<p><iframe loading=\"lazy\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/JbNmGmBBPbk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Se incluye el circuito impreso, el cual ha sido provisto por pcbway.<\/p>\n<p>PCBWay Prototipo r\u00e1pido de PCB (Sin valor extra para colores)\u00a0<a href=\"https:\/\/www.pcbway.es\/\">https:\/\/www.pcbway.es\/<\/a><\/p>\n<p><a href=\"https:\/\/www.pcbway.es\/\"><img loading=\"lazy\" class=\"alignnone wp-image-4997\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/pcbway.png\" sizes=\"(max-width: 294px) 100vw, 294px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/pcbway.png 800w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/pcbway-300x126.png 300w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/pcbway-768x322.png 768w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/09\/pcbway-600x251.png 600w\" alt=\"\" width=\"294\" height=\"123\" \/><\/a><\/p>\n<p>En este tutorial veremos como hacer un circuito medidor de nivel de agua con el integrado uln2803 y m\u00f3dulo wifi esp32.<br \/>\nSe incluye el circuito impreso, se explicar\u00e1 el funcionamiento del mismo.<br \/>\nEste es el segundo tutorial de dos videos. En el primer video, vimos como visualizar el nivel de agua a trav\u00e9s de una escala de led.<br \/>\nAhora vamos a subir estos datos a la nube, con los servicios de ubidots.<\/p>\n<p>Recomiendo ver el anterior art\u00edculo donde hay m\u00e1s informaci\u00f3n del uln2803 &#8211;&gt;\u00a0http:\/\/rogerbit.com\/wprb\/2020\/01\/como-hacer-un-medidor-de-nivel-de-agua-con-uln2803-primera-parte\/<\/p>\n<p>El\u00a0\u00a0circuito integrado\u00a0ULN2803 se emplea como una interface de potencia para circuitos con tecnolog\u00eda CMOS y TTL. Este integrado tiene en su interior 8 transistores NPN en configuraci\u00f3n Darlington con diodos de protecci\u00f3n, para poder controlar\u00a0\u00a0motores,\u00a0 cargas inductivas ,rel\u00e9s, y m\u00e1s. Cada salida puede controlar hasta 500 mA por lo que puede controlar diferentes tipos de cargas. Las salidas pueden conectarse en paralelo cuando es necesario manejar cargas m\u00e1s altas, no obstante conviene no sobrepasar la potencia total del circuito.<\/p>\n<hr \/>\n<p>Tal vez pueda interesarte proyectos en arduino, pic, rob\u00f3tica, telecomunicaciones, suscribete en\u00a0<a href=\"http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1\">http:\/\/www.youtube.com\/user\/carlosvolt?sub_confirmation=1<\/a>\u00a0mucho videos con c\u00f3digo fuentes completos y diagramas<\/p>\n<div id=\"ubm-banners-rotation-n1\" data-interval=\"4000\" class=\"ubm_banners_rotation\" style=\"overflow: hidden; width: 200px; height: 150px;\"><div id=\"3_ubm_banner\" class=\"ubm_rotating_banner\"><a href=\"https:\/\/bit.ly\/3aXRDAu\" target=\"_blank\" rel=\"dofollow\"><img src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/useful_banner_manager_banners\/3-2-logo youtube.png\" width=\"100%\" height=\"100%\" alt=\"SUSCRIBETE A NUESTRO CANAL DE YOUTUBE, TUTORIALES GRATIS\" \/><\/a><\/div><\/div>\n<hr \/>\n<p><b>Caracter\u00edsticas:<\/b><\/p>\n<ul>\n<li>\n<ul>\n<li>8 transistores NPN Darlington en emisor com\u00fan<\/li>\n<li>8 diodos de supresi\u00f3n de voltajes inversos para manejar cargas inductivas, con conexiones de c\u00e1todo com\u00fan<\/li>\n<li>Salidas de 0.5A (500mA) max.<\/li>\n<li>Los transistores pueden ser conectados en paralelo para mayor capacidad de corriente<\/li>\n<li>Voltaje de sostenimiento a la salida: -0.5V a 50V<\/li>\n<li>Potencia max: 1.47 W<\/li>\n<li>Resistencia de entrada a la base: 2.7k\u03a9<\/li>\n<li>Voltaje de entrada: -0.5V a 30V<\/li>\n<li>Entradas compatibles TTL y CMOS de 5V<\/li>\n<li>Encapsulado: DIP 18 pines<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>Aplicaciones:<\/b><\/p>\n<ul>\n<li>Comando de rel\u00e9s, l\u00e1mparas, \u00f3 displays (LED o de descarga de gas), etc.<\/li>\n<li>Buffers l\u00f3gicos<\/li>\n<li>Drivers de l\u00ednea<\/li>\n<li>Entre otras aplicaciones<\/li>\n<\/ul>\n<h4><strong>Funcionamiento<\/strong><\/h4>\n<p>Para activar cada salida de este circuito integrado, el agua, no debe ser pura, en su contenido deber\u00e1 tener algunas sales, que ayudan a conducir la electricidad, que al alcanzar cada uno de los niveles en el recipiente, cierra el circuito el\u00e9ctrico de las entradas del ULN2803, que detectan el nivel alto de tensi\u00f3n y enciende el LED correspondiente a cada salida. En cada salida podemos conectar por ejemplo un relay, un buzzer e inclusive la bomba de un motor para volver a llenar un tanque de agua, de ser necesario, hasta cierto nivel y desconectar la bomba de agua al alcanzar el l\u00edmite deseado.<\/p>\n<h4>Caracteristicas del m\u00f3dulo ESP32-T<\/h4>\n<h3>Conectividad<\/h3>\n<hr \/>\n<p>El m\u00f3dulo ESP32 dispone de todas las variantes del\u00a0<strong>WiFi<\/strong>:<\/p>\n<ul>\n<li>802.11 b\/g\/n\/e\/i\/n<\/li>\n<li>Wi-Fi Direct (P2P), P2P Discovery, P2P Group Owner mode and P2P Power Management<\/li>\n<\/ul>\n<p>Esta versi\u00f3n nueva incluye la conectividad mediante<strong>\u00a0Bluethoot<\/strong>\u00a0de bajo consumo<\/p>\n<ul>\n<li>Bluetooth v4.2 BR\/EDR and BLE<\/li>\n<li>BLE Beacon<\/li>\n<\/ul>\n<p>Adem\u00e1s, puede comunicarse mediante los protocoles<strong>\u00a0SPI, I2C, UART, MAC Ethernet, Host SD<\/strong><\/p>\n<h3>Prestaciones\u00a0del microcontrolador<\/h3>\n<hr \/>\n<p>La\u00a0<strong>CPU<\/strong>\u00a0est\u00e1 formado por un\u00a0<strong>SoC modelo Tensilica LX6<\/strong>\u00a0con las siguientes caracter\u00edsticas\u00a0y memoria<\/p>\n<ul>\n<li>Doble n\u00facleo de 32 bits con velocidad de 160MHz<\/li>\n<li>Memoria ROM de 448 kBytes<\/li>\n<li>Memoria SRAM de 520kBytes<\/li>\n<\/ul>\n<p>Dispne de<strong>\u00a048 Pines<\/strong><\/p>\n<ul>\n<li>18 ADC de 12 bits<\/li>\n<li>2 DAC de 8 bits<\/li>\n<li>10 pines sensores de contacto<\/li>\n<li>16 PWM<\/li>\n<li>20 Entradas\/salidas digitales<\/li>\n<\/ul>\n<h3>Alimentaci\u00f3n y modos de consumo<\/h3>\n<hr \/>\n<p>Para un correcto funcionamiento del ESP32 es necesario subministrar un voltaje de entre 2,8V y 3,6V. La energ\u00eda que consume depende del modo de funcionamiento. Contiene un modo, el\u00a0<strong>Ultra Low Power Solution (ULP)<\/strong>, en que se contin\u00faan realizando tareas b\u00e1sicas (ADC, RTC\u2026) en el modo Sleep.<\/p>\n<h4>ESP8266 versus ESP32<\/h4>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/1.gif\"><img loading=\"lazy\" class=\"alignnone wp-image-2359\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/1-300x181.gif\" sizes=\"(max-width: 597px) 100vw, 597px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/1-300x181.gif 300w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/1-600x363.gif 600w\" alt=\"\" width=\"597\" height=\"360\" \/><\/a><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/2.gif\"><img loading=\"lazy\" class=\"alignnone wp-image-2361\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/2-300x297.gif\" sizes=\"(max-width: 593px) 100vw, 593px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/2-300x297.gif 300w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/2-600x595.gif 600w\" alt=\"\" width=\"593\" height=\"587\" \/><\/a><\/p>\n<h4>Pin Out<\/h4>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/esp32pinout.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-2363\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/esp32pinout-227x300.jpg\" sizes=\"(max-width: 227px) 100vw, 227px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/esp32pinout-227x300.jpg 227w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2017\/08\/esp32pinout.jpg 471w\" alt=\"\" width=\"227\" height=\"300\" \/><\/a><\/p>\n<h4>Materiales<\/h4>\n<p>8 resistores de un 2.7K<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/rdos7.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-5351\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/rdos7.jpg\" alt=\"\" width=\"121\" height=\"121\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/rdos7.jpg 400w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/rdos7-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/rdos7-300x300.jpg 300w\" sizes=\"(max-width: 121px) 100vw, 121px\" \/><\/a><\/p>\n<p>Pines macho<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/12\/pines.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-5257\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/12\/pines.jpg\" sizes=\"(max-width: 179px) 100vw, 179px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/12\/pines.jpg 696w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/12\/pines-300x200.jpg 300w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2019\/12\/pines-600x400.jpg 600w\" alt=\"\" width=\"179\" height=\"119\" \/><\/a><\/p>\n<p>Un circuito integrado uln2803apg<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic.png\"><img loading=\"lazy\" class=\"alignnone wp-image-5310\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic-1024x768.png\" sizes=\"(max-width: 169px) 100vw, 169px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic-1024x768.png 1024w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic-300x225.png 300w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic-768x576.png 768w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic-600x450.png 600w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic-820x615.png 820w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/ic.png 1250w\" alt=\"\" width=\"169\" height=\"127\" \/><\/a><\/p>\n<p>Un z\u00f3calo de 18 pines<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/zocalo-18-pines.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-5311\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/zocalo-18-pines.jpg\" sizes=\"(max-width: 182px) 100vw, 182px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/zocalo-18-pines.jpg 500w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/zocalo-18-pines-300x225.jpg 300w\" alt=\"\" width=\"182\" height=\"137\" \/><\/a><\/p>\n<p>Un circuito impreso<\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/pcb.png\"><img loading=\"lazy\" class=\"alignnone wp-image-5312\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/pcb.png\" sizes=\"(max-width: 232px) 100vw, 232px\" srcset=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/pcb.png 431w, http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/pcb-264x300.png 264w\" alt=\"\" width=\"232\" height=\"264\" \/><\/a><\/p>\n<p>Descargar archivo gerber\u00a0<a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/01\/Gerber_circuito-medidor-de-nivel-de-agua_20200124220413.zip\">Gerber_circuito medidor de nivel de agua<\/a><\/p>\n<h4>Diagrama<\/h4>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1.jpg\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-5354\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-1024x704.jpg\" alt=\"\" width=\"1024\" height=\"704\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-1024x704.jpg 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-300x206.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-768x528.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-600x413.jpg 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-820x564.jpg 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2020\/02\/uln2803_esp32-1-1320x908.jpg 1320w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h4>C\u00f3digo Fuente<\/h4>\n<pre class=\"lang:default decode:true\" title=\"C\u00f3digo Fuente\">\/****************************************\r\n * Include Libraries\r\n ****************************************\/\r\n#include &lt;WiFi.h&gt;\r\n#include &lt;PubSubClient.h&gt;\r\n\r\n#define WIFISSID \"Tu_Red_Wifi\" \/\/ Put your WifiSSID here\r\n#define PASSWORD \"Tu _contrase\u00f1a_Wifi\" \/\/ Put your wifi password here\r\n#define TOKEN \"Tu_Token\" \/\/ Put your Ubidots' TOKEN\r\n#define MQTT_CLIENT_NAME \"Mi_nombre_MQTT\" \/\/ MQTT client Name, please enter your own 8-12 alphanumeric character ASCII string; \r\n                                           \/\/it should be a random and unique ascii string and different from all other devices\r\n\r\n\/****************************************\r\n * Define Constants\r\n ****************************************\/\r\n#define VARIABLE_LABEL \"sensor\" \/\/ Assing the variable label\r\n#define DEVICE_LABEL \"esp32\" \/\/ Assig the device label\r\n\r\n#define GPIO15 15\r\n#define GPIO02 2\r\n#define GPIO00 0\r\n#define GPIO04 4\r\n#define GPIO16 16\r\n#define GPIO17 17\r\n#define GPIO05 5\r\n#define GPIO18 18\r\n#define GPIO19 19\r\nint pin15 = 0;\r\nint pin2  = 0;\r\nint pin0  = 0;\r\nint pin4  = 0;\r\nint pin16 = 0;\r\nint pin17 = 0;\r\nint pin5  = 0;\r\nint pin18 = 0; \r\nfloat sensor = 0;\r\nchar mqttBroker[]  = \"industrial.api.ubidots.com\";\r\nchar payload[100];\r\nchar topic[150];\r\n\/\/ Space to store values to send\r\nchar str_sensor[10];\r\n\r\n\/****************************************\r\n * Auxiliar Functions\r\n ****************************************\/\r\nWiFiClient ubidots;\r\nPubSubClient client(ubidots);\r\n\r\nvoid callback(char* topic, byte* payload, unsigned int length) {\r\n  char p[length + 1];\r\n  memcpy(p, payload, length);\r\n  p[length] = NULL;\r\n  String message(p);\r\n  Serial.write(payload, length);\r\n  Serial.println(topic);\r\n}\r\n\r\nvoid reconnect() {\r\n  \/\/ Loop until we're reconnected\r\n  while (!client.connected()) {\r\n    Serial.println(\"Attempting MQTT connection...\");\r\n    \r\n    \/\/ Attemp to connect\r\n    if (client.connect(MQTT_CLIENT_NAME, TOKEN, \"\")) {\r\n      Serial.println(\"Connected\");\r\n    } else {\r\n      Serial.print(\"Failed, rc=\");\r\n      Serial.print(client.state());\r\n      Serial.println(\" try again in 2 seconds\");\r\n      \/\/ Wait 2 seconds before retrying\r\n      delay(2000);\r\n    }\r\n  }\r\n}\r\n\r\n\/****************************************\r\n * Main Functions\r\n ****************************************\/\r\nvoid setup() {\r\n  Serial.begin(115200);\r\n  WiFi.begin(WIFISSID, PASSWORD);\r\n  \/\/ Assign the pin as INPUT \r\n  \/\/pinMode(SENSOR, INPUT);\r\npinMode(GPIO15, INPUT_PULLUP);\r\npinMode(GPIO02, INPUT_PULLUP);\r\npinMode(GPIO00, INPUT_PULLUP);\r\npinMode(GPIO04, INPUT_PULLUP);\r\npinMode(GPIO16, INPUT_PULLUP);\r\npinMode(GPIO17, INPUT_PULLUP);\r\npinMode(GPIO05, INPUT_PULLUP);\r\npinMode(GPIO18, INPUT_PULLUP);\r\npinMode(GPIO19, OUTPUT);\r\n  Serial.println();\r\n  Serial.print(\"Wait for WiFi...\");\r\n  \r\n  while (WiFi.status() != WL_CONNECTED) {\r\n    Serial.print(\".\");\r\n    delay(500);\r\n  }\r\n  \r\n  Serial.println(\"\");\r\n  Serial.println(\"WiFi Connected\");\r\n  Serial.println(\"IP address: \");\r\n  Serial.println(WiFi.localIP());\r\n  client.setServer(mqttBroker, 1883);\r\n  client.setCallback(callback);  \r\n}\r\n\r\nvoid loop() {\r\n  \/\/Activamos el el transistor durante un tiempo corto para evitar la electrolisis del agua y ahorrar energ\u00eda\r\n  digitalWrite(GPIO19, HIGH);\r\n  delay(100);\r\n  \/\/Lectura de la sonda tiene en total 8 niveles\r\n  pin15 = digitalRead(GPIO15);\r\n  pin2  = digitalRead(GPIO02);\r\n  pin0  = digitalRead(GPIO00);\r\n  pin4  = digitalRead(GPIO04);\r\n  pin16 = digitalRead(GPIO16);\r\n  pin17 = digitalRead(GPIO17);\r\n  pin5  = digitalRead(GPIO05);\r\n  pin18 = digitalRead(GPIO18);\r\n  delay(100);\r\n  \/\/Desactivamos el transistor y con ello el uln2803\r\n  digitalWrite(GPIO19, LOW);\r\n  \/\/Lectura \r\n \/\/Comparamos el valor de cada pin y en base ha eso enviaremos el \r\nif(pin15 == LOW &amp;&amp; pin2 == LOW &amp;&amp; pin0 == LOW &amp;&amp; pin4 == LOW &amp;&amp; pin16 == LOW &amp;&amp; pin17 == LOW &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =100;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == LOW &amp;&amp; pin0 == LOW &amp;&amp; pin4 == LOW &amp;&amp; pin16 == LOW &amp;&amp; pin17 == LOW &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =87.5;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == LOW &amp;&amp; pin4 == LOW &amp;&amp; pin16 == LOW &amp;&amp; pin17 == LOW &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =75;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == HIGH &amp;&amp; pin4 == LOW &amp;&amp; pin16 == LOW &amp;&amp; pin17 == LOW &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =62.5;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == HIGH &amp;&amp; pin4 == HIGH &amp;&amp; pin16 == LOW &amp;&amp; pin17 == LOW &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =50;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == HIGH &amp;&amp; pin4 == HIGH &amp;&amp; pin16 == HIGH &amp;&amp; pin17 == LOW &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =37.5;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == HIGH &amp;&amp; pin4 == HIGH &amp;&amp; pin16 == HIGH &amp;&amp; pin17 == HIGH &amp;&amp; pin5 == LOW &amp;&amp; pin18 == LOW){\r\n    sensor =25;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == HIGH &amp;&amp; pin4 == HIGH &amp;&amp; pin16 == HIGH &amp;&amp; pin17 == HIGH &amp;&amp; pin5 == HIGH &amp;&amp; pin18 == LOW){\r\n    sensor =12.5;\r\n    }\r\nif(pin15 == HIGH &amp;&amp; pin2 == HIGH &amp;&amp; pin0 == HIGH &amp;&amp; pin4 == HIGH &amp;&amp; pin16 == HIGH &amp;&amp; pin17 == HIGH &amp;&amp; pin5 == HIGH &amp;&amp; pin18 == HIGH){\r\n    sensor =0;\r\n    }\r\n\r\n  if (!client.connected()) {\r\n    reconnect();\r\n  }\r\n\r\n  sprintf(topic, \"%s%s\", \"\/v1.6\/devices\/\", DEVICE_LABEL);\r\n  sprintf(payload, \"%s\", \"\"); \/\/ Cleans the payload\r\n  sprintf(payload, \"{\\\"%s\\\":\", VARIABLE_LABEL); \/\/ Adds the variable label\r\n  \r\n  \/\/float sensor = random(0,100);\/\/analogRead(SENSOR); \r\n  Serial.print(\"Sensor:\");\r\n  Serial.println(sensor);\r\n  \/* 4 is mininum width, 2 is precision; float value is copied onto str_sensor*\/\r\n  dtostrf(sensor, 4, 2, str_sensor);\r\n  \r\n  sprintf(payload, \"%s {\\\"value\\\": %s}}\", payload, str_sensor); \/\/ Adds the value\r\n  Serial.println(\"Publishing data to Ubidots Cloud\");\r\n  client.publish(topic, payload);\r\n  client.loop();\r\n  delay(5000);\r\n}<\/pre>\n<hr \/>\n<p>SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS M\u00c1S DESTACADAS, S\u00d3LO INGRESANDO TU CORREO ELECTR\u00d3NICO<\/p>\n<p>[wysija_form id=&#8221;1&#8243;]<\/p>\n<hr \/>\n<div class=\"page-sidebar widget\" id=\"donation_buttons\"><form action=\"https:\/\/www.paypal.com\/cgi-bin\/webscr\" method=\"post\" target=\"_blank\" ><input type=\"hidden\" name=\"business\" value=\"donacion@rogerbit.com\"><input type=\"hidden\" name=\"bn\" value=\"mbjtechnolabs_SP\"><input type=\"hidden\" name=\"cmd\" value=\"_donations\"><input type=\"hidden\" name=\"item_name\" value=\"Ayuda a RogerBit.com\"><input type=\"hidden\" name=\"item_number\" value=\"www.rogerbit.com\"><input type=\"hidden\" class=\"set_donation_button_amount\" name=\"amount\" value=\"1\"><table ><tbody><tr><td><label for=\"rogerBit necesita de tu ayuda para seguir existiendo :-)\">rogerBit necesita de tu ayuda para seguir existiendo :-)<\/label><\/td><\/tr><\/tbody><\/table><table ><tbody><tr><td><input style=\"margin-top:10px;\" type=\"image\" name=\"submit\" border=\"0\" src=\"https:\/\/www.paypal.com\/en_US\/i\/btn\/btn_donateCC_LG.gif\" alt=\"PayPal - The safer, easier way to pay online\"><\/td><\/tr><\/tbody><\/table><input type=\"hidden\" name=\"currency_code\" value=\"USD\"><input type=\"hidden\" name=\"notify_url\" value=\"https:\/\/rogerbit.com\/wprb\/?Donation_Button&#038;action=ipn_handler\"><\/form><\/div>\n<hr \/>\n<p><strong>VIDEO RECOMENDADO<\/strong><\/p>\n<p><iframe loading=\"lazy\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/deTEp3B7FRo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Se incluye el circuito impreso, el cual ha sido provisto por pcbway. PCBWay Prototipo r\u00e1pido de PCB (Sin valor extra para colores)\u00a0https:\/\/www.pcbway.es\/ En este tutorial veremos como hacer un circuito medidor de nivel de agua con el integrado uln2803 y m\u00f3dulo wifi esp32. Se incluye el circuito impreso, se explicar\u00e1 el funcionamiento del mismo. Este [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":5349,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/5348"}],"collection":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/comments?post=5348"}],"version-history":[{"count":6,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/5348\/revisions"}],"predecessor-version":[{"id":5358,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/5348\/revisions\/5358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media\/5349"}],"wp:attachment":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media?parent=5348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=5348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=5348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}