Sisukord:

Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)
Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)

Video: Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)

Video: Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)
Video: 206. Maarja Lillemäe ja Alar Tamming, "Neljas tee" 2024, November
Anonim
Väikeste poodide jälgimine
Väikeste poodide jälgimine

See on süsteem, mis on mõeldud väikestele kauplustele, mis peaksid olema paigaldatud e-jalgratastele või e-motorolleritele lähitoimetamiseks, näiteks pagaritöökoda, mis soovib saiakesi tarnida.

Mida tähendab jälgimine ja jälgimine?

Jälgimine ja jälgimine on süsteem, mida vedajad või kullerfirmad kasutavad pakkide või saadetiste liikumise registreerimiseks transpordi ajal. Igas töötlemiskohas identifitseeritakse kaup ja edastatakse andmed kesksesse töötlemissüsteemi. Neid andmeid kasutatakse seejärel kauba saatjale oleku/ajakohastamiseks.

Meie loodud süsteem näitab ka valitud marsruuti ning saadud šokkide ja löökide hulka. See juhend sisaldab ka eeldust, et teil on algteadmised vaarika pi, python ja mysql kohta.

märkus: see tehti kooliprojekti jaoks, seega on ajapiirangu tõttu palju arenguruumi

Tarvikud

-Vaarika Pi 4 mudel B

-Vaarika PI T-munakell

-4x 3, 7V liitiumioonakud

-2x topelt akuhoidja

-DC Buck astmeline muundur 5v

-2x suured oranžid LED -id

-sisse/välja/sisse lüliti

-nupp

-adafruit ülim gps v3

-mpu6050

-16x2 lcd ekraan

-servomootor

Samm: vooluringi ja Pi toide

Ringkonnakohtu ja Pi toide
Ringkonnakohtu ja Pi toide
Ringkonnakohtu ja Pi toide
Ringkonnakohtu ja Pi toide

Kui tegemist on vooluahela toitega akuga, on teil mõned võimalused selle tegemiseks.

Võite kasutada powerbanki ja toita pi USB kaudu, võib-olla paigaldate seadme e-jalgrattale või e-tõukerattale, millel on USB-port, võib-olla on teil 5V telefoni aku, mis ootab kasutamist või võite kasutada 2 3.7V patareide komplektid paralleelselt astmelise muunduriga, nagu piltidel näidatud

Kõik on korras, kui see suudab pakkuda pidevat 5 V ja eluiga, millega olete rahul.

Samm: MPU6050

MPU6050
MPU6050

Sissejuhatus MPU6050 andurimoodul on integreeritud 6-teljeline liikumisjälgimisseade.

  • Sellel on 3-teljeline güroskoop, 3-teljeline kiirendusmõõtur, digitaalne liikumisprotsessor ja temperatuuriandur-kõik ühes IC-s.
  • Erinevaid parameetreid saab leida, lugedes väärtusi I2C -side abil teatud registrite aadressidelt. Güroskoobi ja kiirendusmõõturi näidud X-, Y- ja Z -telgedel on saadaval 2 komplemendi kujul.
  • Güroskoobi näidud on kraadides sekundis (dps); Kiirendusmõõturi näidud on g ühikutes.

I2C lubamine

Kui kasutate MPU6050 koos Raspberry Pi -ga, peaksime tagama, et Raspberry Pi I2C -protokoll on sisse lülitatud. Selleks avage pi terminal läbi kitt või muu tarkvara ja tehke järgmist.

  1. tippige "sudo raspi-config"
  2. Valige Liidese konfiguratsioonid
  3. Valige liidese valikul "I2C"
  4. Luba I2C konfiguratsioon
  5. Valige Jah, kui palutakse taaskäivitada.

Nüüd saame testida/skannida kõiki meie Raspberry Pi plaadiga ühendatud I2C -seadmeid, installides i2c tööriistu. I2c tööriistu saame apt paketihalduri abil. Kasutage Raspberry Pi terminalis järgmist käsku.

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

Nüüd ühendage mis tahes I2C-põhine seade kasutajarežiimi pordiga ja skaneerige see port, kasutades järgmist käsku, "sudo i2cdetect -y 1"

Seejärel vastab see seadme aadressiga.

Kui aadressi ei tagastata, veenduge, et MPU6050 on korralikult ühendatud ja proovige uuesti

Et see toimiks

nüüd, kui oleme kindlad, et i2c on lubatud ja pi jõuab MPU6050-ni, installime teeki, kasutades käsku "sudo pip3 install adafruit-circuitpython-mpu6050".

kui teeme pythoni testfaili ja kasutame järgmist koodi, näeme, kas see töötab:

impordi aeg

imporditahvel

import äri

oimport adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

kuigi tõsi:

print ("Kiirendus: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.kiirendus))

print ("Güroskoop X: %. 2f, Y: %.2f, Z: %.2f kraadi/s" %(mpu.gyro))

print ("Temperatuur: %.2f C" % mpu.temperatuur)

prindi ("")

aeg. uni (1)

kui tahame nüüd X/Y/Z-telje kiirendust, saame kasutada järgmist:

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

kombineerides selle lihtsa if -avaldusega konstantses ahelas, saame lugeda reisil olevate šokkide arvu

3. samm: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Sissejuhatus

Puhkevõrk on üles ehitatud MTK3339 kiibistiku ümber, mis on mõttetu ja kvaliteetne GPS-moodul, mis suudab jälgida kuni 22 satelliiti 66 kanalil, millel on suurepärane ülitundlik vastuvõtja (-165 dB jälgimine!) Ja sisseehitatud antenn. Kiireks, suure tundlikkusega logimiseks või jälgimiseks võib see teha kuni 10 asukohavärskendust sekundis. Energiatarve on uskumatult väike, navigeerimise ajal ainult 20 mA.

Tahvlil on: ülimadala väljalangemisega 3,3 V regulaator, nii et saate seda toita 3,3–5 V alalisvoolu sisendiga, 5 V tasemel turvalised sisendid, LED vilgub umbes 1 Hz sagedusel, kui see otsib satelliite, ja vilgub kord 15 sekundi jooksul, kui viga on parandatud leiti võimu säästvat.

GPS -i testimine arduino abil

Kui teil on arduino juurdepääs, on hea mõte moodulit sellega testida.

Ühendage VIN +5V -ga Ühendage GND Ground -iga Ühendage GPS -RX (andmed GPS -i) digitaalsega

Lihtsalt käivitage tühi arduino -kood ja avage jadamonitor 9600 baudil. Kui saate gps -andmeid, töötab teie GPS -moodul. Märkus: kui teie moodul ei saa parandust, proovige see aknast välja või terrassile välja panna

Et see toimiks

Alustage adafruit gps raamatukogu installimist käsuga "sudo pip3 install adafruit-circuitpython-gps".

Nüüd saame kasutada järgmist püütoni koodi, et näha, kas suudame selle tööle panna:

impordi ajaimporditahvli importimine busioimport adafruit_gpsimport jada uart = jada. Seriaalne ("/dev/ttyS0", baudrate = 9600, timeout = 10)

gps = adafruit_gps. GPS (uart, silumine = vale) 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')

kuigi tõsi:

gps.update (), mitte gps.has_fix:

print (gps.nmea_sentence) print ('Ootel parandust …') gps.update () time.sleep (1) jätka

print ('=' * 40) # Prindi eraldaja rida.print ('Laiuskraad: {0:.6f} kraadi'.vorming (gps.latitude)) print (' Pikkuskraad: {0:.6f} kraadi'.format (gps.longitude)) print ("Fix quality: {}". format (gps.fix_quality))

# Mõned atribuudid väljaspool laius-, pikkus- ja ajatempli on valikulised# ja neid ei pruugi olla. Enne kui proovite kasutada, kontrollige, kas neid pole! Kui gps.satellites pole Puudub:

print ("# satelliiti: {}". vorming (gps.satellites))

kui gps.altitude_m pole Puudub:

print ("Kõrgus: {} meetrit".vorming (gps.altitude_m))

kui gps.speed_knots pole Puudub:

print ("Kiirus: {} sõlme".vorming (gps.speed_knots))

kui gps.track_angle_deg ei ole Puudub:

print ("Raja nurk: {} kraadi".vorming (gps.track_angle_deg))

kui gps.horizontal_dilution ei ole Puudub:

print ("Horisontaalne lahjendus: {}". formaat (gps.horizontal_dilution))

kui gps.height_geoid pole Puudub:

print ("Kõrguse geo ID: {} meetrit".vorming (gps.height_geoid))

aeg. uni (1)

Samm: 16x2 LCD

16x2 LCD
16x2 LCD

Sissejuhatus

LCD -mooduleid kasutatakse enamikes sisseehitatud projektides väga sageli, põhjuseks on selle odav hind, kättesaadavus ja programmeerijasõbralikkus. Enamik meist oleks nende kuvaritega oma igapäevaelus kokku puutunud kas PCO -de või kalkulaatorite juures. 16 × 2 LCD on nimetatud sellepärast; sellel on 16 veergu ja 2 rida. Saadaval on palju kombinatsioone, näiteks 8 × 1, 8 × 2, 10 × 2, 16 × 1 jne, kuid kõige sagedamini kasutatav on 16 × 2 LCD. Seega on sellel (16 × 2 = 32) 32 tähemärki ja iga märk koosneb 5 × 8 pikslipunktist.

Smbus installimine

Süsteemihaldussiin (SMBus) on enam -vähem I2C siini tuletis. Standardi on välja töötanud Intel ja seda haldab nüüd SBS Foorum. SMBusi peamine rakendus on jälgida kriitilisi parameetreid arvuti emaplaatidel ja manussüsteemides. Näiteks on saadaval palju toitepingemonitori, temperatuurimonitori ja ventilaatori jälgimis-/juhtimisseadmeid, millel on SMBus -liides.

Meie kasutatav raamatukogu nõuab ka smbus installimist. Smbusi installimiseks rpi-le kasutage käsku "sudo apt install python3-smbus".

Et see toimiks

kõigepealt installige RPLCD teek, kasutades käsku "sudo pip3 install RPLCD".

nüüd testime LCD -d, kuvades ip järgmise koodi abil:

RPLCD.i2c impordi pistikupesa 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 () return ip_address

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('IP -aadress: / r / n'+str (get_ip_address ()))

Samm: servo, ledid, nupp ja lüliti

Servo, ledid, nupp ja lüliti
Servo, ledid, nupp ja lüliti

Sissejuhatus

Servomootor on pöörlev ajam või mootor, mis võimaldab täpset juhtimist nurgaasendi, kiirenduse ja kiiruse osas, võimeid, mida tavalisel mootoril pole. See kasutab tavalist mootorit ja ühendab selle anduriga positsiooni tagasiside saamiseks. Kontroller on servomootori kõige keerukam osa, kuna see on spetsiaalselt selleks ette nähtud.

LED lühike valgusdioodi jaoks. Elektrooniline pooljuhtseade, mis kiirgab valgust, kui seda läbib elektrivool. Need on tunduvalt tõhusamad kui hõõglambid ja põlevad harva. Valgusdioode kasutatakse paljudes rakendustes, näiteks lameekraaniga videoekraanides, ja üha enam üldiste valgusallikatena.

Nupp või lihtsalt nupp on lihtne lülitusmehhanism masina või protsessi mõne aspekti juhtimiseks. Nupud on tavaliselt valmistatud kõvast materjalist, tavaliselt plastikust või metallist.

Sisse/välja/sisse lülitil on 3 asendit, kus keskmine on väljalülitatud olekus. Neid tüüpe kasutatakse enamasti lihtsaks mootorijuhtimiseks, kui teil on edasi-, välja- ja tagasikäik.

Töötamine: servo

Servo kasutab PWM -signaali, et teha kindlaks, milline nurk peab meie jaoks õnneks olema GPIO -l on see funktsioon sisse ehitatud. Seetõttu saame servo juhtimiseks kasutada lihtsalt järgmist koodi: RPi importimine. GPIO

servo_pin = 18 tollimaksu tsükkel = 7.5

GPIO.setmode (GPIO. BCM)

GPIO.seadistus (servo_pin, GPIO. OUT)

pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)

kuigi tõsi:

duty_cycle = float (input ("Sisestage töötsükkel (vasakult = 5 paremale = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Töötamine: LED ja lüliti

Tulenevalt sellest, kuidas me juhtmeid ja lülitit ühendasime, ei pea me LED -e juhtima ega lugema ja ennast vahetama. Me lihtsalt saadame impulsid nupule, mis omakorda suunab signaali soovitud LED -i.

Töötamine: nupp

Nupu jaoks teeme sel viisil oma lihtsa klassi, mida näeme hõlpsalt, kui seda vajutatakse, ilma et peaksime iga kord seda kasutama lisama sündmuste tuvastamise. Teeme faili classbutton.py, kasutades järgmist koodi:

RPi importimise GPIOclass nupust:

def _init _ (ise, pin, tagasipöördumisaeg = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP) @property def vajutatud (ise):

ingedrukt = GPIO.input (self.pin) tagastus pole ingedrukt

def on_press (ise, kõne_meetod):

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

def on_release (ise, kõne_meetod):

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

6. samm: täielik vooluring

Täisring
Täisring
Täisring
Täisring

Nüüd, kui oleme kõik komponendid üle vaadanud, on aeg neid kõiki ühendada.

Kuigi piltidel on näha, et komponendid näitavad kõike leivaplaadil, on parem, kui LCD, adafruit GPS ja nupp on ühendatud naissoost ja isasjuhtmetega. Ainult t-cobbler ja mpu6050 on leivaplaadil. Kui tegemist on LED-ide ja lülitiga kasutage pikemaid juhtmeid, et veenduda, et pääsete vilkuri ja roolilatini.

Samm: kood

Selle juhendatava puhtana hoidmiseks olen pakkunud githubi hoidla nii tausta- kui ka esiplaanifailidega. Lihtsalt pange failid esikausta kausta/var/www/html kausta ja failid kausta taustaprogrammi kaustas/home/ kaust [kasutajanimi]/[kausta kasutajanimi]

8. samm: andmebaas

Andmebaas
Andmebaas

Kuna see süsteem on üles seatud, on andmebaasis olevate toodete loendi abil üles seatud lihtne veebipood, lisaks on siia salvestatud kõik teekonnapunktid ja tellimused. Loo skripti leiate saidil lingitud githubi hoidlast järgmine samm

9. samm: juhtum

Juhul
Juhul

Kui me teame elektroonikatööd, saame need karpi toppida. Sellega saate loominguliselt vabadust võtta. Enne selle ehitamist haarake lihtsalt pappkarp, mida te enam ei vaja, näiteks tühi teraviljakast, ja lõigake see, kleepige see ja voldige seda, kuni teil on midagi, mis teile meeldib. Mõõtke ja joonistage oma ümbris paberilehele ning tehke see tugevamast materjalist, näiteks puidust, või kui see pole teie asi, printige see lihtsalt välja. Veenduge, et kogu elektroonika mahub sisse ja sul on augud nupule, juhtmele, mis läheb lülitile, LED -id ja LCD -ekraan. Kui olete oma juhtumi teinud, peate lihtsalt leidma viisi, kuidas seda jalgrattale või tõukerattale kinnitada

Soovitan: