Sisällysluettelo:

Pienkauppojen seuranta: 9 vaihetta (kuvilla)
Pienkauppojen seuranta: 9 vaihetta (kuvilla)

Video: Pienkauppojen seuranta: 9 vaihetta (kuvilla)

Video: Pienkauppojen seuranta: 9 vaihetta (kuvilla)
Video: KKV-päivä:Talouden ja vallan rakenteet rutisevat - Pitääkö kilpailu- ja kuluttajapolitiikan muuttua? 2024, Marraskuu
Anonim
Seuraa ja jäljitä pieniä kauppoja
Seuraa ja jäljitä pieniä kauppoja

Tämä on järjestelmä, joka on tarkoitettu pienille kaupoille, joiden on tarkoitus asentaa sähköpyöriin tai skoottereihin lyhyen kantaman toimituksia varten, esimerkiksi leipomo, joka haluaa toimittaa leivonnaisia.

Mitä Track and Trace tarkoittaa?

Jäljitys ja jäljitys on järjestelmä, jota liikenteenharjoittajat tai kuriiriyhtiöt käyttävät pakettien tai tavaroiden liikkumisen rekisteröimiseksi kuljetuksen aikana. Jokaisessa käsittelypaikassa tavarat tunnistetaan ja tiedot välitetään keskuskäsittelyjärjestelmään. Näitä tietoja käytetään sitten tavaran sijainnin/päivityksen antamiseen lähettäjille.

Tekemämme järjestelmä näyttää myös valitun reitin sekä vastaanotettujen iskujen ja iskujen määrän. Tämä ohje sisältää myös oletuksen, että sinulla on perustiedot vadelmapi, python ja mysql.

Huomautus: tämä tehtiin kouluprojektia varten, joten aikarajoitusten vuoksi parantamisen varaa on paljon

Tarvikkeet

-Vadelma Pi 4 malli B.

-Vadelma PI T-suutari

-4x 3, 7V litiumioniakut

-2x kaksinkertainen paristopidike

-DC Buck Step-down -muunnin 5v

-2x isot oranssit ledit

-päälle/pois/päälle kytkin

-painike

-adafruit ultimate gps v3

-mpu6050

-16x2 lcd näyttö

-Servo moottori

Vaihe 1: Virta virtapiirille ja Pi: lle

Virta piirille ja Pi
Virta piirille ja Pi
Virta piirille ja Pi
Virta piirille ja Pi

Mitä tulee pi -piirin virtalähteeseen akulla, sinulla on muutama vaihtoehto sen tekemiseen.

Voisit käyttää powerbankkia ja virrata pi: tä USB: n kautta, ehkä asennat laitteen sähköpyörään tai e-skootteriin, jossa on USB-portti, ehkä sinulla on 5 V: n puhelimen akku, joka odottaa käyttöä tai voit käyttää 2 sarjaa 3,7 V paristoja rinnakkain askel alasmuuntimen kanssa, kuten kuvissa näkyy

Kaikki on hienoa, kunhan se voi tarjota jatkuvan 5 V: n ja eliniän, johon olet tyytyväinen.

Vaihe 2: MPU6050

MPU6050
MPU6050

Johdanto MPU6050-anturimoduuli on integroitu 6-akselinen liikkeenseurantalaite.

  • Siinä on 3-akselinen gyroskooppi, 3-akselinen kiihtyvyysmittari, digitaalinen liikeprosessori ja lämpötila-anturi, kaikki yhdessä IC: ssä.
  • Eri parametreja löytyy lukemalla arvot tiettyjen rekisterien osoitteista käyttäen I2C -tiedonsiirtoa. X-, Y- ja Z -akseleiden gyroskooppi- ja kiihtyvyysmittarilukemat ovat saatavilla 2: n komplementtimuodossa.
  • Gyroskoopin lukemat ovat asteina sekunnissa (dps); Kiihtyvyysmittarin lukemat ovat g -yksikössä.

Otetaan I2C käyttöön

Kun käytät MPU6050 -laitetta Raspberry Pi -laitteen kanssa, meidän on varmistettava, että Raspberry Pi -laitteen I2C -protokolla on kytketty päälle.

  1. kirjoita "sudo raspi-config"
  2. Valitse Liitäntäkonfiguraatiot
  3. Valitse liitäntävaihtoehdosta "I2C"
  4. Ota I2C -määritys käyttöön
  5. Valitse Kyllä, kun se pyytää uudelleenkäynnistystä.

Nyt voimme testata/skannata mitä tahansa Raspberry Pi -korttiin yhdistettyä I2C -laitetta asentamalla i2c -työkalut. Voimme saada i2c -työkaluja apt -paketinhallinnan avulla. Käytä seuraavaa komentoa Raspberry Pi -päätteessä.

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

Liitä nyt mikä tahansa I2C-pohjainen laite käyttäjätilaporttiin ja skannaa portti seuraavan komennon avulla, "sudo i2cdetect -y 1"

Sitten se vastaa laitteen osoitteella.

Jos osoitetta ei palauteta, varmista, että MPU6050 on kytketty oikein, ja yritä uudelleen

Saa sen toimimaan

nyt kun olemme varmoja, että i2c on käytössä ja pi voi saavuttaa MPU6050: n, aiomme asentaa kirjaston käyttämällä komentoa "sudo pip3 install adafruit-circuitpython-mpu6050".

Jos teemme python -testitiedoston ja käytämme seuraavaa koodia, voimme nähdä, toimiiko se:

tuonnin aika

tuontilevy

tuontiyritys

oimport adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

vaikka totta:

tulosta ("Kiihtyvyys: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.kiihtyvyys))

tulosta ("Gyro X: %. 2f, Y: %.2f, Z: %.2f astetta/s" %(mpu.gyro))

tulosta ("Lämpötila: %.2f C" % mpu. lämpötila)

Tulosta("")

time.sleep (1)

kun haluamme nyt kiihtyvyyden X/Y/Z-akselille, voimme käyttää seuraavaa:

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

Yhdistämällä tämä yksinkertaiseen if -lausuntoon jatkuvassa silmukassa voimme laskea matkan iskujen määrän

Vaihe 3: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Johdanto

Breakout on rakennettu MTK3339-piirisarjan ympärille, ei-hölynpölylle, korkealaatuiselle GPS-moduulille, joka voi seurata jopa 22 satelliittia 66 kanavalla, erinomaisella herkällä vastaanottimella (-165 dB seuranta!) Ja sisäänrakennetulla antennilla. Se voi tehdä jopa 10 sijaintipäivitystä sekunnissa nopeaa, herkkää kirjaamista tai seurantaa varten. Virrankulutus on uskomattoman alhainen, vain 20 mA navigoinnin aikana.

Taulun mukana tulee: erittäin alhainen 3,3 V: n säädin, jonka avulla voit käyttää sitä 3,3–5 VDC: n tulolla, 5 V: n turvalliset tulot, LED vilkkuu noin 1 Hz: n taajuudella, kun se etsii satelliitteja, ja vilkkuu kerran 15 sekunnissa, kun korjaus on tehty todettu säästävän valtaa.

GPS: n testaaminen arduinolla

Jos sinulla on pääsy arduinoon, on hyvä testata moduuli sen kanssa.

Yhdistä VIN +5 V Liitä GND Groundiin Yhdistä GPS RX (data GPS: ksi) digitaaliseen 0 Yhdistä GPS TX (data ulos GPS: stä) digitaaliseen 1

Suorita yksinkertaisesti tyhjä arduino -koodi ja avaa sarjamonitori 9600 baudilla.

Saa sen toimimaan

Aloita adafruit gps -kirjaston asentaminen komennolla "sudo pip3 install adafruit-circuitpython-gps".

Nyt voimme käyttää seuraavaa python -koodia nähdäksemme, saammeko sen toimimaan:

tuonti aikaimporttikortti tuonti busioimport adafruit_gpsimport sarja 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')

vaikka totta:

gps.update () kun ei gps.has_fix:

print (gps.nmea_sentence) print ('Odotetaan korjausta …') gps.update () time.sleep (1) jatka

print ('=' * 40) # Tulosta erottelulinja.print ('Leveysaste: {0:.6f} astetta'.muoto (gps.latitude)) print ('Pituusaste: {0:.6f} astetta'.format (gps.longitude)) print ("Fix quality: {}". format (gps.fix_quality))

# Jotkin leveys-, pituus- ja aikaleiman ulkopuoliset määritteet ovat valinnaisia#, eikä niitä välttämättä ole. Tarkista, ovatko ne Ei mitään, ennen kuin yrität käyttää niitä! Jos gps.satellites ei ole Ei mitään:

print ("# satelliitit: {}". muoto (gps.satellites))

jos gps.altitude_m ei ole Ei mitään:

print ("Korkeus: {} metriä".muoto (gps.altitude_m))

jos gps.speed_knots ei ole Ei mitään:

print ("Nopeus: {} solmua".muoto (gps.speed_knots))

jos gps.track_angle_deg ei ole Ei mitään:

print ("Jälkikulma: {} astetta".muoto (gps.track_angle_deg))

jos gps.horizontal_dilution ei ole Ei mitään:

print ("Vaakasuora laimennus: {}". muoto (gps.horizontal_dilution))

jos gps.height_geoid ei ole Ei mitään:

print ("Korkeuspaikkatunnus: {} metriä".muoto (gps.height_geoid))

time.sleep (1)

Vaihe 4: 16x2 LCD

16x2 LCD
16x2 LCD

Johdanto

LCD -moduuleja käytetään hyvin yleisesti useimmissa sulautetuissa projekteissa, syynä on sen halpa hinta, saatavuus ja ohjelmoijaystävällisyys. Useimmat meistä olisivat tavanneet nämä näytöt jokapäiväisessä elämässämme joko PCO -laitteissa tai laskimissa. 16 × 2 LCD on nimetty näin, koska; siinä on 16 saraketta ja 2 riviä. Saatavilla on paljon yhdistelmiä, kuten 8 × 1, 8 × 2, 10 × 2, 16 × 1 jne., Mutta eniten käytetty on 16 × 2 LCD. Siinä on siis (16 × 2 = 32) yhteensä 32 merkkiä ja jokainen merkki koostuu 5 × 8 pikselipisteestä.

Smbus asennetaan

Järjestelmänhallintaväylä (SMBus) on enemmän tai vähemmän I2C -väylän johdannainen. Standardin on kehittänyt Intel, ja sitä ylläpitää nyt SBS Forum. Esimerkiksi saatavilla on paljon syöttöjännitteen valvontaa, lämpötilan valvontaa ja tuulettimen valvonta-/ohjauspiirejä, joissa on SMBus -liitäntä.

Käyttämämme kirjasto edellyttää myös smbus: n asentamista. Jos haluat asentaa smbus: n rpi: hen, käytä komentoa "sudo apt install python3-smbus".

Saa sen toimimaan

Asenna ensin RPLCD -kirjasto käyttämällä "sudo pip3 install RPLCD" -komentoa.

nyt testataan lcd näyttämällä ip käyttämällä seuraavaa koodia:

alkaen RPLCD.i2c tuoda CharLCDimport -liitäntä

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 -osoite: / r / n'+str (get_ip_address ()))

Vaihe 5: Servo, ledit, painike ja kytkin

Servo, ledit, painike ja kytkin
Servo, ledit, painike ja kytkin

Johdanto

Servomoottori on pyörivä toimilaite tai moottori, joka mahdollistaa tarkan ohjauksen kulma -asennon, kiihtyvyyden ja nopeuden suhteen, kuten tavallisella moottorilla ei ole. Se käyttää tavallista moottoria ja yhdistää sen anturin kanssa aseman palautetta varten. Säädin on servomoottorin kehittynein osa, koska se on erityisesti suunniteltu tätä tarkoitusta varten.

LED lyhyt valoa lähettävälle diodille. Elektroninen puolijohdelaite, joka lähettää valoa, kun sen läpi kulkee sähkövirta. Ne ovat huomattavasti tehokkaampia kuin hehkulamput ja palavat harvoin. LED-valoja käytetään monissa sovelluksissa, kuten litteänäyttöisissä videonäytöissä, ja yhä enemmän yleisinä valonlähteinä.

Painike tai yksinkertaisesti painike on yksinkertainen kytkinmekanismi, jolla ohjataan jotakin koneen tai prosessin osaa. Painikkeet on yleensä valmistettu kovasta materiaalista, yleensä muovista tai metallista.

On/off/on -kytkimessä on 3 asentoa, joissa keskimmäinen on pois päältä. Näitä tyyppejä käytetään enimmäkseen yksinkertaiseen moottorin ohjaukseen, jossa on eteen-, pois- ja peruutustila.

Sen toimiminen: servo

Servo käyttää PWM -signaalia määrittääkseen, minkä kulman sen on oltava onneksi meille GPIO: lle on tämä ominaisuus sisäänrakennettu, joten voimme yksinkertaisesti käyttää seuraavaa koodia servon ohjaamiseen: tuoda RPi. GPIO GPIO -tuontiaikana

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)

vaikka totta:

duty_cycle = float (input ("Enter Duty Cycle (Left = 5 to Right = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Sen toimiminen: led ja kytkin

Johtuen tavasta, jolla johdotimme ledit ja kytkimen, meidän ei tarvitse ohjata tai lukea ledejä ja kytkeä itse. Lähetämme vain pulsseja painikkeen noidalle, joka puolestaan reitittää signaalin haluamallemme ledille.

Sen toimiminen: painike

Painikkeelle teemme oman yksinkertaisen luokan tällä tavalla, joten näemme helposti, milloin sitä painetaan ilman, että joudumme lisäämään siihen tapahtumatunnistuksen joka kerta, kun käytämme sitä. Teemme tiedoston classbutton.py käyttämällä seuraavaa koodia:

RPi -tuonnin GPIOclass -painikkeesta:

def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP) @ominaisuus def painettu (itse):

ingedrukt = GPIO.input (self.pin) paluu ei ingedrukt

def on_press (itse, call_method):

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

def on_release (itse, call_method):

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

Vaihe 6: Koko piiri

Koko piiri
Koko piiri
Koko piiri
Koko piiri

Nyt kun olemme käyneet läpi kaikki komponentit, on aika yhdistää ne kaikki.

Vaikka kuvat osoittavat, että komponentit näyttävät kaiken leipälaudalla, on parempi, että lcd, adafruit-GPS ja painike on kytketty naaras-urosjohtoihin Vain t-cobbler ja mpu6050 on leipälaudalla. käytä pidempiä johtoja varmistaaksesi, että pääset vilkkutankoihin ja ohjauspalkkiin.

Vaihe 7: Koodi

Tämän ohjeen pitämiseksi puhtaana olen toimittanut github -arkiston sekä tausta- että käyttöliittymä tiedostoille. Yksinkertaisesti laita tiedostot käyttöliittymän kansioon/var/www/html -kansioon ja tiedostot taustakansion kansioon/home/ kansio [käyttäjänimi]/[kansion nimi]

Vaihe 8: Tietokanta

Tietokanta
Tietokanta

Koska tämä järjestelmä on asennettu, on yksinkertainen verkkokauppa, joka on perustettu käyttämällä tietokannan tuoteluetteloa, ja lisäksi kaikki reittipisteet ja tilaukset on tallennettu tähän. Luomiskripti löytyy seuraava askel

Vaihe 9: Asia

Tapaus
Tapaus

Kun tiedämme elektroniikkatyön, voimme laittaa ne laatikkoon. Voit ottaa luovuuden vapauden tällä tavalla. Ennen kuin rakennat sen, tartu yksinkertaisesti pahvilaatikkoon, jota et enää tarvitse, kuten tyhjä viljalaatikko, ja leikkaa se, teippaa se Mittaa ja piirrä kotelo paperille ja tee se tukevammasta materiaalista, kuten puusta, tai jos se ei ole sinun juttusi, tulosta se. sinulla on reiät painiketta varten, kytkimeen menevää johtoa, lediä ja LCD -näyttöä.

Suositeltava: