Mündəricat:

Kiçik Mağazalar üçün iz və iz: 9 addım (şəkillərlə)
Kiçik Mağazalar üçün iz və iz: 9 addım (şəkillərlə)

Video: Kiçik Mağazalar üçün iz və iz: 9 addım (şəkillərlə)

Video: Kiçik Mağazalar üçün iz və iz: 9 addım (şəkillərlə)
Video: Bakı metrosunda gənclərin elədiyi zarafat 2024, Noyabr
Anonim
Kiçik Mağazalar üçün izləyin və izləyin
Kiçik Mağazalar üçün izləyin və izləyin

Bu, qısa müddətli tədarüklər üçün e-velosipedlərə və ya e-skuterlərə bağlanmalı olan kiçik mağazalar üçün hazırlanmış bir sistemdir, məsələn, xəmir çatdırmaq istəyən bir çörək.

Track and Trace nə deməkdir?

Track və iz daşınması zamanı bağlamaların və ya maddələr hərəkət qeyd daşıyıcıları və ya kuryer şirkətlər tərəfindən istifadə edilən bir sistemdir. Hər bir emal yerində mallar müəyyən edilir və məlumatları mərkəzi emal sisteminə ötürür. Bu məlumatlar daha sonra yükləyicilərə malların yerini statusu/yeniləməsi vermək üçün istifadə olunur.

Yaratacağımız sistem, alınan marşrutu, alınan zərbələrin və zərbələrin miqdarını da göstərəcək.

Qeyd: bu bir məktəb layihəsi üçün hazırlanmışdır, buna görə də vaxt məhdudiyyəti səbəbindən təkmilləşdirmə üçün çox yer var

Təchizat

-Raspberry Pi 4 model B

-Moruq PI T ayaqqabı

-4x3, 7V Li-ion batareyaları

-2 dəfə ikiqat batareya tutacağı

-DC Buck 5-dən aşağıya endirən çevirici

-2x böyük narıncı led

-açma/söndürmə/açma

-düymə

-adafruit ultimate gps v3

-mpu 6050

-16x2 lcd ekran

-servo motor

Addım 1: Dövrə və Pi -ni gücləndirin

Dövrə və Pi -yə Güc
Dövrə və Pi -yə Güc
Dövrəyə və Pi -yə güc
Dövrəyə və Pi -yə güc

Dövrə pi -ni bir batareya ilə gücləndirməyə gəldikdə, bunu necə edəcəyinizə dair bir neçə seçiminiz var.

Bir güc bankından istifadə edə və pi-ni USB vasitəsilə gücləndirə bilərsiniz, bəlkə də cihazı USB portu olan bir e-velosipedə və ya e-skuterə quraşdırırsınız, bəlkə də 5V telefon batareyası var və ya istifadə etməyi gözləyir. 3.7V batareya dəsti, şəkillərdə göstərildiyi kimi aşağıya doğru çeviriciyə paralel olaraq

Davamlı bir 5V təmin edə biləcəyi və xoşbəxt bir ömrü olduğu müddətcə hər şey yaxşıdır.

Addım 2: MPU6050

MPU6050
MPU6050

Giriş MPU6050 sensor modulu, 6 oxlu bir hərəkət izləmə cihazıdır.

  • 3 eksenli giroskop, 3 oxlu akselerometr, rəqəmsal hərəkət prosessoru və temperatur sensoru var, hamısı tək bir IC-də.
  • I2C ünsiyyətindən istifadə edərək müəyyən qeydlərin ünvanlarından dəyərləri oxumaqla müxtəlif parametrləri tapmaq olar. X, Y və Z oxları boyunca giroskop və akselerometr oxunması 2 -nin tamamlayıcı formasında mövcuddur.
  • Jiroskop oxunuşları saniyədə dərəcə (dps) birimidir; Akselerometr oxunuşları g vahidindədir.

I2C -nin aktivləşdirilməsi

Bir Raspberry Pi ilə MPU6050 istifadə edərkən, Raspberry Pi üzərindəki I2C protokolunun açıldığından əmin olmalıyıq.

  1. "sudo raspi-config" yazın
  2. Interfacing Configurations seçin
  3. Interfacing seçimində "I2C" seçin
  4. I2C konfiqurasiyasını aktiv edin
  5. Yenidən başlatmaq istədikdə Bəli seçin.

İndi, i2c alətlərini quraşdıraraq Raspberry Pi lövhəmizə qoşulmuş hər hansı bir I2C cihazını sınaya/taraya bilərik. Apt paket menecerindən istifadə edərək i2c vasitələrini əldə edə bilərik. Raspberry Pi terminalında aşağıdakı əmrdən istifadə edin.

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

İndi hər hansı bir I2C əsaslı cihazı istifadəçi rejimi portuna qoşun və aşağıdakı əmri istifadə edərək portu tarayın, "sudo i2cdetect -y 1"

Sonra cihaz ünvanı ilə cavab verəcəkdir.

Heç bir ünvan geri qaytarılmırsa, MPU6050 -nin düzgün bağlandığından əmin olun və yenidən cəhd edin

İşə düzəltmək

i2c-nin aktiv olduğuna və pi-nin MPU6050-ə çata biləcəyinə əmin olduğumuza görə "sudo pip3 install adafruit-circuitpython-mpu6050" əmrindən istifadə edərək kitabxana quracağıq.

Bir python test faylı hazırlasaq və aşağıdakı kodu istifadə etsək, işlədiyini görə bilərik:

idxal vaxtı

idxal lövhəsi

idxal busi

oimport adafruit_mpu6050

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

MPU = adafruit_mpu6050. MPU6050 (I2C)

Doğru halda:

çap ("Sürətləndirmə: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.acceleration))

çap ("Gyro X: %. 2f, Y: %.2f, Z: %.2f dərəcə/s" %(mpu.gyro))

çap ("Temperatur: %.2f C" % mpu.temperatur)

çap ("")

vaxt.yuxu (1)

indi X/Y/Z oxunda sürətlənməni istədiyimiz zaman aşağıdakılardan istifadə edə bilərik:

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

bunu daimi bir döngədə sadə if ifadəsi ilə birləşdirərək, səfərdəki zərbələrin miqdarını saya bilərik

Addım 3: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Giriş

Yaranma, 66 kanalda 22 peyk izləyə bilən, əla yüksək həssaslıq qəbuledicisinə (-165 dB izləmə!) Və quraşdırılmış antenaya malik, heç bir mənası olmayan, yüksək keyfiyyətli GPS modulu olan MTK3339 çipsetinin ətrafında qurulmuşdur.. Yüksək sürət, yüksək həssaslıq qeydləri və ya izləmə üçün saniyədə 10 -a qədər yer yeniləməsi edə bilər. Güc istifadəsi inanılmaz dərəcədə aşağıdır, naviqasiya zamanı cəmi 20 mA.

Lövhə ilə birlikdə gəlir: ultra aşağı düşmə 3.3V tənzimləyicisi, buna görə də onu 3.3-5VDC gücündə, 5V səviyyəli təhlükəsiz girişlərlə təmin edə bilərsiniz, LED peyk axtararkən təxminən 1 Hz-də yanıb-sönür və düzəliş edildikdə hər 15 saniyədə bir yanıb-sönür. gücünü qoruduğu məlum oldu.

GPS -in arduino ilə yoxlanılması

Bir arduinoya girişiniz varsa, modulu onunla sınamaq yaxşı olar.

VIN -i +5V -ə qoşun

Sadəcə boş bir arduino kodu işlədin və 9600 baud üzərindəki seriyalı monitoru açın. GPS məlumatı alsanız gps modulunuz işləyir. Qeyd: modulunuz düzəliş əldə etməyibsə onu pəncərədən və ya çöldən bir terasa qoymağa çalışın.

İşə düzəltmək

"Sudo pip3 install adafruit-circuitpython-gps" əmrindən istifadə edərək adafruit gps kitabxanasının quraşdırılmasına başlayın.

İndi işləyə biləcəyimizi görmək üçün aşağıdakı python kodundan istifadə edə bilərik:

idxal vaxt idxal taxtası idxal busioimport adafruit_gpsimport serial uart = serial. Serial ("/dev/ttyS0", baudrate = 9600, zaman aşımı = 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, 0) gps.send_command (b'PMTK220, 1000)

Doğru halda:

gps.has_fix olmasa da gps.update ():

çap (gps.nmea_sentence) çap ('Düzəliş gözləyir …') gps.update () vaxt.yuxu (1) davam

print ('=' * 40) # Ayırıcı xətti yazdırın. çap et ('Enlem: {0:.6f} dərəcə'. format (gps.latitude)) çap et ('Boylam: {0:.6f} dərəcə'. format) (gps.longitude)) çap ("Fix quality: {}". format (gps.fix_quality))

# Enlem, boylam və zaman damğasından kənar bəzi atributlar isteğe bağlıdır və mövcud olmaya bilər. İstifadəyə başlamazdan əvvəl yox olduqlarını yoxlayın! Gps.satellites yoxsa:

çap ("# peyk: {}". format (gps.satellites))

gps.altitude_m heç biri deyilsə:

çap ("Hündürlük: {} metr". format (gps.altitude_m))

gps.speed_knots heç biri deyilsə:

çap ("Sürət: {} düyünlər". format (gps.speed_knots))

gps.track_angle_deg Yoxdursa:

çap ("İzləmə açısı: {} dərəcə". format (gps.track_angle_deg))

gps.horizontal_dilution Yoxdursa:

çap ("Yatay seyreltmə: {}". format (gps.horizontal_dilution))

gps.height_geoid Yoxdursa:

çap ("Boy coğrafi ID: {} metr". format (gps.height_geoid))

vaxt.yuxu (1)

Addım 4: 16x2 LCD

16x2 LCD
16x2 LCD

Giriş

LCD modulları çox çox ən əlaqədar layihələrdə istifadə olunur, səbəb onun ucuz qiymət, mövcudluğu və proqramçı dost olan. Çoxumuz gündəlik həyatımızda ya PCO -da, ya da kalkulyatorda bu ekranlara rast gələ bilərdik. 16 × 2 LCD belə adlandırılmışdır; 16 Sütun və 2 Satırdan ibarətdir. 8 × 1, 8 × 2, 10 × 2, 16 × 1 və s. Kimi bir çox kombinasiya mövcuddur, lakin ən çox istifadə edilən 16 × 2 LCD -dir. Belə ki, olacaq (16 × 2 = 32) cəmi 32 simvol və hər bir xarakter 5 × 8 Pixel Dots ediləcək.

Smbus quraşdırılır

Sistem Bus (smbus) I2C avtobus daha az və ya bir törəmə edir. Standart Intel tərəfindən hazırlanmış və hazırda SBS Forumu tərəfindən qorunur. SMBusun əsas tətbiqi PC anakartlarında və əlaqədar sistemlərdə kritik parametrləri izləməkdir. Məsələn, SMBus interfeysi olan bir çox təchizat gərginliyi monitoru, temperatur monitoru və fan monitoru/nəzarət IC -ləri mövcuddur.

İstifadə edəcəyimiz kitabxana smbus-un eyni zamanda quraşdırılmasını tələb edir. Smbus-ı rpi-yə yükləmək üçün "sudo apt install python3-smbus" əmrindən istifadə edin.

İşə düzəltmək

əvvəlcə "sudo pip3 install RPLCD" əmrindən istifadə edərək RPLCD kitabxanasını quraşdırın.

İndi aşağıdakı kodu istifadə edərək ipi göstərərək LCD -ni sınayırıq:

RPLCD.i2c idxal CharLCDimport yuvasından

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 () ip_adresini qaytarın

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('IP ünvanı: / r / n'+str (get_ip_address ()))

Addım 5: Servo, Ledlər, Düymə və Açar

Servo, Ledlər, Düymə və Açar
Servo, Ledlər, Düymə və Açar

Giriş

Bir servo motor, adi bir motorda olmayan bucaq mövqeyi, sürətləndirmə və sürət baxımından dəqiq bir idarə etməyə imkan verən fırlanan bir aktuator və ya motordur. Daimi bir mühərrikdən istifadə edir və mövqe rəyləri üçün bir sensorla birləşdirir. xüsusi məqsəd üçün nəzərdə tutulmuşdur kimi nəzarətçi, servo motor ən inkişaf etmiş hissəsidir.

İşıq yayan diod üçün qısa LED. Elektrik cərəyanı keçəndə işıq yayan elektron yarımkeçirici cihaz. Közərmə lampalarına nisbətən daha səmərəlidirlər və nadir hallarda yanırlar. LEDlər düz ekranlı video ekranlar kimi bir çox tətbiqlərdə və getdikcə ümumi işıq mənbələri olaraq istifadə olunur.

Bir düymə və ya sadəcə bir düymə, bir maşının və ya prosesin bəzi aspektlərini idarə etmək üçün sadə bir keçid mexanizmidir. Düymələr ümumiyyətlə sərt materialdan, ümumiyyətlə plastikdən və ya metaldan hazırlanır.

Açma/söndürmə/açma düyməsinin 3 mövqeyi var ki, ortası qapalı vəziyyətdədir, bu tiplər əsasən irəli, söndürmə və tərs vəziyyətə malik olduğunuz sadə motor idarəçiliyində istifadə olunur.

İşə yaraması: servo

Servo, PWM siqnalından istifadə edərək, bizim üçün hansı açının olması lazım olduğunu müəyyən etmək üçün GPIO bu xüsusiyyətə malikdir. Buna görə də servo idarə etmək üçün aşağıdakı kodu istifadə edə bilərik: RPi. GPIO -nu GPIOimport zamanı olaraq idxal edin.

servo_pin = 18duty_cycle = 7.5

GPIO.setmode (GPIO. BCM)

GPIO. quraşdırma (servo_pin, GPIO. OUT)

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

Doğru halda:

duty_cycle = float (giriş ("Vəzifə Dövrünə daxil olun (Soldan = 5 -dən Sağa = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

İşə salmaq: led və keçid

Ledləri və keçidləri bağladığımıza görə, LED -ləri idarə etməyə və oxumağa və özünü dəyişdirməyə ehtiyacımız yoxdur. Sadəcə düymənin ifritə siqnallarını istədiyimiz ledə yönləndirəcəyik.

İşə salmaq: düymə

Düymə üçün öz sadə sinifimizi elə quracağıq ki, hər dəfə istifadə etdiyimiz zaman bir hadisə əlavə etmədən ona bir hadisə əlavə etmədən onu basıldığında asanlıqla görə bilərik. Aşağıdakı kodu istifadə edərək classbutton.py faylını düzəldəcəyik:

RPi idxal GPIOclass Düyməsindən:

def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@mülkiyyət def basıldı (özünü):

ingedrukt = GPIO.input (self.pin) qaytarılması ingedrukt deyil

def on_press (özünü, zəng üsulu):

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

def on_release (özünü, zəng üsulu):

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

Addım 6: Tam Dövrə

Tam Dövrə
Tam Dövrə
Tam Dövrə
Tam Dövrə

İndi bütün komponentləri keçdikdən sonra hamısını birləşdirmə vaxtı gəldi.

Şəkillərdə komponentlərin çörək taxtasındakı hər şeyi göstərdiyi göstərilsə də lcd, adafruit GPS və dişi ilə kişi tellərinə bağlanmaq daha yaxşıdır. Yalnız çörək taxtasında t-cobbler və mpu6050 var. flaş çubuqlarına və sükan çubuğuna çata biləcəyinizə əmin olmaq üçün daha uzun tellərdən istifadə edin.

Addım 7: Kod

Bu təlimatı təmiz saxlamaq üçün həm backend, həm də frontend faylları olan bir github anbarı təqdim etdim. Sadəcə faylları/var/www/html qovluğunda və backend qovluğundakı faylları/home/qovluğunda yerləşdirin. [istifadəçi adı]/[qovluq adı] qovluğu

Addım 8: Verilənlər bazası

Verilənlər bazası
Verilənlər bazası

Bu sistemin qurulma üsulundan ötəri, verilənlər bazasındakı məhsulların siyahısını istifadə edərək qurulmuş sadə bir web mağazası var, üstəlik burada qeyd olunan bütün yol nöqtələri və sifarişlər var. növbəti addım

Addım 9: Dava

Hal
Hal

Elektronikanın işini bildikdən sonra onları bir qutuya yığa bilərik, bununla da bir az yaradıcı azadlıq əldə edə bilərsiniz, tikməzdən əvvəl, məsələn, boş taxıl qutusu kimi artıq ehtiyacınız olmayan karton qutunu götürün və kəsin, bantlayın. Çantanı bir kağız üzərində ölçün və çəkin və taxta kimi daha möhkəm bir materialdan düzəldin və ya bu sizin işiniz deyilsə 3d çap edin. Sadəcə bütün elektronikanın içəriyə və düyməniz, açara gedən tel, ledlər və lcd üçün deşikləriniz var. Vəziyənizi bir dəfə velosipedinizə və ya skuterinizə bağlamaq üçün bir yol tapmağınız kifayətdir.

Tövsiyə: