Dozator automat de sapun lichid facut cu Raspberry Pi si Python
Salutare prieteni!
Azi am incercat sa fac un nou proiect, unul destul de simplu dar interesant: un dozator automat de sapun lichid pe care l-am facut cu ajutorul urmatoarelor componente:
- Raspberry Pi
- Un sensor ultrasonic
- Un releu
- O pompă
- Alimentare externa pentru pompă
Pe Raspberry Pi am facut programul Python pe care il puteti gasi la finalul articolului. Senzorul ultrasonic masoara distanta pana la obstacolele din fata lui si astfel detecteaza daca ne apropiem cu mainile fata de senzor la mai putin de 5cm. In momentul in care senzorul detecteaza mainile in apropiere vom actiona releul si acesta la randul lui va porni pompa care va transporta sapunul lichid spre maini.
Atentie: timpul cat mentinem pompa pornita trebuie sa difere in functie de lungimea furtunului. Daca furtunul e scurt atunci timpul trebuie sa fie si el scurt. Daca furtunul este mai lung atunci si timpul trebuie sa fie mai lung pentru ca pompa trebuie sa impinga coloana de lichid pe distanta mai mare.
Buuun… acum prototipul este gata, trebuie sa gasesc o cutie in care sa le asez si sa-l pun la treaba pe chiuveta in baie! 😉
UPDATE: Gata, am si rezultatul final facut impreuna cu un Raspberry Pi Zero W si sapun linchid:
Iata codul scris de mine (*Free to copy and use for educational purposes):
# Copyright 2020 by Sebastian Chetroni - ZCoder.ro # Free to copy and use for educational purposes #importam librariile necesare si alegem pinii GPIO cu care vom lucra import time import RPi.GPIO as GPIO from datetime import datetime GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) # Alegem pinul GPIO pentru controlul releului pinReleu = 13 # Alegem pinii de comunicare GPIO pentru senzorul ultrasonic trig = 16 echo = 18 # Alegem directia de comunicare pentru fiecare pin GPIO.setup(pinReleu,GPIO.OUT) GPIO.setup(trig, GPIO.OUT) GPIO.setup(echo, GPIO.IN) # Pornim bucla repetitiva care va masura distanta si va porni pompa while True: # Facem pauza de 0,25 secunde intre masuratori time.sleep(0.25) # Incepem masurarea distantei now = datetime.now() date = now.strftime("%Y.%m.%d – %H:%M:%S") GPIO.output(trig, GPIO.HIGH) time.sleep(0.00001) GPIO.output(trig, GPIO.LOW) start = time.time() stop = time.time() while GPIO.input(echo) == 0: start = time.time() while GPIO.input(echo) == 1: stop = time.time() duration = stop - start distance = 34300/2 * duration # Afisam distanta masurata de senzor if distance < 3400: print ("Distanta = %.2fcm" %distance) # Daca distanta este mai mica de 5cm pornim pompa if distance < 5: # Dam comanda releului pentru pornirea pompei GPIO.output(pinReleu, GPIO.HIGH) # Mentinem pompa pornita pentru 0,5 secunde. # Acest timp trebuie modificat in functie de lungimea furtunului prin care va circula lichidul time.sleep(0.5) # Dam comanda releului pentru oprirea pompei GPIO.output(pinReleu, GPIO.LOW) # Facem pauza de 3 secunde pana la urmatoarea masuratoare time.sleep(3) else: # Daca distanta este mai mare de 5cm lasam pompa oprita GPIO.output(pinReleu, GPIO.LOW) GPIO.cleanup()
Author: Sebastian Chetroni
Website: https://zcoder.ro
Articole recente
- Olimpiada Nationala de Informatica 2023. Rezolvare problema „Cadouri” in C++, clasa a V-a
- Olimpiada Nationala de Informatica 2023. Rezolvare problema „Patinaj” in C++, clasa a V-a
- Olimpiada Judeteana de Informatica 2018. Rezolvare problema „Forus” in C++, clasa a V-a
- Olimpiada Judeteana de Informatica 2018. Rezolvare problema „Patrate” in C++, clasa a V-a
- Olimpiada Judeteana de Informatica 2019. Rezolvare problema „Cartele” in C++, clasa a V-a
Comentarii recente
- irina c la Olimpiada Judeteana de Informatica 2021. Rezolvare problema „Concurs” in C++, clasa a V-a
- M la Olimpiada Judeteana de Informatica 2022. Rezolvare problema „Sume si secvente” in C++, clasa a V-a
- Sebastian Chetroni la Olimpiada Judeteana de Informatica 2023. Rezolvare problema „Aeriana” in C++, clasa a V-a
- andrei toma la Olimpiada Judeteana de Informatica 2023. Rezolvare problema „Aeriana” in C++, clasa a V-a
- andrei nicolescu la Am fost in tabara educationala de vara Atlantykron. Voi mai merge
foarte tare, merge si pe raspberry pi zero?
Salut Andrei, Merge sigur si pe RPi Zero.
Eu am RPi Zero W si a functionat la fel de bine.
buna ideea, o sa-mi fac un dozator de dezinfectant
Succes!
ce tare
Da, m-am amuzat si eu facandu-l!