Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
Siempre he querido una forma asequible de realizar un seguimiento de todo en mi despensa, así que hace un par de meses comencé a trabajar en un proyecto que haría precisamente eso. El objetivo era crear un sistema simple y asequible que fuera muy fácil de usar y que al mismo tiempo almacenara suficiente información para que valiera la pena el esfuerzo adicional. Lo que finalmente construí es un sistema de administración de inventario que puede almacenar y actualizar información sobre cualquier artículo que tenga un código de barras, así como extraer datos básicos sobre esos artículos de Internet.
En resumen, el sistema funciona así.
- Se escanea un código de barras.
- Un script de Python lee los datos del escáner.
- La solicitud se envía a una API REST que se ejecuta en node-red.
- La API procesa la solicitud, extrae datos adicionales de Internet y edita la base de datos en consecuencia.
Todo esto se hace en una sola Raspberry Pi, lo que le brinda la capacidad de actualizar y almacenar datos sobre todo su inventario en un sistema pequeño y portátil. Este proyecto es un poco técnico y una comprensión básica de bases de datos, HTTP y Python será muy útil, pero haré todo lo posible para que sea lo suficientemente fácil de entender para un principiante. ¡Empecemos!
Paso 1: lo que necesitará
Las piezas que necesitará para este proyecto son …
- Frambuesa pi
- Escáner de código de barras USB (enlace al que estoy usando)
- Adaptador WiFi (si su Pi no tiene WiFi integrado)
- Interruptor de palanca
- Cables de puente
- Estuche para su Raspberry Pi (opcional)
Paso 2: instalar y configurar la base de datos
MySQL es el sistema de administración de bases de datos que almacenará todos los datos que extraemos de los escaneos de códigos de barras. Esto es muy fácil de hacer en el Pi, simplemente ejecute el siguiente comando en la terminal de su Pi.
sudo apt-get install mysql-server
Luego, se lo guiará a través del proceso de instalación y se le pedirá que cree una contraseña. Eso es todo. Con MySQL instalado, su Pi puede actuar como su propio servidor de base de datos. Ahora necesitamos crear las tablas que contendrán nuestros datos. Primero, inicie sesión. Después de la instalación, el único usuario de MySql es root (el usuario que tiene acceso a todas las tablas y sistemas). Puede iniciar sesión como root ejecutando el siguiente comando.
mysql -uroot -p
Pronto configuraremos otro usuario para que lo use nuestro sistema, pero primero debemos crear nuestra base de datos y las tablas dentro de esa base de datos. Para hacer esto, ejecute los siguientes comandos.
crear inventario de base de datos;
usar inventario; crear tabla upc_count (upc varchar (15) no nulo, contar entero (3) no nulo predeterminado 0, nombre varchar (255), tamaño varchar (40), fabricante varchar (80), clave primaria (upc));
Ahora tenemos una tabla simple con cinco columnas upc (que será la clave principal), recuento, nombre, tamaño y fabricante. Nota: Un upc es un número que identifica de forma exclusiva un producto. Ese número es lo que se lee en la etiqueta del código de barras cuando se escanea.
Finalmente, vamos a configurar el usuario que necesitamos. Voy a llamar al mío, para hacer esto, ejecute los siguientes comandos, usando el nombre de usuario y la contraseña que desee:
conceder todo en el inventario. * a '' @ 'localhost' identificado por;
Ahora que tenemos nuestra base de datos, ¡podemos comenzar a construir el sistema!
Paso 3: Obtenga la clave de API de OutPan
OutPan es una API que se puede utilizar para obtener información sobre un producto utilizando su número upc. Usaremos esto para extraer más información sobre los productos a medida que se agregan a la base de datos. Esta es una API pública, pero para poder usarla, debe registrarse y obtener una clave de API. Registrarse es bastante sencillo, simplemente vaya aquí y siga los pasos para registrarse para obtener una clave.
Una vez que obtenga su clave, cópiela. Lo necesitará en un paso posterior.
Paso 4: instalar y configurar Node-Red
Node-Red viene preinstalado en todas las versiones del sistema operativo Raspbian desde finales de 2015. Para saber si tiene instalado node-red, simplemente ejecute el siguiente comando en la terminal.
nodo-rojo
Si se muestra un mensaje de "comando no encontrado", deberá instalar node-red. Para hacer esto, ejecute los siguientes comandos.
sudo apt-get update sudo apt-get install nodered
Después de iniciar node-red, puede acceder a node-red desde la dirección que se muestra en la salida.
La única configuración que queda es instalar los nodos de MySQL. Puede hacerlo a través del navegador. Haga clic en el símbolo en la esquina superior derecha de la página y luego haga clic en la opción 'Administrar paleta'. Desde allí, simplemente busque 'mysql' y haga clic en el botón de instalación.
Ahora estamos listos para importar la API.
Paso 5: configura la API
A continuación se muestra toda la API de node-red que escribí. Simplemente copie todo a continuación, haga clic en el símbolo en la esquina superior derecha y vaya a importar → desde el portapapeles.
[{"id": "ef09537e.8b96d", "type": "subflow", "name": "mineOpenPanData", "info": "", "in": [{"x": 64, "y": 57, "cables": [{"id": "b8b6d2e4.169e7"}]}], "out": [{"x": 755, "y": 58, "cables": [{"id": "8dc2d52b.6a6fd8", "puerto": 0}]}]}, {"id": "b8b6d2e4.169e7", "tipo": "solicitud http", "z": "ef09537e.8b96d", "nombre ":" Solicitud de salida panorámica "," método ":" GET "," ret ":" txt "," url ":" https://api.outpan.com/v2/products/{{{upc}}} ? apikey = "," tls ":" "," x ": 202," y ": 57," cables ":
Ahora tiene toda la API que usaremos para insertar y actualizar datos. Solo es necesario realizar un par de ajustes antes de que estemos listos para usarlo.
- Primero, vaya a todos los nodos de la base de datos MySQL y cambie el nombre de usuario y la contraseña por los que creó para la base de datos en el paso anterior.
- En segundo lugar, edite el subflujo mineOutPanData para que la solicitud HTTP utilizada para obtener los datos de Open Pan utilice su propia clave API.
Ahora está listo para usar la API. Este flujo crea una API REST simple que le permite enviar datos desde cualquier dispositivo conectado a Internet mediante solicitudes
Paso 6: (Opcional) Comprensión de la API
Lo último que tenemos que hacer es conectar un interruptor al GPIO para que podamos escanear en dos modos, agregar y quitar.
Esto es bastante sencillo, simplemente configure un interruptor de palanca para leer desde el pin 21 de GPIO en el Pi y listo. Usando el circuito en la imagen adjunta (conocido como circuito PUD DOWN), el script enviará una solicitud de adición cuando el interruptor de palanca esté cerrado y una solicitud de eliminación cuando el interruptor de palanca esté abierto.
Después de eso, simplemente pegamos los cables al interior de la carcasa y estamos listos para comenzar.
Paso 9: (Opcional) Cree una interfaz de usuario
Este último paso no es necesario, pero ciertamente es útil si desea utilizar todo el potencial del sistema. Configuré una interfaz de usuario muy simple que mostraba todos los datos que tenemos en nuestra base de datos en una tabla fácil de navegar. La tabla se puede ordenar por columna y también buscar, lo que facilita ver lo que tiene a mano.
La interfaz de usuario es bastante simple; Re-propuse un código de ejemplo que encontré en línea para trabajar con nuestra API (si está interesado, ese código de ejemplo se puede encontrar aquí).
Para ejecutar la interfaz de usuario, haga lo siguiente …
- Guarde el archivo index.txt adjunto como index.html (no pude cargar el archivo como un archivo HTML por alguna razón).
- Coloque los dos archivos en el mismo directorio de su computadora.
- Ejecute el archivo 'index.html' en su navegador web favorito.
¡Ahora podemos ver y clasificar fácilmente su inventario!
Paso 10: ¡Empiece a escanear
¡Ahora está listo para comenzar a escanear! Si tiene alguna pregunta, déjela en los comentarios y me aseguraré de responder cuando pueda.
Por último, agradeceríamos enormemente sus votos en el concurso. ¡Gracias por leer!
Recomendado:
Administrador de tareas: un sistema de gestión de tareas domésticas: 5 pasos (con imágenes)
Administrador de tareas: un sistema de gestión de tareas domésticas: quería tratar de abordar un problema real que se enfrenta en nuestro hogar (y, me imagino, el de muchos otros lectores), que es cómo asignar, motivar y recompensar a mis hijos por ayudar con las tareas del hogar. Hasta ahora, hemos conservado una hoja plastificada
Gestión de planta solar basada en peso con ESP32: 7 pasos (con imágenes)
Manejo de plantas basado en el peso solar con ESP32: cultivar plantas es divertido y regarlas y cuidarlas no es realmente una molestia. Las aplicaciones de microcontroladores para monitorear su salud están en Internet y la inspiración para su diseño proviene de la naturaleza estática de la planta y la facilidad de monitoreo
Alimentador para gatos de IoT con fotón de partículas integrado con Alexa, SmartThings, IFTTT, hojas de Google: 7 pasos (con imágenes)
Comedero para gatos de IoT con fotón de partículas integrado con Alexa, SmartThings, IFTTT, Google Sheets: La necesidad de un comedero automático para gatos se explica por sí misma. Los gatos (el nombre de nuestro gato es Bella) pueden ser desagradables cuando tienen hambre y si tu gato es como el mío, comerá el cuenco seco cada vez. Necesitaba una forma de dispensar una cantidad controlada de comida automáticamente
Sistema de gestión de motores para aplicaciones de elevación con Arduino Mega 2560 e IoT: 8 pasos (con imágenes)
Sistema de gestión de motores para aplicaciones de elevación con Arduino Mega 2560 e IoT: hoy en día, los microcontroladores basados en IoT se utilizan ampliamente en la aplicación industrial. Económicamente se utilizan en lugar de una computadora. El objetivo del proyecto es el control, registrador de datos y monitorización totalmente digitalizados del motor de inducción trifásico w
Seguridad en el hogar con sistema integrado: 12 pasos (con imágenes)
Seguridad para el hogar con sistema integrado: Hola lectores, este es un instructivo para construir un sistema de seguridad para el hogar diferente a cualquier otro sistema de seguridad. Este sistema tiene una función mejorada Modo TRAP y PANIC que conecta al dueño de la casa de la víctima, el vecino y la estación de policía a través de la red