Tabla de contenido:
- Paso 1: Equipo SmartBin
- Paso 2: Fabricación de la Raspberry Box y la barra LED
- Paso 3: la parte de la tapa
- Paso 4: Adquisición de datos y parte del software
Video: SmartBin: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
El objetivo principal de este proyecto es crear un dispositivo electrónico que utilice al menos una Raspberry Pi. El equipo está formado por 5 futuros ingenieros mecánicos y un ingeniero de automatización. Nuestro proyecto consiste en hacer un bote de basura que se abre y se cierra automáticamente accionado por un movimiento de pie debajo del detector de movimiento ubicado en el centro al frente del bote de basura. Se utiliza una memoria USB Wifi para enviar datos a un sitio web. Este contenedor se llama "El SmartBin". El video humorístico de arriba presenta nuestro innovador SmartBin.
Para llevar a cabo este proyecto y este notable SmartBin fueron necesarias varias herramientas:
- Un metro
- Pegamento fuerte
- Una cinta adhesiva
- Una sierra para madera
- Un destornillador
- Una maquina perforadora
- Una abrazadera
- Un cuchillo
Paso 1: Equipo SmartBin
El SmartBin está compuesto por luces LED de color verde, naranja y rojo que se colocan en un dispositivo en el lado izquierdo del contenedor que indicará qué tan lleno está. Estas luces serán claramente visibles y alertarán al usuario cuando sea necesario reemplazar la bolsa de basura. El lenguaje de programación utilizado es Python. El nivel de llenado medido del contenedor se transmite al siguiente sitio web:
Estos son los elementos que se han utilizado, pero puede encontrar fácilmente una solución alternativa:
- 1 contenedor (contenedor de "tapa abatible")
- 1 servomotor para abrir la papelera
- 1 frambuesa Pi 2
- 2 fuentes de alimentación (cargador de teléfono móvil de 5 V y fuente de alimentación de 6 V) para alimentar la Raspberry Pi y el servomotor
- 1 sensor ultrasónico para medir el nivel de llenado de la papelera
- Algunos LED para mostrar el nivel de llenado (4 verdes, 2 naranjas y 1 rojo)
- 1 detector de movimiento ultrasónico para detectar un movimiento
- 1 tarjeta SD de 16 Gb
- Resistencias eléctricas (10.000 Ohms, 2000 Ohms y 1000 Ohms)
- 1 memoria USB WiFi para permitir la transmisión inalámbrica al sitio web.
- 1 protoboard y algunos cables Raspberry
El precio de fabricación estimado es de 80 €.
Paso 2: Fabricación de la Raspberry Box y la barra LED
Para fabricar la caja Raspberry, use una sierra para madera. Fija todos los lados de la caja con remaches para que luzca limpia. Como su nombre indica, esta caja contendrá no solo la Raspberry Pi sino que también incluirá el sensor de movimiento que colocarás en la parte inferior. Una vez que la caja esté construida, píntela del mismo color que el contenedor. La tecnología de impresión 3D podría usarse para crear esta caja.
Para la fabricación de la barra LED, utilice un conducto eléctrico en el que taladre agujeros para permitir la instalación de las luces LED. La barra de LED también debe pintarse. Cuando todo esté listo, instale los LED en el conducto y realice la conexión eléctrica. Preste atención a numerar correctamente cada cable LED con cinta adhesiva. Le ayudará a identificar cada LED durante el cableado.
Finalmente, coloque la caja y la barra LED en la parte frontal de su contenedor.
Paso 3: la parte de la tapa
En cuanto a la tapa del cubo, el primer paso es pegar el servomotor a la tapa. Se debe realizar una extensión del apalancamiento previamente. La palanca llegará a un tope que anteriormente se hizo a mano. Coloque una caja de tornillos en la tapa y haga un agujero en ella para mantener el sensor ultrasónico en la posición correcta. Asegúrese de conectar correctamente los cables a la tapa con cinta adhesiva.
Paso 4: Adquisición de datos y parte del software
En cuanto a la parte del software, utilizamos el lenguaje de programación Python. El programa se guarda en la tarjeta SD que será ejecutada por la Raspberry Pi cuando se encienda. El esquema de cableado está disponible arriba. La imagen de los pines de Gpio está disponible para todos los tipos de frambuesa en el siguiente enlace:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Es posible usar un sensor ultrasónico para reemplazar el detector de movimiento, solo necesita crear un "bucle si" en el código.
Como se mencionó anteriormente, los datos relacionados con el nivel de llenado del contenedor se transmiten a un sitio web creado en wix.com. En este sitio web, puede encontrar diferentes pestañas que recopilan a los miembros del equipo, presentación de hardware y software, … La pestaña interesante es en realidad la pestaña "Base de datos" que recopila la información sobre la cantidad de basura directamente desde el SmartBin y crea un gráfico con los datos. El gráfico muestra la evolución del nivel de llenado. Es posible ver o descargar datos desde el sitio web. El siguiente enlace es el sitio web que usamos y le mostrará cómo leer y escribir en las hojas de Google con Python:
www.makeuseof.com/tag/read-write-google-sh…
Con respecto a la "parte de ejecución automática" del código, escriba en la terminal: sudo nano / etc / xdg / lxsession / LXDE-pi / autostart
Luego, al final del script que acaba de abrirse, escriba estas dos líneas de código: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Para guardar el aurorun, presione: C trl + O Luego, presione: Enter Luego, presione: C trl + X
Escriba como última línea de código: sudo reboot
También puede descargar el archivo adjunto, que es el código Python completo utilizado para el proyecto. ¡Ambos códigos se ejecutan al mismo tiempo!
Aquí está el código main.py:
importar RPi. GPIO como GPIOimportar fecha y hora importar hora importar csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (falso)
capteurP = 7
servo = 17
Configuración de GPIO (servo, GPIO. OUT)
Configuración de GPIO (capteurP, GPIO. IN)
pwm = GPIO. PWM (17, 50)
Configuración de GPIO (5, GPIO. OUT)
Configuración de GPIO (6, GPIO. OUT) Configuración de GPIO (13, GPIO. OUT) Configuración de GPIO (19, GPIO. OUT) Configuración de GPIO (20, GPIO. OUT) Configuración de GPIO (21, GPIO. OUT) Configuración de GPIO (26, GPIO. OUT)
Trig = 23
Eco = 24
Configuración de GPIO (Trig, GPIO. OUT)
Configuración de GPIO (Echo, GPIO. IN)
GPIO.setwarnings (falso)
Salida GPIO (5, falso)
Salida GPIO (6, Falso) Salida GPIO (13, Falso) Salida GPIO (19, Falso) Salida GPIO (20, Falso) Salida GPIO (21, Falso) Salida GPIO (26, Falso)
Salida GPIO (Trig, False)
timeset = time.time ()
distancia = 100 memoria = 0 tiempo.sueño (2) pwm.start (12.5)
mientras que es cierto:
timetac = time.time () si GPIO.input (capteurP) y timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memory = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0.5) si timetac-timeset> 15 o memory> 0.4: si memoria> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) para x en el rango (0, 1): # GPIO.output (Trig, True) time.sleep (0.01) GPIO.output (Trig, False)
while GPIO.input (Echo) == 0 y timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
mientras GPIO.input (Echo) == 1:
finImpulsion = time.time () si timetac-timeset <17: distancia1 = ronda ((finImpulsion - debutImpulsion) * 340 * 100/2, 1) distancia2 = distancia si (distancia1-distancia2) <1 y (distancia2-distancia1) 0.4: dis = round ((60-distancia) * 5/6, 1) con open ('capteur.csv', 'w') como csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '% Y-% m-% d% H:% M:% S') print ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. Writerow ([time_str, dis]) memory = -0.1 si distancia <52.5: GPIO.output (5, True) else: GPIO.output (5, False) si distancia <45: GPIO.output (6, True) else: GPIO.output (6, False) si distancia <37.5: GPIO.output (13, True) else: GPIO.output (13, False) si distancia <30: GPIO.output (19, True) else: GPIO.output (19, False) si distancia <22.5: GPIO.output (20, True) else: GPIO.output (20, False) si distancia <15: GPIO.output (21, True) else: GPIO.output (21, False) si la distancia <7.5: GPIO.output (26, True) else: GPIO.output (26, False)
Aquí está el código csvcontrol.py. No olvide pegar el archivo ".json" creado en el mismo directorio de main.py. El archivo ".json" se crea con la API de Google. Una captura de pantalla está disponible en las imágenes.
import datetimeimport time import csv import gspread
de oauth2client.service_account import ServiceAccountCredentials
desde el tiempo de importación de sueño de seguimiento de importación
timec2 = 'lol'
while True: time.sleep (5) loc = ('capteur.csv') con open (loc) como csvfile: readCSV = csv.reader (csvfile, delimiter = ',') para la fila en readCSV: print (fila [0]) tiempoc = fila [0] imprimir (fila [1]) distancia = fila [1] distancia = flotar (str (distancia)) si tiempoc2! = tiempoc: tiempoc2 = tiempoc imprimir ('Tiempo: {0} Quantitee: { 1} '. Formato (tiempoc, distancia))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ conducir"]
credentials = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("gráfico"). sheet1 wks = wks.append_row ((tiempoc, distancia))
Recomendado:
Cómo hacer una antena 4G LTE Doble BiQuade Pasos sencillos: 3 pasos
Cómo hacer una antena 4G LTE Doble BiQuade Pasos sencillos: La mayoría de las veces que me enfrenté, no tengo una buena intensidad de señal para mis trabajos diarios. Entonces. Busco y pruebo diferentes tipos de antena pero no trabajo. Después de perder el tiempo, encontré una antena que espero hacer y probar, porque es un principio de construcción, no
Diseño de juegos en Flick en 5 pasos: 5 pasos
Diseño de juegos en Flick en 5 pasos: Flick es una forma realmente sencilla de hacer un juego, especialmente algo como un rompecabezas, una novela visual o un juego de aventuras
Detección facial en Raspberry Pi 4B en 3 pasos: 3 pasos
Detección de rostros en Raspberry Pi 4B en 3 pasos: En este Instructable vamos a realizar la detección de rostros en Raspberry Pi 4 con Shunya O / S usando la Biblioteca Shunyaface. Shunyaface es una biblioteca de reconocimiento / detección de rostros. El proyecto tiene como objetivo lograr la velocidad de detección y reconocimiento más rápida con
¿Cómo hacer un contador de pasos ?: 3 pasos (con imágenes)
¿Cómo hacer un contador de pasos ?: Solía desempeñarme bien en muchos deportes: caminar, correr, andar en bicicleta, jugar al bádminton, etc. Me encanta andar en bicicleta para viajar en poco tiempo. Bueno, mira mi corpulento vientre … Bueno, de todos modos, decido volver a hacer ejercicio. ¿Qué equipo debo preparar?
SmartBin: 8 pasos
SmartBin: Este é um projeto para um sistema inteligente de coletas, no qual os caminh õ es de lixo recebem dados das lixeiras, identificando a quantidade de lixo present em cada uma delas, e uma rota de coleta tra ç ada, com base nas informa