Table des matières:
- Étape 1: Équipement SmartBin
- Etape 2: Fabrication de la Raspberry Box et de la LED Bar
- Étape 3: La partie couvercle
- Étape 4: Partie logicielle et acquisition de données
Vidéo: SmartBin : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Le but principal de ce projet est de créer un appareil électronique qui utilise au moins un Raspberry Pi. L'équipe est composée de 5 futurs ingénieurs mécaniciens et d'un ingénieur automation. Notre projet consiste à fabriquer une poubelle qui s'ouvre et se ferme automatiquement déclenchée par un mouvement du pied sous le détecteur de mouvement situé au centre sur le devant de la poubelle. Une clé USB Wifi est utilisée pour envoyer des données sur un site Web. Ce bac s'appelle "Le SmartBin". La vidéo humoristique ci-dessus présente notre SmartBin innovant.
Afin de mener à bien ce projet et ce remarquable SmartBin, plusieurs outils ont été nécessaires:
- Un mètre
- Colle forte
- Un ruban adhésif
- Une scie à bois
- Un tourne vis
- Une perceuse
- Une pince
- Un couteau
Étape 1: Équipement SmartBin
Le SmartBin est composé de lumières LED vertes, oranges et rouges qui sont placées sur un luminaire sur le côté gauche du bac qui indiquera à quel point il est rempli. Ces lumières seront clairement visibles et alertent l'utilisateur lorsqu'il est nécessaire de remplacer le sac poubelle. Le langage de programmation utilisé est Python. Le niveau de remplissage mesuré du bac est transmis au site internet suivant:
Voici les éléments qui ont été utilisés mais vous pouvez facilement trouver une solution alternative:
- 1 poubelle (poubelle "couvercle pivotant")
- 1 Servomoteur pour ouvrir le bac
- 1 Framboise Pi 2
- 2 alimentations (chargeur de téléphone portable 5V et alimentation 6V) pour alimenter le Raspberry Pi et le servomoteur
- 1 capteur à ultrasons pour mesurer le niveau de remplissage du bac
- Quelques LED pour afficher le niveau de remplissage (4 vertes, 2 oranges et 1 rouge)
- 1 Détecteur de mouvement à ultrasons pour détecter un mouvement
- 1 carte SD de 16 Go
- Résistances électriques (10.000 Ohms, 2000 Ohms et 1000 Ohms)
- 1 clé USB WiFi pour permettre la transmission sans fil vers le site Web.
- 1 Breadboard et quelques câbles Raspberry
Le prix de fabrication estimé est de 80€.
Etape 2: Fabrication de la Raspberry Box et de la LED Bar
Pour fabriquer le coffret Framboise, utilisez une scie à bois. Fixez chaque côté de la boîte avec des rivets pour lui donner un aspect propre. Comme son nom l'indique, cette box contiendra non seulement le Raspberry Pi mais inclura également le capteur de mouvement que vous placerez au fond. Une fois la boîte construite, peignez-la de la même couleur que la poubelle. La technologie d'impression 3D pourrait être utilisée pour créer cette boîte.
Pour la fabrication de la barre LED, utilisez un conduit électrique dans lequel vous percez des trous pour permettre l'installation des lumières LED. La barre LED doit également être peinte. Lorsque tout est prêt, installez les LED dans le conduit et effectuez le raccordement électrique. Faites attention à bien numéroter chaque câble LED avec du ruban adhésif. Il vous aidera à identifier chaque LED lors du câblage.
Enfin, fixez la boîte et la barre LED à l'avant de votre bac.
Étape 3: La partie couvercle
Concernant le couvercle du bac, la première étape consiste à coller le servomoteur sur le couvercle. Une extension de l'effet de levier doit être préalablement réalisée. Le levier heurtera une butée qui était auparavant faite à la main. Fixez une boîte à vis sur le couvercle et faites un trou dedans afin de maintenir le capteur à ultrasons dans la bonne position. Assurez-vous de fixer correctement les câbles sur le couvercle avec du ruban adhésif.
Étape 4: Partie logicielle et acquisition de données
Concernant la partie logicielle, nous avons utilisé le langage de programmation python. Le programme est enregistré dans la carte SD qui sera exécutée par le Raspberry Pi lorsqu'il sera allumé. Le schéma de câblage est disponible ci-dessus. L'image des broches Gpio est disponible pour tous les types de framboises sur le lien ci-dessous:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Il est possible d'utiliser un capteur à ultrasons pour remplacer le détecteur de mouvement, il suffit de créer une "boucle if" dans le code.
Comme mentionné ci-dessus, les données concernant le niveau de remplissage du bac sont transmises à un site Internet créé sur wix.com. Sur ce site, vous pouvez trouver différents onglets qui rassemblent les membres de l'équipe, la présentation du matériel et des logiciels, … L'onglet intéressant est en fait l'onglet "Base de données" qui collecte les informations concernant la quantité de déchets directement à partir du SmartBin et crée un graphique avec les données. Le graphique affiche l'évolution du niveau de remplissage. Il est possible de voir ou de télécharger des données à partir du site Web. Le lien ci-dessous est le site Web que nous avons utilisé et vous montrera comment lire et écrire sur des feuilles de Google avec python:
www.makeuseof.com/tag/read-write-google-sh…
Concernant la "partie autorun" du code, écrivez dans le terminal: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Puis, à la fin du script qui vient de s'ouvrir, écrivez ces deux lignes de code: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Pour enregistrer l'aurorun, appuyez sur: C trl + O Ensuite, appuyez sur: Enter Puis, appuyez sur: C trl + X
Écrivez comme dernière ligne de code: sudo reboot
Vous pouvez également télécharger la pièce jointe qui est le code python complet utilisé pour le projet. Les deux codes sont exécutés en même temps !
Voici le code main.py:
importer RPi. GPIO en tant que GPIOimport datetime import time import csv
GPIO.setmode(GPIO. BCM)
GPIO.setwarnings(False)
capteur P = 7
servo = 17
GPIO.setup(servo, GPIO. OUT)
GPIO.setup(capteurP, GPIO. IN)
pwm=GPIO. PWM (17, 50)
GPIO.setup(5, GPIO. OUT)
GPIO.setup(6, GPIO. OUT) GPIO.setup(13, GPIO. OUT) GPIO.setup(19, GPIO. OUT) GPIO.setup(20, GPIO. OUT) GPIO.setup(21, GPIO. OUT) GPIO.setup(26, GPIO. OUT)
Déclenchement = 23
Écho = 24
GPIO.setup(Trig, GPIO. OUT)
GPIO.setup(Echo, GPIO. IN)
GPIO.setwarnings(False)
GPIO.sortie(5, Faux)
GPIO.output(6, False) GPIO.output(13, False) GPIO.output(19, False) GPIO.output(20, False) GPIO.output(21, False) GPIO.output(26, False)
GPIO.output(Trig, False)
timeset = heure.heure()
distance=100 mémoire=0 time.sleep(2) pwm.start(12.5)
tant que vrai:
timetac = time.time() si GPIO.input(capteurP) et timetac-timeset0.9: pwm. ChangeDutyCycle(2.5) time.sleep(0.2) memory=-0.5 pwm. ChangeDutyCycle(0) timetac = time.time() time.sleep(0.5) if timetac-timeset>15 ou memory>0.4: if memory>0.4: pwm. ChangeDutyCycle(2.5) time.sleep(1) for x in range(0, 1): # GPIO.output(Trig, True) time.sleep(0.01) GPIO.output(Trig, False)
tandis que GPIO.input(Echo)==0 et timetac-timeset<17: timetac = time.time() debutImpulsion = time.time()
tandis que GPIO.input(Echo)==1:
finImpulsion = time.time() if timetac-timeset<17: distance1 = round((finImpulsion - debutImpulsion) * 340 * 100 / 2, 1) distance2=distance if (distance1-distance2)<1 and (distance2-distance1)0.4: dis=round((60-distance)*5/6, 1) avec open('capteur.csv', 'w') comme fichier csv: 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 if distance < 52.5: GPIO.output(5, True) else: GPIO.output(5, False) if distance < 45: GPIO.output(6, True) else: GPIO.output(6, False) si distance < 37,5: GPIO.output(13, True) sinon: GPIO.output(13, False) si distance < 30: GPIO.output(19, True) sinon: GPIO.output(19, False) si distance < 22,5: GPIO.output(20, True) sinon: GPIO.output(20, False) si distance < 15: GPIO.output(21, True) sinon: GPIO.output(21, False) si distance < 7,5: GPIO.output(26, True) sinon: GPIO.output(26, False)
Voici le code csvcontrol.py. N'oubliez pas de coller le fichier ".json" créé dans le même répertoire que le main.py. Le fichier ".json" est créé avec l'API google. Une capture d'écran est disponible dans les images.
import datetimeimport time import csv import gspread
de oauth2client.service_account importer ServiceAccountCredentials
from time import sleep import traceback
timec2='lol'
while True: time.sleep(5) loc=('capteur.csv') avec open(loc) comme csvfile: readCSV = csv.reader(csvfile, delimiter=', ') pour la ligne dans readCSV: print(row[0]) timec=row[0] print(row[1]) distance=row[1] distance=float(str(distance)) if timec2!=timec: timec2=timec print('Time:{0} Quantitee:{ 1}'.format(timec, distance))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ conduire"]
credentials = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', SCOPES) gc = gspread.authorize(credentials) wks= gc.open("graph").sheet1 wks= wks.append_row((timec, distance))
Conseillé:
Comment fabriquer une antenne double biquade 4G LTE en quelques étapes faciles : 3 étapes
Comment créer une antenne double biquade 4G LTE Étapes faciles : La plupart du temps, je n'ai pas une bonne force de signal pour mes travaux quotidiens. Donc. Je recherche et essaye différents types d'antenne mais ne fonctionne pas. Après une perte de temps, j'ai trouvé une antenne que j'espère fabriquer et tester, car ce n'est pas un principe de construction
Game Design dans Flick en 5 étapes : 5 étapes
Game Design dans Flick en 5 étapes : Flick est un moyen très simple de créer un jeu, en particulier quelque chose comme un puzzle, un roman visuel ou un jeu d'aventure
Système d'alerte de stationnement en marche arrière Arduino - Étapes par étape : 4 étapes
Système d'alerte de stationnement en marche arrière Arduino | Étapes par étape : dans ce projet, je vais concevoir un circuit de capteur de stationnement inversé pour voiture Arduino simple à l'aide d'un capteur à ultrasons Arduino UNO et HC-SR04. Ce système d'alerte de marche arrière basé sur Arduino peut être utilisé pour une navigation autonome, une télémétrie de robot et d'autres r
Détection de visage sur Raspberry Pi 4B en 3 étapes : 3 étapes
Détection de visage sur Raspberry Pi 4B en 3 étapes : dans ce Instructable, nous allons effectuer une détection de visage sur Raspberry Pi 4 avec Shunya O/S en utilisant la bibliothèque Shunyaface. Shunyaface est une bibliothèque de reconnaissance/détection de visage. Le projet vise à atteindre la vitesse de détection et de reconnaissance la plus rapide avec
SmartBin : 8 étapes
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 presente em cada uma delas, e uma rota de coleta traçada,…com base nas informa