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

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.

Video en Tiktok

¿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:
  1. El ESP8266 con pantalla OLED controla todos los componentes y ejecuta el sistema de probabilidades

  2. El buzzer pasivo genera los clicks del contador Geiger con frecuencia variable

  3. El transistor 2N2222A actúa como interruptor para los LEDs de alta corriente (hasta 800mA)

  4. El LED linterna se enciende automáticamente durante las detecciones

  5. 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:
  1. Prepara tu imagen en blanco y negro (1 bit)

  2. Ajusta el tamaño (recomendado: 32x32 píxeles)

  3. Sube la imagen al conversor

  4. Configura:

    • Format: Arduino Code

    • Draw Mode: Horizontal

    • Output: Plain Bytes

  5. 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:

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