Përmbajtje:

Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)
Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)

Video: Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)

Video: Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)
Video: Roadkill Bunny & My FIRST Wearable! Crochet Podcast 127 2024, Nëntor
Anonim
Gjurmoni dhe gjurmoni për Dyqanet e Vogla
Gjurmoni dhe gjurmoni për Dyqanet e Vogla

Ky është një sistem i krijuar për dyqane të vogla që supozohet të hipin në biçikleta elektronike ose e-skutera për dërgesa me rreze të shkurtër, për shembull një furrë buke që dëshiron të ofrojë pasta.

Çfarë do të thotë Gjurmë dhe Gjurmë?

Gjurmimi dhe gjurmimi është një sistem i përdorur nga transportuesit ose kompanitë korrier për të regjistruar lëvizjen e parcelave ose sendeve gjatë transportit. Në çdo vend përpunimi, mallrat identifikohen dhe të dhënat transmetohen në sistemin qendror të përpunimit. Këto të dhëna përdoren më pas për të dhënë statusin/përditësimin e vendndodhjes së mallrave për transportuesit.

Sistemi që do të bëjmë do të tregojë gjithashtu rrugën e marrë dhe sasinë e goditjeve dhe goditjeve të marra. Ky udhëzues supozon gjithashtu që ju keni një njohuri themelore për një pi mjedër, python dhe mysql.

shënim: kjo është bërë për një projekt shkollor, kështu që për shkak të kufizimit kohor ka shumë hapësirë për përmirësim

Furnizimet

-Mjedër Pi 4 modeli B

-Kalliçeri i mjedrës PI T

-Bateri Li-jon 4x 3, 7V

-2x mbajtës i dyfishtë i baterisë

-DC Buck Step-down Converter 5v

-2x portokalli të mëdhenj

-ne çelës/fikur/aktivizuar

-buton

-adafruit ultimate gps v3

-mpu6050

-Ekran LCD 16x2

-motor servo

Hapi 1: Fuqizimi i qarkut dhe Pi

Fuqizimi i qarkut dhe Pi
Fuqizimi i qarkut dhe Pi
Fuqizimi i qarkut dhe Pi
Fuqizimi i qarkut dhe Pi

Kur vjen puna për të fuqizuar qarkun pi me një bateri, ju keni disa opsione se si ta bëni atë.

Ju mund të përdorni një bankë energjie dhe të fuqizoni pi përmes USB, ndoshta jeni duke e montuar pajisjen në një biçikletë elektronike ose e-skuter që ka një port USB, ndoshta keni një bateri telefoni 5V të shtrirë përreth duke pritur për t'u përdorur ose mund të përdorni 2 grupe të baterisë 3.7V janë paralelisht me një konvertor hap poshtë siç tregohet në fotografi

Çdo gjë është mirë për sa kohë që mund të sigurojë një 5V të vazhdueshëm dhe ka një jetë me të cilën jeni të kënaqur.

Hapi 2: MPU6050

MPU6050
MPU6050

Hyrje Moduli i sensorit MPU6050 është një pajisje e integruar për përcjelljen e lëvizjes me 6 boshte.

  • Ka një Xhiroskop me 3 boshte, Përshpejtues me 3 boshte, Procesor dixhital të lëvizjes dhe një sensor Temperature, të gjitha në një IC të vetme.
  • Parametra të ndryshëm mund të gjenden duke lexuar vlerat nga adresat e regjistrave të caktuar duke përdorur komunikimin I2C. Leximi i xhiroskopit dhe akselerometrit përgjatë akseve X, Y dhe Z janë të disponueshme në formën e komplementit të 2 -të.
  • Leximet e xhiroskopit janë në gradë për njësi të sekondës (dps); Leximet e përshpejtuesit janë në njësi g.

Aktivizimi i I2C

Kur përdorni një MPU6050 me një Raspberry Pi, ne duhet të sigurohemi që protokolli I2C në Raspberry Pi të jetë i ndezur. Për ta bërë këtë, hapni terminalin e pi përmes stuko ose softuare të tjerë dhe bëni sa më poshtë:

  1. shkruani "sudo raspi-config"
  2. Zgjidhni Konfigurimet e Ndërfaqes
  3. Në opsionin Ndërfaqja, zgjidhni "I2C"
  4. Aktivizo konfigurimin e I2C
  5. Zgjidhni Po kur kërkon të rindizet.

Tani, ne mund të testojmë/skanojmë për çdo pajisje I2C të lidhur me tabelën tonë Raspberry Pi duke instaluar mjete i2c. Ne mund të marrim mjete i2c duke përdorur menaxherin e paketave të përshtatshme. Përdorni komandën e mëposhtme në terminalin Raspberry Pi.

"sudo apt-get install -y i2c-tools"

Tani lidhni çdo pajisje të bazuar në I2C në portën e modalitetit të përdoruesit dhe skanoni atë port duke përdorur komandën e mëposhtme, "sudo i2cdetect -y 1"

Pastaj do të përgjigjet me adresën e pajisjes.

Nëse asnjë adresë nuk kthehet, sigurohuni që MPU6050 të jetë lidhur siç duhet dhe provoni përsëri

Duke e bërë atë të funksionojë

tani që jemi të sigurt se i2c është aktivizuar dhe pi mund të arrijë në MPU6050 ne do të instalojmë një bibliotekë duke përdorur komandën "sudo pip3 install adafruit-circuitpython-mpu6050".

nëse bëjmë një skedar testi python dhe përdorim kodin e mëposhtëm, mund të shohim nëse funksionon:

koha e importit

bordi i importit

import busi

oimport adafruit_mpu6050

i2c = busio. I2C (bordi. SCL, bordi. SDA)

mpu = adafruit_mpu6050. MPU6050 (i2c)

ndërsa e vërtetë:

print ("Përshpejtimi: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu. përshpejtim))

print ("Gyro X: %. 2f, Y: %.2f, Z: %.2f gradë/s" %(mpu.gyro))

print ("Temperatura: %.2f C" % mpu.temperatura)

print ("")

koha. gjumi (1)

kur duam përshpejtimin në boshtin X/Y/Z mund të përdorim sa vijon:

accelX = mpu.shpejtimi [0] accelY = mpu.shpejtimi [1] accelZ = mpu.shpejtimi [2]

duke e kombinuar këtë me një deklaratë të thjeshtë nëse në një lak konstant ne mund të llogarisim sasinë e goditjeve në një udhëtim

Hapi 3: GPS i Adafruit Ultimate Breakout

GPS Adafruit Ultimate Breakout GPS
GPS Adafruit Ultimate Breakout GPS

Prezantimi

Zbërthimi është ndërtuar rreth chipsetit MTK3339, një modul jo-pakuptimtë, me cilësi të lartë GPS që mund të gjurmojë deri në 22 satelitë në 66 kanale, ka një marrës të shkëlqyer me ndjeshmëri të lartë (-165 dB ndjekje!), Dhe një antenë të integruar Me Mund të bëjë deri në 10 azhurnime të vendndodhjes në sekondë për regjistrim me shpejtësi të lartë, ndjeshmëri të lartë ose ndjekje. Përdorimi i energjisë është tepër i ulët, vetëm 20 mA gjatë lundrimit.

Pllaka vjen me: një rregullator ultra të ulët të braktisjes 3.3V, në mënyrë që ta fuqizoni atë me hyrje të sigurta të nivelit 5V me 3.3-5VDC, LED ndizet në rreth 1Hz ndërsa është në kërkim të satelitëve dhe pulson një herë në 15 sekonda kur është rregulluar gjetur se ruan fuqinë.

Testimi i GPS me arduino

Nëse keni qasje në një arduino, është një ide e mirë të provoni modulin me të.

Lidhni VIN me +5V Lidhni GND me Tokën Lidhni GPS RX (të dhëna në GPS) me Digital 0 Lidhni GPS TX (të dhëna nga GPS) në Digital 1

Thjesht drejtoni një kod arduino të zbrazët dhe hapni monitorin serik në 9600 baud. Nëse merrni të dhëna GPS, moduli juaj GPS funksionon. Shënim: nëse moduli juaj nuk merr një rregullim, provoni ta vendosni atë nga një dritare ose jashtë në një tarracë

Duke e bërë atë të funksionojë

Fillimi i instalimit të bibliotekës adafruit gps duke përdorur komandën "sudo pip3 install adafruit-circuitpython-gps".

Tani mund të përdorim kodin e mëposhtëm python për të parë nëse mund ta bëjmë atë të funksionojë:

importi i kohës bordi i importit busioimport adafruit_gpsimport serial uart = serial. Serial ("/dev/ttyS0", baudrate = 9600, timeout = 10)

gps = adafruit_gps. GPS (uart, debug = False) gps.send_command (b'PMTK314, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ') gps.send_command (b'PMTK220, 1000')

ndërsa e vërtetë:

gps.update () ndërsa jo gps.has_fix:

print (gps.nmea_sentence) print ('Duke pritur për rregullimin …') gps.update () time.sleep (1) vazhdoni

print ('=' * 40) # Shtypni një linjë ndarëse.print ('Gjerësia gjeografike: {0:.6f} gradë'.format (gps.latitude)) print (' Gjatësia gjeografike: {0:.6f} gradë'.format (gps.longitude)) print ("Rregulloni cilësinë: {}". format (gps.fix_quality))

# Disa atribute përtej gjerësisë, gjatësisë dhe kohëzgjatjes janë opsionale# dhe mund të mos jenë të pranishme. Kontrolloni nëse ata janë Asnjë para se të përpiqeni të përdorni! Nëse gps.satellites nuk është Asnjë:

print ("# satelitët: {}". format (gps.satellites))

nëse gps.altitude_m nuk është Asnjë:

print ("Lartësia: {} metra".format (gps.altitude_m))

nëse gps.speed_knots nuk është Asnjë:

print ("Shpejtësia: {} nyje".format (gps.speed_knots))

nëse gps.track_angle_deg nuk është Asnjë:

print ("Këndi i gjurmimit: {} gradë".format (gps.track_angle_deg))

nëse gps.hilution_horizontal_dilution nuk është Asnjë:

print ("Hollimi horizontal: {}". format (gps.horizontal_dilution))

nëse gps.height_geoid nuk është Asnjë:

print ("Lartësia gjeo ID: {} metra".format (gps.height_geoid))

koha. gjumi (1)

Hapi 4: LCD 16x2

LCD 16x2
LCD 16x2

Prezantimi

Modulet LCD përdoren shumë shpesh në shumicën e projekteve të ngulitura, arsyeja është çmimi i tij i lirë, disponueshmëria dhe programuesi miqësor. Shumica prej nesh do të kishim hasur në këto shfaqje në jetën tonë të përditshme, qoftë në PCO ose në kalkulatorët. LCD 16 × 2 emërtohet kështu sepse; ka 16 Kolona dhe 2 Rreshta. Ka shumë kombinime në dispozicion si, 8 × 1, 8 × 2, 10 × 2, 16 × 1, etj., Por më i përdoruri është LCD 16 × 2. Pra, do të ketë (16 × 2 = 32) 32 karaktere në total dhe secili karakter do të jetë i përbërë nga 5 × 8 Pika Pixel.

Instalimi i smbus

Autobusi i Menaxhimit të Sistemit (SMBus) është pak a shumë një derivat i autobusit I2C. Standardi është zhvilluar nga Intel dhe tani mbahet nga Forumi SBS. Aplikimi kryesor i SMBus është të monitorojë parametrat kritikë në pllakat amë të PC dhe në sistemet e ngulitura. Për shembull, ka shumë monitorues të tensionit të furnizimit, monitor të temperaturës dhe monitorues/kontrollues të tifozëve me një ndërfaqe SMBus.

Biblioteka që do të përdorim kërkon që smbus të instalohet gjithashtu. Për të instaluar smbus në rpi përdorni komandën "sudo apt install python3-smbus".

Duke e bërë atë të funksionojë

së pari të instaloni bibliotekën RPLCD duke përdorur komandën "sudo pip3 install RPLCD".

tani ne testojmë LCD duke shfaqur ip duke përdorur kodin e mëposhtëm:

nga priza RPLCD.i2c import CharLCDimport

def get_ip_address ():

ip_address = '' s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () [0] s.close () kthehu ip_address

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('Adresa IP: / r / n'+str (merrni_ip_adresa ()))

Hapi 5: Servo, Leds, Button dhe Switch

Servo, Leds, Button dhe Switch
Servo, Leds, Button dhe Switch

Prezantimi

Një servo motor është një aktivizues ose motor rrotullues që lejon një kontroll të saktë në lidhje me pozicionin këndor, nxitimin dhe shpejtësinë, aftësitë që një motor i rregullt nuk i ka. Ai përdor një motor të rregullt dhe e bashkon atë me një sensor për reagimet e pozicionit. Kontrolluesi është pjesa më e sofistikuar e servo motorit, pasi është krijuar posaçërisht për këtë qëllim.

LED i shkurtër për diodën që lëshon dritë. Një pajisje elektronike gjysmëpërçuese që lëshon dritë kur një rrymë elektrike kalon nëpër të. Ato janë dukshëm më efikase sesa llambat inkandeshente dhe rrallë digjen. LED-të përdoren në shumë aplikacione, të tilla si ekranet video me ekran të sheshtë, dhe gjithnjë e më shumë si burime të përgjithshme të dritës.

Një buton ose thjesht një buton është një mekanizëm i thjeshtë ndërprerës për të kontrolluar disa aspekte të një makine ose një procesi. Butonat zakonisht bëhen nga materiali i fortë, zakonisht plastikë ose metal.

Një çelës ndezës/fikur/ndezur ka 3 pozicione ku ai i mesmi është gjendja e fikur, këto lloje përdoren më së shumti për kontroll të thjeshtë motorik ku keni një gjendje përpara, fikur dhe anasjelltas.

Duke e bërë të funksionojë: servo

Servo përdor një sinjal PWM për të përcaktuar se në cilin kënd duhet të jetë për fatin tonë GPIO ka këtë veçori të integruar. Prandaj, ne thjesht mund të përdorim kodin e mëposhtëm për të kontrolluar servo: importoni RPi. GPIO si kohë GPIOimport

servo_pin = 18dikli_cycle = 7.5

GPIO.setmode (GPIO. BCM)

GPIO.setup (servo_pin, GPIO. OUT)

pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (cikli i detyrës)

ndërsa e vërtetë:

duty_cycle = float (input ("Shkruaj ciklin e punës (nga e majta = 5 në të djathtë = 10):")) pwm_servo. ChangeDutyCycle (cycle_ տուրë)

Duke e bërë atë të funksionojë: led dhe switch

Për shkak të mënyrës së lidhjes së led -ve dhe ndërprerësit nuk kemi nevojë të kontrollojmë ose lexojmë led -et dhe të kalojmë vetë. Ne thjesht i dërgojmë impulse magjistares së butonave, nga ana tjetër, do ta përcjellim sinjalin në led -in që duam.

Duke e bërë atë të funksionojë: butoni

Për butonin do të bëjmë klasën tonë të thjeshtë në këtë mënyrë që e shohim me lehtësi kur shtypet pa pasur nevojë të shtojmë një ngjarje të zbuluar në të sa herë që e përdorim. Ne do ta bëjmë skedarin classbutton.py duke përdorur kodin e mëposhtëm:

nga RPi Import GPIO Butoni i Klasës:

def _init _ (vetë, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@pronësia def shtypur (vetë):

ingedrukt = GPIO.input (self.pin) kthimi jo ingedrukt

def on_press (vetja, metoda e thirrjes):

GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)

def on_release (vetë, metoda e thirrjes):

GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)

