Tabla de contenido:
- Paso 1: Equipo
- Paso 2: báscula de Wii Balance Board
- Paso 3: configuración de Bluetooth
- Paso 4: lectura de la escala
- Paso 5: Ajustes de hardware
- Paso 6: estado inicial
- Paso 7: Guión final
- Paso 8: Panel de control
- Paso 9: SMS
- Paso 10: Conclusión
Video: Escala inteligente Raspberry Pi: 10 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
¿Estás cansado de mirar todas las mañanas esa báscula de baño aburrida, vieja y con malas noticias? La que a menudo te dices "te odio" como cada vez que la pisas. ¿Por qué nadie ha creado una báscula que sea realmente divertida o motivadora? Es hora de crear una báscula que no solo sea inteligente sino que tenga un poco más de personalidad para alegrar tu día. Vamos a construir nuestra propia báscula de baño de mensajería de texto, seguimiento de peso y hackeable que viene con un sentido del humor incorporado.
Este es un proyecto fácil y divertido que combina un tablero de equilibrio de Wii, una Raspberry Pi y una plataforma de análisis de datos en línea para crear una báscula conectada a la web controlada por un script de Python que puede piratear.
Nivel del proyecto: Principiante Tiempo aproximado para completar: 20 minutos Factor de diversión: Inmensurable
En este tutorial paso a paso, podrá:
- conecte una tabla de equilibrio de Wii a una Raspberry Pi a través de bluetooth ejecute un script de Python que mida su peso cuando pise la tabla de equilibrio
- use una Raspberry Pi para transmitir su peso a un servicio en la nube (estado inicial)
- configurar una notificación por SMS cada vez que se pese
- Cree un panel de control de peso al que pueda acceder en su navegador web.
Paso 1: Equipo
Aquí hay una lista de todo el equipo que usaremos en este tutorial con enlaces a dónde puede comprar cada artículo.
- Raspberry Pi 3 con tarjeta SD y fuente de alimentación (https://init.st/psuufmj)
- Tablero de equilibrio de Wii (https://init.st/qg4ynjl)
- Paquete de baterías recargables Wii Fit (https://init.st/iyypz2i)
- Almohadillas de fieltro de 3/8 "(https://init.st/8gywmjj)
- Lápiz (no te voy a dar un enlace a dónde comprar un lápiz … deberías tener uno de estos)
Nota: si tiene una Raspberry Pi 1 o 2, necesitará un adaptador bluetooth (https://init.st/7y3bcoe)
Paso 2: báscula de Wii Balance Board
¿Por qué una Wii Balance Board? Resulta que es una báscula realmente agradable y duradera que tiene conectividad bluetooth. Esto nos permitirá conectarlo a una computadora de placa única (Raspberry Pi) para leer su peso en un script de Python y enviar esas medidas a un servicio de datos en línea para hacer cosas interesantes. Además, es muy probable que usted o alguien que conozca ya tenga uno que simplemente esté acumulando polvo.
Tendremos que hacer un par de modificaciones simples a nuestra Wii Balance Board para que este proyecto sea realmente práctico y conveniente.
Paso 3: configuración de Bluetooth
La Raspberry Pi 3 viene con bluetooth integrado, todo lo que necesitamos para comunicarnos con la Wii Balance Board. Si tienes una Raspberry Pi 1 o 2, tendremos que usar uno de nuestros puertos USB para enchufar un adaptador.
Encienda su Pi (supongo que ya ha instalado Raspbian y se inicia) y vaya a la ventana de su terminal Raspberry Pi. Puede ver la dirección de su dongle bluetooth con el comando "hcitool dev":
$ hcitool dev Dispositivos: hci0 00: 1A: 7D: DA: 71: 13
Instale los módulos bluetooth que usaremos en nuestros scripts de Python:
$ sudo apt-get install python-bluetooth
Una vez completada la instalación, estamos listos para conectarnos y comunicarnos con la Wii Balance Board. No emparejaremos permanentemente nuestra placa con nuestro Pi como lo hacemos con la mayoría de nuestros dispositivos bluetooth. La Wii Balance Board nunca fue diseñada para ser emparejada con otra cosa que no sea una Wii, y la sincronización permanente resultó ser un desafío bastante confuso. El emparejamiento ocurrirá cada vez que ejecutemos nuestro script de Python.
Paso 4: lectura de la escala
Es hora de conectar nuestra Wii Balance Board a nuestra Raspberry Pi. Haremos esto modificando una versión del script Gr8W8Upd8M8.py de Stavros Korokithakis (https://github.com/skorokithakis/gr8w8upd8m8). El script de Python que usaremos para este paso se encuentra aquí. Puede copiar el contenido de este archivo a un archivo que cree en su Raspberry Pi o puede clonar todos los archivos de Python que usaremos para todo este proyecto. Hagamos lo último. Escriba los siguientes comandos en una terminal de su Raspberry Pi:
$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git clonación en 'escala inteligente' … remoto: Contando objetos: 14, listo. remoto: Comprimir objetos: 100% (12/12), hecho. remoto: Total 14 (delta 1), reutilizado 8 (delta 0), empaquetado reutilizado 0 Desembalaje de objetos: 100% (14/14), listo. Comprobando la conectividad … hecho.
clonación en 'escala inteligente' … remoto: Contando objetos: 14, hecho. remoto: Comprimir objetos: 100% (12/12), hecho. remoto: Total 14 (delta 1), reutilizado 8 (delta 0), empaquetado reutilizado 0 Desembalaje de objetos: 100% (14/14), listo. Comprobando la conectividad … hecho.
Debería ver dos archivos de Python en el nuevo directorio de escala inteligente: smartscale.py y wiiboard_test.py.
$ cd escala inteligente $ lsREADME.md smartscale.py wiiboard_test.py
Ejecute el script wiiboard_test.py para probar la comunicación y tomar lecturas de peso de la Wii Balance Board:
$ sudo python wiiboard_test.py
Verá la siguiente respuesta:
Descubriendo tablero … Presiona el botón rojo de sincronización en el tablero ahora
Retire la tapa de la batería debajo de la placa para ubicar el botón rojo de sincronización. Asegúrese de presionar el botón unos segundos después de ejecutar el script o se agotará el tiempo de espera. Una vez que tenga éxito, verá algo similar a lo siguiente:
Se encontró Wiiboard en la dirección 00: 23: CC: 2E: E1: 44 Intentando conectarse … Conectado a Wiiboard en la dirección 00: 23: CC: 2E: E1: 44 Wiiboard conectado ATRÁS a la escritura de datos recibida84.9185297 lbs84.8826412 lbs84.9275927 lbs
El script wiiboard_test.py toma la cantidad de medidas de peso especificadas en la línea 10 y genera el promedio:
# --------- Configuración de usuario --------- WEIGHT_SAMPLES = 500 # ------------------------- --------
Puede jugar con este número cambiando el valor y volviendo a ejecutar el script para ver la variación en el peso medido y el tiempo requerido para cada medición. Pésese, pese a su perro, pese lo que sea y compruebe si las medidas tienen sentido. Para detener la secuencia de comandos, presione CTRL + C.
Ahora ha convertido con éxito su Wii Balance Board en una báscula conectada Raspberry Pi. Ahora, hagámoslo una escala genial.
Paso 5: Ajustes de hardware
Nintendo asumió que siempre alimentaría su Wii Balance Board con cuatro baterías AA y no incluyó un adaptador de corriente CA. Tener solo energía de la batería sería un inconveniente porque no podemos emparejar permanentemente nuestra Wii Board con nuestro Pi a través de bluetooth. Necesitamos sincronizarlo, luego permitir que permanezca sincronizado sin agotar las baterías para que podamos simplemente subirnos a la báscula y pesar. Afortunadamente, existen varios adaptadores de terceros hechos para la Wii Balance Board que podemos usar para proporcionar energía constante desde una toma de corriente. Reemplace las baterías con un paquete de baterías y conecte el adaptador de CA a una toma de corriente.
Tener que emparejar Wii Balance Board y Raspberry Pi cada vez que ejecutamos nuestro script Python presenta otro inconveniente debido a la ubicación del botón de sincronización. El botón de sincronización está en la parte inferior de la Wii Board, lo que significa que tendríamos que darle la vuelta cada vez que necesitemos sincronizar. Podemos solucionar este problema haciendo una pequeña palanca con un lápiz y tres almohadillas de fieltro de 3/8 "como se muestra arriba. El paquete de batería recargable expone el botón de sincronización a la superficie inferior de la pizarra. Pegue un lápiz (o algo similar) que abarque desde el botón de sincronización hasta el frente exterior de la pizarra. Apile tres almohadillas de fieltro de 3/8 "(o algo similar) en el centro del lápiz para crear un pivote fijo. Tenga cuidado de no exponer demasiado lápiz del tablero, ya que no quiere que alguien lo saque accidentalmente. Dale la vuelta al tablero y puedes presionar el botón de sincronización simplemente presionando la palanca. Un poco truco pero efectivo.
Dependiendo de cómo guardes tu Wii Board, es posible que desees quitar las almohadillas de goma de los pies de la tabla (las almohadillas son simplemente pegatinas que puedes quitar). Se pueden colocar almohadillas de fieltro de 3/8 en los pies de la tabla para facilitar el deslizamiento.
Paso 6: estado inicial
Queremos transmitir nuestro peso / datos a un servicio en la nube y que ese servicio convierta nuestros datos en un agradable panel de control al que podamos acceder desde nuestra computadora portátil o dispositivo móvil. Nuestros datos necesitan un destino. Usaremos Estado inicial como ese destino.
Paso 1: Regístrese para obtener una cuenta estatal inicial Vaya a https://iot.app.initialstate.com y cree una nueva cuenta.
Paso 2: Instale ISStreamer Instale el módulo Python de estado inicial en su Pi: En un símbolo del sistema (no olvide SSH en su Pi primero), ejecute el siguiente comando:
$ cd / home / pi / $ / curl -sSL https://get.initialstate.com/python -o - | sudo bash
Paso 3: haz algo de Automagic Después del paso 2, verás algo similar al siguiente resultado en la pantalla:
pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: ¡Comenzando con la instalación fácil de ISStreamer Python! Esto puede tardar un par de minutos en instalarse, tómate un café:) Pero no olvides volver, ¡tendré preguntas más tarde!
Encontrado easy_install: setuptools 1.1.6
Encontrado pip: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip versión principal: 1 pip versión menor: 5 ISStreamer encontrado, actualizando… Requisito ya actualizado: ISStreamer en /Library/Python/2.7/site-packages Limpiando… ¿Desea obtener automáticamente un script de ejemplo? [s / N]
(la salida puede ser diferente y tomar más tiempo si nunca antes ha instalado el módulo de transmisión de Python de estado inicial)
Cuando se le solicite obtener automáticamente un script de ejemplo, escriba y. Esto creará un script de prueba que podemos ejecutar para asegurarnos de que podemos transmitir datos al estado inicial desde nuestro Pi. Se le pedirá:
¿Dónde quieres guardar el ejemplo? [predeterminado:./is_example.py]:
Puede escribir una ruta local personalizada o presionar Intro para aceptar la ruta predeterminada. Se le pedirá su nombre de usuario y contraseña que acaba de crear cuando registró su cuenta de estado inicial. Ingrese ambos y la instalación se completará.
Paso 4: claves de acceso
Echemos un vistazo a la secuencia de comandos de ejemplo que se creó.
$ nano is_example.py
En la línea 15, verá una línea que comienza con streamer = Streamer (bucket_…. Esta línea crea un nuevo depósito de datos llamado "Python Stream Example" y está asociado con su cuenta. Esta asociación ocurre debido a access_key = "…" en la misma línea. Esa larga serie de letras y números es la clave de acceso a su cuenta de estado inicial. Si va a su cuenta de estado inicial en su navegador web, haga clic en su nombre de usuario en la parte superior derecha, luego vaya a "Mi configuración", encontrará la misma clave de acceso en la parte inferior de la página, en "Claves de acceso de transmisión".
Cada vez que crea un flujo de datos, esa clave de acceso dirigirá ese flujo de datos a su cuenta (por lo tanto, no comparta su clave con nadie).
Paso 5: ejecutar el ejemplo
Ejecute el script de prueba para asegurarse de que podamos crear un flujo de datos en su cuenta de estado inicial. Ejecute lo siguiente:
$ python is_example.py
Paso 6: Beneficio
Regrese a su cuenta de estado inicial en su navegador web. Debería haber aparecido un nuevo depósito de datos llamado "Python Stream Example" a la izquierda de su estantería de registros (es posible que deba actualizar la página). Puede ver los datos en Tiles para ver estos mismos datos en forma de panel.
Paso 7: Guión final
Suponiendo que ejecutó el comando "git clone https://github.com/InitialState/smart-scale.git" en la Parte 2, el script final que une todo se llama smartscale.py en su directorio ~ / smart-scale. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)
Es necesario establecer algunas configuraciones en el script antes de poder ejecutarlo. Abra smartscale.py en su editor de texto favorito, como nano.
$ cd ~ $ cd escala inteligente $ nano smartscale.py
Cerca de la parte superior de este archivo, hay una sección de Configuración de usuario.
# --------- Configuración de usuario --------- BUCKET_NAME = ": apple: Mi historial de peso" BUCKET_KEY = "weight11" ACCESS_KEY = "COLOQUE SU LLAVE INICIAL DE ACCESO ESTATAL AQUÍ" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7 # ---------------------------------
- BUCKET_NAME establece el nombre del depósito de datos del estado inicial al que se transmitirán sus datos / peso. Esto se puede configurar aquí y cambiar más adelante en la interfaz de usuario.
- BUCKET_KEY es el identificador de depósito único que especifica hacia dónde se transmitirán sus datos. Si desea crear un depósito / panel de control diferente, utilice un identificador diferente aquí (* nota, si archiva un depósito, no puede reutilizar su clave en un depósito nuevo).
- ACCESS_KEY es su clave de cuenta de estado inicial. Si no ingresa su ACCESS_KEY en este campo, sus datos no aparecerán en su cuenta.
- METRIC_UNITS le permite especificar su peso en kg si se establece en Verdadero o lb si se establece en Falso.
- WEIGHT_SAMPLES especifica cuántas medidas se toman y se promedian juntas para obtener su peso real. 500 mediciones tardan entre 4 y 5 segundos y proporcionan resultados bastante precisos.
- THROWAWAY_SAMPLES especifica el número de muestras que se desechan cuando pisas el tablero por primera vez. Esto evita que los pasos iniciales y los cambios desvíen la medición final. Esto siempre debe ser mucho menor que WEIGHT_SAMPLES.
- WEIGHT_HISTORY establece el número de mediciones tomadas antes de que se envíe una actualización adicional. Solo las mediciones tomadas con dos horas o más de diferencia cuentan para el historial.
Una vez que haya especificado cada parámetro en esta sección y guardado sus cambios, estará listo para ejecutar el script final. Antes de ejecutar el script, veamos lo que va a hacer.
- Al comienzo de la secuencia de comandos, se le pedirá que vincule su Wii Balance Board con su Raspberry Pi. Use la palanca que hackeó en la sección Parte 2: Ajustes de hardware para presionar el botón de sincronización cuando se le solicite.
- Una vez que se esté ejecutando el guión, párate en la Wii Board para comenzar a medir tu peso. Después de 4-5 segundos, su peso se enviará automáticamente a su cuenta de estado inicial.
- Después de que configuremos las notificaciones por SMS (en un par de pasos), recibirá un mensaje de texto poco después de su medición.
Ejecute el script para iniciar la magia.
$ sudo python smartscale.py
Paso 8: Panel de control
Vaya a su cuenta de estado inicial y haga clic en el nuevo depósito de datos con el nombre correspondiente al parámetro BUCKET_NAME (es decir, Mi historial de peso). Haga clic en Tiles para ver el panel de su historial de peso. Debería ver tres mosaicos la primera vez que vea sus datos en Mosaicos: Actualización, Fecha de peso y Peso (lb). Puede personalizar su panel cambiando el tamaño y moviendo mosaicos, así como cambiando los tipos de vista e incluso agregando mosaicos. Este tablero le brinda la posibilidad de ver su historial de peso de un vistazo. Es compatible con dispositivos móviles e incluso puede compartirlo con otras personas.
Puede agregar una imagen de fondo a su tablero para darle a sus datos más personalidad y contexto.
Paso 9: SMS
Creemos una alerta por SMS cada vez que la báscula tome una medición de peso. Asegúrese de que el depósito de datos del historial de peso esté cargado.
- Haga clic en la configuración del depósito (debajo de su nombre) en la ventana del depósito de datos.
- Haga clic en la pestaña Desencadenadores.
- Seleccione el flujo de datos para activar. Puede usar la lista desplegable para seleccionar entre las transmisiones existentes una vez que se haya cargado un depósito de datos o puede escribir el nombre / clave de la transmisión manualmente. En la captura de pantalla de ejemplo anterior, se selecciona "Actualizar".
- Seleccione el operador condicional, en este caso 'coincidencia'.
- Seleccione el valor de activación que activará una acción (escriba manualmente el valor deseado). Escriba lb si no usa unidades métricas o kg si usa unidades métricas. Siempre que la transmisión "Actualización" contenga "lb" (o "kg"), recibirá una notificación por mensaje de texto.
- Haga clic en el botón '+' para agregar la condición de activación.
- Ingrese su dirección de correo electrónico o número de teléfono en el campo "Contactos para notificar".
- Haga clic en el botón '+' para agregar la información de contacto.
- Ingrese cualquier código de verificación si agrega un nuevo número de teléfono para completar la configuración.
- Haga clic en el botón Listo en la parte inferior para volver a la pantalla principal. Su disparador ahora está activo y se disparará cuando se cumpla la condición.
Una vez que se complete la configuración, cada vez que se pese, recibirá un SMS que contiene su peso, cuánto cambió su peso desde la última medición y una broma, un insulto o un cumplido al azar.
Paso 10: Conclusión
Hay opciones ilimitadas para que pueda construir sobre lo que ha creado ahora. Aquí hay algunas ideas para este proyecto:
- Puede transmitir datos de otras fuentes al mismo panel de historial de peso (información) para crear su propio panel de salud personal.
- Puede cambiar las bromas en las funciones messageWeighFirst, messageWeighLess, messageWeighMore y messageWeighSame a su propio sentido del humor.
- Puede convertir los chistes en mensajes prácticos o eliminarlos y usar el código de la báscula para rastrear el peso de algo más importante además de su propio peso corporal.
- Puede crear su propio refrigerador inteligente de cerveza / vino utilizando el mismo enfoque. Ya hay un tutorial increíble hecho para eso aquí.
Hackea y avísame si este tutorial te inspira a crear algo asombroso.
Recomendado:
Luz LED de escritorio inteligente - Iluminación inteligente con Arduino - Espacio de trabajo de Neopixels: 10 pasos (con imágenes)
Luz LED de escritorio inteligente | Iluminación inteligente con Arduino | Espacio de trabajo de Neopixels: Hoy en día pasamos mucho tiempo en casa, estudiando y trabajando virtualmente, así que ¿por qué no ampliar nuestro espacio de trabajo con un sistema de iluminación personalizado e inteligente basado en Arduino y LEDs Ws2812b? Aquí te muestro cómo construir tu Smart Luz LED de escritorio que
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: 10 pasos (con imágenes)
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: ¿Alguna vez has querido un reloj inteligente? Si es así, ¡esta es la solución para usted! Hice Smart Alarm Clock, este es un reloj que puede cambiar la hora de la alarma de acuerdo con el sitio web. Cuando suene la alarma, habrá un sonido (zumbador) y 2 luces
Escala inteligente Wi-Fi (con ESP8266, Arduino IDE, Adafruit.io e IFTTT): 18 pasos (con imágenes)
Escala inteligente Wi-Fi (con ESP8266, Arduino IDE, Adafruit.io e IFTTT): si ya es verano donde vives, probablemente sea un buen momento para las actividades físicas al aire libre. Correr, andar en bicicleta o trotar son ejercicios increíbles para que te pongas en forma. Y si quieres perder o controlar tu peso actual, es esencial que
Cómo controlar el interruptor inteligente básico Sonoff basado en ESP8266 con un teléfono inteligente: 4 pasos (con imágenes)
Cómo controlar el interruptor inteligente básico Sonoff basado en ESP8266 con un teléfono inteligente: Sonoff es una línea de dispositivos para Smart Home desarrollada por ITEAD. Uno de los dispositivos más flexibles y económicos de esa línea es Sonoff Basic. Es un conmutador habilitado para Wi-Fi basado en un gran chip, ESP8266. Este artículo describe cómo configurar el Cl
Máquina de dibujo de polargrafía a gran escala con cabezal de bolígrafo retráctil: 4 pasos (con imágenes)
Máquina de dibujo de polargrafía a gran escala con cabezal de bolígrafo retráctil: * La instalación a gran escala de esta máquina fue concebida y ejecutada con Rui Periera Este es un diseño para el dibujo de código abierto Polargraph (http://www.polargraph.co.uk/) proyecto. Cuenta con un cabezal de bolígrafo retráctil y hardware para permitirle