sábado, 25 de octubre de 2025

ESP32C3 MINI - WEB SERVER modo Router

  Página principal


ESP32C3 MINI
WEB SERVER modo Router

Hace unos años realicé con el ESP8266 un montaje que hacía encender 4 LED desde un navegador.
http://seta43.duckdns.org/espb.html
En este montaje realizo un servidor en modo Router, en este modo, el router es el centralizador de todos los dispositivos, ya sean mediante cable de RED, o mediante el WIFI. Ademas si el router tiene acceso a INTERNET, el ESP32C3 podrá servir los datos al exterior.
Para poder acceder a nuestro ESP32C3 desde Internet, deberemos acceder la router y cambiar el direccionamiento de puerto 80 (o el puerto que queramos)  a la IP de nuestro ESP32C3.





No pude resistir el colocar un sensor de humedad temperatura en el bus I2C, y coloqué un AHT20.
También podemos observar que activando do desactivando el último botón, cambiamos el tipo de botones.




Antes de cargar el programa en el ESP32C3 , debemos colocar el nombre de nuestra WIFI y la contraseña.

const char* ssid = "MiWIFI";
const char* password = "password";


PROGRAMA

VIDEO

Saludos.
Juan Galaz



Bibliografía:

https://randomnerdtutorials.com/getting-started-esp32-c3-super-mini/
http://seta43.duckdns.org/espb.html
https://github.com/sidharthmohannair/Tutorial-ESP32-C3-Super-Mini
https://www.luisllamas.es/probamos-el-nuevo-esp32-c3-el-sustituto-del-esp8266/
https://www.espressif.com/sites/default/files/documentation/esp32-c3-mini-1_datasheet_en.pdf
https://www.mechatronicstore.cl/conectando-la-esp32-c3-super-mini-a-arduino-paso-a-paso/?srsltid=AfmBOopdSs8GEHCtRzY2aXz168xDNPLSEk_YsHXers0j9pHBz6SHsCk4
https://www.youtube.com/watch?v=0sum5XaOdW0

jueves, 23 de octubre de 2025

CONECTAR 2 DISPLAYS OLED SSD1306 A UN ARDUINO NANO


CONECTAR 2 DISPLAYS OLED SSD1306 A UN ARDUINO NANO
Alfredo Segura, México. Octubre de 2025.


El experimento fue largo y falto de información por parte de la comunidad y del propio foro de Arduino. Se trata de conectar 2 displays OLED SSD1306 (128x64) a un Arduino mediante el bus I2C, para lo cual procedí a cambiar de lugar en uno de ellos, el resistor que define la ADDRESS del mismo dispositivo, de tal manera que pueda ser detectado y utilizado por el I2C del Nano.

Esta nueva ADDRESS será la 0x3D que, de acuerdo con el datasheet del SSD1306, corresponde a la línea D/C (Data / Control) del chip interno del OLED, como se muestra en las siguientes imágenes:

Con estos arreglos, tenemos un OLED con la ADDRESS 0x3C original y otro con la 0x3D, listos para que el Arduino Nano los reconozca.

En el IDE de Arduino existe en el menú Archivo -> Ejemplos -> Wire -> Wire Scan que es un código que nos permite, previamente grabado en el Arduino Nano, observar los dispositivos I2C conectados. Así que ponemos ambos displays OLED (uno de ellos ya modificado) y efectivamente observamos en el Monitor Serial a 9600 bps, que aparecen las direcciones 0x3C y 0x3D.

Procedemos a teclear nuestro código para que el Arduino Nano nos controle ambos displays, mostrando en cada uno de ellos mensajes diferentes:

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

. . .

// Damos nombres diferentes a las instancias de Adafruit_SSD1306:

Adafruit_SSD1306 oleddisplay(ancho, alto, &Wire, -1);

Adafruit_SSD1306 displayoled(ancho, alto, &Wire, -1);

// En el setup, iniciamos Wire y verificamos que sean detectados ambos display:

Void setup() {

. . .

if (!oleddisplay.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 0x3C

Serial.println("No está respondiendo el OLED 0x3C...");

for(;;);

}

Serial.println("Respondiendo correctamente el OLED 0x3C...");

if (!displayoled.begin(SSD1306_SWITCHCAPVCC, 0x3D)) { // 0x3D

Serial.println("No está respondiendo el OLED 0x3D...");

for(;;);

}

Serial.println("Respondiendo correctamente el OLED 0x3D...");

. . .


Y es precisamente aquí , que al tratar de detectar el OLED SSD1306 con ADDRESS 0x3D, se queda colgado el programa y en el Monitor Serial aparece la leyenda: “No está respondiendo el OLED 0x3D...”

Por supuesto podemos buscar la causa de este problema, sobre el cual yo analicé los archivos Adafruit_GFX.h y Adafruit_GFX.cpp y no encontré algo obvio sobre el mal funcionamiento.

Sin embargo, si al OLED modificado, se le devuelve el resistor a su posición original, para que vuelva a tener la ADDRESS 0x3C y se conectan ambos al Nano, los mensajes que se envían vía I2C, aparecen en los dos displays idénticos.

Buscando en Internet, alguien propuso usar un demultiplexor para lograr separar los comandos a un display y al otro, con los pines adicionales del Nano para controlar dicho demultiplexor. Lo planteó al foro de Arduino pero fue desanimado de hacerlo, y en su lugar se le sugirió usar otro circuito integrado que ya viene ex profeso para ese fin, el PCA9548.

Como había que conseguir dicho circuito integrado y yo tenía el CD4066B que consiste de 4 switches analógicos bidireccionales, me decidí hacer mi proyecto con este chip, del cual muestro su imagen:

Conectado este circuito integrado al Arduino Nano y a los displays OLED SSD1306, tenemos el diagrama final:

Finalmente el circuito completo montado en un protoboard, ha quedado funcional:

PROGRAMA ARDUINO



Alfredo Segura, México. Octubre de 2025.



NE555 Generador de frecuencia variable

 

NE555
Generador de frecuencia variable
Ing. Alfredo Segura, México octubre de 2025.

Como la señal analógica es más difícil guardarla en memorias convencionales, (a no ser que se use un Ap9600 o un ISD1420), la señal convertida en frecuencia conservando su amplitud sin cambios, si puede ser guardada como datos en un dispositivo de almacenamiento digital, como un disco duro, un ssd, una memoria RAM, etc.


VIDEO SIMULACIÓN


miércoles, 22 de octubre de 2025

Encender 4 LED con un móvil utilizando ESP32 C3


ESP32C3 MINI
WEB SERVER AP (Punto de acceso)



Hace unos años realicé con el ESP8266 un montaje que hacía encender 4 LED desde un navegador.
http://seta43.duckdns.org/espb.html
En este montaje realizo un servidor en modo Punto de Acceso.
Se conecta directamente el teléfono movil al wifi creado con el ESP32 C3, sin intervención de ningún router.


Probando varias placas y consultando varios tutoriales, encontré mi placa que funcionaba como LOLIN C3 MINI.
El problema que existen muchos ensambladores de placas, y algunos no figuran el modelo.
En mi caso la configuración de pins son:
static const uint8_t TX = 21;
static const uint8_t RX = 20;

static const uint8_t SDA = 8;
static const uint8_t SCL = 10;

static const uint8_t SS = 5;
static const uint8_t MOSI = 4;
static const uint8_t MISO = 3;
static const uint8_t SCK = 2;

static const uint8_t A0 = 0;
static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;
Que cada uno mire en su placa la configuración de pins.
Se puede encontrar en:
    /home/usuario/.arduino15/packages/esp32/hardware/esp32/3.3.0/variants/lolin_c3_mini

El primer montaje solo utilizo 4 diodos LED y una resistencia.
El mando de encendido y apagado se hace con un teléfono conectado directamente la Wifi creado con el ESP32 C3.





Me di cuenta que no se proporcionaba ninguna información , por lo que he añado un OLED donde indico el nombre de la red Wifi, la contraseña y la IP.




PROGRAMA

VIDEO

Saludos.
Juan Galaz



Bibliografía:

https://randomnerdtutorials.com/getting-started-esp32-c3-super-mini/
http://seta43.duckdns.org/espb.html
https://github.com/sidharthmohannair/Tutorial-ESP32-C3-Super-Mini
https://www.luisllamas.es/probamos-el-nuevo-esp32-c3-el-sustituto-del-esp8266/
https://www.espressif.com/sites/default/files/documentation/esp32-c3-mini-1_datasheet_en.pdf
https://www.mechatronicstore.cl/conectando-la-esp32-c3-super-mini-a-arduino-paso-a-paso/?srsltid=AfmBOopdSs8GEHCtRzY2aXz168xDNPLSEk_YsHXers0j9pHBz6SHsCk4
https://www.youtube.com/watch?v=0sum5XaOdW0

martes, 14 de octubre de 2025

Antena Loop III

  Página principal

Antena Loop
III
Una vez que tenemos construida la antena Loop pasamos a la parte de control de sintonia.
En este artículo realizo la parte de control de los 2 servos que manejan la capacidad de los condensadores de la antena Loop.


Para el control de los dos servos se podría emplear un mando infrarrojo, alguna vez lo he empleado.
Pronto lo desestimé,  el mando por infrarrojos debe tener visión directa con la antena, en muchos casos la antena puede estar en el exterior, y la emisora en el cuarto de radio, en el interior.
La opción más fácil es emplear Bluetooth, y eso hice, utilizar un arduino junto con un módulo bluetooth (HC-05 o HC-06).
Una vez montado todo, funcionaba perfectamente.
Como yo no estaba totalmente satisfecho, pensé en utilizar un Chip ESP32 que tiene incorporado el Bluethooth, y empece con probar con el ESP32-C3, es pequeño y tiene todo lo necesario.
No tenía mucha práctica con el ESP32-C3, pero empecé con ello.
Monte el circuito con los 2 servos, y todo funcionaba bien manejándolos desde la consola serie, pero cuando pasé a la parte de Bluetooth todo se torció. El ESP32-C3 no es compatible con Bluetooth clásico, sino que utiliza Bluetooth de baja energía (BLE), y este no soporta el interface serie.
Hice bastante pruebas, y cuando conseguí que funcionase algo del Bluetooth, resultó que la señal no pasaba ni una pared.
Cansado de perder el tiempo con el ESP32-C3, pasé a su hermano mayor el ESP32 clásico.
Montado el circuito con el ESP32 todo funcionaba a la primera.


El circuito está alimentado por 2 baterías 18650 de 3.7V en serie .
Los 7,4V se reducen a 5V con un 7805 que alimentará los 2 servos y el ESP32.
Todo los componentes se meten en una caja estanca eléctrica, de la cual sale el cable que se conecta a los 2 servos.
En mi caso no he colocado un interruptor, he utilizado un conector externo.


Para el control a distancia utilizo un móvil android.
En un primer momento he utilizado una aplicación gratuita  Serial Bluetooth Terminal.


Funciona perfectamente, y si configuras algún botón, mucho mejor.
Las opciones son:
x34    Cambia el valor de C1 a 34 , condensador grande.
y45    Cambia el valor de C2 a 45 , condensador pequeño.

+    Incrementa el valor de C1
-    Decrementa el valor de C1
q    Incrementa el valor de C2
a    Decrementa el valor de C2

o    Activa los servos.
c    Desactiva los servos.


Conviene una vez que se sintoniza la antena, desactiva los servos.

Funcionaba bien, pero no estaba conforme con utilizar este programa.
Busqué en mis antiguos proyectos de android, y encontré uno que hacía uso del terminal serie por Bluetooth.
En este caso estaba programado en B4A , un compilador Basic para android.
Desde que había programado en B4A había pasado mucho tiempo, y me costó empezar.
Ahora el programa era de código abierto, pero tuve bajar todos los ficheros, además de que solo funcionaba en 32 bits.
Como quería que funcionase en dispositivos antiguos, tuve que importar proyectos antiguos, si creaba uno nuevo ya no funcionaba  en dispositivos antiguos. :(  . Además al instalar el programa creado debes aceptar una doble confirmación.
Al final conseguí que funcionase,  aunque la interface es un poco fea.




Ajuste de la antena LOOP.



Programas , Arduino, B4A, APK

VIDEO

Espero que os haya gustado este montaje, me ha llevado bastante tiempo.


Saludos.
Juan Galaz



Bibliografía:

https://loop-magnetic-ce3yu.blogspot.com/2015/01/antena-loop-magnetica_31.html
https://www.nonstopsystems.com/radio/frank_radio_antenna_magloop.htm#top-of-page
http://www.pearltrees.com/kc4fne/loop-antennas/id25196879
http://www.radioamatoripeligni.it/i6ibe/loopflat/loopflat.htm
https://www.ivarc.org.uk/uploads/1/2/3/8/12380834/multi-band_hf_magnetic_loop_slides_-1.pdf





lunes, 13 de octubre de 2025

Antena Loop II

  Página principal

Antena Loop
II

Hace un año había realizado una antena Loop, o antena de aro. http://seta43.duckdns.org/ante_s/ante_s.html
La había realizado con cable coaxial
RG213. Este cable pesa mucho y la antena era difícil de manipular.
Además la sintonía a la que la antena funciona, frecuencia de resonancia, se hace a través de un condensador variable.
O tienes la antena cerca, o no hay manera de cambiar de frecuencia.
Al tener la antena cerca, supone un peligro, tensiones muy altas en el condensador (varios kV incluso a baja potencia).
Calambrazos he sufrido en mis propias carnes al intentar sintonizar la antena mientras transmitía con 2W, no es que fueran grandes, pero se notaban. Yo me imaginaba con 100W de transmisión, y se me ponían los pelos de punta.


(c) 2019Alan Badcock

¿Ventajas de un Mag-Loop?

-Disposiciones de montaje sencillas de tamaño compacto.
-Rechaza las interferencias eléctricas (mejora de 2-3 puntos S).
-Tiene polarización vertical e irradia en ángulos altos y bajos a lo largo del plano del bucle, por lo que es bueno para NVIS y Dx.
-Presenta un nulo en el eje del bucle que se puede utilizar para reducir el impacto de una fuente de interferencia eléctrica.
-Banda muy estrecha en resonancia, por lo que puede reducir las fuertes interferencias de señal.
-Puede construirse para banda única o multibanda.


¿Desventajas de un Mag-Loop?

-Debe volver a sintonizarse periódicamente ya que el ancho de banda en resonancia es muy estrecho.
-Se necesita una unidad de reducción grande para un ajuste preciso.
-Tiene una resistencia a la radiación muy baja (miliohmios), por lo que cualquier pérdida del circuito afecta.
-La eficiencia requiere dramáticamente una construcción cuidadosa.
-Tensiones muy altas en el condensador (varios kV incluso a baja potencia), por lo que el espaciado y las clasificaciones de los componentes son importantes.
-Las grandes corrientes de bucle también aumentan los peligros, por lo que debe mantenerse alejado del contacto con el
antena. Se debe mantener al menos 1 m (o más en QRO) del bucle.
Se puede generar un fuerte campo magnético. - Piense en seguridad con CUALQUIER antena.

¿Que es lo que modifico en este nuevo proyecto?
Lo principal es el material utilizado para el aro. En vez de utilizar
cable coaxial RG213, utilizo tubo de calefacción multicapa.

La primera vez que lo vi utilizar fue a EA1PA (Salva) , un aficionado a la radio.
Este material se dobla bastante bien, y peso poco respecto al cable coaxial.
Debemos pelar un poco el tubo para dejar al descubierto el aluminio, es el conductor de resonancia de la antena.
El precio del tubo multicapa está entre 0,80 y 1,60 Euros el metro, dependiendo la tienda. En Leroy 2m cuestan 1,6 €.

Como condensador de sintonía he utilizado uno que tenía de hace bastantes años, soy bastante chatarrero y todo me sirve.
Pero claro, el problema de estas antenas es que deben sintonizarse muy fino, y esto es difícil mediante un solo condensador.
Pensando y pensado, y como no tenía un condensador variable de baja capacidad, decidí fabricarlo.
La fabricación me ha llevado algún tiempo, y se ha realizado en PLA , imprimiendo todas la piezas en una impresora 3D.
También se debe de disponer de laminas de metal, que se recortarán en diferentes formas.







Los 2 condensadores montados en paralelo. Los servos es otra historia de otro artículo.

He realizado 2 aros para tener mas margen al utilizar varias bandas de radioaficionado.




La proporción entre el aro grande y el pequeño es de  1/5.
Para conseguir llegar a todas las bandas se utilizan condensadores de entre 30 pF y 60 pF en paralelo con el aro grande.
Los condensadores deben ser cerámicos (alta tensión), cualquier otro tipo no funcionará o se cortocircuitará rápidamente.

Terminada la construcción de la antena de aro,  junto con los 2 condensadores y 2 servos que harán de manipulación de los condensadores, ahora viene la parte del control, esto lo haré en el próximo artículo.


Saludos.
Juan Galaz



Bibliografía:

https://loop-magnetic-ce3yu.blogspot.com/2015/01/antena-loop-magnetica_31.html
https://www.nonstopsystems.com/radio/frank_radio_antenna_magloop.htm#top-of-page
http://www.pearltrees.com/kc4fne/loop-antennas/id25196879
http://www.radioamatoripeligni.it/i6ibe/loopflat/loopflat.htm
https://www.ivarc.org.uk/uploads/1/2/3/8/12380834/multi-band_hf_magnetic_loop_slides_-1.pdf