Hapi 6: Qarku i plotë

Qarku i Plotë
Qarku i Plotë
Qarku i Plotë
Qarku i Plotë

Tani që kemi kaluar mbi të gjithë përbërësit, është koha për t'i kombinuar të gjithë.

Ndërsa fotografitë tregojnë që komponentët tregojnë gjithçka në tabelën e bukës, është më mirë të keni LCD, adafruit GPS dhe butonin e lidhur duke përdorur telat femra me tela mashkullorë. Vetëm të keni t-cobbler dhe mpu6050 në një dërrasë buke. Kur bëhet fjalë për led dhe switch përdorni tela më të gjatë për t'u siguruar që mund të arrini shufrat e blinkerit dhe shiritin drejtues.

Hapi 7: Kodi

Për ta mbajtur të pastër këtë udhëzues, unë kam siguruar një depo github me skedarët backend dhe frontend. Thjesht vendosni skedarët në dosjen frontend në dosjen/var/www/html dhe skedarët në dosjen e pasme në një dosje në/home/ dosja [emri i përdoruesit]/[emri i dosjes]

Hapi 8: Baza e të dhënave

Baza e të dhënave
Baza e të dhënave

Për shkak të mënyrës së krijimit të këtij sistemi, ekziston një ueb -dyqan i thjeshtë i krijuar duke përdorur një listë të produkteve në një bazë të dhënash, për më tepër ne kemi të gjitha pikat dhe porositë e ruajtura këtu. Një skenar krijimi mund të gjendet në depon e github të lidhur në hapi tjeter

Hapi 9: Rasti

Rasti
Rasti

Pasi ta dimë punën elektronike, mund t'i fusim në një kuti. Ju mund të merrni pak liri krijuese me këtë. Para se ta ndërtoni, thjesht kapni një kuti kartoni që nuk ju nevojitet më si një kuti drithërash bosh për shembull dhe prerë, ngjiteni atë dhe paloseni derisa të keni diçka që ju pëlqen. Matni dhe vizatoni kutinë tuaj në një copë letër dhe bëjeni atë nga një material më i fortë si druri, ose nëse kjo nuk është gjëja juaj printoni atë në 3D. Vetëm sigurohuni që të gjitha pajisjet elektronike të përshtaten brenda dhe ju keni vrima për butonin, tela që shkon në ndërprerës, led dhe lcd. Pasi të keni bërë çështjen tuaj është vetëm një çështje për të gjetur një mënyrë për ta montuar atë në biçikletë ose skuter

Recommended: