¡Hola! Soy Oga, diseñadora y gerente de operaciones.
Soy una veterana que se unió a la empresa en 2015, pero normalmente finjo ser una mujer en mi blog.Un artículo cuyo beneficio no está claro.A veces escribo ese tipo de cosas.
A pesar de mi actitud habitual, esta vez voy a esforzarme un poco más y hablar de algo algo más serio.
Partiendo de la base, prácticamente no tengo experiencia práctica como ingeniero.
Aunque a veces consulto la terminal por motivos de trabajo, normalmente solo echo un vistazo a los registros que aparecen, y siempre pensé que escribir comandos y crear algo por mí mismo era algo "solo para aquellos que son capaces".
Y aun así, logré completar todo, desde la configuración de red hasta la implementación de la aplicación web, usando una Raspberry Pi... Esto demuestra que cuando te ves obligado a hacer algo, eres sorprendentemente capaz.
El detonante fue el tema de los iPads para niños.
Mis hijos están constantemente con el iPad. Si los dejo solos, no hay manera de que terminen.
Así que, eso fue lo primero que quise hacer.
Justo en ese momento, recibí una directiva de la empresa que decía: "Crea algo que te guste, como un hackathon de la empresa".
Nuestra empresa está experimentando un auge sin precedentes con Claude Code. Todos los empleados lo utilizan como herramienta principal y la oficina está inmersa en un frenesí de desarrollo. Yo tengo el plan de 25 dólares al mes, pero hay usuarios avanzados que aprovechan al máximo planes aún más caros, y el ambiente está cargado de energía para "crear cualquier cosa con IA".
"Siempre he querido probar una Raspberry Pi (la razón es que me parece genial)."
"Quiero solucionar el problema del iPad desde una perspectiva de ingeniería."
"Quiero obtener algún tipo de resultado tangible en el hackathon."
Estas tres pasiones se combinaron para dar origen al proyecto "Sistema de gestión que permite activar/desactivar el wifi infantil con un solo botón en el smartphone".
A veces miro la terminal, pero casi nunca configuro nada.
Con la ayuda de Claude, y tras muchos intentos fallidos, ¡finalmente logré crear esta "caja mágica"!
Paso 1: Configuración de la Raspberry Pi
Preparación mediante Raspberry Pi Imager → Conexión SSH
Primero, instalemos el sistema operativo en la Raspberry Pi 4. Instala Raspberry Pi Imager (la herramienta oficial de flasheo) en tu Mac y graba el sistema operativo de 64 bits en la tarjeta MicroSD. Es fundamental habilitar SSH en la configuración de flasheo.
Después de conectar la Raspberry Pi al router con un cable LAN y encenderla, puedes conectarla usando solo este comando desde la terminal de la Mac.
terminal (Mac)
ssh pi@raspberrypi.local
En la terminalpi@raspberrypi:~ $Me emocioné un poco en el momento en que apareció. Primero, actualizaré el sistema.
sudo apt update && sudo apt upgrade -y
Paso 2: Configurar un punto de acceso WiFi.
Configuración de hostapd / dnsmasq / iptables
Para utilizar la Raspberry Pi como "punto de acceso WiFi", es necesario instalar dos programas informáticos.hostapdEl aparato que emite señales Wi-Fi,dnsmasqEste es el dispositivo que asigna direcciones IP a los dispositivos conectados.
sudo apt install hostapd dnsmasq
Escribe el SSID (nombre de la red Wi-Fi) y la contraseña en el archivo de configuración. Esta vez, lo llamé "KidsWiFi" para mayor claridad.
/etc/hostapd/hostapd.conf
Interfaz=wlan0
Controlador=nl80211
SSID=KidsWiFi
Modo_hardware=g
Canal=7
WPA=2
Contraseña_WPA=(contraseña)
Gestión_clave_WPA=WPA-PSK
A continuación, se especifica el rango de direcciones IP que se distribuirán a los dispositivos conectados.
/etc/dnsmasq.conf
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
Por último, configuraremos el reenvío de IP y NAT para que la Raspberry Pi funcione como un repetidor de internet. Si no lo haces, no podrás acceder a internet aunque te conectes a KidsWiFi.
# Hacer que el reenvío de IP sea persistente
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/routed-ap.conf
# Configurar NAT (para permitir el acceso a internet a través de eth0)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Me encontré con un problema: wlan0 se desconectaba cada vez que reiniciaba el sistema. Escribí un archivo de servicio systemd para que ejecutara automáticamente la configuración de red al arrancar. Esta es la escena donde resolví el problema mientras me quejaba a Claude: "¿Por qué no se conecta otra vez?".
Cuando "KidsWiFi" apareció en la lista de redes Wi-Fi de mi teléfono inteligente y me conecté a Internet, instintivamente escribí "¡Profesor! ¡Estoy conectado!" en el chat (de verdad lo escribí).
Paso 3: Crear un panel de administración mediante una aplicación web.
Implementa una pantalla controlable desde un smartphone usando Python y Flask.
Ahora que el punto de acceso WiFi está configurado, el siguiente paso es crear una pantalla de administración que se pueda activar y desactivar desde un teléfono inteligente. Usaremos el framework web de Python "Flask" para ejecutar un servidor web en la Raspberry Pi. Primero, lo desarrollé en un entorno local en mi Mac, confirmé que funcionaba y luego lo transferí a la Raspberry Pi.
Terminal (Mac): Configuración del entorno de desarrollo
python3 -m venv venv
source venv/bin/activate
pip install flask
El interruptor de encendido/apagado del WiFi en realidad solo bloquea el acceso a internet. KidsWiFi emite una señal constantemente, e iptables, un cortafuegos de Linux, controla si se descartan o no los paquetes destinados a internet. El código es sorprendentemente sencillo.
app.py (fragmento) — el núcleo del control WiFi
import subprocess
def enable_internet():
# Eliminar regla de bloqueo → Acceso a internet
subprocess.run([ 'sudo', 'iptables', '-D', 'FORWARD',
'-i', 'wlan0', '-j', 'DROP'
], capture_output=True)
def disable_internet():
# Agregar regla de bloqueo → Bloquear internet
subprocess.run([
'sudo', 'iptables', '-I', 'FORWARD',
'-i', 'wlan0', '-j', 'DROP'
], capture_output=True)
Esto por sí solo interrumpirá la conexión a internet. Un solo comando congelará el iPad de mi hijo. Sentí que había adquirido un poder increíble (aunque todavía no lo domino del todo).
Creamos pantallas separadas para el niño y el padre en el sistema.
En la pantalla infantil, sorprendentemente,Función de ruleta¡Tiene ''!
Un límite de tiempo unilateral seguramente resultará aburrido para los niños. Por lo tanto, la estrategia es que estarán más satisfechos si pueden girar la ruleta ellos mismos.
La idea es convertir la negociación, a menudo infructuosa, sobre cuándo dejar de usar el iPad en un juego divertido y entretenido, donde los usuarios reaccionan con alegría o decepción a la pregunta: "¿Cuántos minutos de tiempo Wi-Fi tendremos hoy?".
- Pantalla infantil
→ Ganarás 30 minutos, 45 minutos o 1 hora en un juego de ruleta.
→ Cuenta regresiva del tiempo restante
→Tiempo de espera de 1 hora después de que se agote el tiempo.
→Tiempo de uso acumulado
→Mostrar giros restantes en la ruleta - Panel de control para padres
→Protección de contraseña
→ WiFi de emergencia DESACTIVADO
→ Modo tarea (bloqueo total)
→Número máximo de giros de ruleta
→ Tiempo de apagado forzado
→Registro de historial de uso
Durante el desarrollo, surgió un problema: "No podemos probarlo en Mac porque iptables no está disponible". Creamos una función ficticia (que simplemente imprimía una instrucción) para Mac para poder realizar las pruebas.
Consulté con Claude sobre cada una de estas situaciones de "¡Estoy atascado! ¿Qué debo hacer?" a medida que avanzábamos.
Por cierto, como soy diseñador, esperaba tener que arreglar yo mismo el diseño de la pantalla mientras esperaba el resultado, pero me sorprendió un poco ver que el diseño era sorprendentemente limpio. Casi no tuve que hacer correcciones.
Esto es un poco frustrante, pero también bastante agradable.
Paso 4: Implementar en Raspberry Pi y automatizar el inicio.
Transferir archivos usando SCP → Registrarse como un servicio systemd
Transfiere los archivos creados en la Mac a la Raspberry Pi.scpSe puede hacer con un solo comando.
Terminal (Mac) — Transferencia a Raspberry Pi
scp -r templates app.py pi@raspberrypi.local:~/wifi-manager/
Iniciar Flask manualmente cada vez que reinicio es un engorro, así que voy a crear un archivo de servicio systemd para automatizar su inicio. El objetivo es que todo funcione automáticamente al encender el ordenador.
/etc/systemd/system/wifi-manager.service
[Unit]
Description=WiFi Manager
After=network.target wifi-setup.service
[Service]
ExecStartPre=/bin/bash -c 'echo > /home/pi/wifi-manager/state.json'
ExecStartPre=iptables -F FORWARD
ExecStart=/usr/bin/python3 /home/pi/wifi-manager/app.py
WorkingDirectory=/home/pi/wifi-manager
Restart=always
User=root
[Install]
WantedBy=multi-user.target
# Habilitar e iniciar el servicio
sudo systemctl enable wifi-manager
sudo systemctl start wifi-manager
Ahora está listo para usar con solo encenderlo. Si accedes a http://192.168.4.1:5000 desde el navegador de tu smartphone, se abrirá la pantalla de la ruleta. ¡Vaya, funcionó de verdad!
Lo que pensé después de probarlo
La razón por la que yo, que no soy ingeniero, pude completar todo, desde la configuración de red hasta Python, es sin duda porque pude "interactuar" con Claude a medida que avanzaba.
Si se bloquea, simplemente muestra un mensaje de error. Si preguntas "¿Qué debo hacer ahora?", te indicará los pasos a seguir. Si preguntas "¿Por qué sucede esto?", te lo explicará en términos sencillos.
Si bien se habla mucho de que los ingenieros utilizan la IA para acelerar el desarrollo, la IA también puede ser el aliado ideal para resolver problemas pequeños, pero urgentes, de nuestra vida cotidiana.
"Una idea puede tomar forma, trascendiendo el tamaño de la organización y las habilidades del individuo."
La mayor recompensa fue poder experimentar de primera mano la democratización de la industria manufacturera.
Ahora bien, en lo que respecta al tema crucial del iPad del niño... la verdad es que aún no se ha resuelto.
El sistema funciona a la perfección. Ahora me toca a mí, como padre/madre, gestionarlo. ¡Haré todo lo posible!
Viviendo en Fukushima, me enfrento a diario a las dificultades de mi hijo, que es muy enérgico. Aprovechando mi sensibilidad artística, desarrollada en la escuela de arte, me esfuerzo cada día como diseñadora y gestora de operaciones. Mis puntos fuertes residen en la adaptabilidad y la agilidad mental que he desarrollado como madre. Viviendo en Fukushima, me enfrento a diario a los retos de mi hijo.
Oga
Diseñador/Gerente de Operaciones