        <style>
            #donation_buttons td{
                border:medium none;
                background: inherit !important;
            }
            #donation_buttons table{               
                border:medium none;
                margin: auto;
                width: auto;
            }
        </style>
        {"id":6543,"date":"2021-07-26T18:53:58","date_gmt":"2021-07-26T18:53:58","guid":{"rendered":"https:\/\/rogerbit.com\/wprb\/?p=6543"},"modified":"2021-07-26T18:53:58","modified_gmt":"2021-07-26T18:53:58","slug":"timbre-con-envio-de-fotos-y-notificaciones-por-telegram","status":"publish","type":"post","link":"https:\/\/rogerbit.com\/wprb\/2021\/07\/timbre-con-envio-de-fotos-y-notificaciones-por-telegram\/","title":{"rendered":"Timbre con env\u00edo de fotos y notificaciones por telegram"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"Timbre con env\u00edo de fotos y notificaciones por telegram - PCBWay.es\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/uzmHtxQWk6o?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Su primer pedido gratis en PCBWay visita https:\/\/www.pcbway.es\/ En este tutorial veremos como armar un timbre hogare\u00f1o o para nuestra oficina, con el esp32cam, un m\u00f3dulo pulsador, un m\u00f3dulo buzzer y un circuito impreso. Este dispositivo funcionar\u00e1 como un timbre, que har\u00e1 sonar buzzer emulando un timbre, pero adem\u00e1s enviar\u00e1 un mensaje de texto por telegram, advirtiendo que alguien lo presion\u00f3 y tambi\u00e9n sacar\u00e1 una foto de quien, est\u00e1 tocando el timbre, lleg\u00e1ndonos la imagen tambi\u00e9n a telegram. Otra funci\u00f3n que tiene el dispositivo es el control, para poder tomar esas fotos desde telegram manualmente, ya sea con flash o sin flash.<\/p>\n<hr \/>\n<p style=\"text-align: left;\">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<p style=\"text-align: left;\"><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><\/p>\n<hr \/>\n<p>Componentes electr\u00f3nicos<\/p>\n<p>Adaptador usb serial<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6544\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/51Lp3uhptQL.jpg\" alt=\"\" width=\"364\" height=\"377\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/51Lp3uhptQL.jpg 483w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/51Lp3uhptQL-290x300.jpg 290w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/><\/p>\n<h2 class=\"ui-pdp-description__title\">Descripci\u00f3n<\/h2>\n<p class=\"ui-pdp-description__content\">FTDI Basic Program Downloader USB to TTL FT232RL 3.3V 5V DTR<\/p>\n<p>Esta es una placa de conexi\u00f3n b\u00e1sica para el FTDI FT232RL USB a serie IC. El pinout de esta placa coincide con el cable FTDI para funcionar con placas Arduino oficiales y placas Arduino de 5V clonadas. Tambi\u00e9n se puede utilizar para aplicaciones seriales generales. La principal diferencia con esta placa es que resalta el pin DTR en lugar del pin RTS del cable FTDI. El pin DTR permite que un objetivo Arduino se reinicie autom\u00e1ticamente cuando se descarga un nuevo Sketch. Esta es una caracter\u00edstica realmente agradable y permite descargar un boceto sin tener que presionar el bot\u00f3n de reinicio. Esta placa reiniciar\u00e1 autom\u00e1ticamente cualquier placa Arduino que tenga el pin de reinicio en un conector de 6 pines.<br \/>\nEsta placa tiene LED TX y RX que hacen que sea un poco mejor usarla sobre el cable FTDI. De hecho, puede ver el tr\u00e1fico en serie en los LED para verificar si la placa est\u00e1 funcionando.<br \/>\nEsta placa fue dise\u00f1ada para disminuir el costo del desarrollo de Arduino y aumentar la facilidad de uso (\u00a1la funci\u00f3n de reinicio autom\u00e1tico es genial!). Nuestras placas Arduino Pro y LilyPads utilizan este tipo de conector.<br \/>\nUna de las caracter\u00edsticas agradables de esta placa es un puente en la parte posterior de la placa que permite que la placa se configure a 3.3 V o 5 V (tanto la salida de potencia como el nivel de E \/ S). Esta placa se env\u00eda de forma predeterminada a 5 V, pero puede cortar la traza predeterminada y agregar un puente de soldadura si necesita cambiar a 3,3 V.<\/p>\n<p class=\"ui-pdp-description__content\">CARACTER\u00cdSTICAS<\/p>\n<ul>\n<li>Dise\u00f1o de interfaz est\u00e1ndar, compatible con una variedad de Arduinos como el Pro Mini<\/li>\n<li>Chip FTDI FT232 original, rendimiento estable<\/li>\n<li>Con indicador de encendido, env\u00edo, recepci\u00f3n, indicadores LED de estado de funcionamiento<\/li>\n<li>Con opciones de suministro de nivel TTL de 3,3 V y 5 V<\/li>\n<li>M\u00f3dulo TTL de USB a serie, descargue STC SCM<\/li>\n<li>Conexi\u00f3n de puerto mini USB<\/li>\n<li>Standard interface, compliant with Arduino official controller; With power, sending, reveiving indicator, With 3.3V \/ 5V power supply; Can be used as ordinary USB to serial TTL module, download STC singlechip<\/li>\n<\/ul>\n<p>Hardware introduction<\/p>\n<ul>\n<li>Adopt FTDI company&#8217;s FT232RL chip<\/li>\n<li>Lead out FT232RL chip all signal port, TTL \/ CMOS level<\/li>\n<li>RXD\/TXD send-receive communication indicator<\/li>\n<li>USB power supply, can choose 5V or 3.3V interface level (if you need other level, can provide target voltage in VCC and GND pin)<\/li>\n<\/ul>\n<hr \/>\n<p>Cables Dupont<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6545\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/dupont.jpg\" alt=\"\" width=\"331\" height=\"331\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/dupont.jpg 800w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/dupont-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/dupont-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/dupont-768x768.jpg 768w\" sizes=\"(max-width: 331px) 100vw, 331px\" \/><\/p>\n<hr \/>\n<p>Esp32Cam<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6546\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/esp32cam.jpg\" alt=\"\" width=\"460\" height=\"438\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/esp32cam.jpg 500w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/esp32cam-300x286.jpg 300w\" sizes=\"(max-width: 460px) 100vw, 460px\" \/><\/p>\n<h2 class=\"ui-pdp-description__title\">Descripci\u00f3n<\/h2>\n<p class=\"ui-pdp-description__content\">Esp32 Cam Camara Modulo Wifi Bt Arduino Ov2640 2mp Esp 32<\/p>\n<p>ESP32 CAM Modulo WiFi con Bluetooth y Camara OV2640 2MP, es una tarjeta de desarrollo que integra una peque\u00f1a c\u00e1mara que puede funcionar de manera independiente.<br \/>\nLa camara OV2640 de 2MP integra un sensor de imagen CMOS UXGA (1632*1232) de 1\/4 de pulgada. El peque\u00f1o tama\u00f1o del sensor y el bajo voltaje de operaci\u00f3n brindan todas las caracter\u00edsticas de una sola c\u00e1mara UXGA y un procesador de im\u00e1genes. A trav\u00e9s del control de bus SCCB, puede generar datos de imagen de 8\/10 bits de varias resoluciones, como fotograma completo, submuestreo, zoom y ventanas.<br \/>\nLa imagen UXGA de esta camara puede alcanzar hasta 15 cuadros por segundo (hasta 30 cuadros para SVGA y 60 cuadros para CIF). Los usuarios tienen un control completo sobre la calidad de la imagen, el formato de datos y la transmisi\u00f3n.<br \/>\nTodas las funciones de procesamiento de im\u00e1genes, incluida la curva gamma, el balance de blancos, el contraste, el croma, etc. se pueden programar a trav\u00e9s de la interfaz SCCB.<br \/>\nLos sensores de imagen Omni Vision utilizan una tecnolog\u00eda de sensor \u00fanica para mejorar la calidad de la imagen y reducir las im\u00e1genes en color n\u00edtidas y estables mediante la reducci\u00f3n o eliminaci\u00f3n de defectos \u00f3pticos o electr\u00f3nicos, como el ruido de patr\u00f3n fijo, manchas y flotaci\u00f3n.<\/p>\n<p>Principales Caracter\u00edsticas:<br \/>\n\u2022 Modelo: ESP32-CAM + C\u00e1mara OV2640<br \/>\n\u2022 Voltaje de Alimentaci\u00f3n ESP 32 CAM: 5V<br \/>\n\u2022 M\u00f3dulo Wi-Fi BT 802.11b\/g\/n<br \/>\n\u2022 Tipo de c\u00e1mara: OV2640 2MP<br \/>\n\u2022 El modulo ESP 32CAM tiene CPU 32 bits de doble n\u00facleo de baja potencia<br \/>\n\u2022 Frecuencia principal de hasta 240 MHz<br \/>\n\u2022 Potencia inform\u00e1tica de hasta 600 DMIPS<br \/>\n\u2022 Velocidad de reloj de hasta 160 MHz<br \/>\n\u2022 Incorpora SRAM 520Kb, 4MPSRAM externa<br \/>\n\u2022 El modulo ESP-32 CAM Soporta interfaces: UART \/ SPI \/ I2C \/ PWM \/ ADC \/ DAC<br \/>\n\u2022 El modulo ESP-32-CAM Soporta c\u00e1maras OV2640 y OV7670, Flash Incorporado<br \/>\n\u2022 El modulo ESP 32-CAM Soporta tarjetas TF micro SD (M\u00e1ximo 4 GB)<br \/>\n\u2022 El modulo ESP-32CAM Soporta la carga de imagen WiFi<br \/>\n\u2022 Compatible con modos de operaci\u00f3n STA \/ AP \/ STA+AP<br \/>\n\u2022 Con antena PCB<br \/>\n\u2022 El modulo ESP32CAM integra conectores u.FL y FPC<\/p>\n<p>Features:<br \/>\n&#8211; Ultra-small 802.11b\/g\/n Wi-Fi + BT\/BLE SoC module<br \/>\n&#8211; Low-power dual-core 32-bit CPU for application processors<br \/>\n&#8211; Up to 240MHz, up to 600 DMIPS<br \/>\n&#8211; Built-in 520 KB SRAM, external 4M PSRAM<br \/>\n&#8211; Supports interfaces such as UART\/SPI\/I2C\/PWM\/ADC\/DAC<br \/>\n&#8211; Support OV2640 and OV7670 cameras with built-in flash<br \/>\n&#8211; Support for images WiFI upload<br \/>\n-Support TF card<br \/>\n&#8211; Support multiple sleep modes<br \/>\n&#8211; Embedded Lwip and FreeRTOS<br \/>\n&#8211; Support STA\/AP\/STA+AP working mode<br \/>\n&#8211; Support Smart Config\/AirKiss One-click distribution network<br \/>\n&#8211; Support for serial local upgrade and remote firmware upgrade (FOTA)<br \/>\n&#8211; Support secondary development<\/p>\n<p>Product Specifications:<br \/>\nModule model: ESP32-CAM<br \/>\nPackage: DIP-16<br \/>\nSize: 27*40.5*4.5(\u00b10.2)mm<br \/>\nSPI Flash: default 32Mbit<br \/>\nRAM: internal520KB+external 4M PSRAM<br \/>\nbluetooth: bluetooth4.2BR\/EDR and BLE standards<br \/>\nWi-Fi: 802.11 b\/g\/n\/e\/i<br \/>\nSupport interface: UART, SPI, I2C, PWM<br \/>\nSupport TF card: Maximum support 4G<br \/>\nIO port: 9<br \/>\nSerial port rate: default 115200 bps<br \/>\nImage output format: JPEG (only supported by OV2640), BMP, GRAYSCALE<br \/>\nSpectrum range: 2412 ~ 2484MHz<br \/>\nAntenna form: onboard PCB antenna , gain 2dBi<br \/>\nTransmit power: 802.11b: 17\u00b12 dBm (@11Mbps)<br \/>\n802.11g: 14\u00b12 dBm (@54Mbps)<br \/>\n802.11n: 13\u00b12 dBm (@MCS7)<br \/>\nReceiving sensitivity: CCK, 1 Mbps : -90dBm<br \/>\nCCK, 11 Mbps: -85dBm<br \/>\n6 Mbps (1\/2 BPSK): -88dBm<br \/>\n54 Mbps (3\/4 64-QAM): -70dBm<br \/>\nMCS7 (65 Mbps, 72.2 Mbps): -67dBm<br \/>\nPower consumption Turn off the flash: 180mA@5V<br \/>\nTurn on the flash and adjust the brightness to the maximum: 310mA@5V<br \/>\nDeep-sleep: The lowest power consumption can reach 6mA@5V<br \/>\nModerm-sleep: up to 20mA@5V<br \/>\nLight-sleep: up to 6.7mA@5V<br \/>\nSecurity WPA\/WPA2\/WPA2-Enterprise\/WPS<br \/>\nPower supply range: 5V<br \/>\nOperating temperature: -20 \u00b0C ~ 85 \u00b0C<br \/>\nStorage environment: -40 \u00b0C ~ 90 \u00b0C, &lt; 90%RH<\/p>\n<hr \/>\n<p>M\u00f3dulo pulsador (KY-004)<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6547\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/hw-483.jpg\" alt=\"\" width=\"367\" height=\"367\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/hw-483.jpg 800w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/hw-483-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/hw-483-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/hw-483-768x768.jpg 768w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/p>\n<h2 class=\"ui-pdp-description__title\">Descripci\u00f3n<\/h2>\n<p class=\"ui-pdp-description__content\">M\u00d3DULO KEY SWITCH KY-004 &#8211; ARDUINO &#8211; Pack x 100 unidades &#8211;<\/p>\n<p>Los push button se utilizan en dispositivos mec\u00e1nicos, electr\u00f3nicos y tambi\u00e9n aplica para programar, los cuales se utilizan para mandar una se\u00f1al o reiniciar un programa.<br \/>\nSe pueden utilizar varios button en un solo circuito o tambi\u00e9n en un programa.<\/p>\n<p>Voltaje de operaci\u00f3n: 3.3V &#8211; 5V<br \/>\nInterruptor Digital salida (0 \/ 1)<br \/>\nVida de Contacto: 100.000 Ciclos<br \/>\n3 pines:<br \/>\n1 &#8211; GND<br \/>\n2 &#8211; 5V<br \/>\n3 &#8211; Se\u00f1al<br \/>\nDimensiones: 15&#215;18.5mm<\/p>\n<hr \/>\n<p>Jumper<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6548\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/jumper.jpg\" alt=\"\" width=\"145\" height=\"145\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/jumper.jpg 500w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/jumper-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/jumper-150x150.jpg 150w\" sizes=\"(max-width: 145px) 100vw, 145px\" \/><\/p>\n<hr \/>\n<p>M\u00f3dulo Buzzer (KY-006)<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6549\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/modulo-buzzer-pasivo-5v.jpg\" alt=\"\" width=\"238\" height=\"309\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/modulo-buzzer-pasivo-5v.jpg 771w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/modulo-buzzer-pasivo-5v-231x300.jpg 231w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/modulo-buzzer-pasivo-5v-768x996.jpg 768w\" sizes=\"(max-width: 238px) 100vw, 238px\" \/><\/p>\n<h2 class=\"ui-pdp-description__title\">Descripci\u00f3n<\/h2>\n<p class=\"ui-pdp-description__content\">Este modulo buzzer piezoelectrico pasivo puede generar un rango de tonos de sonido dependiendo de la frecuencia de la se\u00f1al de entrada.<\/p>\n<p>Puede generar tonos desde 1.5kHz a 2.5kHz enciendo y apagandolo en diferentes frecuencias usando delays o PWM.<\/p>\n<p>ESPECIFICACIONES<\/p>\n<p>&#8211; Voltaje de Operacion: 1.5 &#8211; 15V DC<br \/>\n&#8211; Rango de tonos generados: 1.5 &#8211; 2.5KHz<br \/>\n&#8211; Dimensiones: 18.5mm x 15mm<\/p>\n<hr \/>\n<p>Pines Hembra<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6550\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pin_hembra.jpg\" alt=\"\" width=\"252\" height=\"267\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pin_hembra.jpg 536w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pin_hembra-283x300.jpg 283w\" sizes=\"(max-width: 252px) 100vw, 252px\" \/><\/p>\n<hr \/>\n<p>Pines macho<\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-6551\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho-1024x1024.jpg\" alt=\"\" width=\"279\" height=\"279\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho-1024x1024.jpg 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho-300x300.jpg 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho-150x150.jpg 150w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho-768x768.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho-820x820.jpg 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/pines_macho.jpg 1200w\" sizes=\"(max-width: 279px) 100vw, 279px\" \/><\/p>\n<hr \/>\n<p>Circuito<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-6552\" src=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-865x1024.jpg\" alt=\"\" width=\"865\" height=\"1024\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-865x1024.jpg 865w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-254x300.jpg 254w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-768x909.jpg 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-1298x1536.jpg 1298w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-1731x2048.jpg 1731w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-820x970.jpg 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/07\/circuito_timbre_esp32cam-1320x1562.jpg 1320w\" sizes=\"(max-width: 865px) 100vw, 865px\" \/><\/p>\n<hr \/>\n<div id=\"specification-detailinfo\" class=\"infoContainer\">\n<p><strong>Crear Bot en Telegram<\/strong><\/p>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6218\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-1024x576.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-1024x576.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-300x169.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-768x432.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-600x338.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-820x461.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1-1320x743.png 1320w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen1.png 1920w\" alt=\"\" width=\"1024\" height=\"576\" \/><\/a><\/p>\n<p>En telegram buscamos BotFather<\/p>\n<hr \/>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6219\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-1024x576.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-1024x576.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-300x169.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-768x432.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-600x338.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-820x461.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2-1320x743.png 1320w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen2.png 1920w\" alt=\"\" width=\"1024\" height=\"576\" \/><\/a><\/p>\n<p>Escribimos \/start y nos aparecer\u00e1 algo similar a esto<\/p>\n<hr \/>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6220\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-1024x576.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-1024x576.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-300x169.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-768x432.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-600x338.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-820x461.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3-1320x743.png 1320w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen3.png 1920w\" alt=\"\" width=\"1024\" height=\"576\" \/><\/a><\/p>\n<p>Escribimos \/newbot<\/p>\n<hr \/>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6221\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-576x1024.png\" sizes=\"(max-width: 576px) 100vw, 576px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-576x1024.png 576w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-169x300.png 169w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-768x1364.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-600x1066.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-820x1457.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen4_fix-1320x2345.png 1320w\" alt=\"\" width=\"576\" height=\"1024\" \/><\/a><\/p>\n<p>Nos aparecer\u00e9 el nombre del bot, y inventamos un nombre para nuestro bot, debe tener el formato \u00abusuario_bot\u00bb<\/p>\n<hr \/>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6222\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-577x1024.png\" sizes=\"(max-width: 577px) 100vw, 577px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-577x1024.png 577w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-169x300.png 169w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-768x1364.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-600x1066.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-820x1456.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen5_fix-1320x2344.png 1320w\" alt=\"\" width=\"577\" height=\"1024\" \/><\/a><\/p>\n<p>Obtendremos un token que vamos a usar en el c\u00f3digo fuente<\/p>\n<hr \/>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6223\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-1024x576.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-1024x576.png 1024w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-300x169.png 300w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-768x432.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-600x338.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-820x461.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6-1320x743.png 1320w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen6.png 1920w\" alt=\"\" width=\"1024\" height=\"576\" \/><\/a><\/p>\n<p>Ahora buscaremos IDBot, y lo iniciamos<\/p>\n<\/div>\n<hr \/>\n<p><a href=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-6225\" src=\"http:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-576x1024.png\" sizes=\"(max-width: 576px) 100vw, 576px\" srcset=\"https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-576x1024.png 576w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-169x300.png 169w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-768x1364.png 768w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-600x1066.png 600w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-820x1457.png 820w, https:\/\/rogerbit.com\/wprb\/wp-content\/uploads\/2021\/01\/Imagen8_fix-1320x2345.png 1320w\" alt=\"\" width=\"576\" height=\"1024\" \/><\/a><\/p>\n<p>Escribimos \/getid y nos entregar\u00e1 el user_id que debemos colocar en el c\u00f3digo fuente<\/p>\n<hr \/>\n<p>C\u00f3digo Fuente<\/p>\n<pre class=\"lang:default decode:true \" title=\"C\u00f3digo Fuente\">\/\/Librer\u00edas - sitio www.rogerbit.com\r\n#include &lt;WiFi.h&gt;\r\n#include &lt;WiFiClientSecure.h&gt;\r\n#include \"soc\/soc.h\"\r\n#include \"soc\/rtc_cntl_reg.h\"\r\n#include \"esp_camera.h\"\r\n#include &lt;UniversalTelegramBot.h&gt;\r\n#include &lt;ArduinoJson.h&gt;\r\n#include &lt;Wire.h&gt;\r\n\/\/Reemplazar con los datos de tu red wifi\r\nconst char* ssid = \"Tu_red_wifi\";\r\nconst char* password = \"Tu_clave\";\r\nString idChat = \"xxxxxxxxx\";\/\/ID_Chat se obtiene de telegram\r\n\/\/Token de Telegram BOT se obtenienen desde Botfather en telegram\r\nString token = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\";\r\nbool envioFoto = false;\r\nWiFiClientSecure clientTCP;\r\nUniversalTelegramBot bot(token, clientTCP);\r\n\/\/PARA C\u00c1MARA MODELO AI THINKER\r\n#define PWDN_GPIO_NUM     32\r\n#define RESET_GPIO_NUM    -1\r\n#define XCLK_GPIO_NUM      0\r\n#define SIOD_GPIO_NUM     26\r\n#define SIOC_GPIO_NUM     27\r\n#define Y9_GPIO_NUM       35\r\n#define Y8_GPIO_NUM       34\r\n#define Y7_GPIO_NUM       39\r\n#define Y6_GPIO_NUM       36\r\n#define Y5_GPIO_NUM       21\r\n#define Y4_GPIO_NUM       19\r\n#define Y3_GPIO_NUM       18\r\n#define Y2_GPIO_NUM        5\r\n#define VSYNC_GPIO_NUM    25\r\n#define HREF_GPIO_NUM     23\r\n#define PCLK_GPIO_NUM     22\r\n#define flashLed 4\r\nbool flashEstado = LOW;\r\nint estadoFlash = 0;\r\n\/\/Timbre\r\nbool timbre = false;\r\n#define buzzer 2\r\nint tiempoMsg = 1000;   \/\/tiempo medio entre escaneo de mensajes\r\nlong ultimoEscaneo;     \/\/la \u00faltima vez que se realiz\u00f3 el escaneo de mensajes\r\nvoid manejarMensajes(int nuevoMensajes);\r\nString sendPhotoTelegram();\r\n\/\/ Indica cuando se apret\u00f3 el timbre\r\nstatic void IRAM_ATTR pulsarTimbre(void * arg){\r\nSerial.println(\"Timbre precionado!\");\r\ntimbre = true;\r\n}\r\nvoid setup(){\r\nWRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); \r\nSerial.begin(115200);\r\npinMode(buzzer, OUTPUT);\r\npinMode(flashLed, OUTPUT);\r\ndigitalWrite(flashLed, flashEstado);\r\nWiFi.mode(WIFI_STA);\r\nSerial.println();\r\nSerial.print(\"Conectando a \");\r\nSerial.println(ssid);\r\nWiFi.begin(ssid, password);\r\nclientTCP.setCACert(TELEGRAM_CERTIFICATE_ROOT); \/\/ Agregar certificado ra\u00edz para api.telegram.org\r\nwhile (WiFi.status() != WL_CONNECTED) {\r\nSerial.print(\".\");\r\ndelay(500);\r\nbot.sendMessage(idChat, \"Sistema preparado!!!, escribe \/ayuda para ver las opciones\", \"\");\/\/Enviamos un mensaje a telegram para informar que el sistema est\u00e1 listo\r\n}\r\nSerial.println();\r\nSerial.print(\"Direcci\u00f3n IP del modulo esp32cam: \");\r\nSerial.println(WiFi.localIP());\r\ncamera_config_t config;\r\nconfig.ledc_channel = LEDC_CHANNEL_0;\r\nconfig.ledc_timer = LEDC_TIMER_0;\r\nconfig.pin_d0 = Y2_GPIO_NUM;\r\nconfig.pin_d1 = Y3_GPIO_NUM;\r\nconfig.pin_d2 = Y4_GPIO_NUM;\r\nconfig.pin_d3 = Y5_GPIO_NUM;\r\nconfig.pin_d4 = Y6_GPIO_NUM;\r\nconfig.pin_d5 = Y7_GPIO_NUM;\r\nconfig.pin_d6 = Y8_GPIO_NUM;\r\nconfig.pin_d7 = Y9_GPIO_NUM;\r\nconfig.pin_xclk = XCLK_GPIO_NUM;\r\nconfig.pin_pclk = PCLK_GPIO_NUM;\r\nconfig.pin_vsync = VSYNC_GPIO_NUM;\r\nconfig.pin_href = HREF_GPIO_NUM;\r\nconfig.pin_sscb_sda = SIOD_GPIO_NUM;\r\nconfig.pin_sscb_scl = SIOC_GPIO_NUM;\r\nconfig.pin_pwdn = PWDN_GPIO_NUM;\r\nconfig.pin_reset = RESET_GPIO_NUM;\r\nconfig.xclk_freq_hz = 20000000;\r\nconfig.pixel_format = PIXFORMAT_JPEG;\r\nif(psramFound()){\r\nconfig.frame_size = FRAMESIZE_UXGA;\r\nconfig.jpeg_quality = 1;  \/\/0-63 menor n\u00famero significa mayor calidad\r\nconfig.fb_count = 2;\r\n} else {\r\nconfig.frame_size = FRAMESIZE_SVGA;\r\nconfig.jpeg_quality = 2;  \/\/0-63 menor n\u00famero significa mayor calidad\r\nconfig.fb_count = 1;\r\n}\r\n\/\/ inicio de la c\u00e1mara\r\nesp_err_t err = esp_camera_init(&amp;config);\r\nif (err != ESP_OK) {\r\nSerial.printf(\"El inicio de la c\u00e1mara fall\u00f3 0x%x\", err);\r\ndelay(1000);\r\nESP.restart();\r\n}\r\n\/\/ Tama\u00f1o de cuadro desplegable para una mayor velocidad de cuadro inicial\r\nsensor_t * s = esp_camera_sensor_get();\r\ns-&gt;set_framesize(s, FRAMESIZE_CIF);  \/\/ UXGA|SXGA|XGA|SVGA|VGA|CIF|QVGA|HQVGA|QQVGA\r\n\/\/ En el pin 13 se coloca el pulsador \r\nerr = gpio_isr_handler_add(GPIO_NUM_13, &amp;pulsarTimbre, (void *) 13);  \r\nif (err != ESP_OK){\r\nSerial.printf(\"hubo un error 0x%x \\r\\n\", err); \r\n}\r\nerr = gpio_set_intr_type(GPIO_NUM_13, GPIO_INTR_POSEDGE);\r\nif (err != ESP_OK){\r\nSerial.printf(\"hubo un error 0x%x \\r\\n\", err);\r\n}\r\n}\r\nvoid loop(){\r\nif (envioFoto){\r\nSerial.println(\"Preparando foto\");\r\nsendPhotoTelegram(); \r\nif(estadoFlash == 1){\r\nenvioFoto = false; \r\nflashEstado = !flashEstado;\r\ndigitalWrite(flashLed, flashEstado);\r\nestadoFlash = 0;\r\n}\r\n}\r\nif(timbre){\/\/Hacemos sonar el buzzer en forma intermitente para emular el timbre\r\nfor (int buz=0; buz&lt;25;buz++){\r\ndigitalWrite(buzzer, HIGH);\r\ndelay(50);\r\ndigitalWrite(buzzer, LOW);\r\ndelay(50);\r\n}\r\nbot.sendMessage(idChat, \"Alguien est\u00e1 tocando el timbre\", \"\");\r\nSerial.println(\"Alguien est\u00e1 tocando el timbre\");\r\nsendPhotoTelegram();\r\ntimbre = false;\r\n}\r\nif (millis() &gt; ultimoEscaneo + tiempoMsg){\r\nint nuevoMensajes = bot.getUpdates(bot.last_message_received + 1);\r\nwhile (nuevoMensajes){\r\nSerial.println(\"se obtuvo respuesta\");\r\nmanejarMensajes(nuevoMensajes);\r\nnuevoMensajes = bot.getUpdates(bot.last_message_received + 1);\r\n}\r\nultimoEscaneo = millis();\r\n}\r\n}\r\nString sendPhotoTelegram() {\r\nconst char* url = \"api.telegram.org\";\r\nString todo = \"\";\r\nString cuerpo = \"\";\r\ncamera_fb_t * fb = NULL;\r\nfb = esp_camera_fb_get();  \r\nif(!fb) {\r\nSerial.println(\"Captura de c\u00e1mara fall\u00f3\");\r\ndelay(1000);\r\nESP.restart();\r\nreturn \"Captura de c\u00e1mara fall\u00f3\";\r\n}  \r\nSerial.println(\"Conectar a \" + String(url));\r\nif (clientTCP.connect(url, 443)) {\r\nSerial.println(\"Conexi\u00f3n establecida\");   \r\nString cadena1 = \"--rogerBit\\r\\nContent-Disposition: form-data; name=\\\"chat_id\\\"; \\r\\n\\r\\n\" + idChat + \"\\r\\n--rogerBit\\r\\nContent-Disposition: form-data; name=\\\"photo\\\"; filename=\\\"esp32-cam.jpg\\\"\\r\\nContent-Type: image\/jpeg\\r\\n\\r\\n\";\r\nString cadena2 = \"\\r\\n--rogerBit--\\r\\n\";\r\nuint16_t ima1 = fb-&gt;len;\r\nuint16_t ima2 = cadena1.length() + cadena2.length();\r\nuint16_t ima1y2 = ima1 + ima2;  \r\nclientTCP.println(\"POST \/bot\"+token+\"\/sendPhoto HTTP\/1.1\");\r\nclientTCP.println(\"Host: \" + String(url));\r\nclientTCP.println(\"Content-Length: \" + String(ima1y2));\r\nclientTCP.println(\"Content-Type: multipart\/form-data; boundary=rogerBit\");\r\nclientTCP.println();\r\nclientTCP.print(cadena1);  \r\nuint8_t *fbBuf = fb-&gt;buf;\r\nsize_t fbLen = fb-&gt;len;\r\nfor (size_t n=0;n&lt;fbLen;n=n+1024) {\r\nif (n+1024&lt;fbLen) {\r\nclientTCP.write(fbBuf, 1024);\r\nfbBuf += 1024;\r\n}\r\nelse if (fbLen%1024&gt;0) {\r\nsize_t remainder = fbLen%1024;\r\nclientTCP.write(fbBuf, remainder);\r\n}\r\n}     \r\nclientTCP.print(cadena2); \r\nesp_camera_fb_return(fb);    \r\nint espera = 10000;   \/\/ 10 segundos\r\nlong tiempoInicial = millis();\r\nboolean estado = false;  \r\nwhile ((tiempoInicial + espera) &gt; millis()){\r\nSerial.print(\".\");\r\ndelay(100);      \r\nwhile (clientTCP.available()) {\r\nchar c = clientTCP.read();\r\nif (estado==true) cuerpo += String(c);        \r\nif (c == '\\n') {\r\nif (todo.length()==0) estado=true; \r\ntodo = \"\";\r\n} \r\nelse if (c != '\\r')\r\ntodo += String(c);\r\ntiempoInicial = millis();\r\n}\r\nif (cuerpo.length()&gt;0) break;\r\n}\r\nclientTCP.stop();\r\nSerial.println(cuerpo);\r\n}\r\nelse {\r\ncuerpo=\"Conexi\u00f3n a api.telegram.org fall\u00f3.\";\r\nSerial.println(\"Conexi\u00f3n a api.telegram.org fall\u00f3 \");\r\n}\r\nreturn cuerpo;\r\n}\r\nvoid manejarMensajes(int nuevoMensajes){\r\nSerial.print(\"Nuevo mensaje: \");\r\nSerial.println(nuevoMensajes);\r\nfor (int i = 0; i &lt; nuevoMensajes; i++){\r\n\/\/ ID de chat del solicitante\r\nString chat_id = String(bot.messages[i].chat_id);\r\nif (chat_id != idChat){\r\nbot.sendMessage(idChat, \"Usuario no autorizado\", \"\");\r\ncontinue;\r\n}   \r\n\/\/ Imprime el mensaje recibido\r\nString text = bot.messages[i].text;\r\nSerial.println(text);\r\nString fromName = bot.messages[i].from_name;\r\nif (text == \"\/flash\") {\/\/Activa o desactiva el flash\r\nflashEstado = !flashEstado;\r\ndigitalWrite(flashLed, flashEstado);\r\n}\r\nif (text == \"\/fotofh\") {\/\/Toma una foto con flash\r\nenvioFoto = true;\r\nSerial.println(\"Solicitud de nueva foto\");\r\nflashEstado = !flashEstado;\r\ndigitalWrite(flashLed, flashEstado);\r\nestadoFlash = 1;\r\n}\r\nif (text == \"\/foto\") {\/\/Toma una foto\r\nenvioFoto = true;\r\nSerial.println(\"Solicitud de nueva foto\");\r\n}\r\nif (text == \"\/ayuda\")\/\/Nos muestra la ayuda en telegram\r\n{\r\nString ayuda = \"Bienvenido al sistema de timbre con foto con ESP32CAM \" \".\\n\";\r\nayuda += \"Estas son tus opciones.\\n\\n\";\r\nayuda += \"\/foto : Toma una foto nueva \\n\";\r\nayuda += \"\/fotofh: saca una foto con flash y luego lo desactiva \\n\";\r\nayuda += \"\/flash : Activa el flash \\n\";\r\nayuda += \"\/ayuda: Imprime este men\u00fa \\n\";\r\nayuda += \"Recuerda el sistema distingue entre mayuculas y minusculas \\n\";\r\nbot.sendMessage(idChat, ayuda, \"\");\r\n}\r\n}\r\n}<\/pre>\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\" title=\"Video Streaming reconocimiento facial con ESP32-CAM IDE de Arduino - LCSC.COM\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/NggC5XYyc7A?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; 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>Su primer pedido gratis en PCBWay visita https:\/\/www.pcbway.es\/ En este tutorial veremos como armar un timbre hogare\u00f1o o para nuestra oficina, con el esp32cam, un m\u00f3dulo pulsador, un m\u00f3dulo buzzer y un circuito impreso. Este dispositivo funcionar\u00e1 como un timbre, que har\u00e1 sonar buzzer emulando un timbre, pero adem\u00e1s enviar\u00e1 un mensaje de texto por [&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":6555,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[1067,181,486,636,906,772,595,1071,1070,1069,624,1247,1245,514,1248,1092,1072,613,1068,1066,917,31,1089,1090,1246,687],"_links":{"self":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6543"}],"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=6543"}],"version-history":[{"count":5,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6543\/revisions"}],"predecessor-version":[{"id":6558,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/posts\/6543\/revisions\/6558"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media\/6555"}],"wp:attachment":[{"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/media?parent=6543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/categories?post=6543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rogerbit.com\/wprb\/wp-json\/wp\/v2\/tags?post=6543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}