Sadržaj:
- Supplies
- Korak 1: Napajanje kruga i Pi
- Korak 2: MPU6050
- Korak 3: Adafruit Ultimate Breakout GPS
- Korak 4: LCD ekran veličine 16x2
- Korak 5: Servo, LED, dugme i prekidač
- Korak 6: Potpuni krug
- Korak 7: Kôd
- Korak 8: Baza podataka
- Korak 9: Slučaj
Video: Praćenje i praćenje za male trgovine: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Ovo je sistem koji je napravljen za male trgovine koje bi trebalo montirati na e-bicikle ili e-skutere za kratke isporuke, na primjer pekara koja želi isporučivati peciva.
Šta znači Track and Trace?
Praćenje i praćenje je sistem koji koriste prevoznici ili kurirske kompanije za evidentiranje kretanja paketa ili predmeta tokom transporta. Na svakom mjestu obrade roba se identificira i podaci prenose u centralni sistem obrade. Ti se podaci zatim koriste za davanje otpremnika statusa/ažuriranja lokacije robe.
Sistem koji ćemo napraviti takođe će pokazati pređeni put i količinu primljenih udara i udaraca. Ove instrukcije takođe pretpostavljaju da imate osnovno znanje o malini pi, pythonu i mysqlu.
Napomena: ovo je napravljeno za školski projekat, pa zbog vremenskog ograničenja postoji mnogo prostora za poboljšanja
Supplies
-Raspberry Pi 4 model B
-PI T-postolar od maline
-4x 3, 7V Li-ion baterije
-2x dvostruki držač baterije
-DC Buck Step-down pretvarač 5v
-2x velike narandžaste LED diode
-prekidač za uključivanje/isključivanje/uključivanje
-dugme
-adafruit ultimate gps v3
-mpu6050
-16x2 LCD ekran
-servo motor
Korak 1: Napajanje kruga i Pi
Što se tiče napajanja kruga pi baterijom, imate nekoliko mogućnosti kako to učiniti.
Mogli biste upotrijebiti powerbank i napajati pi preko USB-a, možda uređaj montirate na e-bicikl ili e-skuter koji ima USB priključak, možda imate bateriju od 5 V telefona koja čeka oko upotrebe ili biste mogli upotrijebiti 2 setovi baterija od 3,7 V paralelno sa stepenastim pretvaračem kao što je prikazano na slikama
Sve je u redu sve dok može osigurati stalnih 5 V i imati životni vijek kojim ste zadovoljni.
Korak 2: MPU6050
Uvod MPU6050 senzorski modul je integrirani 6-osni uređaj za praćenje kretanja.
- Ima troosni žiroskop, troosni akcelerometar, digitalni procesor pokreta i temperaturni senzor, sve u jednom IC-u.
- Čitanjem vrijednosti s adresa određenih registara pomoću I2C komunikacije mogu se pronaći različiti parametri. Očitavanje žiroskopa i akcelerometra duž osi X, Y i Z dostupno je u obliku komplementa 2.
- Očitavanja žiroskopa su u jedinicama stepeni u sekundi (dps); Očitanja akcelerometra su u g jedinici.
Omogućavanje I2C
Kada koristite MPU6050 s Raspberry Pi -om, trebali bismo osigurati da je I2C protokol na Raspberry Pi -u uključen. Da biste to učinili, otvorite pi -jev terminal putem kita ili drugog softvera i učinite sljedeće:
- upišite "sudo raspi-config"
- Odaberite Interfacing Configurations
- U opciji Interfacing odaberite "I2C"
- Omogući I2C konfiguraciju
- Odaberite Da kada se traži ponovno pokretanje.
Sada možemo testirati/skenirati bilo koji I2C uređaj spojen na našu Raspberry Pi ploču instaliranjem i2c alata. I2c alate možemo nabaviti pomoću apt menadžera paketa. Koristite sljedeću naredbu u terminalu Raspberry Pi.
"sudo apt-get install -y i2c-tools"
Sada povežite bilo koji uređaj zasnovan na I2C na port za korisnički način rada i skenirajte taj port pomoću sljedeće naredbe, "sudo i2cdetect -y 1"
Tada će odgovoriti s adresom uređaja.
Ako nije vraćena adresa, provjerite je li MPU6050 pravilno spojen i pokušajte ponovo
Učiniti to uspješnim
sada kada smo sigurni da je i2c omogućen i da pi može doseći MPU6050, instalirat ćemo biblioteku pomoću naredbe "sudo pip3 install adafruit-circuitpython-mpu6050".
ako napravimo python testnu datoteku i upotrijebimo sljedeći kod, možemo vidjeti radi li:
vreme uvoza
tabla za uvoz
import busi
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
dok je True:
print ("Ubrzanje: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu. ubrzanje))
print ("Žiroskop X: %. 2f, Y: %.2f, Z: %.2f stepeni/s" %(mpu.giro))
print ("Temperatura: %.2f C" % mpu.temperatura)
print ("")
time.sleep (1)
kada sada želimo ubrzanje na osi X/Y/Z, možemo koristiti sljedeće:
accelX = mpu.acceleration [0] accelelY = mpu.acceleration [1] accelelZ = mpu.acceleration [2]
kombinujući ovo sa jednostavnom if naredbom u konstantnoj petlji možemo izbrojati količinu šokova na putovanju
Korak 3: Adafruit Ultimate Breakout GPS
Uvod
Izbijanje je izgrađeno oko MTK3339 čipseta, besmislenog, visokokvalitetnog GPS modula koji može pratiti do 22 satelita na 66 kanala, ima odličan prijemnik visoke osjetljivosti (-165 dB praćenje!) I ugrađenu antenu. Može napraviti do 10 ažuriranja lokacije u sekundi za velike brzine, visoko osjetljivo bilježenje ili praćenje. Potrošnja energije je nevjerojatno niska, samo 20 mA tokom navigacije.
Ploča dolazi sa: regulatorom od 3,3 V s iznimno niskim ispadanjem, tako da ga možete napajati sa 3,3-5 VDC ulaza, sigurnim ulazima na nivou 5 V, LED treperi na oko 1 Hz dok traži satelite i trepće svakih 15 sekundi kada se popravi utvrđeno je da štedi energiju.
Testiranje GPS -a s arduinom
Ako imate pristup arduinu, bilo bi dobro isprobati modul s njim.
Spojite VIN na +5VPovežite GND na GroundConnect GPS RX (podaci u GPS) na Digital 0Connect GPS TX (podaci iz GPS -a) na Digital 1
Jednostavno pokrenite prazan arduino kôd i otvorite serijski monitor na 9600 bauda. Ako dobijete gps podatke, vaš gps modul radi. Napomena: ako vaš modul ne dobije popravak, pokušajte ga staviti kroz prozor ili na terasu
Učiniti to uspješnim
Počnite instalirati adafruit gps biblioteku pomoću naredbe "sudo pip3 install adafruit-circuitpython-gps".
Sada možemo upotrijebiti sljedeći python kod da vidimo možemo li uspjeti:
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 ') gps.send_command (b'PMTK220, 1000')
dok je True:
gps.update () dok nije gps.has_fix:
print (gps.nmea_sentence) print ('Čeka se popravljanje …') gps.update () time.sleep (1) nastavi
print ('=' * 40) # Odštampaj separator line.print ('Geografska širina: {0:.6f} stepeni'. format (gps.latitude)) print ('Dužina: {0:.6f} stepeni'.format (gps.longitude)) print ("Kvalitet popravka: {}". format (gps.fix_quality))
# Neki atributi izvan zemljopisne širine, dužine i vremenske oznake su izborni# i možda neće biti prisutni. Prije pokušaja upotrebe provjerite jesu li ništa! Ako gps.satellites nije Ništa:
print ("# satelita: {}". format (gps.satellites))
ako gps.altitude_m nije Nijedan:
print ("Nadmorska visina: {} metara".format (gps.altitude_m))
ako gps.speed_knots nije Ništa:
print ("Brzina: {} čvorova".format (gps.speed_knots))
ako gps.track_angle_deg nije Nijedan:
print ("Ugao staze: {} stepeni".format (gps.track_angle_deg))
ako gps.horizontal_dilution nije Nijedan:
print ("Horizontalno razrjeđivanje: {}". format (gps.horizontal_dilution))
ako gps.height_geoid nije Ništa:
print ("Geografski ID visine: {} metara".format (gps.height_geoid))
time.sleep (1)
Korak 4: LCD ekran veličine 16x2
Uvod
LCD moduli se vrlo često koriste u većini ugrađenih projekata, razlog za to je njihova jeftina cijena, dostupnost i prilagođenost programerima. Većina nas bi se susrela s ovim ekranima u svakodnevnom životu, bilo u PCO -ima ili na kalkulatorima. 16 × 2 LCD je tako nazvan jer; ima 16 kolona i 2 reda. Dostupno je mnogo kombinacija poput, 8 × 1, 8 × 2, 10 × 2, 16 × 1 itd., Ali najčešće se koristi 16 × 2 LCD. Dakle, on će imati (16 × 2 = 32) ukupno 32 znaka i svaki će znak biti napravljen od 5 × 8 piksela.
Instaliranje smbusa
Sabirnica za upravljanje sistemom (SMBus) je manje -više izvedenica sabirnice I2C. Standard je razvio Intel, a sada ga održava SBS Forum. Glavna primjena SMBus -a je praćenje kritičnih parametara na matičnim pločama računara i u ugrađenim sistemima. Na primjer, na raspolaganju je mnogo monitora napona napajanja, monitora temperature i ventilatora/upravljačkih IC ventilatora sa SMBus interfejsom.
Biblioteka koju ćemo koristiti zahtijeva i instaliranje smbusa. Da biste instalirali smbus na rpi, koristite naredbu "sudo apt install python3-smbus".
Učiniti to uspješnim
prvo instalirajte RPLCD biblioteku pomoću naredbe "sudo pip3 install RPLCD".
sada testiramo lcd prikazivanjem ip -a pomoću sljedećeg koda:
iz RPLCD.i2c uvezite CharLCDimport utičnicu
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 adresa: / r / n'+str (get_ip_address ()))
Korak 5: Servo, LED, dugme i prekidač
Uvod
Servo motor je rotacijski pokretač ili motor koji omogućuje preciznu kontrolu u smislu kutnog položaja, ubrzanja i brzine, sposobnosti koje obični motor nema. Koristi običan motor i upari ga sa senzorom za povratnu informaciju o položaju. Regulator je najsofisticiraniji dio servo motora, jer je posebno dizajniran za tu svrhu.
LED kratica za diodu koja emitira svjetlo. Elektronički poluvodički uređaj koji emitira svjetlost pri prolasku električne struje. Oni su znatno efikasniji od sijalica sa žarnom niti i rijetko izgore. LED diode se koriste u mnogim aplikacijama, poput video ekrana s ravnim ekranom, a sve više i kao opći izvori svjetlosti.
Tipka ili jednostavno dugme je jednostavan mehanizam za prebacivanje za upravljanje nekim aspektom mašine ili procesa. Dugmad su obično izrađena od tvrdog materijala, obično plastike ili metala.
Prekidač za uključivanje/isključivanje/uključivanje ima 3 položaja gdje je srednji u isključenom stanju. Ovi tipovi se uglavnom koriste za jednostavnu kontrolu motora gdje imate stanje naprijed, isključeno i unatrag.
Omogućavanje rada: servo
Servo koristi PWM signal kako bi odredio pod kojim kutom treba biti srećom za nas GPIO ima ugrađenu ovu značajku. Stoga možemo jednostavno koristiti sljedeći kod za kontrolu servo: uvoz RPi. GPIO kao GPIOimport vrijeme
servo_pin = 18duty_cycle = 7.5
Način rada GPIO.set (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
dok je True:
duty_cycle = float (input ("Unesite radni ciklus (slijeva = 5 na desno = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Omogućavanje rada: LED dioda i prekidač
Zbog načina na koji smo ožičili LED diode i prekidač ne moramo kontrolirati niti čitati LED diode i sami se prebacivati. Jednostavno šaljemo impulse gumbu koji će zauzvrat usmjeriti signal na LED koji želimo.
Omogućavanje rada: dugme
Za dugme ćemo napraviti našu vlastitu jednostavnu klasu na ovaj način koji lako vidimo kada se pritisne bez potrebe dodavanja detekcije događaja svaki put kada ga koristimo. Napravit ćemo datoteku classbutton.py koristeći sljedeći kod:
iz RPi import GPIOclass dugme:
def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@nekretnina def pritisnuta (self):
ingedrukt = GPIO.input (self.pin) povratak nije ingedrukt
def on_press (self, call_method):
GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)
def on_release (self, call_method):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
Korak 6: Potpuni krug
Sada kada smo pregledali sve komponente vrijeme je da ih sve spojimo.
Dok slike prikazuju komponente koje prikazuju sve na samoj ploči, bolje je da LCD, adafruit GPS i dugme budu povezani ženskim i muškim žicama. Na tlu imaju samo t-cobbler i mpu6050. Kada su u pitanju LED dioda i prekidač upotrijebite duže žice kako biste bili sigurni da možete doći do žmigavaca i upravljača.
Korak 7: Kôd
Da bi ovo uputstvo bilo čisto, obezbijedio sam github spremište i sa pozadinskim i sa prednjim datotekama. Jednostavno stavite datoteke u prednju fasciklu u/var/www/html fasciklu i datoteke u pozadinskoj fascikli u fascikli u/home/ folder [korisničko ime]/[ime fascikle]
Korak 8: Baza podataka
Zbog načina na koji je ovaj sistem postavljen, postoji jednostavna web trgovina postavljena pomoću popisa proizvoda u bazi podataka, osim toga ovdje imamo spremljene sve tačke i narudžbe. Stvorite skriptu možete pronaći na github spremištu povezanom u sljedeći korak
Korak 9: Slučaj
Nakon što saznamo da elektronika funkcionira, možemo ih strpati u kutiju. Možete uzeti malo kreativnosti s ovim. Prije nego što je izgradite, jednostavno zgrabite kartonsku kutiju koja vam više ne treba, na primjer praznu kutiju za žitarice, i izrežite je, zalijepite je. i presavijte ga dok ne dobijete nešto što vam se sviđa. Izmjerite i nacrtajte kućište na komadu papira i napravite ga od čvršćeg materijala poput drveta, ili ako to nije vaša stvar, odštampajte ga 3D. Samo pazite da sva elektronika stane unutra i imate rupe za dugme, žicu koja ide do prekidača, LED diode i LCD. Nakon što ste napravili futrolu, samo je potrebno pronaći način da je montirate na bicikl ili skuter
Preporučuje se:
DIY Pametni robotski alati za praćenje Auto kompleti za praćenje Auto fotoosjetljivi: 7 koraka
DIY Pametni roboti za praćenje automobila Kompleti za praćenje Automobil Fotoosjetljivi: Dizajn SINONING ROBOT -a Možete kupiti od robota za praćenje Roboti TheoryLM393 čip uporedite dva fotootpornika, kada LED dioda sa jedne strane na BELOJ strani LED motora zaustavi se, s druge strane motora okreni se pa
Kako napraviti prilagođenu PCB ploču pomoću laserskog gravera male snage: 8 koraka (sa slikama)
Kako napraviti prilagođenu PCB ploču pomoću laserskog gravera male snage: Što se tiče izrade domaće PCB -a, na internetu možete pronaći nekoliko metoda: od najosnovnijih, koristeći samo olovku, do sofisticiranijih pomoću 3D pisača i druge opreme. I ovaj vodič pada na posljednji slučaj! U ovom projektu ja
Lako vrlo male snage BLE u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3: 7 koraka (sa slikama)
Jednostavan BLE vrlo niske snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3: Ažuriranje: 7. travnja 2019. - Rev 3 u lp_BLE_TempHumidity, dodaje grafikone datuma/vremena pomoću pfodApp V3.0.362+i automatsko prigušivanje prilikom slanja podataka Ažuriranje: 24. ožujka 2019. - Rev 2 lp_BLE_TempHumidity, dodaje više opcija zacrta i i2c_ClearBus, dodaje GT832E
Skrivač male poruke/tajni agent Chapstick: 4 koraka (sa slikama)
Skrivač malih poruka/tajni agent Chapstick: Tražite mjesto za čuvanje male poruke svom prijatelju? Šta je s onim poslom tajnog agenta koji ste oduvijek željeli? Ovaj jednostavan dizajn idealan je za ovakve situacije i vrlo je jeftin za izradu
POS SISTEM ZA TRGOVINE, NAMIRNICE I SERVISNE CENTRE OD EXCELA S upotrebom bar kodova: 7 koraka
POS SUSTAV ZA TRGOVINE, NAMIRNICE I USLUGE CENTRALA IZ EXCELA Korištenjem bar kodova: Ovim blogom vam predstavljam kako stvoriti jednostavan POS (prodajno mjesto) sistem za male trgovine, servisne centre. Ovom metodom možete upravljati sljedećim objektima bez posebnog softvera ili skupe opreme. v Pitanje