Satura rādītājs:

Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)
Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)

Video: Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)

Video: Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)
Video: Šausmu stāsti. SLĒGTA ISTABA. Ciemats biedē. Šausmas. Mistiķis. 2024, Novembris
Anonim
Izsekošana un izsekošana mazajiem veikaliem
Izsekošana un izsekošana mazajiem veikaliem

Šī ir sistēma, kas paredzēta maziem veikaliem, kurus paredzēts uzstādīt uz e-velosipēdiem vai motorolleriem, lai veiktu piegādi nelielā attālumā, piemēram, maiznīca, kas vēlas piegādāt konditorejas izstrādājumus.

Ko nozīmē Track and Trace?

Izsekošana un izsekošana ir sistēma, ko izmanto pārvadātāji vai kurjeru uzņēmumi, lai reģistrētu paku vai sūtījumu pārvietošanu pārvadāšanas laikā. Katrā apstrādes vietā preces tiek identificētas un dati tiek pārsūtīti uz centrālo apstrādes sistēmu. Pēc tam šie dati tiek izmantoti, lai nosūtītājiem sniegtu preču atrašanās vietas statusu/atjauninājumu.

Mūsu izveidotā sistēma parādīs arī izvēlēto maršrutu un saņemto triecienu un triecienu skaitu. Šajā pamācībā arī tiek pieņemts, ka jums ir pamatzināšanas par aveņu pi, python un mysql.

piezīme: tas tika veikts skolas projektam, tāpēc laika ierobežojumu dēļ ir daudz iespēju uzlabot

Piegādes

-Raspberry Pi 4 modelis B

-Aveņu PI T-kurpnieks

-4x 3, 7V litija jonu baterijas

-2x dubults akumulatora turētājs

-Dc Buck pazeminošais pārveidotājs 5v

-2x lielas oranžas gaismas diodes

-ieslēgšanas/izslēgšanas/ieslēgšanas slēdzis

-poga

-adafruit gala GPS v3

-mpu6050

-16x2 LCD displejs

-servomotors

1. solis: ķēdes un Pi barošana

Ķēdes un Pi barošana
Ķēdes un Pi barošana
Ķēdes un Pi barošana
Ķēdes un Pi barošana

Kad runa ir par ķēdes pi barošanu ar akumulatoru, jums ir dažas iespējas, kā to izdarīt.

Jūs varētu izmantot powerbank un barot pi, izmantojot USB, iespējams, jūs uzstādāt ierīci uz e-velosipēda vai e-skrejriteņa, kuram ir USB ports, iespējams, jums ir 5 V tālruņa akumulators, kas gaida izmantošanu vai jūs varētu izmantot 2. 3.7V akumulatoru komplekti paralēli pazemināšanas pārveidotājam, kā parādīts attēlos

Viss ir kārtībā, ja vien tas var nodrošināt nepārtrauktu 5 V spriegumu un ir apmierināts ar visu mūžu.

2. darbība: MPU6050

MPU6050
MPU6050

Ievads MPU6050 sensora modulis ir integrēta 6 asu kustības izsekošanas ierīce.

  • Tam ir 3 asu žiroskops, 3 asu akselerometrs, digitālais kustības procesors un temperatūras sensors-viss vienā IC.
  • Dažādus parametrus var atrast, nolasot vērtības no noteiktu reģistru adresēm, izmantojot I2C sakarus. Žiroskopa un akselerometra rādījumi pa X, Y un Z asīm ir pieejami 2 papildinājuma formā.
  • Žiroskopa rādījumi ir grādos sekundē (dps); Akselerometra rādījumi ir g vienībās.

I2C iespējošana

Izmantojot MPU6050 ar Raspberry Pi, mums jāpārliecinās, ka Raspberry Pi ir ieslēgts I2C protokols. Lai to izdarītu, atveriet pi termināli caur špakteli vai citu programmatūru un rīkojieties šādi:

  1. ierakstiet "sudo raspi-config"
  2. Atlasiet saskarnes konfigurācijas
  3. Saskarnes opcijā atlasiet “I2C”
  4. Iespējot I2C konfigurāciju
  5. Izvēlieties Jā, kad tiek prasīts atsāknēt.

Tagad mēs varam pārbaudīt/skenēt jebkuru I2C ierīci, kas savienota ar mūsu Raspberry Pi plati, instalējot i2c rīkus. Mēs varam iegūt i2c rīkus, izmantojot apt pakotņu pārvaldnieku. Raspberry Pi terminālī izmantojiet šo komandu.

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

Tagad pievienojiet jebkuru I2C balstītu ierīci lietotāja režīma portam un skenējiet šo portu, izmantojot šo komandu, "sudo i2cdetect -y 1"

Tad tas atbildēs ar ierīces adresi.

Ja adrese netiek atgriezta, pārliecinieties, vai MPU6050 ir pareizi pievienots, un mēģiniet vēlreiz

Lai tas darbotos

tagad, kad esam pārliecināti, ka i2c ir iespējots un pi var sasniegt MPU6050, mēs instalēsim bibliotēku, izmantojot komandu "sudo pip3 install adafruit-circuitpython-mpu6050".

ja mēs izveidojam python testa failu un izmantojam šādu kodu, mēs varam redzēt, vai tas darbojas:

importa laiks

importa dēlis

importa bizness

oimportēt adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

kamēr taisnība:

drukāt ("Paātrinājums: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.paātrinājums))

drukāt ("Žiroskops X: %. 2f, Y: %.2f, Z: %.2f grādi/s" %(mpu.gyro))

drukāt ("Temperatūra: %.2f C" % mpu.temperatūra)

drukāt ("")

laiks. miegs (1)

kad mēs tagad vēlamies paātrinājumu X/Y/Z asī, mēs varam izmantot sekojošo:

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

apvienojot to ar vienkāršu, ja paziņojumu pastāvīgā cilpā, mēs varam saskaitīt triecienu skaitu ceļojumā

3. solis: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Ievads

Izlaušanās pamatā ir MTK3339 mikroshēmojums, bezjēdzīgs, augstas kvalitātes GPS modulis, kas var izsekot līdz 22 satelītiem 66 kanālos, tam ir lielisks augstas jutības uztvērējs (-165 dB izsekošana!) Un iebūvēta antena. Ātrgaitas, augstas jutības reģistrēšanai vai izsekošanai tas var veikt līdz pat 10 atrašanās vietas atjauninājumiem sekundē. Enerģijas patēriņš ir neticami zems, tikai 20 mA navigācijas laikā.

Plātnei ir: īpaši zems 3.3V regulators, lai jūs varētu to darbināt ar 3.3-5VDC ieeju, 5V līmeņa drošas ieejas. konstatēts, ka tas ietaupa varu.

GPS pārbaude ar arduino

Ja jums ir piekļuve arduino, ieteicams pārbaudīt moduli ar to.

Savienojiet VIN ar +5 V Savienojiet GND ar Ground Savienojiet GPS RX (datus GPS) ar digitālo 0 Pievienojiet GPS TX (dati no GPS) ar Digital 1

Vienkārši palaidiet tukšu arduino kodu un atveriet seriālo monitoru ar 9600 baudām. Ja saņemat GPS datus, jūsu GPS modulis darbojas. Piezīme: ja jūsu modulis nesaņem labojumu, mēģiniet to izlikt pa logu vai ārā uz terases

Lai tas darbotos

Sāciet instalēt adafruit gps bibliotēku, izmantojot komandu "sudo pip3 install adafruit-circuitpython-gps".

Tagad mēs varam izmantot šādu python kodu, lai redzētu, vai mēs varam panākt, lai tas darbotos:

importēt laika importa dēli importēt busioimport adafruit_gpsimport sērijas 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')

kamēr taisnība:

gps.update (), bet ne gps.has_fix:

print (gps.nmea_sentence) print ('Gaida labojumu …') gps.update () time.sleep (1) turpināt

print ('=' * 40) # Izdrukājiet atdalītāju. (gps.longitude)) print ("Labot kvalitāti: {}". formāts (gps.fix_quality))

# Daži atribūti, kas pārsniedz platuma, garuma un laika zīmogu, nav obligāti# un var nebūt. Pirms gps.satellites nav, pārbaudiet, vai tiem nav neviena!

print ("# satelīti: {}". formāts (gps.satellites))

ja gps.altitude_m nav Nav:

print ("Augstums: {} metri".format (gps.altitude_m))

ja gps.speed_knots nav Nav:

drukāt ("Ātrums: {} mezgli".formāts (gps.speed_knots))

ja gps.track_angle_deg nav Nav:

drukāt ("Izsekošanas leņķis: {} grādi".formāts (gps.track_angle_deg))

ja gps.horizontal_dilution nav Nav:

drukāt ("Horizontālais atšķaidījums: {}". formāts (gps.horizontal_dilution))

ja gps.height_geoid nav Nav:

print ("Ģeogrāfiskais ģeogrāfiskais ID: {} metri".format (gps.height_geoid))

laiks. miegs (1)

4. solis: 16x2 LCD

16x2 LCD
16x2 LCD

Ievads

LCD moduļus ļoti bieži izmanto lielākajā daļā iegulto projektu, iemesls ir lētā cena, pieejamība un draudzīgs programmētājam. Lielākā daļa no mums būtu saskārušies ar šiem displejiem ikdienā, izmantojot PCO vai kalkulatorus. 16 × 2 LCD ir nosaukts tāpēc, ka; tajā ir 16 kolonnas un 2 rindas. Ir pieejamas daudzas kombinācijas, piemēram, 8 × 1, 8 × 2, 10 × 2, 16 × 1 utt., Bet visbiežāk izmantotais ir 16 × 2 LCD. Tātad tajā būs (16 × 2 = 32) 32 rakstzīmes, un katra rakstzīme tiks veidota no 5 × 8 pikseļu punktiem.

Smbus instalēšana

Sistēmas pārvaldības kopne (SMBus) ir vairāk vai mazāk atvasinājums no I2C kopnes. Standartu ir izstrādājis Intel, un tagad to uztur SBS forums. SMBus galvenais pielietojums ir pārraudzīt kritiskos parametrus personālo datoru mātesplatēs un iegultās sistēmās. Piemēram, ir pieejams daudz barošanas sprieguma monitora, temperatūras monitora un ventilatora monitora/vadības IC ar SMBus saskarni.

Bibliotēkai, kuru mēs izmantosim, ir jāinstalē arī smbus. Lai instalētu smbus uz rpi, izmantojiet komandu "sudo apt install python3-smbus".

Lai tas darbotos

vispirms instalējiet RPLCD bibliotēku, izmantojot komandu "sudo pip3 install RPLCD".

tagad mēs pārbaudām LCD, parādot ip, izmantojot šādu kodu:

no RPLCD.i2c importējiet CharLCDimport ligzdu

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 () atgriezt ip_address

lcd = CharLCD ('PCF8574', 0x27)

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

5. solis: Servo, gaismas diodes, poga un slēdzis

Servo, gaismas diodes, poga un slēdzis
Servo, gaismas diodes, poga un slēdzis

Ievads

Servomotors ir rotējošs izpildmehānisms vai motors, kas ļauj precīzi kontrolēt leņķisko stāvokli, paātrinājumu un ātrumu, iespējas, kādas nav parastajam motoram. Tas izmanto parasto motoru un savieno to ar sensoru, lai atgrieztos pozīcijā. Kontrolieris ir vismodernākā servodzinēja daļa, jo tas ir īpaši izstrādāts šim nolūkam.

LED īss gaismas diodēm. Elektroniska pusvadītāju ierīce, kas izstaro gaismu, kad caur to iet elektriskā strāva. Tās ir ievērojami efektīvākas par kvēlspuldzēm un reti izdeg. Gaismas diodes tiek izmantotas daudzās lietojumprogrammās, piemēram, plakanā ekrāna video displejos, un arvien vairāk kā vispārēji gaismas avoti.

Spiedpoga vai vienkārši poga ir vienkāršs slēdža mehānisms, lai kontrolētu kādu mašīnas vai procesa aspektu. Pogas parasti ir izgatavotas no cieta materiāla, parasti plastmasas vai metāla.

Ieslēgšanas/izslēgšanas/ieslēgšanas slēdzim ir 3 pozīcijas, kur vidējais ir izslēgts stāvoklis. Šos tipus galvenokārt izmanto vienkāršai motora vadībai, ja jums ir uz priekšu, izslēgts un atpakaļgaitas stāvoklis.

Lai tas darbotos: servo

Servo izmanto PWM signālu, lai noteiktu, kādam leņķim mums jābūt laimīgam. GPIO ir iebūvēta šī funkcija. Tāpēc mēs varam vienkārši izmantot šādu kodu, lai kontrolētu servo: importēt RPi. GPI kā GPIOimportēt laiku

servo_pin = 18 darba cikls = 7,5

GPIO.setmode (GPIO. BCM)

GPIO.setup (servo_pin, GPIO. OUT)

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

kamēr taisnība:

duty_cycle = float (ievade ("Ievadiet darba ciklu (pa kreisi = 5 uz labo = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Lai tas darbotos: gaismas diode un slēdzis

Sakarā ar to, kā mēs savienojām LED un slēdzi, mums nav nepieciešams kontrolēt vai lasīt gaismas diodes un pārslēgties pats. Mēs vienkārši nosūtām impulsus pogai, kas savukārt novirzīs signālu uz vēlamo LED.

Lai tas darbotos: poga

Pogai mēs izveidosim savu vienkāršo klasi, lai mēs varētu viegli redzēt, kad tā tiek nospiesta, nepievienojot tai notikumu noteikšanu katru reizi, kad to izmantojam. Mēs izveidosim failu classbutton.py, izmantojot šādu kodu:

no RPi importēšanas GPIOclass pogas:

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

ingedrukt = GPIO.input (self.pin) atgriešanās nav 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)

6. solis: pilna ķēde

Pilna ķēde
Pilna ķēde
Pilna ķēde
Pilna ķēde

Tagad, kad esam pārbaudījuši visas sastāvdaļas, ir pienācis laiks tos visus apvienot.

Lai gan attēlos ir redzami komponenti, kas parāda visu, kas atrodas uz maizes dēļa, labāk ir pievienot LCD, adafruit GPS un pogu, izmantojot vadus no mātītes līdz vīriešiem. Uz maizes dēļa ir tikai t-kurpnieks un mpu6050. Runājot par LED un slēdzi izmantojiet garākus vadus, lai pārliecinātos, ka varat sasniegt mirgošanas stieņus un stūres stieni.

7. darbība: kods

Lai saglabātu šo pamācāmo tīrību, esmu nodrošinājis github repozitoriju gan ar aizmugures, gan priekšgala failiem. Vienkārši ievietojiet failus priekšgalā mapē/var/www/html mapē un failus aizmugurējās mapes mapē/home/ mape [lietotājvārds]/[mapes vārds]

8. darbība. Datu bāze

Datu bāze
Datu bāze

Tā kā šī sistēma ir iestatīta, ir izveidots vienkāršs interneta veikals, izmantojot datu bāzē esošo produktu sarakstu, turklāt mums ir saglabāti visi ceļa punkti un pasūtījumi. Izveidošanas skripts ir atrodams vietnē github. Nākamais solis

9. solis: lieta

Lieta
Lieta

Kad mēs zinām elektronikas darbu, mēs varam tos salikt kastē. Ar to jūs varat iegūt radošu brīvību. Pirms tās uzbūvēšanas vienkārši paņemiet kartona kastīti, kas jums vairs nav nepieciešama, piemēram, tukšu graudaugu kasti, un sagrieziet to, pielīmējiet to un salieciet to, līdz iegūstat kaut ko, kas jums patīk. Izmēriet un uzzīmējiet savu lietu uz papīra lapas un izgatavojiet to no izturīgāka materiāla, piemēram, koka, vai, ja tas nav jūsu lieta, izdrukājiet to. Vienkārši pārliecinieties, vai visa elektronika ir ievietota iekšpusē un jums ir caurumi pogai, vadam, kas iet uz slēdzi, gaismas diodēm un lcd. Kad esat izveidojis savu lietu, vienkārši atrodiet veidu, kā to piestiprināt pie velosipēda vai motorollera

Ieteicams: