Мазмұны:

Шағын дүкендерге арналған трек және із: 9 қадам (суреттермен)
Шағын дүкендерге арналған трек және із: 9 қадам (суреттермен)

Бейне: Шағын дүкендерге арналған трек және із: 9 қадам (суреттермен)

Бейне: Шағын дүкендерге арналған трек және із: 9 қадам (суреттермен)
Бейне: Тигр😂 #семья #жаналиевтертеатры 2024, Шілде
Anonim
Шағын дүкендерге арналған трек және із
Шағын дүкендерге арналған трек және із

Бұл электронды велосипедтерге немесе электронды скутерлерге қысқа мерзімді жеткізу үшін орнатылатын шағын дүкендерге арналған жүйе, мысалы, кондитерлік өнімдерді жеткізгісі келетін наубайхана.

Track and Trace нені білдіреді?

Бақылау және іздеу - бұл тасымалдаушылар немесе курьерлік компаниялар тасымалдау кезінде сәлемдемелердің немесе заттардың қозғалысын тіркеу үшін қолданатын жүйе. Әр өңдеу орнында тауарлар сәйкестендіріліп, орталық өңдеу жүйесіне деректер жіберіледі. Бұл деректер кейіннен жөнелтушілерге тауарлардың орналасқан жерінің мәртебесін/жаңартуын беру үшін қолданылады.

Біз жасайтын жүйе сонымен қатар алынған маршрутты және алынған соққылар мен соққылардың мөлшерін көрсетеді. Бұл нұсқаулар сізде таңқурай pi, python және mysql туралы негізгі біліміңіз бар екенін көрсетеді.

Ескерту: бұл мектеп жобасы үшін жасалды, сондықтан уақыт шектеулі болғандықтан жақсартуға көп мүмкіндік бар

Жабдықтар

-Raspberry Pi 4 моделі В.

-таңқурай PI трикотажшы

-4х3, 7В литий-иондық батареялар

-2x қос батареялық ұстағыш

-DC Buck төмен түсіретін түрлендіргіші 5v

-2x үлкен апельсин светодиодтары

-қосу/өшіру/қосу қосқышы

-түйме

-adafruit ultimate gps v3

-6050

-16x2 дисплей

-серваторлы қозғалтқыш

1 -қадам: Схема мен Пи -ге қуат беру

Схеманы және Пиді қуаттандыру
Схеманы және Пиді қуаттандыру
Схеманы және Пиді қуаттандыру
Схеманы және Пиді қуаттандыру

Батареямен пи тізбегін қуаттандыруға келетін болсақ, мұны істеудің бірнеше нұсқасы бар.

Сіз қуат банкін қолдана аласыз және пиді USB арқылы қуаттай аласыз, мүмкін сіз құрылғыны USB порты бар электронды велосипедке немесе электронды скутерге орнатып жатқан шығарсыз, мүмкін сізде 5В телефонның батареясы пайдалануды күтеді немесе сіз 2 қолдана аласыз. 3.7В аккумуляторлар жиынтығы суретте көрсетілгендей төмен түсетін түрлендіргішпен параллель

Барлығы жақсы, егер ол үздіксіз 5В қамтамасыз ете алатын болса және сіз бақытты болсаңыз.

2 -қадам: MPU6050

MPU6050
MPU6050

Кіріспе MPU6050 сенсорлық модулі-бұл 6 осьті қозғалысты бақылау құралы.

  • Онда 3 осьті гироскоп, 3 осьті акселерометр, цифрлық қозғалыс процессоры және температура сенсоры бар, олардың барлығы бір IC-де.
  • I2C байланысын қолдана отырып, белгілі бір регистрлердің адрестерінен мәндерді оқу арқылы әр түрлі параметрлерді табуға болады. X, Y және Z осьтері бойынша гироскоп пен акселерометрдің оқылуы 2 -нің қосымша түрінде қол жетімді.
  • Гироскоптың көрсеткіштері секундына градуспен (dps) өлшенеді; Акселерометр көрсеткіштері г бірлігінде.

I2C қосу

Raspberry Pi көмегімен MPU6050 қолданған кезде біз Raspberry Pi -дегі I2C протоколының қосылғанына көз жеткізуіміз керек.

  1. «sudo raspi-config» теріңіз
  2. Interfacing Configurations таңдаңыз
  3. Интерфейс опциясында «I2C» таңдаңыз
  4. I2C конфигурациясын қосыңыз
  5. Қайта жүктеуді сұраған кезде Иә таңдаңыз.

Енді біз Raspberry Pi тақтасына қосылған кез келген I2C құрылғысын i2c құралдарын орнату арқылы тексере аламыз/сканерлей аламыз. Біз i2c құралдарын apt пакет менеджерінің көмегімен ала аламыз. Raspberry Pi терминалында келесі пәрменді қолданыңыз.

«sudo apt-get install -y i2c-tools»

Енді I2C негізіндегі кез келген құрылғыны пайдаланушы режиміндегі портқа қосыңыз және келесі пәрменді қолданып сол портты сканерлеңіз, «sudo i2cdetect -y 1»

Содан кейін ол құрылғы адресімен жауап береді.

Егер мекенжай қайтарылмаса, MPU6050 дұрыс қосылғанын тексеріп, әрекетті қайталаңыз

Оны жұмыс жасау

Енді біз i2c қосылғанына және pi MPU6050-ге қол жеткізе алатынына сенімдіміз, біз «sudo pip3 install adafruit-circuitpython-mpu6050» пәрменін пайдаланып кітапхананы орнатамыз.

егер біз python тестілік файлын жасап, келесі кодты қолдансақ, оның жұмыс істейтінін көре аламыз:

импорт уақыты

импорт тақтасы

busi импорттау

6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

шындық кезінде:

басып шығару («Жеделдету: X: %. 2f, Y: %.2f, Z: %.2f м/с^2» %(mpu. үдеу))

басып шығару («Gyro X: %. 2f, Y: %.2f, Z: %.2f градус/с» %(mpu.gyro))

басып шығару («Температура: %.2f С» % mpu.температура)

басып шығару («»)

уақыт.ұйқы (1)

біз қазір X/Y/Z осінде үдеуді қаласақ, келесі әрекеттерді қолдана аламыз:

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

мұны тұрақты циклдегі қарапайым if операторымен біріктіре отырып, біз сапардағы соққылардың санын есептей аламыз

3 -қадам: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Кіріспе

Үзіліс MTK3339 чипсетінің айналасында жасалған, 66 арнада 22 спутникті қадағалай алатын, жоғары сапалы GPS модулі, сезімталдығы жоғары қабылдағышы бар (-165 дБ қадағалау!), Және кіріктірілген антенна.. Ол жоғары жылдамдықпен, жоғары сезімталдықпен тіркеу немесе бақылау үшін секундына 10 орынға дейін жаңартуларды жасай алады. Қуатты пайдалану өте төмен, навигация кезінде тек 20 мА.

Тақтада мыналар бар: 3.3В өте төмен түсетін реттегіш, сондықтан сіз оны 3.3-5VDC, 5В деңгейдегі қауіпсіз кірістермен қуаттай аласыз, жарық диоды шамамен 1 Гц жыпылықтайды, ол спутниктерді іздейді және түзету кезінде 15 секунд сайын жыпылықтайды. қуатты үнемдейтіні анықталды.

GPS -ті arduino көмегімен тексеру

Егер сізде arduino -ға кіру мүмкіндігі болса, онымен модульді тексерген дұрыс.

VIN -ді +5В -ке қосыңыз GND -ді Ground -ға қосыңыз GPS -ге RX (деректерді GPS -ке) цифрлыққа 0 -ге қосыңыз GPS TX -ті (GPS -тен алынған деректер) цифрлық 1 -ге қосыңыз.

Тек бос arduino кодын іске қосыңыз және 9600 baud жүйесіндегі мониторды ашыңыз, егер сіз GPS деректерін алсаңыз, сіздің GPS модуліңіз жұмыс істейді. Ескерту: егер сіздің модуль түзетілмесе, оны терезеге немесе сыртқа террасаға шығарып көріңіз.

Оны жұмыс жасау

«Sudo pip3 install adafruit-circuitpython-gps» пәрменін пайдаланып adafruit gps кітапханасын орнатуды бастаңыз.

Енді біз келесі питон кодын қолданып, оны жұмыс жасай алатынымызды біле аламыз:

импорттық уақыт импорт тақтасы импорт busioimport adafruit_gpsimport serial uart = serial. Serial («/dev/ttyS0», baudrate = 9600, күту уақыты = 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')

шындық кезінде:

gps.has_fix емес, gps.update ():

басып шығару (gps.nmea_sentence) басып шығару ('Түзету күтілуде …') gps.update () уақыт.ұйықтау (1) жалғастыру

басып шығару ('=' * 40) # Бөлгіш сызығын басып шығару. (gps.longitude)) басып шығару («Fix quality: {}». format (gps.fix_quality))

# Ендік, бойлық және уақыт белгісінен тыс кейбір атрибуттар міндетті емес# және олар болмауы мүмкін. Егер gps.satellites None болмаса, олардың жоқ екенін тексеріңіз:

басып шығару («# спутниктер: {}». форматы (gps.satellites))

егер gps.altitude_m жоқ болса:

басып шығару («Биіктік: {} метр». пішім (gps.altitude_m))

егер gps.speed_knots жоқ болса:

басып шығару («Жылдамдық: {} түйіндер». пішім (gps.speed_knots))

егер gps.track_angle_deg жоқ болса:

басып шығару («Жол бұрышы: {} градус». пішім (gps.track_angle_deg))

егер gps.horizontal_dilution Жоқ болса:

басып шығару («Көлденең сұйылту: {}». форматы (gps.horizontal_dilution))

егер gps.height_geoid Жоқ болса:

басып шығару («Биіктік гео идентификаторы: {} метр». пішім (gps.height_geoid))

уақыт.ұйқы (1)

4 -қадам: 16x2 СКД

16x2 СКД
16x2 СКД

Кіріспе

СКД модульдері ендірілген жобалардың көпшілігінде жиі қолданылады, себебі оның арзан бағасы, қолжетімділігі және бағдарламашыға ыңғайлы болуы. Біздің көпшілігіміз күнделікті дисплейде немесе дисплейде немесе дисплейде кездесетін едік. 16 × 2 СКД осылай аталады, себебі; онда 16 баған мен 2 жол бар. 8 × 1, 8 × 2, 10 × 2, 16 × 1 және т.б. сияқты көптеген комбинациялар бар, бірақ ең көп қолданылатыны - 16 × 2 СКД. Осылайша, ол (16 × 2 = 32) 32 таңбадан тұрады және әр таңба 5 × 8 пиксель нүктелерінен тұрады.

Smbus орнату

Жүйелік басқару шинасы (SMBus) I2C шинасының азды -көпті туындысы болып табылады. Стандартты Intel әзірледі және оны SBS Forum жүргізеді. SMBus -тың негізгі қосымшасы - компьютерлік аналық платалар мен ендірілген жүйелердегі маңызды параметрлерді бақылау. Мысалы, SMBus интерфейсі бар көптеген кернеу мониторы, температура мониторы және желдеткіш мониторы/басқару IC -лері бар.

Біз қолданатын кітапхана smbus-ты орнатуды қажет етеді. Smbus-ты rpi-ге орнату үшін «sudo apt install python3-smbus» пәрменін қолданыңыз.

Оны жұмыс жасау

алдымен RPLCD кітапханасын «sudo pip3 install RPLCD» пәрмені арқылы орнатыңыз.

Енді біз келесі кодты қолдана отырып, IP -ді көрсету арқылы LCD -ді тексереміз:

RPLCD.i2c -ден CharLCDimport ұясын импорттау

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_adress қайтару

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('IP мекенжайы: / r / n'+str (get_ip_address ()))

5 -қадам: Серво, светодиодтар, түйме және қосқыш

Серво, светодиод, түйме және қосқыш
Серво, светодиод, түйме және қосқыш

Кіріспе

Серво қозғалтқышы - бұл айналмалы қозғалтқыш немесе қозғалтқыш, ол қалыпты қозғалтқышта жоқ бұрыштық орналасуы, үдеуі мен жылдамдығы, мүмкіндіктері бойынша дәл бақылауға мүмкіндік береді. Ол кәдімгі қозғалтқышты қолданады және оны кері байланыс үшін сенсормен қосады. Контроллер - бұл сервоқозғалтқыштың ең күрделі бөлігі, себебі ол арнайы жасалған.

Жарық диодына арналған қысқа жарық диоды. Электр тогы өткен кезде жарық шығаратын электронды жартылай өткізгіш құрылғы. Олар қыздыру шамдарына қарағанда тиімдірек және сирек күйіп кетеді. Светодиодтар жалпақ экранды бейне дисплейлер сияқты көптеген қосымшаларда және жалпы жарық көзі ретінде қолданылады.

Түйме немесе жай түйме-бұл машинаның немесе процестің кейбір аспектілерін басқаруға арналған қарапайым қосқыш механизмі. Түймелер әдетте қатты материалдан, әдетте пластиктен немесе металдан жасалған.

Қосу/өшіру/қосу қосқышында 3 позиция бар, олардың ортасы сөндірулі күйде, бұл типтер негізінен алға, өшіру және кері күйге ие қарапайым қозғалтқышты басқару үшін қолданылады.

Жұмыс жасау: серво

Серво PWM сигналын қолданады, ол бізге қандай бұрыш қажет екенін анықтау үшін GPIO -да бұл функция орнатылған, сондықтан біз сервоны басқару үшін келесі кодты пайдалана аламыз: GPIO импорт уақыты ретінде RPi. GPIO импорттау.

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)

шындық кезінде:

duty_cycle = float (енгізу («Жұмыс циклін енгізіңіз (Солға = 5 -тен оңға = 10):»)) pwm_servo. ChangeDutyCycle (duty_cycle)

Жұмыс жасау: жетекші және қосқыш

Біз светодиод пен қосқыштың сымына байланысты, біз светодиодты басқарудың немесе оқудың қажеті жоқ, және біз түймедегі импульстарды жібереміз, бұл өз кезегінде сигналды біз қалаған жарықдиодқа бағыттайды.

Жұмыс жасау: түйме

Түйме үшін біз өзіміздің қарапайым сыныбымызды жасаймыз, осылайша біз оны қолданған сайын оған оқиғаны анықтауды қоспай -ақ, басылған кезде оңай көреміз. Classbutton.py файлын келесі кодты қолдана отырып жасаймыз:

RPi импорттау GPIOclass батырмасынан:

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 басылған (өзін):

ingedrukt = GPIO.input (self.pin) қайтару ingedrukt емес

def on_press (өзін -өзі, қоңырау_әдісі):

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

def on_release (өзінше, call_method):

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

6 -қадам: Толық тізбек

Толық схема
Толық схема
Толық схема
Толық схема

Енді біз барлық компоненттерді қарастырдық, олардың барлығын біріктірудің уақыты келді.

Суреттерде компоненттердің әрқайсысы нан тақтасында көрсетілгенін көрсетсе де, еркек сымдарға тек әйелдер, ерлер сымдары арқылы жалғанған адаптерлік GPS және түйме орнатылған жөн. жыпылықтағыш пен рульге жетуге болатынына көз жеткізу үшін ұзын сымдарды қолданыңыз.

7 -қадам: Кодекс

Бұл нұсқаулықты таза ұстау үшін мен артқы және фронталдық файлдар бар github репозиторийін ұсындым. Жай ғана файлдарды/var/www/html қалтасындағы алдыңғы қалтаға және файлдарды/home/қалтасындағы қалтаға қойыңыз. [пайдаланушы аты]/[қалта аты] қалтасы

8 -қадам: мәліметтер базасы

Мәліметтер қоры
Мәліметтер қоры

Бұл жүйе орнатылғандықтан, мәліметтер базасындағы өнімдердің тізімін қолдана отырып, қарапайым веб -дүкен орнатылған, сонымен қатар бізде барлық нүктелер мен тапсырыстар осы жерде сақталған. келесі қадам

9 -қадам: іс

Іс
Іс

Электрониканың жұмысын білгеннен кейін біз оларды қорапқа салуға болады, бұл үшін шығармашылық еркіндікке қол жеткізуге болады, оны жасамас бұрын сізге қажет емес картон қорапты алыңыз, мысалы, бос жарма қорапшасы сияқты және оны кесіңіз. және өзіңізге ұнайтын нәрсеге ие болғанша оны бүктеңіз. Қорапты қағаз бетіне өлшеп, сызыңыз және оны ағаш сияқты берік материалдан жасаңыз, егер бұл сіздің қолыңыздан келмесе, оны басып шығарыңыз. Сізде түйме, сым қосқышқа, светодиодтар мен дисплейге баратын саңылаулар бар. Сіз өзіңіздің ісіңізді велосипедке немесе скутерге орнатудың жолын іздестіргеннен кейін.

Ұсынылған: