Cómo Hacer un Detector de Fantasmas con ESP8266 y Pantalla OLED
Antonio Romero


Hola, soy Antonio, y hoy os traigo un proyecto para halloween: un detector de fantasmas simulado con ESP8266 que realmente parece estar detectando algo.
Es uno de esos proyectos que combinan programación, electrónica y diversión a partes iguales (y admito que también asusta un poco cuando funciona 😄).
Este detector tiene efectos de sonido tipo contador Geiger, pantalla OLED con animaciones, LEDs que parpadean según la intensidad y un sistema de probabilidades aleatorias que hace cada detección única. Perfecto para Halloween, experimentos o simplemente construir y programar un poco.
¿Qué es un detector de fantasmas gamificado?
A diferencia de los típicos proyectos que solo parpadean LEDs, este dispositivo simula una detección progresiva de "presencias paranormales" con 5 niveles de intensidad que aumentan o disminuyen aleatoriamente.
Ventajas de este diseño:
✅ Sistema de niveles progresivos - Desde búsqueda hasta aparición completa
✅ Efectos sonoros - Contador Geiger que acelera con la intensidad
✅ Completamente funcional - No necesitas ser un experto en programación
✅ Personalizable - Cambia imágenes, sonidos y probabilidades
⚡ Elementos necesarios
🔌 Electrónica:
🔧 Herramientas:
Soldador de estaño (opcional pero recomendado)
Protoboard para prototipado
Cables dupont
Multímetro (para verificar conexiones)
🖨️ Software:
Arduino IDE configurado para ESP8266
Librerías: Adafruit GFX y Adafruit SSD1306
🤓 Dato Curioso
El efecto de sonido tipo contador Geiger es uno de los más icónicos en películas de ciencia ficción y terror. Los detectores reales de radiación usan este sonido porque cada "click" representa una partícula detectada. En nuestro proyecto, la frecuencia de clicks aumenta progresivamente según el nivel de detección, creando tensión dramática. ¡Es el mismo principio que usan los juegos de terror modernos!
¿Cómo funciona el circuito?
Para los que queráis entender la electrónica detrás de este proyecto:
Materiales y cual es su función:
El ESP8266 con pantalla OLED controla todos los componentes y ejecuta el sistema de probabilidades
El buzzer pasivo genera los clicks del contador Geiger con frecuencia variable
El transistor 2N2222A actúa como interruptor para los LEDs de alta corriente (hasta 800mA)
El LED linterna se enciende automáticamente durante las detecciones
El botón inicia y controla el sistema de búsqueda
Conexiones principales:
Pantalla OLED (I2C):
SDA → D6 (GPIO14) SCL → D5 (GPIO12) VCC → 3.3V GND → GND
Buzzer:
Pin + → D8 (GPIO15) Pin - → GND
Botón:
Terminal 1 → D3 (GPIO0) Terminal 2 → GND (Usa pull-up interno, no necesita resistencia)
LEDs con Transistor 2N2222A:
ESP8266 D7 → [1kΩ] → Base Emisor → GND Colector → LEDs en serie [100Ω] → 3.3V/5V
Importante: El transistor es necesario porque los pines del ESP8266 solo proporcionan 12mA máximo, insuficiente para múltiples LEDs de alta corriente.
El Sistema de Probabilidades
Una de las partes más interesantes del código es cómo decide qué nivel aparecerá:
void selectNewTarget() {
int roll = random(100); if (roll < 30) { targetLevel = LEVEL_NONE; // 30% - Sin detección }
else if (roll < 55) { targetLevel = LEVEL_LOW; // 25% - Leve }
else if (roll < 75) { targetLevel = LEVEL_MEDIUM; // 20% - Media }
else if (roll < 90) { targetLevel = LEVEL_HIGH; // 15% - Alta } else { targetLevel = LEVEL_GHOST; // 10% - ¡Fantasma! }
}
Cada 10 segundos, el sistema elige un nuevo nivel objetivo y transiciona gradualmente hacia él. Esto crea una experiencia impredecible y emocionante.
Efecto Contador Geiger
Los clicks del buzzer cambian según el nivel:
void playGeigerClick() {
if (currentLevel == LEVEL_GHOST) { // Clicks muy rápidos con frecuencia variable
int freq = random(2500, 3500); tone(BUZZER_PIN, freq, 25); clickInterval = random(30, 70); } // ... más niveles con diferentes velocidades }
La frecuencia y velocidad aumentan progresivamente, generando tensión.
🎨 Personalizar las Imágenes
Si quieres cambiar el fantasma o añadir tus propias imágenes, usa esta herramienta online:
🔗 Images to Byte Array Converter
Cómo usarla:
Prepara tu imagen en blanco y negro (1 bit)
Ajusta el tamaño (recomendado: 32x32 píxeles)
Sube la imagen al conversor
Configura:
Format: Arduino Code
Draw Mode: Horizontal
Output: Plain Bytes
Copia el array generado y sustitúyelo en el código
Esto te permite crear detectores temáticos: zombies, alienígenas, ¡lo que quieras!
📦 Archivos del Proyecto
He preparado todos los recursos para que puedas replicar este proyecto:
💻 Código:
🔌 Documentación:
🎨 Recursos:
Encuentra todo GRATIS en:
Grupo de Telegram: t.me/artificialroot_oficial
Conclusión
Este detector de fantasmas es un proyecto perfecto para Halloween que combina programación, electrónica y diversión. El resultado es un gadget que realmente parece estar detectando algo, gracias a los efectos de sonido progresivos, las animaciones y el sistema de probabilidades aleatorias.
Lo mejor de todo es que es completamente personalizable. Puedes ajustar las probabilidades, cambiar los mensajes, modificar las animaciones y adaptarlo a tu gusto. ¿Detectores de alienígenas? ¿De zombies? ¡Las posibilidades son infinitas!
¿Lo vais a construir? Me encantaría ver vuestras versiones. Etiquetadme en redes sociales o compartid fotos en el grupo de Telegram. Y si tenéis dudas durante el montaje, preguntad sin problema.
¡Nos vemos en el próximo proyecto! 🎃👻
Antonio
