<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Electrónica Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<atom:link href="https://huecat.es/category/tecnologia-es/electronica/feed/" rel="self" type="application/rss+xml" />
	<link>https://huecat.es/category/tecnologia-es/electronica/</link>
	<description>Diseño, Programación y Electrónica</description>
	<lastBuildDate>Sun, 01 Feb 2026 15:07:27 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://huecat.es/wp-content/uploads/2020/10/cropped-huecat-logo-1-1-512-32x32.png</url>
	<title>Electrónica Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<link>https://huecat.es/category/tecnologia-es/electronica/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Circuito: Programación de PCB de serie de máquinas Máquina Contadora de Tarjetas fabricadas en España</title>
		<link>https://huecat.es/circuito-programacion-de-pcb-de-serie-de-maquinas-maquina-contadora-de-tarjetas-fabricadas-en-espana/</link>
					<comments>https://huecat.es/circuito-programacion-de-pcb-de-serie-de-maquinas-maquina-contadora-de-tarjetas-fabricadas-en-espana/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Sat, 31 Jan 2026 23:41:16 +0000</pubDate>
				<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Mecatrónica]]></category>
		<category><![CDATA[Trabajos Realizados]]></category>
		<category><![CDATA[Tubo T5]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7747</guid>

					<description><![CDATA[<p>En entornos de producción, la precisión en el conteo de insumos es crítica para evitar fugas financieras y errores logísticos. Este proyecto surge como una solución robusta para automatizar el conteo de tarjetas plásticas y hojas mediante un sistema embebido basado en el ESP32. El objetivo principal fue desarrollar un dispositivo que no solo fuera [&#8230;]</p>
<p>The post <a href="https://huecat.es/circuito-programacion-de-pcb-de-serie-de-maquinas-maquina-contadora-de-tarjetas-fabricadas-en-espana/">Circuito: Programación de PCB de serie de máquinas Máquina Contadora de Tarjetas fabricadas en España</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En entornos de producción, la precisión en el conteo de insumos es crítica para evitar fugas financieras y errores logísticos. Este proyecto surge como una solución robusta para automatizar el conteo de tarjetas plásticas y hojas mediante un sistema embebido basado en el ESP32. El objetivo principal fue desarrollar un dispositivo que no solo fuera preciso, sino también capaz de operar en condiciones industriales, integrando sensores ópticos de alta velocidad y una lógica de control avanzada para garantizar la integridad de los datos en tiempo real.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2.jpg"><img fetchpriority="high" decoding="async" width="1159" height="773" src="https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2-edited.jpg" alt="" class="wp-image-7749" srcset="https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2-edited.jpg 1159w, https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2-edited-300x200.jpg 300w, https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2-edited-1024x683.jpg 1024w, https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2-edited-768x512.jpg 768w, https://huecat.es/wp-content/uploads/2026/01/CATALOGO-DISPENSADOR-VERSION-2-2-edited-600x400.jpg 600w" sizes="(max-width: 1159px) 100vw, 1159px" /></a></figure>



<figure class="wp-block-image size-full is-resized"><a href="https://huecat.es/wp-content/uploads/2026/01/foto_prod02_b-1.jpg"><img decoding="async" width="300" height="169" src="https://huecat.es/wp-content/uploads/2026/01/foto_prod02_b-1-edited.jpg" alt="" class="wp-image-7753" style="width:392px;height:auto"/></a></figure>



<p>la PCB se ha optimizado para reducir el ruido electromagnético en un entorno de maquinaria compacta. Se han integrado etapas de filtrado por hardware para las señales de los sensores ópticos y se ha priorizado una topología de alimentación con conversores DC-DC de alta eficiencia, minimizando la disipación térmica dentro de la carcasa. El resultado es un sistema embebido que no solo cumple con la velocidad de la mecánica, sino que extiende la vida útil del equipo al operar con márgenes de seguridad sobredimensionados.</p>



<p></p>



<h3 class="wp-block-heading">Lista de materiales</h3>



<p><em>El objetivo aquí es demostrar que no compras «lo más barato», sino lo que garantiza calidad industrial.</em></p>



<ol start="1" class="wp-block-list">
<li><strong>MCU:</strong> Módulo <strong>Espressif ESP32-WROOM-32E</strong> (Versión industrial con rango de temperatura extendido -40°C a +85°C).</li>



<li><strong>Sensores Ópticos:</strong> Barreras fotoeléctricas <strong>Omron EE-SX671</strong> (Conmutación de alta velocidad, 1kHz min) con conectores de bloqueo para evitar desconexiones por vibración.</li>



<li><strong>Gestión de Energía:</strong> Convertidor Buck <strong>Texas Instruments serie LM2596</strong> (Original) o módulo <strong>Traco Power</strong>, sustituyendo reguladores lineales LDO para una eficiencia &gt;90% y cero calentamiento.</li>



<li><strong>Conectividad:</strong> Borneras de conexión <strong>Phoenix Contact</strong> serie MKDS (contactos de aleación de cobre, no latón) para asegurar la integridad de la señal de los sensores externos.</li>



<li><strong>Protección:</strong> Fusible rearmable (PTC) y diodo TVS en la entrada de alimentación para protección contra transitorios y polaridad inversa.</li>
</ol>



<p></p>



<figure class="wp-block-video"><video height="864" style="aspect-ratio: 480 / 864;" width="480" controls src="https://huecat.es/wp-content/uploads/2026/01/Maquina-Hojas-Contadora-Arduino-ESP32.mp4"></video></figure>



<p><br>Ejemplo de programación</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
/*
 * FIRMWARE: Máquina Contadora de Tarjetas
 * PLATAFORMA: ESP32
 * AUTOR: &#x5B;Tu Nombre/Firma]
 * DESCRIPCION: Sistema de conteo por interrupciones con filtrado digital
 * para entornos industriales ruidosos.
 */

#include &lt;Arduino.h&gt;

// --- PIN DEFINITIONS &amp; CONSTANTS ---
const uint8_t PIN_SENSOR_IRQ = 18;  // Pin compatible con interrupciones
const uint8_t PIN_STATUS_LED = 2;   // LED Integrado para heartbeat
const uint32_t DEBOUNCE_US   = 500; // Tiempo muerto en microsegundos (ajustable según velocidad máquina)

// --- VOLATILE VARIABLES (ISR Context) ---
// &#039;volatile&#039; es crucial para variables modificadas dentro de una interrupción
volatile uint32_t totalCardCount = 0;
volatile uint32_t lastInterruptTime = 0;
volatile bool newCardDetected = false;

// --- INTERRUPT SERVICE ROUTINE (ISR) ---
// IRAM_ATTR coloca la función en la RAM para máxima velocidad de ejecución
void IRAM_ATTR isr_CardSensor() {
    uint32_t currentTime = micros();
    
    // Filtrado de rebotes (Debounce) simple pero efectivo basado en tiempo
    if ((currentTime - lastInterruptTime) &gt; DEBOUNCE_US) {
        totalCardCount++;
        lastInterruptTime = currentTime;
        newCardDetected = true; // Flag para que el loop principal procese la UI/Log
    }
}

// --- SETUP ---
void setup() {
    Serial.begin(115200);
    
    // Configuración de pines
    pinMode(PIN_STATUS_LED, OUTPUT);
    // INPUT_PULLUP asegura un estado lógico estable si el sensor es Open Collector
    pinMode(PIN_SENSOR_IRQ, INPUT_PULLUP);

    // Adjuntar interrupción al flanco de caída (FALLING) o subida (RISING) según el sensor
    attachInterrupt(digitalPinToInterrupt(PIN_SENSOR_IRQ), isr_CardSensor, FALLING);

    Serial.println(&quot;--- SISTEMA INICIADO: MODO ALTA VELOCIDAD ---&quot;);
}

// --- MAIN LOOP ---
void loop() {
    // 1. GESTIÓN DE EVENTOS CRÍTICOS (Sin bloquear el procesador)
    if (newCardDetected) {
        // Sección crítica: deshabilitar interrupciones momentáneamente para leer variables compartidas
        portENTER_CRITICAL_ISR(&amp;mux); 
        uint32_t safeCount = totalCardCount;
        newCardDetected = false;
        portEXIT_CRITICAL_ISR(&amp;mux);

        // Procesamiento de datos (Log, Display, Serial) fuera de la ISR
        Serial.printf(&quot;TARJETA DETECTADA | Total: %u | Tiempo: %lu us\n&quot;, safeCount, micros());
    }

    // 2. TAREAS SECUNDARIAS (Heartbeat, chequeo de errores, WiFi, etc.)
    static uint32_t lastBlink = 0;
    if (millis() - lastBlink &gt; 1000) {
        lastBlink = millis();
        digitalWrite(PIN_STATUS_LED, !digitalRead(PIN_STATUS_LED)); // Heartbeat visual
    }
}
</pre></div>


<p></p>
<p>The post <a href="https://huecat.es/circuito-programacion-de-pcb-de-serie-de-maquinas-maquina-contadora-de-tarjetas-fabricadas-en-espana/">Circuito: Programación de PCB de serie de máquinas Máquina Contadora de Tarjetas fabricadas en España</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/circuito-programacion-de-pcb-de-serie-de-maquinas-maquina-contadora-de-tarjetas-fabricadas-en-espana/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://huecat.es/wp-content/uploads/2026/01/Maquina-Hojas-Contadora-Arduino-ESP32.mp4" length="2112940" type="video/mp4" />

			</item>
		<item>
		<title>Manual de Ingeniería: Buck Converter PID</title>
		<link>https://huecat.es/manual-de-ingenieria-buck-converter-pid/</link>
					<comments>https://huecat.es/manual-de-ingenieria-buck-converter-pid/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 15:15:36 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<category><![CDATA[Buck]]></category>
		<category><![CDATA[DC]]></category>
		<category><![CDATA[IDE]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7633</guid>

					<description><![CDATA[<p>Vin12.0 V Vout5.0 V Inductor100 µH Switching50 kHz Documentación técnica para la implementación de un convertidor DC-DC Buck (Step-down) utilizando control digital PID en lazo cerrado. El sistema migra de una simulación HIL (Hardware-in-the-Loop) en MATLAB a una ejecución standalone en microcontrolador AVR (Arduino). 1. Lista de Materiales, Bill of Materials (BOM) Componente Especificación Crítica [&#8230;]</p>
<p>The post <a href="https://huecat.es/manual-de-ingenieria-buck-converter-pid/">Manual de Ingeniería: Buck Converter PID</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-medium is-resized is-style-default"><img decoding="async" width="300" height="294" src="https://huecat.es/wp-content/uploads/2026/01/image-300x294.png" alt="" class="wp-image-7721" style="aspect-ratio:1.020501138952164;width:221px;height:auto" srcset="https://huecat.es/wp-content/uploads/2026/01/image-300x294.png 300w, https://huecat.es/wp-content/uploads/2026/01/image-768x753.png 768w, https://huecat.es/wp-content/uploads/2026/01/image-600x588.png 600w, https://huecat.es/wp-content/uploads/2026/01/image.png 946w" sizes="(max-width: 300px) 100vw, 300px" /></figure>


<p><style>
    .tech-doc-wrapper {<br />
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;<br />
        background-color: #121212;<br />
        color: #e0e0e0;<br />
        padding: 30px;<br />
        border-radius: 8px;<br />
        line-height: 1.6;<br />
        max-width: 100%;<br />
    }</p>
<p>    .tech-doc-wrapper h2 {<br />
        color: #ffffff;<br />
        border-bottom: 2px solid #3b82f6;<br />
        padding-bottom: 10px;<br />
        margin-top: 40px;<br />
        font-size: 1.5rem;<br />
        text-transform: uppercase;<br />
        letter-spacing: 0.05em;<br />
    }</p>
<p>    .tech-doc-wrapper h3 {<br />
        color: #60a5fa;<br />
        margin-top: 25px;<br />
        font-size: 1.1rem;<br />
    }</p>
<p>    /* Grid de Especificaciones */<br />
    .specs-grid {<br />
        display: grid;<br />
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));<br />
        gap: 15px;<br />
        margin-bottom: 30px;<br />
    }</p>
<p>    .spec-card {<br />
        background: #1e1e1e;<br />
        padding: 15px;<br />
        border: 1px solid #333;<br />
        border-radius: 4px;<br />
        text-align: center;<br />
    }</p>
<p>    .spec-card strong {<br />
        display: block;<br />
        color: #a1a1aa;<br />
        font-size: 0.8rem;<br />
        margin-bottom: 5px;<br />
    }</p>
<p>    .spec-card span {<br />
        font-family: "Consolas", monospace;<br />
        font-size: 1.2rem;<br />
        color: #fff;<br />
    }</p>
<p>    /* Tablas */<br />
    .tech-table {<br />
        width: 100%;<br />
        border-collapse: collapse;<br />
        margin: 20px 0;<br />
        background: #1e1e1e;<br />
        font-size: 0.9rem;<br />
    }</p>
<p>    .tech-table th, .tech-table td {<br />
        padding: 12px;<br />
        border-bottom: 1px solid #333;<br />
        text-align: left;<br />
    }</p>
<p>    .tech-table th {<br />
        color: #60a5fa;<br />
        text-transform: uppercase;<br />
        font-size: 0.8rem;<br />
    }</p>
<p>    /* Comparativa */<br />
    .diff-box {<br />
        display: flex;<br />
        flex-wrap: wrap;<br />
        gap: 20px;<br />
        margin-top: 20px;<br />
    }<br />
    .diff-col {<br />
        flex: 1;<br />
        min-width: 280px;<br />
        background: #18181b;<br />
        padding: 20px;<br />
        border-left: 4px solid #333;<br />
    }<br />
    .diff-col.sim { border-color: #eab308; } /* Amarillo */<br />
    .diff-col.real { border-color: #22c55e; } /* Verde */</p>
<p>    /* Bloques de Código */<br />
    .code-block {<br />
        background: #0f0f10; /* Fondo más oscuro para código */<br />
        padding: 20px;<br />
        border-radius: 6px;<br />
        overflow-x: auto;<br />
        border: 1px solid #333;<br />
        font-family: "Consolas", "Monaco", monospace;<br />
        font-size: 0.85rem;<br />
        color: #d4d4d4;<br />
    }</p>
<p>    .code-keyword { color: #c586c0; }<br />
    .code-type { color: #4ec9b0; }<br />
    .code-comment { color: #6a9955; }<br />
    .code-func { color: #dcdcaa; }</p>
<p>    /* Alerta Técnica */<br />
    .tech-alert {<br />
        background: rgba(239, 68, 68, 0.1);<br />
        border: 1px solid #ef4444;<br />
        color: #fca5a5;<br />
        padding: 15px;<br />
        margin: 20px 0;<br />
        border-radius: 4px;<br />
        font-size: 0.9rem;<br />
    }<br />
</style>
</p>
<div class="tech-doc-wrapper">
<div class="specs-grid">
<div class="spec-card"><strong>Vin</strong>12.0 V</div>
<div class="spec-card"><strong>Vout</strong>5.0 V</div>
<div class="spec-card"><strong>Inductor</strong>100 µH</div>
<div class="spec-card"><strong>Switching</strong>50 kHz</div>
</div>
<p>Documentación técnica para la implementación de un convertidor DC-DC Buck (Step-down) utilizando control digital PID en lazo cerrado. El sistema migra de una simulación HIL (Hardware-in-the-Loop) en MATLAB a una ejecución <em>standalone</em> en microcontrolador AVR (Arduino).</p>
<h2>1. Lista de Materiales, Bill of Materials (BOM)</h2>
<table class="tech-table">
<thead>
<tr>
<th>Componente</th>
<th>Especificación Crítica</th>
<th>Función</th>
</tr>
</thead>
<tbody>
<tr>
<td>MCU</td>
<td>ATmega328p (Nano/Uno)</td>
<td>Controlador Digital (PID Discreto)</td>
</tr>
<tr>
<td>MOSFET</td>
<td>IRFZ44N / IRF540</td>
<td>Conmutación de Potencia</td>
</tr>
<tr>
<td>Gate Driver</td>
<td><strong>IR2110 / TC4420</strong></td>
<td>Interfaz TTL 5V a Gate 12V. <em>Esencial para f &gt; 20kHz.</em></td>
</tr>
<tr>
<td>Inductor</td>
<td>100 µH (Núcleo Ferrita)</td>
<td><strong>Isat &gt; 2.5A</strong>. Evitar bobinas de señal SMD.</td>
</tr>
<tr>
<td>Capacitor</td>
<td>33 µF (Low ESR)</td>
<td>Filtrado de rizado de salida.</td>
</tr>
</tbody>
</table>
<div class="tech-alert"><strong>⚠️ Nota de Diseño &#8211; Feedback:</strong><br />El algoritmo PID utiliza una referencia interna de <strong>2.5V</strong>. Para obtener 5V en la salida, es obligatorio implementar un divisor de tensión 2:1 (Resistencias 10kΩ/10kΩ) en el pin de lectura (A0).</div>
<h2>2. Migración: Simulación vs. Hardware Real</h2>
<p>El código base original estaba diseñado como «esclavo» de Simulink. Para el despliegue físico, se modificó la arquitectura de software para eliminar la dependencia del puerto Serial y activar la lectura ADC directa.</p>
<div class="diff-box">
<div class="diff-col sim">
<h3>Versión A: Simulación (HIL)</h3>
<p>El Arduino espera datos de MATLAB para actuar. No funciona solo.</p>
<div class="code-block">if (Serial.available()) {<br />DVout = recepcion(); <span class="code-comment">// Lee valor virtual</span><br />u = PID(DVout);<br />Serial.write(u); <span class="code-comment">// Devuelve dato a PC</span><br />}</div>
</div>
<div class="diff-col real">
<h3>Versión B: Standalone (Real)</h3>
<p>Operación autónoma con lectura de sensores y Anti-Windup activo.</p>
<div class="code-block"><span class="code-comment">// Lee Hardware real</span><br />y = analogRead(A0) * (5.0/1023.0);<br />u = PID(y);<br /><span class="code-comment">// Actúa sobre el MOSFET</span><br />pwmWrite(9, u * 255);</div>
</div>
</div>
<h2>3. Firmware Implementado (C++)</h2>
<p>Código fuente optimizado para despliegue en campo. Se corrigió el error de saturación integral (Windup) que causaba inestabilidad en la versión de simulación.</p>
<div class="code-block">
<pre><span class="code-comment">// Firmware Control Buck PID - v1.0 Release</span>
<span class="code-keyword">#include</span> &lt;pwm.h&gt;

<span class="code-keyword">const</span> <span class="code-type">int</span> PIN_SENSOR = A0;  <span class="code-comment">// Entrada Divisor (Vout/2)</span>
<span class="code-keyword">const</span> <span class="code-type">int</span> PIN_PWM = 9;      <span class="code-comment">// Salida Gate Driver</span>

<span class="code-comment">// Constantes PID (L=100uH, C=33uF)</span>
<span class="code-type">float</span> Kp = 0.272253;
<span class="code-type">float</span> Ti = 0.0015285;
<span class="code-type">float</span> Ts = 20e-6;           <span class="code-comment">// 50kHz Loop</span>

<span class="code-comment">// Variables PID</span>
<span class="code-type">float</span> u = 0.0, u_1 = 0.0;
<span class="code-type">float</span> e = 0.0, e_1 = 0.0;
<span class="code-type">float</span> q0, q1;
<span class="code-type">float</span> Vref = 2.5;           <span class="code-comment">// Target (2.5V leídos = 5.0V reales)</span>

<span class="code-keyword">void</span> <span class="code-func">setup</span>() {
    <span class="code-comment">// Coeficientes Tustin</span>
    q0 = Kp * (1 + (Ts / (2 * Ti)));
    q1 = -Kp * (1 - (Ts / (2 * Ti)));
    
    <span class="code-comment">// Configurar PWM Asíncrono</span>
    InitTimersSafe();
    SetPinFrequencySafe(PIN_PWM, 50000); 
    pinMode(PIN_PWM, OUTPUT);
}

<span class="code-keyword">void</span> <span class="code-func">loop</span>() {
    <span class="code-comment">// 1. Lectura ADC y Normalización</span>
    <span class="code-type">float</span> y_medida = analogRead(PIN_SENSOR) * (5.0 / 1023.0);
    
    <span class="code-comment">// 2. PID Discreto</span>
    e = Vref - y_medida;
    u = u_1 + q0 * e + q1 * e_1;
    
    <span class="code-comment">// 3. Saturación y Anti-Windup (Crítico)</span>
    <span class="code-keyword">if</span> (u &gt; 0.95) u = 0.95; 
    <span class="code-keyword">if</span> (u &lt; 0.00) u = 0.00;
    
    <span class="code-comment">// 4. Actualización Estados</span>
    u_1 = u;
    e_1 = e;
    
    <span class="code-comment">// 5. Actuación</span>
    pwmWrite(PIN_PWM, (<span class="code-type">int</span>)(u * 255));
    
    <span class="code-comment">// Estabilización de Ciclo</span>
    delayMicroseconds(10);
}
</pre>
</div>
</div>

<p>The post <a href="https://huecat.es/manual-de-ingenieria-buck-converter-pid/">Manual de Ingeniería: Buck Converter PID</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/manual-de-ingenieria-buck-converter-pid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Electrónica para sistema de Sanitización controlado por ESP8266 y base de datos MySQL para gestión de consumibles</title>
		<link>https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/</link>
					<comments>https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 12:21:18 +0000</pubDate>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Sensores]]></category>
		<category><![CDATA[STEM]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Trabajos Realizados]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7574</guid>

					<description><![CDATA[<p>La higiene industrial ya no puede depender del error humano. En un entorno post-pandémico, la sanitización efectiva no es un lujo, es una exigencia operativa. Sin embargo, los sistemas tradicionales de desinfección (UV y químicos) presentan dos grandes riesgos: la exposición accidental de las personas a agentes nocivos y la falta de control sobre los [&#8230;]</p>
<p>The post <a href="https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/">Electrónica para sistema de Sanitización controlado por ESP8266 y base de datos MySQL para gestión de consumibles</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>La higiene industrial ya no puede depender del error humano.</strong> En un entorno post-pandémico, la sanitización efectiva no es un lujo, es una exigencia operativa. Sin embargo, los sistemas tradicionales de desinfección (UV y químicos) presentan dos grandes riesgos: la exposición accidental de las personas a agentes nocivos y la falta de control sobre los consumibles. Este proyecto nace para resolver esa ecuación mediante IoT: creamos un sistema de sanitización autónomo que es lo suficientemente inteligente para detenerse ante la presencia humana y lo suficientemente comunicativo para gestionar su propio mantenimiento, eliminando las «zonas ciegas» de la limpieza industrial.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-scaled.jpg"><img decoding="async" width="1024" height="531" src="https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-1024x531.jpg" alt="" class="wp-image-7619" srcset="https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-1024x531.jpg 1024w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-300x156.jpg 300w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-768x398.jpg 768w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-1536x796.jpg 1536w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-2048x1062.jpg 2048w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-600x311.jpg 600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">Sistema de luminarias UV (sanitización por Ultravioletas) y sistema automatizado para pulverización de producto ambientador para la Industria, controlado por IoT</h3>



<p><br>Detalles: Conexión a base de datos MySQL, sensor de movimiento, sensor de nivel de líquido por ultrasonido (SR-04), conexión por WiFi, LCD1602</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql.jpg"><img decoding="async" width="1024" height="659" src="https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-1024x659.jpg" alt="" class="wp-image-7525" srcset="https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-1024x659.jpg 1024w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-300x193.jpg 300w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-768x494.jpg 768w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-1536x988.jpg 1536w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-2048x1317.jpg 2048w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-700x450.jpg 700w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-600x386.jpg 600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>
<p>The post <a href="https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/">Electrónica para sistema de Sanitización controlado por ESP8266 y base de datos MySQL para gestión de consumibles</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Sistema de gestión de batería avanzado Analogico + SBS</title>
		<link>https://huecat.es/sistema-de-gestion-de-bateria-avanzado-analogico-sbs/</link>
					<comments>https://huecat.es/sistema-de-gestion-de-bateria-avanzado-analogico-sbs/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Tue, 16 Dec 2025 22:42:13 +0000</pubDate>
				<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Sensores]]></category>
		<category><![CDATA[Sistemas Embebidos]]></category>
		<category><![CDATA[STEM]]></category>
		<category><![CDATA[Trabajos Realizados]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7494</guid>

					<description><![CDATA[<p>A veces, en ingeniería, el reto no es solo crear algo nuevo, sino hacer que conviva con lo que ya existe. Hace poco estuve trabajando en un proyecto muy interesante que resume perfectamente esta idea: un sistema de gestión y registro de baterías (Datalogger) capaz de hablar dos «idiomas» distintos. El problema: Lo viejo vs. [&#8230;]</p>
<p>The post <a href="https://huecat.es/sistema-de-gestion-de-bateria-avanzado-analogico-sbs/">Sistema de gestión de batería avanzado Analogico + SBS</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog.jpeg"><img decoding="async" width="768" height="1024" src="https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog-768x1024.jpeg" alt="" class="wp-image-7515" srcset="https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog-768x1024.jpeg 768w, https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog-225x300.jpeg 225w, https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog-1152x1536.jpeg 1152w, https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog-600x800.jpeg 600w, https://huecat.es/wp-content/uploads/2025/12/sbs_dual_analog.jpeg 1500w" sizes="(max-width: 768px) 100vw, 768px" /></a></figure>



<p>A veces, en ingeniería, el reto no es solo crear algo nuevo, sino hacer que conviva con lo que ya existe. Hace poco estuve trabajando en un proyecto muy interesante que resume perfectamente esta idea: un sistema de gestión y registro de baterías (Datalogger) capaz de hablar dos «idiomas» distintos.</p>



<p><strong>El problema: Lo viejo vs. Lo nuevo</strong></p>



<p>En el mundo de las baterías hay, básicamente, dos grandes grupos conviviendo:</p>



<ol start="1" class="wp-block-list">
<li><strong>Las baterías «inteligentes» (SBS):</strong> Son las modernas. Ellas mismas te dicen «estoy al 80%», «tengo esta temperatura» o «me quedan tantos ciclos de vida». Se comunican digitalmente.</li>



<li><strong>Las baterías «tradicionales» (Analógicas):</strong> Son las de toda la vida. No «hablan», así que para saber cómo están tienes que medir físicamente su voltaje, la corriente que entra y sale, y usar sondas externas para vigilar que no se calienten.</li>
</ol>



<p>El objetivo era crear un cerebro único que pudiera manejar <strong>ambas situaciones</strong> sin despeinarse.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit.webp"><img decoding="async" width="1024" height="499" src="https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit-1024x499.webp" alt="" class="wp-image-7499" srcset="https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit-1024x499.webp 1024w, https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit-300x146.webp 300w, https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit-768x374.webp 768w, https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit-600x292.webp 600w, https://huecat.es/wp-content/uploads/2025/12/doc-esp32-pinout-reference-wroom-devkit.webp 1038w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><strong>La solución: Un sistema híbrido</strong></p>



<p>Desarrollé un firmware capaz de trabajar en dos modos. Si el sistema detecta una batería moderna, se comporta como un «host» digital: lee directamente los datos internos (voltaje, amperaje, salud de la batería) a través de protocolos de comunicación estándar. Es limpio y preciso.</p>



<p>Pero, si conectamos una batería analógica, el sistema cambia el chip. Pasa a usar sensores físicos para leer la corriente y el voltaje, y gestiona sondas de temperatura externas para asegurarse de que todo opera dentro de los márgenes de seguridad.</p>





<p><strong>¿Por qué es útil esto?</strong></p>



<p>Versatilidad. El dispositivo no solo gestiona la carga, sino que actúa como una «caja negra»:</p>



<ul class="wp-block-list">
<li><strong>Registro de datos:</strong> Guarda un historial diario en una tarjeta SD con todo lo que pasa (ciclos de carga, temperaturas, potencias&#8230;).</li>



<li><strong>Seguridad:</strong> Tiene alarmas programadas. Si una batería se calienta demasiado o baja de cierto nivel, el sistema avisa y corta para prevenir daños, da igual si la batería es digital o analógica.</li>



<li><strong>Visualización:</strong> Toda la info se muestra sencilla en una pantalla OLED para que el usuario sepa qué pasa de un vistazo.</li>
</ul>



<p>Al final, este proyecto ha sido un buen ejercicio de adaptación. La electrónica sirve para hacer de puente entre tecnologías distintas, alargando la vida útil de los equipos y mejorando la seguridad, sea cual sea la batería que se use.</p>
<p>The post <a href="https://huecat.es/sistema-de-gestion-de-bateria-avanzado-analogico-sbs/">Sistema de gestión de batería avanzado Analogico + SBS</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/sistema-de-gestion-de-bateria-avanzado-analogico-sbs/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Sensor de humedad de suelo con control de alimentación (moisture-sensor-for-plants)</title>
		<link>https://huecat.es/sensor-de-humedad-de-suelo-con-control-de-alimentacion/</link>
					<comments>https://huecat.es/sensor-de-humedad-de-suelo-con-control-de-alimentacion/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Sun, 06 Jul 2025 17:05:47 +0000</pubDate>
				<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Sensores]]></category>
		<category><![CDATA[Sistemas Embebidos]]></category>
		<category><![CDATA[STEM]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7256</guid>

					<description><![CDATA[<p>Este proyecto implementa un sistema básico para medir la humedad del suelo mediante un microcontrolador, optimizando el consumo de energía de la sonda gracias a un pin de alimentación controlado por software. Está diseñado para facilitar la integración en entornos de bajo consumo o alimentados por baterías. Ver repositorio en Github Objetivo Obtener lecturas confiables [&#8230;]</p>
<p>The post <a href="https://huecat.es/sensor-de-humedad-de-suelo-con-control-de-alimentacion/">Sensor de humedad de suelo con control de alimentación (moisture-sensor-for-plants)</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cover"><img decoding="async" width="1024" height="683" class="wp-block-cover__image-background wp-image-7259 size-large" alt="" src="https://huecat.es/wp-content/uploads/2025/07/moisture_sensor_personalizado_huecat-1024x683.png" data-object-fit="cover" srcset="https://huecat.es/wp-content/uploads/2025/07/moisture_sensor_personalizado_huecat-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2025/07/moisture_sensor_personalizado_huecat-300x200.png 300w, https://huecat.es/wp-content/uploads/2025/07/moisture_sensor_personalizado_huecat-768x512.png 768w, https://huecat.es/wp-content/uploads/2025/07/moisture_sensor_personalizado_huecat-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2025/07/moisture_sensor_personalizado_huecat.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /><span aria-hidden="true" class="wp-block-cover__background has-background-dim" style="background-color:#736145"></span><div class="wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained">
<p class="has-text-align-center has-large-font-size">moisture-sensor-for-plants</p>
</div></div>



<p>Este proyecto implementa un sistema básico para medir la humedad del suelo mediante un microcontrolador, optimizando el consumo de energía de la sonda gracias a un pin de alimentación controlado por software. Está diseñado para facilitar la integración en entornos de bajo consumo o alimentados por baterías.</p>



<p><a href="https://github.com/huecat/moisture-sensor-for-plants" target="_blank" rel="noreferrer noopener">Ver repositorio en Github</a></p>



<h3 class="wp-block-heading">Objetivo</h3>



<p>Obtener lecturas confiables del nivel de humedad del suelo mientras se evita la corrosión y el consumo innecesario de corriente de la sonda, encendiéndola solo durante el tiempo mínimo necesario para la medición.</p>



<h3 class="wp-block-heading">Estructura del proyecto</h3>



<p>El código está organizado en tres partes principales:</p>



<h4 class="wp-block-heading">1. Encabezado (<code>moisture.h</code>)</h4>



<p>Define la interfaz de uso:</p>



<ul class="wp-block-list">
<li><strong>moistureInit()</strong>: inicializa los pines para alimentar la sonda y leer la señal analógica.</li>



<li><strong>moistureSetWarmup()</strong>: permite configurar el tiempo de precalentamiento antes de la medición.</li>



<li><strong>moistureRead()</strong>: realiza la lectura del valor crudo del ADC.</li>
</ul>



<h4 class="wp-block-heading">2. Implementación (<code>moisture.cpp</code>)</h4>



<p>Contiene la lógica de funcionamiento:</p>



<ul class="wp-block-list">
<li>Al inicializar, configura el pin de alimentación como salida y lo apaga por defecto.</li>



<li>Durante la lectura, habilita la alimentación, espera el tiempo de calentamiento configurado (300 ms por defecto) y luego toma la muestra analógica.</li>



<li>Apaga la alimentación inmediatamente después de la lectura para reducir la corrosión y el consumo.</li>
</ul>



<h4 class="wp-block-heading">3. Sketch principal (<code>moisture1.ino</code>)</h4>



<p>Ejemplo de uso que inicializa el sensor con pines definidos, configura el precalentamiento si es necesario y lee los valores de humedad periódicamente, mostrando los resultados por el puerto serial.</p>



<h3 class="wp-block-heading">Características destacadas</h3>



<ul class="wp-block-list">
<li>Control programático de la alimentación de la sonda.</li>



<li>Configuración flexible del tiempo de precalentamiento.</li>



<li>Lectura directa del valor analógico en formato crudo (0–1023).</li>



<li>Diseño modular para facilitar la reutilización en otros proyectos.</li>
</ul>



<h3 class="wp-block-heading">Aplicaciones</h3>



<p>El sistema está pensado para proyectos de riego automático, monitoreo de jardines o cultivos, y cualquier implementación que requiera reducir el consumo y prolongar la vida útil de sondas de humedad</p>
<p>The post <a href="https://huecat.es/sensor-de-humedad-de-suelo-con-control-de-alimentacion/">Sensor de humedad de suelo con control de alimentación (moisture-sensor-for-plants)</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/sensor-de-humedad-de-suelo-con-control-de-alimentacion/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>SENSOR FINGERPRINT 071405</title>
		<link>https://huecat.es/sensor-fingerprint-071405/</link>
					<comments>https://huecat.es/sensor-fingerprint-071405/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Sun, 29 Jun 2025 23:01:53 +0000</pubDate>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[Sensores]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7249</guid>

					<description><![CDATA[<p>El FINGERPRINT 071405 es un sensor óptico de huella digital compacto y fácil de integrar en proyectos de seguridad y acceso biométrico. Ofrece detección rápida y un alto nivel de precisión, lo que lo convierte en una opción recomendada para cerraduras inteligentes, control de asistencia y aplicaciones IoT. Principio de funcionamiento Especificaciones técnicas Conexión al [&#8230;]</p>
<p>The post <a href="https://huecat.es/sensor-fingerprint-071405/">SENSOR FINGERPRINT 071405</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cover"><img decoding="async" width="1024" height="683" class="wp-block-cover__image-background wp-image-7265 size-large" alt="" src="https://huecat.es/wp-content/uploads/2025/07/sensor_fingerprint_implementacion-1024x683.png" data-object-fit="cover" srcset="https://huecat.es/wp-content/uploads/2025/07/sensor_fingerprint_implementacion-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2025/07/sensor_fingerprint_implementacion-300x200.png 300w, https://huecat.es/wp-content/uploads/2025/07/sensor_fingerprint_implementacion-768x512.png 768w, https://huecat.es/wp-content/uploads/2025/07/sensor_fingerprint_implementacion-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2025/07/sensor_fingerprint_implementacion.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /><span aria-hidden="true" class="wp-block-cover__background has-background-dim" style="background-color:#4d4f50"></span><div class="wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained">
<p class="has-text-align-center has-large-font-size"></p>
</div></div>



<p>El FINGERPRINT 071405 es un sensor óptico de huella digital compacto y fácil de integrar en proyectos de seguridad y acceso biométrico. Ofrece detección rápida y un alto nivel de precisión, lo que lo convierte en una opción recomendada para cerraduras inteligentes, control de asistencia y aplicaciones IoT.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Principio de funcionamiento</h3>



<ol class="wp-block-list">
<li><strong>Captura óptica</strong>: Una pequeña cámara CMOS interna ilumina el dedo con un LED infrarrojo y toma una imagen de la huella.</li>



<li><strong>Procesado interno</strong>: El propio módulo extrae los “minucias” (optimiza las crestas y valles) y genera un template digital.</li>



<li><strong>Comparación</strong>: El microcontrolador puede enviar patrones de huella almacenados para comprobación o pedir al sensor que registre un nuevo usuario.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Especificaciones técnicas</h3>



<ul class="wp-block-list">
<li><strong>Resolución</strong>: 500 dpi</li>



<li><strong>Interface</strong>: UART TTL (3,3 V lógico)</li>



<li><strong>Voltaje de alimentación</strong>: 3,6 V – 6 V</li>



<li><strong>Corriente en reposo</strong>: ≈ 40 mA</li>



<li><strong>Corriente en captura</strong>: ≈ 60 mA</li>



<li><strong>Tiempo de verificación</strong>: &lt; 1 s</li>



<li><strong>Plantillas almacenables</strong>: hasta 2 000</li>



<li><strong>Dimensiones</strong>: 35 × 20 × 16 mm</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Conexión al microcontrolador</h3>



<ol class="wp-block-list">
<li><strong>Alimentación</strong>: VIN a 5 V, GND a masa.</li>



<li><strong>Datos</strong>:
<ul class="wp-block-list">
<li>TX del sensor → RX del microcontrolador</li>



<li>RX del sensor → TX del microcontrolador</li>
</ul>
</li>



<li><strong>Nivel lógico</strong>: Si se trabaja a 3,3 V, asegurar que VIN sea ≥ 3,6 V y usar un conversor de nivel para la señal RX.</li>
</ol>



<p>[Sensor] [Microcontrolador]<br>VIN ──► 5 V<br>GND ──► GND<br>TX ──► RX (UART)<br>RX ──► TX (UART)*</p>



<ul class="wp-block-list">
<li>con conversor de nivel si MCU opera a 3,3 V</li>
</ul>



<h3 class="wp-block-heading">Uso con librería Adafruit</h3>



<p>Se recomienda la biblioteca Adafruit Fingerprint para gestionar enrolamiento y verificación de forma sencilla:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;Adafruit_Fingerprint.h&gt;
#include &lt;HardwareSerial.h&gt;

// Usar Serial1 para ESP32, Serial para otros microcontroladores
HardwareSerial uart(1);
Adafruit_Fingerprint sensor(&amp;uart);

void setup() {
  uart.begin(57600, SERIAL_8N1, RX_PIN, TX_PIN);
  sensor.begin(57600);
  if (sensor.verifyPassword()) {
    Serial.println(&quot;Sensor listo&quot;);
  } else {
    Serial.println(&quot;Error de comunicación&quot;);
    while (1);
  }
}

uint8_t getFingerprintID() {
  if (sensor.getImage() != FINGERPRINT_OK) return FINGERPRINT_NOFINGER;
  sensor.image2Tz();
  return sensor.fingerFastSearch();
}

void loop() {
  uint8_t id = getFingerprintID();
  if (id == FINGERPRINT_NOFINGER) return;
  if (id == FINGERPRINT_OK) {
    Serial.print(&quot;Huella reconocida con ID: &quot;);
    Serial.println(sensor.fingerID);
  } else {
    Serial.println(&quot;Huella no reconocida&quot;);
  }
  delay(1000);
}

</pre></div>


<h3 class="wp-block-heading">Aplicaciones comunes</h3>



<ul class="wp-block-list">
<li><strong>Control de acceso</strong> en cerraduras electrónicas</li>



<li><strong>Registro de asistencia</strong> en oficinas o aulas</li>



<li><strong>Autenticación</strong> en dispositivos IoT</li>



<li><strong>Seguridad</strong> en proyectos de domótica y automatización</li>
</ul>



<h3 class="wp-block-heading">Ventajas de el modelo:</h3>



<ul class="wp-block-list">
<li><strong>Rápido y fiable</strong>: verificación en menos de 1 s.</li>



<li><strong>Alto almacenamiento</strong>: hasta 2 000 plantillas.</li>



<li><strong>Fácil integración</strong>: comunicación por puerto serie TTL.</li>



<li><strong>Robustez</strong>: carcasa de resina protege el sensor óptico.</li>
</ul>



<p>Para maximizar la fiabilidad, se aconseja limpiar periódicamente la superficie y evitar la exposición directa a la luz solar intensa.</p>



<p></p>
<p>The post <a href="https://huecat.es/sensor-fingerprint-071405/">SENSOR FINGERPRINT 071405</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/sensor-fingerprint-071405/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proyecto de Reproducción de MP3 con ESP32 y DFPlayer Mini</title>
		<link>https://huecat.es/proyecto-de-reproduccion-de-mp3-con-esp32-y-dfplayer-mini/</link>
					<comments>https://huecat.es/proyecto-de-reproduccion-de-mp3-con-esp32-y-dfplayer-mini/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Thu, 01 Aug 2024 13:31:50 +0000</pubDate>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Imagen y Sonido]]></category>
		<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7176</guid>

					<description><![CDATA[<p>Actualizado: 3/7/2025: Ahora es compatible con familia de uC Espressif ESP8266 y ESP32. Este proyecto detalla cómo utilizar un ESP32 y un módulo DFPlayer Mini para reproducir archivos MP3 de manera automática cada cierto tiempo. Se abordan los aspectos del módulo DFPlayer Mini, las conexiones necesarias y el código de programación, proporcionando una guía completa [&#8230;]</p>
<p>The post <a href="https://huecat.es/proyecto-de-reproduccion-de-mp3-con-esp32-y-dfplayer-mini/">Proyecto de Reproducción de MP3 con ESP32 y DFPlayer Mini</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat.png"><img decoding="async" width="1024" height="683" src="https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat-1024x683.png" alt="" class="wp-image-7293" srcset="https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat-300x200.png 300w, https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat-768x512.png 768w, https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2024/08/mp3_proyecto_2025_huecat.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>


<p>Actualizado: 3/7/2025: Ahora es compatible con familia de uC Espressif ESP8266 y ESP32. Este proyecto detalla cómo utilizar un ESP32 y un módulo DFPlayer Mini para reproducir archivos MP3 de manera automática cada cierto tiempo. Se abordan los aspectos del módulo DFPlayer Mini, las conexiones necesarias y el código de programación, proporcionando una guía completa para la implementación de este sistema de reproducción de audio.</p>
<p>El DFPlayer Mini es un módulo de reproducción de audio compacto y de bajo costo que puede reproducir archivos MP3 y WAV almacenados en una tarjeta microSD. Es ampliamente utilizado en proyectos de electrónica debido a su facilidad de uso y a su capacidad para manejar archivos de audio de manera autónoma, sin necesidad de una fuente de control compleja. El módulo cuenta con varias funciones, incluyendo el ajuste de volumen, control de reproducción, y la capacidad de seleccionar pistas mediante comandos simples.</p>
<h4>Conexiones del Proyecto</h4>
<p>Para conectar el DFPlayer Mini con el ESP32, es importante seguir las siguientes indicaciones:</p>
<ul>
<li><strong>VCC:</strong> Conectar a una fuente de alimentación de 5V. El ESP32 puede proporcionar esta salida.</li>
<li><strong>GND:</strong> Conectar al pin de tierra (GND) del ESP32.</li>
<li><strong>TX del DFPlayer Mini:</strong> Conectar al pin GPIO 16 del ESP32.</li>
<li><strong>RX del DFPlayer Mini:</strong> Conectar al pin GPIO 17 del ESP32.</li>
<li><strong>SPK1 y SPK2:</strong> Conectar a un altavoz pasivo, si se desea una salida de audio. Alternativamente, se puede usar un conector de auriculares para salida de línea.</li>
</ul>
<p>Es fundamental asegurarse de que las conexiones sean correctas para evitar daños en los componentes y garantizar un funcionamiento óptimo del sistema.</p>
<h4>3. Código de Programación</h4>
<p>El siguiente código muestra cómo configurar el ESP32 para comunicarse con el DFPlayer Mini y reproducir un archivo MP3 cada 10 segundos. Se utiliza el puerto Serial1 del ESP32/ESP8266 para la comunicación, aprovechando la capacidad del microcontrolador para manejar múltiples puertos UART de hardware.</p>

<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;Arduino.h&gt;
#include &lt;DFPlayerMini_Fast.h&gt;

#if defined(ESP32)
  // En ESP32 podemos usar HardwareSerial en un segundo puerto
  HardwareSerial playerSerial(2);  // UART2: GPIO16=RX2, GPIO17=TX2 por defecto
  const int DF_RX = 16;  // al TX del DFPlayer
  const int DF_TX = 17;  // al RX del DFPlayer
#elif defined(ESP8266)
  #include &lt;SoftwareSerial.h&gt;
  const int DF_RX = D5;  // ESP8266: conecta a TX del DFPlayer
  const int DF_TX = D6;  // ESP8266: conecta a RX del DFPlayer
  SoftwareSerial playerSerial(DF_RX, DF_TX);
#else
  #error &quot;Este código sólo es para ESP32 o ESP8266&quot;
#endif

DFPlayerMini_Fast myDFPlayer;
const unsigned long intervalReproduccion = 10000;  // 10 s
unsigned long lastMillis = 0;

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println(&quot;=== DFPlayer en ESP32/ESP8266 ===&quot;);

  // Inicializar puerto al módulo
  #if defined(ESP32)
    playerSerial.begin(9600, SERIAL_8N1, DF_RX, DF_TX);
  #elif defined(ESP8266)
    playerSerial.begin(9600);
  #endif

  if (! myDFPlayer.begin(playerSerial)) {
    Serial.println(F(&quot;ERROR: No se detectó DFPlayer Mini&quot;));
    while (true) delay(100);
  }

  myDFPlayer.volume(20);   // 0–30
  myDFPlayer.play(1);      // empieza en pista 001
  lastMillis = millis();
}

void loop() {
  unsigned long now = millis();

  // Cada 10 s, reproducir siguiente pista
  if (now - lastMillis &gt;= intervalReproduccion) {
    lastMillis = now;
    myDFPlayer.playNext();
  }

  // Procesar eventos del DFPlayer (fin de pista, errores…)
  if (myDFPlayer.available()) {
    DFPlayerEventType type = myDFPlayer.readType();
    int state = myDFPlayer.readState();
    Serial.print(F(&quot;Evento DFPlayer: &quot;));
    Serial.print(type);
    Serial.print(F(&quot;  Estado interno: &quot;));
    Serial.println(state);
  }

  // Aquí puedes gestionar botones u otras tareas no bloqueantes

  delay(20);
}

</pre></div>


<p>En este código, se utilizan las siguientes funciones y configuraciones:</p>



<ul class="wp-block-list">
<li><strong>mySerial.begin(9600, SERIAL_8N1, 16, 17);</strong> Esta línea configura el puerto Serial1 del ESP32 con una velocidad de comunicación de 9600 baudios y establece los pines GPIO 16 y 17 como RX y TX, respectivamente.</li>



<li><strong>myDFPlayer.begin(mySerial);</strong> Esta función inicializa el DFPlayer Mini y lo prepara para recibir comandos.</li>



<li><strong>myDFPlayer.volume(20);</strong> Se ajusta el volumen del reproductor a un nivel de 20 (en una escala de 0 a 30).</li>



<li><strong>myDFPlayer.play(1);</strong> Este comando indica al DFPlayer Mini que reproduzca el archivo de audio numerado como 1 en la tarjeta microSD.</li>



<li><strong>delay(10000);</strong> Introduce una pausa de 10 segundos antes de repetir el ciclo.</li>
</ul>



<p>Este código permite la reproducción continua de un archivo MP3, con una espera de 10 segundos entre reproducciones. Es posible modificar el tiempo de espera o cambiar el archivo a reproducir ajustando los parámetros del código según las necesidades del proyecto.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2024/08/Resproductor-de-mp3.jpg"><img decoding="async" width="1024" height="644" src="https://huecat.es/wp-content/uploads/2024/08/Resproductor-de-mp3-1024x644.jpg" alt="" class="wp-image-7179" srcset="https://huecat.es/wp-content/uploads/2024/08/Resproductor-de-mp3-1024x644.jpg 1024w, https://huecat.es/wp-content/uploads/2024/08/Resproductor-de-mp3-300x189.jpg 300w, https://huecat.es/wp-content/uploads/2024/08/Resproductor-de-mp3-768x483.jpg 768w, https://huecat.es/wp-content/uploads/2024/08/Resproductor-de-mp3.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
<p>The post <a href="https://huecat.es/proyecto-de-reproduccion-de-mp3-con-esp32-y-dfplayer-mini/">Proyecto de Reproducción de MP3 con ESP32 y DFPlayer Mini</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/proyecto-de-reproduccion-de-mp3-con-esp32-y-dfplayer-mini/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Sensor de Temperatura y Humedad SHT31: Precisión y Fiabilidad en tus Proyectos</title>
		<link>https://huecat.es/sensor-de-temperatura-y-humedad-sht31-precision-y-fiabilidad-en-tus-proyectos/</link>
					<comments>https://huecat.es/sensor-de-temperatura-y-humedad-sht31-precision-y-fiabilidad-en-tus-proyectos/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Wed, 03 Jul 2024 15:23:05 +0000</pubDate>
				<category><![CDATA[Electrónica]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7152</guid>

					<description><![CDATA[<p>Estamos en busca de componentes que ofrezcan la mejor calidad y precisión para proyectos de electrónica y sistemas embebidos. Características del SHT31 El sensor SHT31, desarrollado por Sensirion, es conocido por su alta precisión y fiabilidad en la medición de temperatura y humedad. Sus principales características incluyen: Aplicaciones del SHT31 El SHT31 es versátil y [&#8230;]</p>
<p>The post <a href="https://huecat.es/sensor-de-temperatura-y-humedad-sht31-precision-y-fiabilidad-en-tus-proyectos/">Sensor de Temperatura y Humedad SHT31: Precisión y Fiabilidad en tus Proyectos</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025.png"><img decoding="async" width="1024" height="683" src="https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025-1024x683.png" alt="" class="wp-image-7270" srcset="https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025-300x200.png 300w, https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025-768x512.png 768w, https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2024/07/medir_temperaturas_humedad_sonda_sth_huecat_2025.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Estamos en busca de componentes que ofrezcan la mejor calidad y precisión para proyectos de electrónica y sistemas embebidos. </p>



<p></p>



<h4 class="wp-block-heading">Características del SHT31</h4>



<p>El sensor SHT31, desarrollado por <strong>Sensirion</strong>, es conocido por su alta precisión y fiabilidad en la medición de temperatura y humedad. Sus principales características incluyen:</p>



<ul class="wp-block-list">
<li><strong>Alta Precisión</strong>: Con una precisión de ±2% RH para la humedad y ±0.3°C para la temperatura, garantiza datos exactos para aplicaciones críticas.</li>



<li><strong>Interfaz I2C</strong>: Facilita la integración con diversos microcontroladores y plataformas de desarrollo como Arduino y Raspberry Pi.</li>



<li><strong>Rápida Respuesta</strong>: Su diseño avanzado permite obtener lecturas en tiempo real, ideal para sistemas de monitoreo continuo.</li>



<li><strong>Compensación de Calor</strong>: Mejora la precisión en ambientes con fluctuaciones térmicas, asegurando mediciones consistentes.</li>
</ul>



<h4 class="wp-block-heading">Aplicaciones del SHT31</h4>



<p>El SHT31 es versátil y se adapta a diversas aplicaciones, tales como:</p>



<ul class="wp-block-list">
<li><strong>Sistemas HVAC</strong>: Optimiza el control de climatización en edificios inteligentes.</li>



<li><strong>Estaciones Meteorológicas</strong>: Proporciona datos precisos para el análisis del clima.</li>



<li><strong>Agricultura de Precisión</strong>: Monitoriza las condiciones ambientales en invernaderos y cultivos.</li>



<li><strong>Dispositivos IoT</strong>: Integra fácilmente en soluciones de hogar inteligente y monitoreo ambiental.</li>
</ul>



<h4 class="wp-block-heading">Integración Sencilla</h4>



<p>Se valora la facilidad de uso y la versatilidad. El SHT31 se conecta mediante una interfaz I2C, simplificando su uso con cualquier microcontrolador compatible. </p>



<p></p>



<p>Código para compilar en IDE Platformio</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;Wire.h&gt;
#include &lt;Adafruit_SHT31.h&gt;
#include &lt;FS.h&gt;
#include &lt;SD_MMC.h&gt;

Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
  Serial.begin(115200);
  while (!Serial) delay(10);  // wait for serial port to open
  
  if (!sht31.begin(0x44)) {   // Set to 0x45 for alternate i2c addr
    Serial.println(&quot;Couldn&#039;t find SHT31&quot;);
    while (1) delay(1);
  }

  if (!SD_MMC.begin(&quot;/sdcard&quot;, true)) {
    Serial.println(&quot;SD Card Mount Failed&quot;);
    return;
  }

  uint8_t cardType = SD_MMC.cardType();
  if (cardType == CARD_NONE) {
    Serial.println(&quot;No SD card attached&quot;);
    return;
  }

  Serial.println(&quot;SD Card initialized.&quot;);
}

void loop() {
  float t = sht31.readTemperature();
  float h = sht31.readHumidity();
  
  if (!isnan(t)) {  // check if &#039;is not a number&#039;
    Serial.print(&quot;Temp *C = &quot;); Serial.println(t);
  } else {
    Serial.println(&quot;Failed to read temperature&quot;);
  }

  if (!isnan(h)) {  // check if &#039;is not a number&#039;
    Serial.print(&quot;Hum. % = &quot;); Serial.println(h);
  } else {
    Serial.println(&quot;Failed to read humidity&quot;);
  }

  // Open the file in write mode
  File dataFile = SD_MMC.open(&quot;/sdcard/data.txt&quot;, FILE_APPEND);

  // If the file opened successfully, write the temperature and humidity
  if (dataFile) {
    dataFile.print(&quot;Millis: &quot;);
    dataFile.print(millis());
    dataFile.print(&quot;, Temp: &quot;);
    dataFile.print(t);
    dataFile.print(&quot; *C, Humidity: &quot;);
    dataFile.print(h);
    dataFile.println(&quot; %&quot;);
    dataFile.close();
    Serial.println(&quot;Data written to file&quot;);
  } else {
    // If the file didn&#039;t open, print an error
    Serial.println(&quot;Error opening data.txt&quot;);
  }

  // Wait for 2 seconds before reading again
  delay(2000);
}

</pre></div><p>The post <a href="https://huecat.es/sensor-de-temperatura-y-humedad-sht31-precision-y-fiabilidad-en-tus-proyectos/">Sensor de Temperatura y Humedad SHT31: Precisión y Fiabilidad en tus Proyectos</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/sensor-de-temperatura-y-humedad-sht31-precision-y-fiabilidad-en-tus-proyectos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Conectar dos ESP32 por Wi-Fi (Sin router de por medio)</title>
		<link>https://huecat.es/conectar-dos-esp32-por-wi-fi-sin-router-de-por-medio/</link>
					<comments>https://huecat.es/conectar-dos-esp32-por-wi-fi-sin-router-de-por-medio/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Thu, 18 Apr 2024 12:51:39 +0000</pubDate>
				<category><![CDATA[ESP32]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7064</guid>

					<description><![CDATA[<p>Muy últil en muchos proyectos con ESP32, por su simplicidad respecto al BLE. https://github.com/huecat/Conectar-ESP32-por-Wifi-Sin-Router Servidor: Cliente:</p>
<p>The post <a href="https://huecat.es/conectar-dos-esp32-por-wi-fi-sin-router-de-por-medio/">Conectar dos ESP32 por Wi-Fi (Sin router de por medio)</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA.png"><img decoding="async" width="1024" height="683" src="https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA-1024x683.png" alt="" class="wp-image-7285" srcset="https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA-300x200.png 300w, https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA-768x512.png 768w, https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2024/04/WI-FI-ESP-32-OEM-HUE-CAT-ESPANA.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Muy últil en muchos proyectos con ESP32, por su simplicidad respecto al BLE.</p>



<p><a href="https://github.com/huecat/Conectar-ESP32-por-Wifi-Sin-Router" target="_blank" rel="noreferrer noopener">https://github.com/huecat/Conectar-ESP32-por-Wifi-Sin-Router</a></p>



<p></p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2024/01/ESP32-Client-Server-Wi-Fi-Communication-Between-Two-Boards.jpg"><img decoding="async" width="1024" height="576" src="https://huecat.es/wp-content/uploads/2024/01/ESP32-Client-Server-Wi-Fi-Communication-Between-Two-Boards-1024x576.jpg" alt="" class="wp-image-7104" srcset="https://huecat.es/wp-content/uploads/2024/01/ESP32-Client-Server-Wi-Fi-Communication-Between-Two-Boards-1024x576.jpg 1024w, https://huecat.es/wp-content/uploads/2024/01/ESP32-Client-Server-Wi-Fi-Communication-Between-Two-Boards-300x169.jpg 300w, https://huecat.es/wp-content/uploads/2024/01/ESP32-Client-Server-Wi-Fi-Communication-Between-Two-Boards-768x432.jpg 768w, https://huecat.es/wp-content/uploads/2024/01/ESP32-Client-Server-Wi-Fi-Communication-Between-Two-Boards.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">Servidor:</h2>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;WiFi.h&gt;

const char* ssid = &quot;Nombre_Red_Servidor&quot;;
const char* password = &quot;Contraseña_Servidor&quot;;
WiFiServer server(80);

int buttonPin = 5;
int buttonState = 0;

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT_PULLUP);

  // Configurar el ESP32 como un punto de acceso
  WiFi.softAP(ssid, password);

  IPAddress IP = WiFi.softAPIP();
  Serial.print(&quot;AP IP address: &quot;);
  Serial.println(IP);

  server.begin();
  Serial.println(&quot;Server started&quot;);
}

void loop() {

  WiFiClient client = server.available();

  if (client) {
    //Serial.println(&quot;New client connected&quot;);
    while (client.connected()) {
      // Leer el estado del botón
      buttonState = 99;

      //String response = String(buttonState) + &quot;,&quot; + String(analogRead(A0)) + &quot;,&quot; + String(random(100));
      //client.println(response);

      if (client.available()) {
        String request = client.readStringUntil(&#039;\r&#039;);
        Serial.print(&quot;Client says: &quot;);
        Serial.print(request);
        Serial.print(&quot;, &quot;);

        int b = request.length();
        //Serial.print(&quot;b=&quot;);
        //Serial.println(b);

        if (b &gt; 2) {
          int value1 = request.substring(0, request.indexOf(&#039;,&#039;)).toInt();
          request = request.substring(request.indexOf(&#039;,&#039;) + 1);
          int value2 = request.toInt();
          Serial.print(&quot;Received values from client: &quot;);
          Serial.print(value1);
          Serial.print(&quot;, &quot;);
          Serial.println(value2);
        }

      }


      //////// cada 3 segundos envia
      static unsigned long a;
      if (millis() &gt; a + 5000) {
        a = millis();
        // Enviar dos variables simuladas al servidor
        int value1 = 2; // Valor simulado 1
        int value2 = 4; // Valor simulado 2
        int value3 = 6; // Valor simulado 2
          String response = String(value1) + &quot;,&quot; + String(value2)+ &quot;,&quot; + String(value3);
        //String response = String(buttonState) + &quot;,&quot; + String(analogRead(A0)) + &quot;,&quot; + String(random(100));

        Serial.print(&quot;Sending response: &quot;);
        Serial.println(response);

        client.println(response);

        client.stop();

      }

    }
    //Serial.println(&quot;Client disconnected&quot;);
  }
}
</pre></div>


<p></p>



<p></p>



<h2 class="wp-block-heading">Cliente:</h2>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;WiFi.h&gt;

const char* ssid = &quot;Nombre_Red_Servidor&quot;; // Reemplaza con el SSID de tu red
const char* password = &quot;Contraseña_Servidor&quot;; // Reemplaza con la contraseña de tu red
const char* serverIP = &quot;192.168.4.1&quot;; // Reemplaza con la dirección IP del servidor
const int serverPort = 80;

void setup() {
  Serial.begin(115200);

  Serial.println(&quot;Conectándose a la red WiFi...&quot;);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(&quot;.&quot;);
  }

  Serial.println(&quot;&quot;);
  Serial.print(&quot;Conectado a la red WiFi. Dirección IP: &quot;);
  Serial.println(WiFi.localIP());
}

void loop() {
  // Simular dos valores enteros para enviar al servidor
  int value1 = 1; // Valor simulado 1 (número aleatorio entre 0 y 9)
  int value2 = 3; // Valor simulado 2 (número aleatorio entre 0 y 99)

  // Construir la solicitud al servidor en el formato &quot;value1,value2&quot;
  String request = String(value1) + &quot;,&quot; + String(value2);

  Serial.print(&quot;Enviando solicitud al servidor: &quot;);
  Serial.println(request);

  // Establecer la conexión con el servidor
  WiFiClient client;
  if (client.connect(serverIP, serverPort)) {
    // Enviar la solicitud al servidor
    client.println(request);

    // Esperar la respuesta del servidor
    String response = client.readStringUntil(&#039;\r&#039;);
    Serial.print(&quot;Respuesta del servidor: &quot;);
    Serial.println(response);
    
    // Si necesitas utilizar los valores de la respuesta separados por comas, puedes hacerlo de la siguiente manera:
    int serverValue1 = response.substring(0, response.indexOf(&#039;,&#039;)).toInt();
    response = response.substring(response.indexOf(&#039;,&#039;) + 1);
    int serverValue2 = response.substring(0, response.indexOf(&#039;,&#039;)).toInt();
    //response = response.substring(response.indexOf(&#039;,&#039;) + 1);
    //int serverValue3 = response.toInt();

    Serial.print(&quot;Valores recibidos del servidor: &quot;);
    Serial.print(serverValue1);
    Serial.print(&quot;, &quot;);
    Serial.print(serverValue2);
    //Serial.print(&quot;, &quot;);
    //Serial.println(serverValue3);
  }
  
  // Esperar 5 segundos antes de enviar una nueva solicitud
  delay(5000);
}
</pre></div><p>The post <a href="https://huecat.es/conectar-dos-esp32-por-wi-fi-sin-router-de-por-medio/">Conectar dos ESP32 por Wi-Fi (Sin router de por medio)</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/conectar-dos-esp32-por-wi-fi-sin-router-de-por-medio/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Controlar un ESP32 (o esp8266) con Android utilizando AppInventor2</title>
		<link>https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/</link>
					<comments>https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Mon, 27 Nov 2023 18:01:02 +0000</pubDate>
				<category><![CDATA[ESP32]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<category><![CDATA[Ble]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[IDE]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6976</guid>

					<description><![CDATA[<p>App Inventor 2 es una plataforma en línea de código abierto que permite crear aplicaciones para dispositivos Android sin necesidad de conocimientos avanzados de programación. F App Inventor 2 fue desarrollado por Google y posteriormente transferido al MIT (Instituto Tecnológico de Massachusetts). Para este proyecto se creará una aplicación en App Inventor que se conecte [&#8230;]</p>
<p>The post <a href="https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/">Controlar un ESP32 (o esp8266) con Android utilizando AppInventor2</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>App Inventor 2 es una plataforma en línea de código abierto que permite crear aplicaciones para dispositivos Android sin necesidad de conocimientos avanzados de programación. F</p>



<p>App Inventor 2 fue desarrollado por Google y posteriormente transferido al MIT (Instituto Tecnológico de Massachusetts).</p>



<p><strong>Para este proyecto se creará  una aplicación en App Inventor que se conecte a un slider a través de Bluetooth y lo controle desde un dispositivo programado con Arduino IDE</strong></p>



<p></p>



<p></p>



<p>Aplicación en App Inventor que se conecte a un slider a través de Bluetooth y se controle desde un dispositivo Arduino con un ESP32, puedes seguir estos pasos generales:</p>



<p></p>



<h2 class="wp-block-heading">Lado de la Aplicación en App Inventor:</h2>



<p>1. <strong>Crear la Interfaz Gráfica:</strong></p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox.png"><img decoding="async" width="1024" height="718" src="https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-1024x718.png" alt="" class="wp-image-7010" srcset="https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-1024x718.png 1024w, https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-300x210.png 300w, https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-768x539.png 768w, https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><strong>2. Comienza un nuevo proyecto</strong></p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox.png"><img decoding="async" width="1024" height="497" src="https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-1024x497.png" alt="" class="wp-image-7002" srcset="https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-1024x497.png 1024w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-300x146.png 300w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-768x373.png 768w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-1536x746.png 1536w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox.png 1896w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>3. <strong>Componentes Bluetooth:</strong> Añadir el componente Bluetooth al diseño.</p>



<p></p>



<p></p>



<p></p>



<p>4. <strong>Configurar Bluetooth:</strong></p>



<ul class="wp-block-list">
<li>Configurar el componente Bluetooth para buscar dispositivos y establecer la conexión.</li>
</ul>



<ol class="wp-block-list">
<li><strong>Programar la Interacción con el Slider:</strong>
<ul class="wp-block-list">
<li>Programar la lógica que enviará los datos del slider a través de Bluetooth al dispositivo Arduino cuando se modifique su valor.</li>
</ul>
</li>



<li><strong>Manejar la Conexión y Desconexión:</strong>
<ul class="wp-block-list">
<li>Implementar lógica para gestionar la conexión y desconexión con el dispositivo Bluetooth.</li>
</ul>
</li>



<li><strong>Diseñar la Interfaz de Usuario:</strong>
<ul class="wp-block-list">
<li>Diseñar la interfaz de usuario para mostrar el estado de la conexión y otra información relevante.</li>
</ul>
</li>
</ol>



<p>En la pantalla de diseño, agrega un componente <code>Slider</code> desde la paleta de componentes.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">


Manejo del Slider y envío de datos:

En el bloque &quot;BluetoothClient1.SendText&quot;, el valor del slider se convierte a una cadena (Text), ya que el módulo Bluetooth envía datos como texto.

Asegúrate de configurar correctamente el BluetoothClient1.Address con la dirección Bluetooth de tu dispositivo.

Conecta tu dispositivo Android a tu Arduino mediante Bluetooth.
</pre></div>


<p></p>



<p></p>



<h2 class="wp-block-heading">Lado del Dispositivo Arduino (ESP32):</h2>



<ol class="wp-block-list">
<li><strong>Preparar todo para poder configurar el ESP32 con Arduino IDE.</strong>
<ul class="wp-block-list">
<li>Si aún no has configurado el Arduino IDE para tu ESP32, <a href="https://huecat.es/arduino-ide-compilar-codigo-para-esp32-esp8266/">puedes seguir estos pasos: Configurar el ESP32 con Arduino IDE</a></li>
</ul>
</li>



<li><strong>Programar la Lógica del Arduino</strong> <strong>Controlar el Slider</strong> (recibir datos)






<ul class="wp-block-list">
<li>Escribe un programa para el ESP32 que escuche los datos enviados por la aplicación a través de Bluetooth.</li>
</ul>



<ul class="wp-block-list">
<li>Implementa la lógica que ajustará el valor del slider según los datos recibidos a través de Bluetooth.</li>
</ul>
</li>
</ol>



<p></p>



<p></p>



<p>Controlar un slider en App Inventor 2 y enviar los datos al ESP32 a través de Bluetooth</p>



<p> Asegurarse tener un módulo Bluetooth conectado al microcontrolador.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
// Importar la librería para el módulo Bluetooth
#include &lt;SoftwareSerial.h&gt;

SoftwareSerial BTSerial(10, 11); // RX, TX

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600);
}

void loop() {
  if (BTSerial.available()) {
    int valor = BTSerial.parseInt();
    if (valor &gt;= 0 &amp;&amp; valor &lt;= 255) {
      // Aquí puedes utilizar el valor recibido como desees
      analogWrite(9, valor); // Por ejemplo, controlar un LED con el valor del slider
    }
  }
}
</pre></div>


<p></p>



<p></p>



<p>Este código utiliza la librería <code>SoftwareSerial</code> para comunicarse con el módulo Bluetooth en los pines 10 y 11. Luego, lee el valor entero enviado desde la aplicación y lo utiliza para controlar un LED conectado al pin 9 (se puede ajustar esto según tu configuración).</p>
<p>The post <a href="https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/">Controlar un ESP32 (o esp8266) con Android utilizando AppInventor2</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
