Përmbajtje:

SmartBin: 4 hapa
SmartBin: 4 hapa

Video: SmartBin: 4 hapa

Video: SmartBin: 4 hapa
Video: Xiaomi Mi Band 4 India unit unboxing, Mi Smart Water Purifier, Mi 65 inch 4K TV 2024, Nëntor
Anonim
Image
Image

Qëllimi kryesor i këtij projekti është krijimi i një pajisjeje elektronike e cila përdor të paktën një Raspberry Pi. Ekipi është i përbërë nga 5 inxhinierë të ardhshëm mekanikë dhe një inxhinier automatizimi. Projekti ynë konsiston në bërjen e një koshi plehrash që hapet dhe mbyllet automatikisht i shkaktuar nga një lëvizje e këmbëve nën detektorin e lëvizjes të vendosur në qendër në pjesën e përparme të koshit të plehrave. Një shkop USB Wifi përdoret për të dërguar të dhëna në një faqe në internet. Ky kosh quhet "The SmartBin". Videoja humoristike e mësipërme prezanton SmartBin -in tonë novator.

Për të realizuar këtë projekt dhe këtë SmartBin të mrekullueshëm, ishin të nevojshme disa mjete:

  • Një metër
  • Zam i fortë
  • Një shirit ngjitës
  • Një sharrë druri
  • Një kaçavidë
  • Një makinë stërvitjeje
  • Një pirg
  • Nje thike

Hapi 1: Pajisjet SmartBin

Pajisjet SmartBin
Pajisjet SmartBin
Pajisjet SmartBin
Pajisjet SmartBin

SmartBin përbëhet nga drita LED jeshile, portokalli dhe të kuqe të cilat vendosen në një pajisje në anën e majtë të kazanit e cila do të tregojë sa e mbushur është. Këto drita do të jenë qartë të dukshme dhe do të paralajmërojnë përdoruesin kur është e nevojshme të zëvendësohet qesja e plehrave. Gjuha e programimit e përdorur është Python. Niveli i matur i mbushjes së kazanit transmetohet në faqen në internet:

Këtu janë elementët që janë përdorur, por ju lehtë mund të gjeni një zgjidhje alternative:

  • 1 kosh (kosh i "kapakut të lëkundur")
  • 1 Servomotor për të hapur koshin
  • 1 mjedër Pi 2
  • 2 Furnizime me energji elektrike (karikues 5V për celular dhe furnizim me energji 6V) për të furnizuar Raspberry Pi dhe servomotor
  • 1 Sensor tejzanor për të matur nivelin e mbushjes së kazanit
  • Disa LED për të shfaqur nivelin e mbushjes (4 jeshile, 2 portokalli dhe 1 të kuqe)
  • 1 Detektor tejzanor i lëvizjes për të zbuluar një lëvizje
  • 1 kartë SD 16 GB
  • Rezistenca elektrike (10.000 Ohms, 2000 Ohms dhe 1000 Ohms)
  • 1 USB USB shkop për të mundësuar transmetimin pa tel në faqen e internetit.
  • 1 Breadboard dhe disa kabllo mjedër

Çmimi i vlerësuar i prodhimit është 80 €.

Hapi 2: Prodhimi i Kutisë së Mjedrës dhe Shiritit LED

Prodhimi i Kutisë së Mjedrës dhe Shiritit LED
Prodhimi i Kutisë së Mjedrës dhe Shiritit LED
Prodhimi i Kutisë së Mjedrës dhe Shiritit LED
Prodhimi i Kutisë së Mjedrës dhe Shiritit LED
Prodhimi i Kutisë së Mjedrës dhe Shiritit LED
Prodhimi i Kutisë së Mjedrës dhe Shiritit LED

Për të prodhuar kutinë e mjedrës, përdorni sharrë druri. Mbërtheni çdo anë të kutisë me thumba për ta bërë atë të duket e pastër. Siç sugjeron edhe emri, kjo kuti do të përmbajë jo vetëm Raspberry Pi, por gjithashtu do të përfshijë sensorin e lëvizjes të cilin do ta vendosni në fund. Pasi të jetë ndërtuar kutia, lyeni me të njëjtën ngjyrë si kazani. Teknologjia e printimit 3D mund të përdoret për të krijuar këtë kuti.

Për prodhimin e shiritit LED, përdorni një kanal elektrik në të cilin shponi vrima për të lejuar instalimin e dritave LED. Shiriti LED gjithashtu duhet të pikturohet. Kur gjithçka është gati, instaloni LED në kanal dhe bëni lidhjen elektrike. Kushtojini vëmendje numrimit të duhur të secilit kabllo LED me shirit ngjitës. Do t'ju ndihmojë të identifikoni secilën LED gjatë instalimeve elektrike.

Së fundi, bashkëngjitni kutinë dhe shiritin LED në pjesën e përparme të kazanit tuaj.

Hapi 3: Pjesa e kapakut

Pjesa e kapakut
Pjesa e kapakut
Pjesa e kapakut
Pjesa e kapakut

Lidhur me kapakun e kazanit, hapi i parë është ngjitja e servomotorit në kapak. Një zgjerim i levës duhet të bëhet më parë. Leva do të godasë një ndalesë e cila më parë ishte punuar me dorë. Bashkangjitni një kuti vidash në kapak dhe bëni një vrimë në të në mënyrë që të mbani sensorin tejzanor në pozicionin e duhur. Sigurohuni që të lidhni saktë kabllot në kapak me shirit.

Hapi 4: Pjesa e Softuerit dhe Blerja e të Dhënave

Pjesa e softuerit dhe blerja e të dhënave
Pjesa e softuerit dhe blerja e të dhënave
Pjesa e softuerit dhe blerja e të dhënave
Pjesa e softuerit dhe blerja e të dhënave
Pjesa e Softuerit dhe Blerja e të Dhënave
Pjesa e Softuerit dhe Blerja e të Dhënave

Në lidhje me pjesën e softuerit, ne përdorëm gjuhën e programimit python. Programi ruhet në kartën SD e cila do të drejtohet nga Raspberry Pi kur të ndizet. Skema e instalimeve elektrike është në dispozicion më lart. Imazhi i kunjave Gpio është i disponueshëm për të gjitha llojet e mjedrës në lidhjen më poshtë:

www.raspberrypi-spy.co.uk/2012/06/simple-g…

Sensorshtë e mundur të përdorni një sensor tejzanor për të zëvendësuar detektorin e lëvizjes, thjesht duhet të krijoni një "nëse lak" në kod.

Siç u përmend më lart, të dhënat në lidhje me nivelin në të cilin është mbushur kosha transmetohen në një faqe në internet të krijuar në wix.com. Në këtë faqe në internet, ju mund të gjeni skeda të ndryshme të cilat mbledhin anëtarët e ekipit, prezantimin e harduerit dhe softuerit, … Skeda interesante është në fakt skeda "Baza e të dhënave" e cila mbledh informacionin në lidhje me sasinë e plehrave direkt nga SmartBin dhe krijon një grafik me të dhënat Me Grafiku tregon evolucionin e nivelit të mbushjes. Isshtë e mundur të shihni ose shkarkoni të dhëna nga faqja e internetit. Lidhja më poshtë është uebfaqja që kemi përdorur dhe do t'ju tregojë se si të lexoni dhe shkruani në fletët e Google me python:

www.makeuseof.com/tag/read-write-google-sh…

Në lidhje me "pjesën e autorun" të kodit, shkruani në terminal: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart

Pastaj, në fund të shkrimit që sapo është hapur, shkruani këto dy rreshta kodesh: python /home/pi/main.py & python /home/pi/csvcontrol.py &

Për të ruajtur aurorun, shtypni: C trl + O Pastaj, shtypni: Enter Pastaj, shtypni: C trl + X

Shkruani si rreshtin e fundit të kodit: sudo reboot

Ju gjithashtu mund të shkarkoni shtojcën e cila është kodi i plotë i python i përdorur për projektin. Të dy kodet funksionojnë në të njëjtën kohë!

Këtu është kodi main.py:

import RPi. GPIO si GPIOimport dataetime kohë import import csv

GPIO.setmode (GPIO. BCM)

GPIO.setwarnings (False)

kapteurP = 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)

Shkas = 23

Jehona = 24

GPIO.setup (Trig, GPIO. OUT)

GPIO.setup (Echo, GPIO. IN)

GPIO.setwarnings (False)

GPIO.putput (5, false)

GPIO.putput (6, false) GPIO.output (13, False) GPIO.output (19, False) GPIO.output (20, False) GPIO.output (21, False) GPIO.output (26, False)

GPIO.putput (Trig, False)

timeset = koha. koha ()

distanca = 100 memorie = 0 kohë. gjumë (2) pwm. fillo (12.5)

ndërsa e vërtetë:

timetac = time.time () nëse GPIO.input (capteurP) dhe timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) kohë. gjumë (0.2) memorie = -0.5 pwm. ChangeDutyCycle (0) timetac = kohë.time () koha. gjumi (0.5) nëse timetac-timeset> 15 ose kujtesa> 0.4: nëse kujtesa> 0.4: pwm. Koha e ndryshimit të detyrave të ciklit (2.5). gjumi (1) për x në rang (0, 1): # GPIO. dalja (Trig, E vërtetë) koha. Gjumi (0.01) GPIO. Dalja (Shkas, e gabuar)

ndërsa GPIO.input (Echo) == 0 dhe timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

ndërsa GPIO.input (Echo) == 1:

finImpulsion = koha. koha () nëse timetac-timeset <17: distance1 = raund ((finImpulsion-debutImpulsion) * 340 * 100 /2, 1) distance2 = distanca nëse (distance1-distance2) <1 dhe (distance2-distance1) 0.4: dis = rrumbullak ((60-distancë)*5/6, 1) me të hapur ('capteur.csv', 'w') si csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (dataetime.datetime.now (), '%Y-%m-%d%H:%M:%S') print ('Koha: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. authorow ([time_str, dis]) memoria = -0.1 nëse distanca <52.5: GPIO.putput (5, True) tjetër: GPIO.output (5, False) nëse distanca <45: GPIO.output (6, True) tjetër: GPIO.putput (6, False) nëse distanca <37.5: GPIO.output (13, E vërtetë) tjetër: GPIO.output (13, False) nëse distanca <30: GPIO.output (19, E vërtetë) tjetër: GPIO.putput (19, E gabuar) nëse distanca <22.5: GPIO.putput (20, E vërtetë) tjetër: GPIO.putput (20, False) nëse distanca <15: GPIO.output (21, E vërtetë) tjetër: GPIO.output (21, False) nëse distanca <7.5: GPIO.putput (26, E vërtetë) tjetër: GPIO.output (26, False)

Këtu është kodi csvcontrol.py. Mos harroni të ngjisni skedarin e krijuar ".json" në të njëjtën drejtori të main.py. Skedari ".json" është krijuar me Google API. Një pamje e ekranit është në dispozicion në fotografi.

import dataetimeimport kohë import csv import gspread

nga oauth2client.service_account import ServiceAccountCredentials

nga koha import gjumi import gjurmues

timec2 = 'lol'

ndërsa True: time.sleep (5) loc = ('capteur.csv') me hapur (loc) si csvfile: readCSV = csv.reader (csvfile, delimiter = ',') për rreshtin në leximCSV: print (rreshti [0]) timec = rreshti [0] print (rreshti [1]) distanca = rreshti [1] distanca = notimi (rr (distanca)) nëse timec2! = timec: timec2 = timec print ('Koha: {0} Kuantiti: { 1} '. Format (timec, distanca))

FUSHAT = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ ngas "]

kredencialet = ServiceAccountCredentials.fr_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (kredencialet) wks = gc.open ("grafik"). fletë 1 javë = wks.append_row ((timec, distanca))

Recommended: