Tabla de contenido:
- Paso 1: herramientas y materiales
- Paso 2: desmembrar la unidad original
- Paso 3: Explicación de los circuitos
- Paso 4: preparación del ATTiny85
- Paso 5: construcción del escudo Wemos
- Paso 6: preparación de Wemos
- Paso 7: Poniéndolo todo junto
Video: IOToilet: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
El IOToilet es el primer soporte de papel higiénico inteligente, que realiza un seguimiento de nuestro uso diario de papel higiénico y permite acumular estadísticas que muestran estas métricas. ¿Y por qué debería preocuparme por mi uso diario de papel higiénico? Bueno, resulta que nuestra salud abdominal, especialmente el ciclo de digestión, tiene mucho que ver tanto con nuestra salud física como con la mental. Por ejemplo, aquí hay una agradable charla TED (una de las pocas, por cierto) que profundiza sobre este tema:
Inicialmente me encargaron construir 10 unidades de este dispositivo para una agencia de branding, cuyo clip se puede ver arriba (segunda ubicación), para una campaña de marketing específica para una gran empresa. Al principio, descarté la idea como una que venía de otra mente demasiado creativa que intentaba desesperadamente ganar una cuenta de cliente, pero gradualmente creció en mí, hasta que me di cuenta del valor de la información recopilada a través de este dispositivo.
La construcción se basó en una pieza de hardware existente que mi cliente obtuvo de EBay, un dispositivo de grabación de voz encapsulado en un soporte de papel higiénico. Tenía el factor de forma correcto y todos los periféricos necesarios ya integrados, como un altavoz, un sensor de movimiento para activar el dispositivo, resortes para sostener el papel higiénico, compartimiento de la batería y un interruptor de encendido y apagado, así que opté con mucho gusto usando este ready made en lugar de modelar e imprimir el mío.
Paso 1: herramientas y materiales
Materiales usados:
Soporte para papel higiénico
Wemos D1 Mini
Chip ATTiny85, embalaje DIP
2 x transistor 2n2222
Resistencia de 220 ohmios
Resistencia de 2 * 1KOhm
Acelerómetro MPU6050
Opcional, en caso de no usar mi PCB:
Escudo de creación de prototipos de Wemos
alambre, soldadura, etc.
Herramientas utilizadas:
Dremel con disco de corte
Tarjeta de desarrollo ATTiny (para cargar el firmware de manera conveniente)
Programador USB Tiny ISP
destornillador triangular, utilicé este kit:
Paso 2: desmembrar la unidad original
Después de obtener el eje de papel higiénico original, abrí su caja con un destornillador triangular y quité el PCB original, desconectando el altavoz y dejando la mayor cantidad de cable posible conectado a él.
Luego soldé el LED y el sensor de inclinación del PCB original, para luego incrustarlo en el nuevo circuito. Preste atención a no sobrecalentar el interruptor de inclinación, ya que podría dañarlo. La mía era gris, pero como no tomé una buena foto al sacarla del dispositivo original, tuve que usar una foto de la red (ver arriba), donde estaba verde. Solo un detalle menor.
Después de abrir la caja y quitar los componentes electrónicos, también usé una Dremel para eliminar el exceso de plástico que se usó para mantener la PCB original en su lugar, estos pequeños estantes de plástico y uno de los 4 tubos roscados. Puede posponer esto hasta la etapa de montaje si lo desea, pero en cualquier caso se requerirá algún recorte de plástico.
Paso 3: Explicación de los circuitos
Entonces, aquí hay un poco sobre la lógica detrás del circuito:
Para que las baterías duren mucho tiempo, tuve que poner tanto el acelerómetro MPU6050 como el procesador ESP8266 en el Wemos D1 Mini para dormir entre activaciones. La primera se hizo fácilmente usando un transistor que encendía y apagaba el MPU6050.
Nota: inicialmente pensé que podría programarlo para enviar una señal de interrupción que activará el procesador principal. Por desgracia, no pude encontrar la manera de que sucediera, configurar los registros adecuados del MPU6050 fue una tarea complicada que todavía no sé si es posible en absoluto …
Mi segunda opción fue usar el interruptor de inclinación suministrado con la unidad original para activar el ESP. Primero lo até directamente al pin RESET de Wemos como se describe en las fotos de arriba, usando un transistor para activar / desactivar el mecanismo. Cuando la base del transistor estaba alta, el GND podía pasar a través del interruptor de inclinación y hacer que se conectara temporalmente al pin RESET, provocando el reinicio de la MCU (esta es la única forma de despertar a un ESP del sueño profundo, aparentemente). Luego conecté D0 a la base del transistor, siguiendo la premisa de que esta pata está ALTA siempre que la MCU esté durmiendo, y tan pronto como se despierta, D0 vuelve a BAJA, deshabilitando el mecanismo de reinicio. Después de todo, no necesitaba que ocurriera un reinicio recurrente, solo por primera vez cuando el soporte del papel higiénico comenzó a moverse.
Sin embargo, lo que descubrí fue que el pin D0 tarda bastante tiempo después del reinicio de la MCU en volver a BAJO, unos 200 ms. Esto significaba que si giraba el soporte del papel higiénico lo suficientemente rápido mientras la MCU estaba durmiendo, se producirían varios RESET, en lugar de contar las rondas, como debería.
Entonces, intenté resolver esta nueva situación con algunos componentes discretos (capacitores, transistores, etc.) pero solo logré obtener una solución parcial al problema.
Terminé agregando otro MCU, un ATTiny85, que se despertaba del sueño con el interruptor de inclinación, luego, despertaba el ESP8266 y esperaba un tiempo antes de volver a dormir. Sé que probablemente esta no sea la solución más económica al problema, pero tenía una fecha límite …
Puede ver la solución detallada en el esquema que he incluido. Tenga en cuenta que las resistencias de 10K se reemplazaron por 1K ya que las de 10k eran demasiado altas para que los transistores se abrieran por completo.
Paso 4: preparación del ATTiny85
Si nunca ha programado un ATTiny85, ¡no tema! El uso del querido IDE de Arduino puede llevarlo hasta el final. Comience con estas instrucciones sobre cómo configurar el IDE de Arduino:
github.com/SpenceKonde/ATTinyCore/blob/mas…
A continuación, instale los controladores para USBTinyISP desde aquí:
learn.adafruit.com/usbtinyisp/drivers
Ahora, cargue el código de prueba adjunto: WakeOnExternalInterruptTest.ino
y conecte (consulte el diagrama de pines ATTiny85):
1. Botón de tacto entre el pin 3 y tierra
2. Un led y una resistencia de 220 Ohm en serie, entre el pin 2 y tierra
Próximo, Seleccione el USBTinyISP como programador (en Herramientas -> Programador) y cargue el boceto de prueba en la placa.
El LED debería parpadear 5 veces, luego el chip debería irse a dormir. Presionar el botón hará que se despierte y repita esa secuencia.
¿Tiene que funcionar? ¡estupendo! Sube el boceto final "Awakener" al ATTiny, para usarlo en el circuito final.
Paso 5: construcción del escudo Wemos
Entonces, para construir el escudo tienes 3 opciones entre las que puedes elegir:
1. Use un prototipo estándar para el Wemos y suelde los circuitos en él.
2. Fabrique una placa de circuito impreso, basándose en los archivos EAGLE adjuntos.
3. Pídanme un PCB que pueda enviarles por correo postal (tengo algunos por ahí, el costo es casi nulo).
En cualquier caso, recomiendo construir el circuito en una placa de pruebas antes de comprometerse con la PCB.
Si usa las opciones de PCB, asegúrese de conectar el cable negro como en las fotos, ya sea en la parte frontal o posterior de la placa (este último funcionó mejor para mí). Este cable conecta el GND del Wemos al ATTiny85 y sin él, no se producirá el despertar.
Solo mire bien las imágenes y lea las anotaciones que agregué, esto debería ser suficiente.
Paso 6: preparación de Wemos
Si nunca ha utilizado el IDE de Arduino para programar una placa Wemos, comience por instalar el administrador de la placa y seleccione la placa en el menú Herramientas -> Placa, como se describe aquí:
github.com/esp8266/Arduino
Comience cargando el boceto parpadeante en su tablero, asegurándose de que el código se cargue correctamente.
Paso 7: Poniéndolo todo junto
Instale el escudo en el Wemos. Puedes soldarlo, pero te recomiendo usar cabezales hembra soldados al Wemos que permitirán una conexión temporal entre el Wemos y el escudo, en caso de algún problema. Solo tenga en cuenta que el cabezal hembra deberá desprenderse en la etapa final de ensamblaje para que la unidad encaje en la carcasa de plástico. Además, para hacer las cosas un poco más complicadas, existe una buena posibilidad de que cuando el escudo esté conectado a Wemos, la carga de código se deshabilite. Me encontré con ese fenómeno de una manera no consistente y no tuve tiempo para investigarlo.
Un consejo: planifique con anticipación.
¡Ahora, probando!
Una vez instalado, comience cargando el boceto de prueba del acelerómetro Blink en el Wemos y asegúrese de que enciende y apaga el LED MPU6050. Si no es así, verifique el cableado del transistor responsable de alimentar el MPU6050. Su base debe estar conectada al pin D5 del Wemos, el colector debe estar conectado al GND del acelerómetro y el Emisor debe estar conectado al GND común.
A continuación, cargue el boceto TurnCountTest1 en la placa Wemos y abra Serial Monitor. Debería ver los datos provenientes del acelerómetro presentados en el monitor. Si no funciona, verifique el reloj y el cableado de datos: CLK debe estar conectado a D1 y DATA debe estar conectado a D2.
Ahora, suelde el interruptor de inclinación a los orificios designados en la placa (ver anotaciones), asegurándose de que esté perpendicular al eje de rotación para que al girar el eje se cierre y se abra la conexión entre sus dos cables.
A continuación, conecte la entrada de la batería 3V al Wemos VCC y su terminal negativo al Wemos GND. Asegúrese de que al encender el interruptor se enciende la unidad. Por último, conecte el altavoz a GND y pin D4 del Wemos.
Sube el código final a Wemos, un boceto llamado SmartWipe. Abra un monitor en serie y asegúrese de que la unidad se duerma después de 3 minutos y se despierte moviendo el interruptor de inclinación (los mensajes correspondientes deberían aparecer en el monitor).
Si desea disminuir el tiempo que Wemos está despierto (principalmente para propósitos de prueba), disminuya el valor de WIFI_CONFIGURATION_IDLE_TIMEOUT definido en params.hy cargue el boceto en el tablero. Asegúrese de que después de que el Wemos se duerma profundamente, mover el interruptor de inclinación hace que el ATTiny se despierte (señalado por el LED), lo que, a su vez, despierta al Wemos.
Cambie el valor del parámetro de nuevo a 180000L (3 minutos, en milisegundos) y asegúrese de que Wemos encienda un Hotspot llamado IOToilet_XXXXXXXX donde XXXXXXX se recuperará de la dirección MAC del chip. Conéctese a este Wifi usando un teléfono inteligente, y debería ser dirigido a un formulario de registro (un mecanismo llamado Portal Cautivo). Complete los detalles, especialmente importante es el SSID y la contraseña de su wifi local, y envíe el formulario. Luego, la unidad debe intentar conectarse a la red utilizando las credenciales proporcionadas y, si tiene éxito, reproducir 3 sonidos ascendentes en el altavoz. Si hubiera habido un problema al conectarse al Wifi, se reproducirán 3 sonidos descendentes. Después de eso, los Wemos deben dormir profundamente, hasta que los despierte el movimiento.
Finalmente: prueba del sistema de extremo a extremo.
Haga rodar el soporte del papel higiénico a lo largo de su eje de rotación unos cuantos giros, luego colóquelo sobre una superficie firme (para indicar que el uso del rollo ha terminado y activar la carga de datos). Espere unos 10 segundos para que el recuento de rollos se envíe a la nube, luego vaya a https://smartwipe-iot.appspot.com/ y haga clic en Consulta. ¡Debería ver sus detalles de registro y su recuento de registros de uso reciente en la nube! Asegúrese de anotar su uuid, que es su identificación única en el sistema, extraída de la dirección MAC de su Wemos.
Si desea extraer solo sus estadísticas en formato JSON, use una URL similar a esta:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
simplemente reemplace uuid con el suyo.
He incluido todas las fuentes para la aplicación web, que está alojada en el motor de aplicaciones de Google para que los usuarios que deseen obtener más privacidad para los datos, puedan implementarla en su propio usuario de Google, agregar autenticación, etc.
Cuando todo esté funcionando, coloque los componentes electrónicos en la carcasa de plástico, recortando el plástico con una dremel según sea necesario. Toda la pieza debe encajar bien en la carcasa.
¿Problema? ¡Escríbeme!
¡UNIDOS HACEMOS POOP!
Recomendado:
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática Este / Oeste: 11 pasos (con imágenes)
Oficina con pilas. Sistema solar con paneles solares y turbina eólica con conmutación automática de este a oeste: El proyecto: Una oficina de 200 pies cuadrados debe funcionar con baterías. La oficina también debe contener todos los controladores, baterías y componentes necesarios para este sistema. La energía solar y eólica cargará las baterías. Hay un pequeño problema de solo
Cómo: Instalación de Raspberry PI 4 Headless (VNC) con Rpi-imager e imágenes: 7 pasos (con imágenes)
Cómo: Instalar Raspberry PI 4 Headless (VNC) con Rpi-imager e imágenes: planeo usar este Rapsberry PI en un montón de proyectos divertidos en mi blog. No dudes en comprobarlo. Quería volver a usar mi Raspberry PI, pero no tenía un teclado ni un mouse en mi nueva ubicación. Ha pasado un tiempo desde que configuré una Raspberry
Inteligencia artificial y reconocimiento de imágenes con HuskyLens: 6 pasos (con imágenes)
Inteligencia artificial y reconocimiento de imágenes con HuskyLens: ¡Hola, chicos! Akarsh aquí de CETech. En este proyecto, vamos a echar un vistazo a HuskyLens de DFRobot. Es un módulo de cámara impulsado por inteligencia artificial que es capaz de realizar varias operaciones de inteligencia artificial como el reconocimiento facial
Reconocimiento de imágenes con placas K210 y Arduino IDE / Micropython: 6 pasos (con imágenes)
Reconocimiento de imágenes con placas K210 y Arduino IDE / Micropython: ya escribí un artículo sobre cómo ejecutar demostraciones de OpenMV en Sipeed Maix Bit y también hice un video de demostración de detección de objetos con esta placa. Una de las muchas preguntas que la gente ha hecho es: ¿cómo puedo reconocer un objeto que la red neuronal no está tr
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil