Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pagpapatakbo ng Circuit at Pi
- Hakbang 2: Ang MPU6050
- Hakbang 3: Ang Adafruit Ultimate Breakout GPS
- Hakbang 4: Ang 16x2 LCD
- Hakbang 5: Servo, Leds, Button at Switch
- Hakbang 6: Ang Buong Circuit
- Hakbang 7: Ang Code
- Hakbang 8: Ang Database
- Hakbang 9: Ang Kaso
Video: Subaybayan at subaybayan para sa Mga Maliit na Tindahan: 9 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ito ay isang sistema na ginawa para sa maliliit na tindahan na dapat na mai-mount sa mga e-bike o e-scooter para sa maihatid na saklaw, halimbawa ng isang panaderya na nais maghatid ng mga pastry.
Ano ang ibig sabihin ng Track and Trace?
Ang track and trace ay isang sistema na ginagamit ng mga carrier o kumpanya ng courier upang maitala ang paggalaw ng mga parsela o item sa panahon ng transportasyon. Sa bawat lokasyon ng pagpoproseso, ang mga kalakal ay makikilala at ang data relay sa gitnang sistema ng pagproseso. Ginagamit ang data na ito upang magbigay ng katayuan / pag-update ng lokasyon ng mga kalakal sa mga nagpapadala.
Ipapakita rin ng sistemang gagawin namin ang ruta na kinuha at ang dami ng mga pagkabigla at paga na natanggap. Ipinapalagay din ng mga itinuturo na mayroon kang pangunahing kaalaman sa isang raspberry pi, python at MySQL.
tandaan: ito ay ginawa para sa isang proyekto sa paaralan, kaya't dahil sa paghihigpit ng oras mayroong maraming silid para sa pagpapabuti
Mga gamit
-Raspberry Pi 4 na modelo B
-Raspberry PI T-cobbler
-4x 3, 7V Li-ion na mga baterya
-2x dobleng may hawak ng Baterya
-DC Buck Step-down Converter 5v
-2x malaking orange led's
-on / off / on switch
-button
-adafruit ultimate gps v3
-mpu6050
-16x2 lcd display
-servo motor
Hakbang 1: Pagpapatakbo ng Circuit at Pi
Pagdating sa pag-power ng circuit pi gamit ang isang baterya mayroon kang ilang mga pagpipilian kung paano ito gawin.
Maaari kang gumamit ng isang powerbank at paganahin ang pi sa pamamagitan ng USB, marahil ay pinapataas mo ang aparato sa isang e-bike o e-scooter na may isang USB port, marahil ay mayroon kang isang baterya ng telepono na 5V na nakahiga at naghihintay na magamit bago mo magamit ang 2 mga hanay ng 3.7V baterya na kahanay sa isang step down na converter tulad ng ipinakita sa mga larawan
Anumang bagay ay mabuti hangga't maaari itong magbigay ng isang tuluy-tuloy na 5V at may isang buhay na masaya ka.
Hakbang 2: Ang MPU6050
PanimulaMPU6050 sensor module ay isang integrated 6-axis Motion tracking device.
- Mayroon itong 3-axis Gyroscope, 3-axis Accelerometer, Digital Motion Processor at isang Temperatura sensor, lahat sa isang solong IC.
- Ang iba't ibang mga parameter ay matatagpuan sa pamamagitan ng pagbabasa ng mga halaga mula sa mga address ng ilang mga pagrehistro gamit ang komunikasyon ng I2C. Ang pagbasa ng goscoscope at accelerometer kasama ang mga axis ng X, Y at Z ay magagamit sa komplimentong form ng 2.
- Ang mga pagbasa ng gyroscope ay nasa degree bawat segundo (dps) unit; Ang mga pagbasa ng accelerometer ay nasa g unit.
Pagpapagana ng I2C
Kapag gumagamit ng isang MPU6050 na may isang Raspberry Pi, dapat nating tiyakin na ang I2C protocol sa Raspberry Pi ay nakabukas. Upang gawin ito buksan ang terminal ng pi sa pamamagitan ng masilya o iba pang softaware at gawin ang mga sumusunod:
- i-type ang "sudo raspi-config"
- Piliin ang Mga Configurasyon ng Interfacing
- Sa pagpipiliang Interfacing, Piliin ang "I2C"
- Paganahin ang pagsasaayos ng I2C
- Piliin ang Oo kapag humiling ito sa Reboot.
Ngayon, maaari naming subukan / i-scan ang anumang aparato ng I2C na konektado sa aming board na Raspberry Pi sa pamamagitan ng pag-install ng mga tool ng i2c. Maaari kaming makakuha ng mga tool ng i2c sa pamamagitan ng paggamit ng apt package manager. Gumamit ng sumusunod na utos sa Raspberry Pi terminal.
"sudo apt-get install -y i2c-tool"
Ikonekta ngayon ang anumang aparato na nakabatay sa I2C sa port ng user-mode at i-scan ang port na iyon gamit ang sumusunod na utos, "sudo i2cdetect -y 1"
Pagkatapos ay tutugon ito sa address ng aparato.
Kung walang adress na naibalik siguraduhin na ang MPU6050 ay maayos na konektado at subukang muli
Ginagawa itong gumana
Ngayon na sigurado kaming pinagana ang i2c at maabot ng pi ang MPU6050 mag-i-install kami ng isang silid-aklatan gamit ang "sudo pip3 install adafruit-circuitpython-mpu6050" na utos.
kung gumawa kami ng isang python test file at gamitin ang sumusunod na code maaari naming makita kung gumagana ito:
oras ng pag-import
import board
import busi
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
habang Totoo:
print ("Acceleration: X:%. 2f, Y:%.2f, Z:%.2f m / s ^ 2"% (mpu.acceleration))
i-print ("Gyro X:%. 2f, Y:%.2f, Z:%.2f degrees / s"% (mpu.gyro))
i-print ("Temperatura:%.2f C"% mpu.temperature)
i-print ("")
oras. tulog (1)
kapag nais natin ngayon ang pagpabilis sa X / Y / Z-axis maaari naming gamitin ang sumusunod:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
pagsasama-sama nito sa isang simple kung pahayag sa isang pare-pareho na loop maaari naming bilangin ang dami ng mga pagkabigla sa isang paglalakbay
Hakbang 3: Ang Adafruit Ultimate Breakout GPS
Panimula
Ang breakout ay itinayo sa paligid ng chipset ng MTK3339, isang walang katarantaduhan, de-kalidad na module ng GPS na maaaring subaybayan ang hanggang sa 22 mga satellite sa 66 na mga channel, ay may mahusay na tagatanggap ng mataas na pagkasensitibo (pagsubaybay sa -165 dB!), At isang built in na antena. Maaari itong gawin hanggang sa 10 mga pag-update ng lokasyon sa isang segundo para sa mataas na bilis, mataas na pagiging sensitibo sa pag-log o pagsubaybay. Ang paggamit ng kuryente ay hindi kapani-paniwalang mababa, 20 mA lamang sa panahon ng pag-navigate.
Ang board ay may: isang ultra-low dropout na 3.3V regulator upang mapagana mo ito sa 3.3-5VDC sa, 5V na ligtas na mga input, ang LED ay kumikislap ng halos 1Hz habang naghahanap ito ng mga satellite at kumikislap isang beses bawat 15 segundo kapag ang isang pag-aayos ay natagpuang makatipid sa kapangyarihan.
Pagsubok ng mga gps na may arduino
Kung mayroon kang mga acces sa isang arduino magandang ideya na subukan ang modyul kasama nito.
Ikonekta ang VIN sa + 5VConnect GND sa GroundConnect GPS RX (data sa GPS) sa Digital 0Connect GPS TX (data mula sa GPS) sa Digital 1
Patakbuhin lamang ang isang blangko na arduino code at buksan ang serial monitor sa 9600 baud. Kung nakakuha ka ng data ng gps gumagana ang iyong module ng gps. Tandaan: kung ang iyong module ay hindi nakakakuha ng isang pag-aayos subukang ilagay ito sa isang window o sa labas sa isang terasa
Ginagawa itong gumana
Simula ng pag-install ng adafruit gps library gamit ang utos na "sudo pip3 install adafruit-circuitpython-gps".
Ngayon ay maaari naming gamitin ang sumusunod na code ng sawa upang makita kung maaari naming itong gumana:
import timeimport board import 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 ') gps.send_command (b'PMTK220, 1000')
habang Totoo:
gps.update () habang hindi gps.has_fix:
print (gps.nmea_sentence) print ('Naghihintay para sa pag-aayos …') gps.update () time.s Sleep (1) magpatuloy
print ('=' * 40) # Mag-print ng isang separator line.print ('Latitude: {0:.6f} degrees'.format (gps.latitude)) print (' Longitude: {0:.6f} degrees'.format (gps.longitude)) print ("Ayusin ang kalidad: {}". format (gps.fix_quality))
# Ang ilang mga katangian na lampas sa latitude, longitude at timestamp ay opsyonal # at maaaring wala. Suriin kung wala sila bago subukang gamitin! Kung ang mga gps.satellite ay wala:
i-print ("# mga satellite: {}". format (gps.satellites))
kung ang gps.altitude_m ay wala:
i-print ("Altitude: {} metro".format (gps.altitude_m))
kung ang gps.speed_knots ay wala:
i-print ("Bilis: {} mga buhol".format (gps.speed_knots))
kung ang gps.track_angle_deg ay wala:
i-print ("Angulo ng track: {} degree".format (gps.track_angle_deg))
kung ang gps.horizontal_dilution ay wala:
i-print ("Pahalang na pagbabanto: {}". format (gps.horizontal_dilution))
kung ang gps.height_geoid ay wala:
print ("Taas geo ID: {} metro".format (gps.height_geoid))
oras. tulog (1)
Hakbang 4: Ang 16x2 LCD
Panimula
Ang mga LCD module ay karaniwang ginagamit sa karamihan sa mga naka-embed na proyekto, ang dahilan na ang murang presyo, pagkakaroon at palakaibigan ng programmer. Karamihan sa atin ay mahahanap ang mga ipinakitang ito sa ating pang-araw-araw na buhay, alinman sa PCO o mga calculator.16 × 2 LCD ay pinangalanan dahil; mayroon itong 16 Columns at 2 Rows. Mayroong maraming mga kumbinasyon na magagamit tulad ng, 8 × 1, 8 × 2, 10 × 2, 16 × 1, atbp. Ngunit ang pinaka ginagamit ay ang 16 × 2 LCD. Kaya, magkakaroon ito ng (16 × 2 = 32) 32 na mga character sa kabuuan at ang bawat character ay gagawin ng 5 × 8 Pixel Dots.
Pag-install ng smbus
Ang System Management Bus (SMBus) ay higit pa o hangal sa isang hango ng I2C bus. Ang pamantayan ay binuo ng Intel at pinapanatili ngayon ng SBS Forum. Ang pangunahing aplikasyon ng SMBus ay upang subaybayan ang mga kritikal na parameter sa mga motherboard ng PC at sa mga naka-embed na system. Halimbawa mayroong maraming supply voltage monitor, monitor ng temperatura, at fan monitor / control ICs na may magagamit na interface ng SMBus.
Ang library na gagamitin namin ay nangangailangan ng smbus na mai-install pati na rin. Upang mai-install ang smbus sa rpi gamitin ang "sudo apt install python3-smbus" na utos.
Ginagawa itong gumana
una sa pag-install ng RPLCD library gamit ang "sudo pip3 install RPLCD" na utos.
ngayon sinubukan namin ang lcd sa pamamagitan ng pagpapakita ng ip gamit ang sumusunod na code:
mula sa RPLCD.i2c import socket ng 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 () ibalik ip_address
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('IP adress: / r / n' + str (get_ip_address ()))
Hakbang 5: Servo, Leds, Button at Switch
Panimula
Ang isang servo motor ay isang rotary actuator o motor na nagbibigay-daan para sa isang tumpak na kontrol sa mga tuntunin ng anggular na posisyon, bilis at bilis, mga kakayahan na wala sa isang regular na motor. Ginagamit nito ang isang regular na motor at ipinapares ito sa isang sensor para sa feedback sa posisyon. Ang controller ay ang pinaka sopistikadong bahagi ng servo motor, dahil ito ay partikular na idinisenyo para sa layunin.
Maikling LED para sa light-emitting diode. Isang elektronikong aparato na semiconductor na nagpapalabas ng ilaw kapag dumaan dito ang isang de-kuryenteng. Ang mga ito ay mas mahusay kaysa sa mga bombilya na maliwanag na maliwanag, at bihirang masunog. Ginagamit ang mga LED sa maraming mga application tulad ng mga flat-screen video display, at lalong nagiging pangkalahatang mapagkukunan ng ilaw.
Ang isang push-button o simpleng pindutan ay isang simpleng mekanismo ng paglipat upang makontrol ang ilang aspeto ng isang makina o isang proseso. Ang mga pindutan ay karaniwang gawa sa matitigas na materyal, karaniwang plastik o metal.
Ang isang on / off / on switch ay may 3 mga posisyon kung saan ang gitnang isa ay ang off state ang mga uri na ito ay kadalasang ginagamit para sa simpleng kontrol ng motor kung saan mayroon kang isang pasulong, off at baligtad na estado.
Ginagawa itong gumana: ang servo
Gumagamit ang servo ng isang senyas ng PWM upang matukoy kung anong anggulo ang kinakailangan upang maging swerte para sa amin ng GPIO ang tampok na ito na naka-built in. Samakatuwid maaari naming gamitin ang sumusunod na code upang makontrol ang servo: i-import ang RPi. GPIO bilang oras ng GPIOimport
servo_pin = 18duty_cycle = 7.5
GPIO.setmode (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
habang Totoo:
duty_cycle = float (input ("Enter Duty Cycle (Left = 5 to Right = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Ginagawa itong gumana: ang led at switch
Dahil sa paraan ng aming pag-wire sa led at switch na hindi namin kailangan upang makontrol o basahin ang mga leds at ilipat ang sarili nito. Nagpadala lamang kami ng mga pulso sa bruha ng pindutan sa pagliko ng signal sa led na nais namin.
Ginagawa itong gumana: ang pindutan
Para sa pindutan gagawa kami ng aming sariling simpleng klase sa ganitong paraan madali naming makita kapag na-press ito nang hindi kinakailangang magdagdag ng isang detalyadong kaganapan dito sa tuwing gagamitin namin ito. Gagawin namin ang file na classbutton.py gamit ang sumusunod na code:
mula sa RPi import GPIOclass Button:
def _init _ (sarili, pin, bouncetime = 200): sarili):
ingedrukt = GPIO.input (sarili.pin) bumalik hindi ingedrukt
def on_press (sarili, call_method):
GPIO.add_event_detect (self.pin, GPIO. NAGBABAGO, call_method, bouncetime = self.bouncetime)
def on_release (sarili, call_method):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
Hakbang 6: Ang Buong Circuit
Ngayon na nadaanan na natin ang lahat ng mga sangkap sa oras nito upang pagsamahin ang lahat ng mga ito.
Habang ipinapakita ng mga larawan ang mga sangkap na ipinapakita ang lahat sa mismong breadboard na mas mahusay na magkaroon ng lcd, adafruit GPS at pindutan na konektado gamit ang babae sa mga lalaking wires Lamang ang t-cobbler at ang mpu6050 sa isang breadboard. Pagdating sa led at switch gumamit ng mas mahahabang wires upang matiyak na maaabot mo ang mga blinker bar at steering bar.
Hakbang 7: Ang Code
Upang mapanatili itong malinis na itinuturo ay nagbigay ako ng isang github repository na may parehong mga backend at frontend file. Ilagay lamang ang mga file sa folder ng frontend sa / var / www / html folder at ang mga file sa backend folder sa isang folder sa / home / [username] / [foldername] folder
Hakbang 8: Ang Database
Dahil sa paraan ng pag-set up ng sistemang ito mayroong isang simpleng webshop na naka-set up gamit ang isang listahan ng mga produkto sa isang database, bukod dito mayroon kaming lahat ng mga point point at order na nai-save dito. Ang isang lumikha ng script ay matatagpuan sa repository ng github na naka-link sa susunod na hakbang
Hakbang 9: Ang Kaso
Kapag alam natin ang gawaing electronics maaari nating i-plug ang mga ito sa isang kahon. Maaari kang kumuha ng malayang malikhaing kasama nito. Bago itayo ito ay grab lang ng isang karton na kahon hindi mo na kailangan tulad ng isang walang laman na kahon ng cereal halimbawa at gupitin ito, i-tape ito at tiklop ito hanggang sa magkaroon ka ng isang bagay na nais mo. Sukatin at iguhit ang iyong kaso sa isang piraso ng papel at gawin ito mula sa isang mas matibay na materyal tulad ng kahoy, o kung hindi iyon ang iyong bagay na 3d i-print ito. Siguraduhin na ang lahat ng mga electronics ay magkakasya sa loob at mayroon kang mga butas para sa pindutan, ang kawad na papunta sa switch, ang led at ang lcd. Kapag nagawa mo ang iyong kaso ito ay isang bagay lamang sa paghahanap ng isang paraan ng pag-mount ito sa iyong bisikleta o iskuter
Inirerekumendang:
Awtomatikong pagmamarka para sa isang Maliit na Laro sa Skee-Ball: 10 Hakbang (na may Mga Larawan)
Awtomatikong pagmamarka para sa isang Maliit na Laro sa Skee-Ball: Ang mga laro na Skee-Ball na gawa sa bahay ay maaaring maging kasiya-siya para sa buong pamilya, ngunit ang kanilang sagabal ay palaging kawalan ng awtomatikong pagmamarka. Nakagawa ako dati ng isang Skee-Ball machine na pinasadya ang mga bola ng laro sa magkakahiwalay na mga channel batay sa sc
Disenyo ng Darkroom sa Bahay para sa Maliit na Mga Puwang: 7 Hakbang (na may Mga Larawan)
Home Darkroom Design for Small Spaces: 360 view of my convert closet - Spherical Image - RICOH THETAHi, nais kong magsimula sa pagsasabi na ang disenyo ng darkroom na ito ay hindi mailalapat sa lahat. Ang iyong aparador ay maaaring mas malaki, maliit, o maaaring gumagamit ka ng isang puwang sa banyo. Y
Murang Gearmotor para sa Maliit na Robots: 5 Hakbang (na may Mga Larawan)
Murang Gearmotor para sa Maliit na Robots: Kailangan mo ng maliit, malakas, at murang motor para sa iyong pinakabagong maliit na proyekto ng robot? Natuklasan ko ang mga ito " N20 " Mga Gearmotor sa isang taon o higit pa, habang nagtatrabaho sa aking proyekto sa ProtoBot. Ang mga ito ay maliit, malakas, at sagana mula sa maraming mga mapagkukunan sa online. Ikaw
Ang Securibot: isang Maliit na Survelliance Drone para sa Seguridad sa Bahay: 7 Mga Hakbang (na may Mga Larawan)
Ang Securibot: isang Maliit na Survelliance Drone para sa Seguridad sa Bahay: Ito ay isang simpleng katotohanan na ang mga robot ay kahanga-hanga. Ang mga robot ng seguridad, gayunpaman, ay may posibilidad na maging masyadong mahal para sa isang average na tao na kayang bayaran o imposibleng ligal na bumili; Ang mga pribadong kumpanya at militar ay may posibilidad na panatilihin ang mga nasabing aparato sa kanilang sarili, at
Professional ART Tracing Lightbox LIBRE sa ilalim ng 15 Minuto !!! ($ 100 sa Mga Tindahan): 3 Mga Hakbang
Professional ART Tracing Lightbox LIBRE sa ilalim ng 15 Minuto !!! ($ 100 sa Mga Tindahan): Pansinin ang lahat ng mga artista, arkitekto, litratista, at mahilig sa libangan: Naranasan mo bang mahirap malaman ang higit sa mga likhang sining, larawan, o iba pang media? Nakapagtrabaho ka na ba sa isang piraso ng sining at natagpuan ang pagsubaybay sa papel na hindi maginhawa, hindi epektibo, o