Cómo mantener despejado tu escalón

Roni Bandini
4 min readApr 2, 2024

--

Aviso listo para el diario del Lunes

Vivir en una zona de bares presenta ciertos desafíos. Uno de ellos es que muchísima gente ebria necesita sentarse en el escalón de ingreso a tu casa con el fin de gritar opiniones, entonar canciones de cancha y pelearse en cámara lenta.

Mi primera iniciativa fue colocar un cartel. Pronto descubrí algo que ya sospechaba de mis épocas de escritor de baja tirada: la gente no lee. Total que tuve que fabricar un dispositivo llamado Step Guard 1.0

El Step Guard 1.0 tenía un sensor ultrasónico en el zócalo conectado a un ESP32. Al detectar un obstáculo por más de 5 segundos — el tiempo que me tomaba abrir la cerradura — reproducía un audio gritando lo mismo que estaba escrito en el cartel “Por favor mantener…” El Step Guard 1.0 cuidó mi escalón por un año hasta que la semana pasada, un joven idealista decidió expresar su opinión sobre mi dispositivo orinando el sensor.

Sensor Ultrasónico orinado

Me pareció entonces que era el momento de subir la apuesta y diseñar el Step Guard 2.0

Todo empieza con unas notas (tuve caligrafía técnica IRAM en ORT but still)

Características de la nueva versión:

  • Planteo con sensor remoto wifi (ubicado a una altura difícilmente orinable)
  • Base interna de exquisito gusto con pantalla color, botones lumínicos y visualización del historial
  • Notificación remota vía Telegram
  • Alertas progresivas: primero solicitud de despeje, luego alarma rompe timpanos
  • Administración manual remota: aviso, sirena y muteo

Nota: hubo un intento de implementar la detección con Inteligencia Artificial/Computer Vision, pero la placa Xiao ESP32S3 con Cam integrada no conseguía mantener un enlace estable al router, así que lo reemplacé por un potente ESP32C3 de DFRobot, otro sensor Ultrasónico, una caja estanca, la minifuente de un Kindle y código de programación C++

Esquema del Step Guard 2.0

Para el módulo interno usé la fabulosa placa Unihiker de mi proveedor preferido de piezas electrónicas DFRobot. Usé también dos botones, una placa de audioUSB, un relay de un canal, un amplificador de 3 watts, el parlante de un Home Theater que arrastro en todas las mudanzas y dos fuentes de 5V. La programación del módulo interno fue realizada en Python. Telegram es utilizado no solo para las notificaciones, sino también para el enlace entre los módulos y el control remoto manual.

from telethon.sync import TelegramClient, events

client = TelegramClient('Step Guard', api_id, api_hash)
client.start()

@client.on(events.NewMessage())
async def handle(event):

print(event.text)

if event.text=='horn':
writeLog("Horn")
relay.write_digital(1)
img = gui.draw_image(w=240, h=320, image='images/start.png')
img.config(w=240, h=320, image='images/horn.png')
audio.start_play('sounds/lrad.mp3')
time.sleep(5)
relay.write_digital(0)
img.config(w=240, h=320, image='images/start.png')

Ni bien encendí el Step Guard 2.0 se acercó un beta tester.

Beta Tester ad honorem

Estoy imprimiendo el gabinete en mi vieja impresora 3d Anet A8. Quizás mañana lo tenga más presentable para la demo.

Circuito de la Unidad interna

Función del sensor para medir la distancia al obstáculo (AKA borracho)


int getDistance(){

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.println(distance);

return distance;
}

Notificaciones por Telegram

Notificaciones vía Telegram

Lista completa de partes

Unihiker
Beetle ESP32C3
Sensor Ultrasónico HCSR04
Led Switch
Relay
Speaker
Amplificador 3 watts PAM8403
2 Fuentes de 5V
1 caja estanca
Jumper cables autopercibidos hembra-hembra

Gabinete 3d del módulo interno

Gabinete diseñado en Fusion 360

Archivos

Nota: el enclosure se entrega a cambio del impuesto revolucionario destinado a reemplazar mi vieja impresora 3d Anet A8

Tutorial detallado

TikTok

Demo

--

--

Roni Bandini

Contracultura maker 🛠️ Arte electrónico 💡Inteligencia Artificial 🚀 Embedded System developer