Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Virta virtapiirille ja Pi: lle
- Vaihe 2: MPU6050
- Vaihe 3: Adafruit Ultimate Breakout GPS
- Vaihe 4: 16x2 LCD
- Vaihe 5: Servo, ledit, painike ja kytkin
- Vaihe 6: Koko piiri
- Vaihe 7: Koodi
- Vaihe 8: Tietokanta
- Vaihe 9: Asia
Video: Pienkauppojen seuranta: 9 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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
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.
- kirjoita "sudo raspi-config"
- Valitse Liitäntäkonfiguraatiot
- Valitse liitäntävaihtoehdosta "I2C"
- Ota I2C -määritys käyttöön
- 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
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
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
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
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
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
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:
DIY GPS -seuranta --- Python-sovellus: 5 vaihetta (kuvilla)
DIY GPS -seuranta --- Python-sovellus: Osallistuin pyöräilytapahtumaan kaksi viikkoa sitten. Kun olin valmis, halusin tarkistaa reitin ja nopeuden, jonka ajoin tuolloin. Valitettavasti sitä ei saavutettu. Nyt käytän ESP32: ta GPS -seurantalaitteen luomiseen ja otan sen tallentamaan pyöräilyreitini
QeMotion - liikkeen seuranta jokaiselle kuulokkeelle!: 5 vaihetta (kuvilla)
QeMotion - liikkeen seuranta jokaiselle kuulokkeelle!: Yleiskatsaus: Tämän laitteen avulla voit käyttää pään liikettä tapahtumien käynnistämiseen periaatteessa missä tahansa videopelissä. Se toimii seuraamalla pään (tai kuulokkeiden) liikettä ja käynnistämällä näppäimistön painalluksia tiettyjä liikkeitä varten. Joten yrityksesi
Jättiläinen LED - Adam Savagen seuranta: 13 vaihetta (kuvilla)
Giant LED - Adam Savage -seuranta: Täältä löydät Giant -LED -esityksen, joka on uudelleen suunniteltu toimimaan Twitter-, YouTube- ja Twitch -varoitusvalona. Minun päätarkoitukseni on antaa hälytys, kun Adam Savage ja testattu tiimi lähettävät twiittejä, videoita tai twitch -lähetyksiä ja
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla: 6 vaihetta (kuvilla)
Lämpötilan ja kosteuden seuranta Raspberry Pi: n avulla: Kesä on tulossa, ja ilman ilmastointilaitetta käyttävien tulisi olla valmiita hallitsemaan ilmakehää manuaalisesti sisätiloissa. Tässä viestissä kuvailen nykyaikaista tapaa mitata ihmisen mukavuuden kannalta tärkeimmät parametrit: lämpötila ja kosteus. T
LoRa GPS -seuranta: 6 vaihetta (kuvilla)
LoRa GPS Tracker: Tämä projekti näyttää kuinka koota oma GPS -paikannusmoduuli käytettäväksi Ripple LoRa -verkkoverkkojen kanssa. Katso lisätietoja tästä täydentävästä artikkelista: https://www.instructables.com/id/LoRa-Mesh-Radio/Nämä seurantamoduulit käyttävät Semtech LoRa -radioita ja