Orodha ya maudhui:

Fuatilia na ufuatilie kwa Maduka Madogo: Hatua 9 (na Picha)
Fuatilia na ufuatilie kwa Maduka Madogo: Hatua 9 (na Picha)

Video: Fuatilia na ufuatilie kwa Maduka Madogo: Hatua 9 (na Picha)

Video: Fuatilia na ufuatilie kwa Maduka Madogo: Hatua 9 (na Picha)
Video: Первая мировая война | Документальный фильм 2024, Julai
Anonim
Fuatilia na ufuatilie kwa Maduka Madogo
Fuatilia na ufuatilie kwa Maduka Madogo

Huu ni mfumo ambao umetengenezwa kwa duka ndogo ambazo zinapaswa kupanda juu ya baiskeli za e au baiskeli kwa uwasilishaji wa anuwai fupi, kwa mfano mkate ambao unataka kutoa keki.

Kufuatilia na Kufuatilia inamaanisha nini?

Kufuatilia na kufuatilia ni mfumo unaotumiwa na wabebaji au kampuni za usafirishaji kurekodi harakati za vifurushi au vitu wakati wa usafirishaji. Katika kila eneo la usindikaji, bidhaa zinatambuliwa na kupelekwa kwa data kwa mfumo wa usindikaji wa kati. Takwimu hizi hutumiwa kutoa hadhi / sasisho la eneo la bidhaa kwa wasafirishaji.

Mfumo tutakaotengeneza pia utaonyesha njia iliyochukuliwa na idadi ya majanga na matuta yanayopokelewa. Mafundisho haya pia hufikiria una ujuzi wa kimsingi wa pi rasiberi, chatu na mysql.

Kumbuka: hii ilifanywa kwa mradi wa shule, kwa hivyo kwa sababu ya kizuizi cha wakati kuna nafasi nyingi ya kuboresha

Vifaa

-Raspberry Pi 4 mfano B

-Raspberry PI T-cobbler

-4x 3, 7V betri za Li-ion

-2x mmiliki wa Betri mara mbili

-DC Buck Hatua ya chini Kubadilisha 5v

-2x kubwa iliyoongozwa na machungwa

-on / off / on switch

-button

matunda ya mwisho gps v3

-mpu6050

-16x2 LCD kuonyesha

-servo motor

Hatua ya 1: Kuwezesha Mzunguko na Pi

Kuimarisha Mzunguko na Pi
Kuimarisha Mzunguko na Pi
Kuimarisha Mzunguko na Pi
Kuimarisha Mzunguko na Pi

Linapokuja suala la kuwezesha pi ya mzunguko na betri una chaguzi kadhaa za jinsi ya kuifanya.

Unaweza kutumia benki ya umeme na kuwezesha pi kupitia USB, labda unapandikiza kifaa kwenye baiskeli ya e au baiskeli ambayo ina bandari ya USB, labda una betri ya simu ya 5V iliyolala karibu ikingojea kutumika au unaweza kutumia 2 seti za betri 3.7V sambamba na kibadilishaji cha kutoka chini kama inavyoonekana kwenye picha

Chochote ni sawa kwa muda mrefu kama inaweza kutoa 5V inayoendelea na ina maisha unayofurahi nayo.

Hatua ya 2: MPU6050

MPU6050
MPU6050

Moduli ya sensa ya MUPU6050 ni kifaa kilichojumuishwa cha ufuatiliaji wa Mwendo 6-mhimili.

  • Inayo Gyroscope ya 3-axis, 3-axis Accelerometer, Processor Digital Motion na sensor ya Joto, zote katika IC moja.
  • Vigezo anuwai vinaweza kupatikana kwa kusoma maadili kutoka kwa anwani za sajili zingine kwa kutumia mawasiliano ya I2C. Gyroscope na usomaji wa kasi pamoja na shoka za X, Y na Z zinapatikana katika fomu ya 2 inayosaidia.
  • Usomaji wa Gyroscope uko katika digrii kwa kila sekunde (dps); Usomaji wa Accelerometer uko kwenye kitengo cha g.

Kuwezesha I2C

Wakati wa kutumia MPU6050 na Raspberry Pi, tunapaswa kuhakikisha kuwa itifaki ya I2C kwenye Raspberry Pi imewashwa Ili kufanya hivyo fungua kituo cha pi kupitia putty au vifaa vingine vya laini na ufanye yafuatayo:

  1. andika katika "sudo raspi-config"
  2. Chagua Usanidi wa Kuingiliana
  3. Katika chaguo la Kuingiliana, Chagua "I2C"
  4. Washa usanidi wa I2C
  5. Chagua Ndio wakati inauliza Anzisha upya.

Sasa, tunaweza kujaribu / kukagua kifaa chochote cha I2C kilichounganishwa na bodi yetu ya Raspberry Pi kwa kusanikisha zana za i2c. Tunaweza kupata zana za i2c kwa kutumia meneja wa kifurushi cha apt. Tumia amri ifuatayo katika kituo cha Raspberry Pi.

"Sudo apt-get install -i i2c-zana"

Sasa unganisha kifaa chochote cha I2C kwenye bandari ya hali ya mtumiaji na utambue bandari hiyo kwa kutumia amri ifuatayo, "sudo i2cdetect -y 1"

Kisha itajibu kwa anwani ya kifaa.

Ikiwa hakuna anwani inayorudishwa hakikisha MPU6050 imeunganishwa vizuri na ujaribu tena

Kufanya kazi

sasa kwa kuwa tuna hakika i2c imewezeshwa na pi inaweza kufikia MPU6050 tutaweka maktaba kwa kutumia amri ya "sudo pip3 install adafruit-circuitpython-mpu6050".

tukitengeneza faili ya mtihani wa chatu na tumia nambari ifuatayo tunaweza kuona ikiwa inafanya kazi:

muda wa kuagiza

bodi ya kuagiza

kuagiza busi

505. Umekufa

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

wakati Kweli:

chapisha ("Kuongeza kasi: X:%. 2f, Y:%.2f, Z:%.2f m / s ^ 2"% (mpu.acceleration))

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

chapa ("Joto:%.2f C"% mpu. joto)

chapisha ("")

saa. kulala (1)

wakati sasa tunataka kuongeza kasi katika mhimili wa X / Y / Z tunaweza kutumia yafuatayo:

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

tukichanganya hii na rahisi ikiwa taarifa katika kitanzi cha mara kwa mara tunaweza kuhesabu idadi ya majanga kwenye safari

Hatua ya 3: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Utangulizi

Kuzuka hujengwa karibu na chipset ya MTK3339, moduli isiyo na ujinga, ya hali ya juu ya GPS ambayo inaweza kufuatilia hadi satelaiti 22 kwenye chaneli 66, ina mpokeaji bora wa unyeti wa hali ya juu (-165 dB ufuatiliaji!), Na imejengwa katika antena. Inaweza kufanya hadi sasisho za eneo 10 kwa sekunde kwa kasi kubwa, ukataji magogo wa juu au ufuatiliaji. Matumizi ya nguvu ni ya chini sana, ni mA 20 tu wakati wa urambazaji.

Bodi inakuja na: mdhibiti wa chini-chini wa 3.3V ili uweze kuiwezesha na 3.3-5VDC katika, pembejeo salama za kiwango cha 5V, LED inaangaza karibu 1Hz wakati inatafuta satelaiti na inaangaza mara moja kila sekunde 15 wakati suluhisho ni kupatikana kuokoa nguvu.

Kupima GPS na arduino

Ikiwa una acces kwa arduino ni wazo nzuri ya kujaribu moduli nayo.

Unganisha VIN kwa + 5VConnect GND kwa GroundConnect GPS RX (data ndani ya GPS) kwa Digital 0Connect GPS TX (data kutoka GPS) hadi Digital 1

Tumia tu nambari tupu ya arduino na ufungue mfuatiliaji wa serial kwa baud 9600. Ikiwa unapata data ya gps moduli yako ya gps inafanya kazi. Kumbuka: ikiwa moduli yako haipatikani kurekebisha jaribu kuiweka nje ya dirisha au nje kwenye mtaro.

Kufanya kazi

Anza kusanikisha maktaba ya gps ya adafruit kwa kutumia amri ya "sudo pip3 sakinisha adafruit-circuitpython-gps".

Sasa tunaweza kutumia nambari ifuatayo ya chatu kuona ikiwa tunaweza kuifanya ifanye kazi:

kuagiza bodi ya kuingiza wakati kuagiza busioimport adafruit_gpsimport serial uart = serial. Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 10)

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

wakati Kweli:

gps.update () wakati sio gps.has_fix:

chapisha (gps.nmea_sentence) chapisha ('Inasubiri kurekebisha …') gps.update () time.sleep (1) endelea

chapa ('=' * 40) # Chapisha laini ya kutenganisha (gps.longitude)) chapisha ("Ubora wa kurekebisha: {}". fomati (gps.fix_quality))

# Sifa zingine zaidi ya latitudo, longitudo na muhuri wa muda ni hiari # na huenda haikuwepo. Angalia ikiwa hawako kabla ya kujaribu kutumia! Ikiwa gps.satellites sio Hakuna:

chapa ("# satelaiti: {}". fomati (gps.satellites))

ikiwa gps.altitude_m sio:

chapa ("Urefu: {} mita". umbizo (gps. Urefu_m))

ikiwa gps.speed_knots sio Hakuna:

chapisha ("Kasi: {} mafundo". fomati (gps.speed_knots))

ikiwa gps.track_angle_deg sio:

chapisha ("Pembe ya kufuatilia: {} digrii". fomati (gps.track_angle_deg))

ikiwa gps.horizontal_dilution sio Hakuna:

chapisha ("Usawazishaji usawa: {}". fomati (gps.horizontal_dilution))

ikiwa gps.height_geoid sio Hakuna:

chapa ("Kitambulisho cha urefu wa jiografia: {} mita". muundo (gps.height_geoid))

saa. kulala (1)

Hatua ya 4: LCD 16x2

LCD 16x2
LCD 16x2

Utangulizi

Moduli za LCD hutumiwa kawaida katika miradi iliyoingizwa zaidi, sababu ni bei yake ya bei rahisi, upatikanaji na programu rafiki. Wengi wetu tungepata maonyesho haya katika maisha yetu ya siku hadi siku, ama kwa PCO au kwa mahesabu.16 × 2 LCD imeitwa hivyo kwa sababu; ina Nguzo 16 na Safu 2. Kuna mchanganyiko mwingi unaopatikana kama, 8 × 1, 8 × 2, 10 × 2, 16 × 1, nk lakini inayotumika zaidi ni 16 × 2 LCD. Kwa hivyo, itakuwa na (16 × 2 = 32) wahusika 32 kwa jumla na kila mhusika atatengenezwa na Dots za Pixel 5 × 8.

Kufunga smbus

Basi la Usimamizi wa Mfumo (SMBus) ni zaidi au chini ya kutoka kwa basi ya I2C. Kiwango kimetengenezwa na Intel na sasa kinatunzwa na Jukwaa la SBS. Utumiaji kuu wa SMBus ni kufuatilia vigezo muhimu kwenye bodi za mama za PC na katika mifumo iliyowekwa. Kwa mfano kuna mfuatiliaji mwingi wa voltage ya ugavi, mfuatiliaji wa joto, na ufuatiliaji wa shabiki / udhibiti wa IC na kiolesura cha SMBus kinachopatikana.

Maktaba tutakayotumia inahitaji smbus kusanikishwa pia. Kuweka smbus kwenye rpi tumia amri ya "sudo apt install python3-smbus".

Kufanya kazi

kwanza ya kusanikisha maktaba ya RPLCD ukitumia amri ya "sudo pip3 install RPLCD".

sasa tunajaribu lcd kwa kuonyesha ip kwa kutumia nambari ifuatayo:

kutoka RPLCD.i2c kuagiza tundu la CharLCDimport

def kupata_ip_address ():

ip_address = '' s = tundu.socket (tundu. AF_INET, tundu. SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () [0] s.close () kurudi ip_address

lcd = CharLCD ('PCF8574', 0x27)

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

Hatua ya 5: Servo, Leds, Button na switch

Servo, Leds, Button na switch
Servo, Leds, Button na switch

Utangulizi

Servo motor ni actuator ya mzunguko au motor ambayo inaruhusu udhibiti sahihi kwa hali ya angular, kuongeza kasi na kasi, uwezo ambao motor kawaida haina. Inafanya matumizi ya gari ya kawaida na kuifunga kwa sensa kwa maoni ya msimamo. Mdhibiti ni sehemu ya kisasa zaidi ya servo motor, kwani imeundwa mahsusi kwa kusudi.

LED fupi kwa diode inayotoa mwanga. Kifaa cha semiconductor cha elektroniki kinachotoa nuru wakati umeme unapitia. Ni bora zaidi kuliko balbu za incandescent, na mara chache huwaka. LED hutumiwa katika matumizi mengi kama maonyesho ya video ya gorofa, na inazidi kuwa vyanzo vya jumla vya taa.

Kitufe cha kushinikiza au kitufe rahisi ni njia rahisi ya kubadili kudhibiti hali fulani ya mashine au mchakato. Vifungo kawaida hutengenezwa kwa nyenzo ngumu, kawaida ni plastiki au chuma.

Kitufe cha kuwasha / kuzima / kuwasha kina nafasi 3 ambapo katikati ni hali ya kuzima aina hizi hutumiwa zaidi kwa udhibiti rahisi wa gari ambapo una hali ya mbele, mbali na inayobadilisha.

Kuifanya ifanye kazi: servo

Servo hutumia ishara ya PWM kuamua ni pembe gani inahitaji kuwa kwa bahati nzuri kwetu GPIO ina huduma hii iliyojengwa. Kwa hivyo tunaweza kutumia nambari ifuatayo kudhibiti servo: ingiza RPi. GPIO kama wakati wa GPIO

servo_pin = 18duty_cycle = 7.5

GPIO.setmode (GPIO. BCM)

Usanidi wa GPIO (servo_pin, GPIO. OUT)

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

wakati Kweli:

duty_cycle = kuelea (ingiza ("Ingiza Mzunguko wa Ushuru (Kushoto = 5 kwenda Kulia = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Kuifanya ifanye kazi: iliyoongozwa na ubadilishe

Kwa sababu ya njia tuliyoweka wigo wa kuongoza na swichi hatuhitaji kudhibiti au kusoma vichwa na kujibadilisha yenyewe. Tunatuma tu kunde kwa mchawi wa kitufe na hivyo kupeleka ishara kwa ile inayoongozwa tunayotaka.

Kuifanya ifanye kazi: kifungo

Kwa kitufe tutafanya darasa letu rahisi kwa njia hii tunaona kwa urahisi wakati imeshinikizwa bila ya kuongeza tukio kugundua kila wakati tunapotumia. Tutafanya faili classbutton.py kutumia nambari ifuatayo:

kutoka RPi kuagiza GPIOclass Button:

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 press (self):

ingedrukt = GPIO.input (self.pin) kurudi sio ingedrukt

def on_press (ubinafsi, njia ya simu):

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

def on_release (binafsi, piga_modod):

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

Hatua ya 6: Mzunguko Kamili

Mzunguko Kamili
Mzunguko Kamili
Mzunguko Kamili
Mzunguko Kamili

Sasa kwa kuwa tumekwenda juu ya vifaa vyote wakati wake wa kuzichanganya zote.

Wakati picha zinaonyesha vifaa vinaonyesha kila kitu kwenye ubao wa mkate yenyewe ni bora kuwa na lcd, adafruit GPS na kitufe kilichounganishwa kwa kutumia waya za kike na za kiume Ila tu t-cobbler na mpu6050 kwenye ubao wa mkate. tumia waya mrefu kuhakikisha kuwa unaweza kufikia baa za blinker na baa ya usukani.

Hatua ya 7: Kanuni

Kuweka safi hii inayoweza kufundishwa nimetoa github repository na backend na frontend faili. Weka tu faili kwenye folda ya mbele katika folda ya / var / www / html na faili kwenye folda ya nyuma kwenye folda katika / nyumbani / [jina la mtumiaji] / [folda] folda

Hatua ya 8: Hifadhidata

Hifadhidata
Hifadhidata

Kwa sababu ya njia ambayo mfumo huu umewekwa kuna wavuti rahisi iliyoundwa kwa kutumia orodha ya bidhaa kwenye hifadhidata, na zaidi tuna alama na maagizo yote yaliyohifadhiwa hapa. Hati ya kuunda inaweza kupatikana kwenye hazina ya github iliyounganishwa kwenye hatua ifuatayo

Hatua ya 9: Kesi

Kesi hiyo
Kesi hiyo

Mara tu tunapojua kazi ya elektroniki tunaweza kuziingiza kwenye kisanduku. Unaweza kuchukua uhuru wa ubunifu na hii. Kabla ya kuijenga tu chukua sanduku la kadibodi hauitaji tena kama sanduku tupu la nafaka kwa mfano na uikate. na uikunje mpaka uwe na kitu unachopenda. Pima na chora kesi yako kwenye kipande cha karatasi na uifanye kutoka kwa nyenzo ngumu kama kuni, au ikiwa hiyo sio jambo lako 3d ichapishe. Hakikisha tu umeme wote unafaa ndani na una mashimo ya kitufe, waya inayoenda kwenye swichi, iliyoongozwa na lcd. Mara tu unapofanya kesi yako iwe suala la kutafuta njia ya kuiweka kwenye baiskeli yako au pikipiki

Ilipendekeza: