Мазмұны:
- Жабдықтар
- 1 -қадам: Схема мен Пи -ге қуат беру
- 2 -қадам: MPU6050
- 3 -қадам: Adafruit Ultimate Breakout GPS
- 4 -қадам: 16x2 СКД
- 5 -қадам: Серво, светодиодтар, түйме және қосқыш
- 6 -қадам: Толық тізбек
- 7 -қадам: Кодекс
- 8 -қадам: мәліметтер базасы
- 9 -қадам: іс
Бейне: Шағын дүкендерге арналған трек және із: 9 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл электронды велосипедтерге немесе электронды скутерлерге қысқа мерзімді жеткізу үшін орнатылатын шағын дүкендерге арналған жүйе, мысалы, кондитерлік өнімдерді жеткізгісі келетін наубайхана.
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 сенсорлық модулі-бұл 6 осьті қозғалысты бақылау құралы.
- Онда 3 осьті гироскоп, 3 осьті акселерометр, цифрлық қозғалыс процессоры және температура сенсоры бар, олардың барлығы бір IC-де.
- I2C байланысын қолдана отырып, белгілі бір регистрлердің адрестерінен мәндерді оқу арқылы әр түрлі параметрлерді табуға болады. X, Y және Z осьтері бойынша гироскоп пен акселерометрдің оқылуы 2 -нің қосымша түрінде қол жетімді.
- Гироскоптың көрсеткіштері секундына градуспен (dps) өлшенеді; Акселерометр көрсеткіштері г бірлігінде.
I2C қосу
Raspberry Pi көмегімен MPU6050 қолданған кезде біз Raspberry Pi -дегі I2C протоколының қосылғанына көз жеткізуіміз керек.
- «sudo raspi-config» теріңіз
- Interfacing Configurations таңдаңыз
- Интерфейс опциясында «I2C» таңдаңыз
- I2C конфигурациясын қосыңыз
- Қайта жүктеуді сұраған кезде Иә таңдаңыз.
Енді біз 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
Кіріспе
Үзіліс 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 СКД
Кіріспе
СКД модульдері ендірілген жобалардың көпшілігінде жиі қолданылады, себебі оның арзан бағасы, қолжетімділігі және бағдарламашыға ыңғайлы болуы. Біздің көпшілігіміз күнделікті дисплейде немесе дисплейде немесе дисплейде кездесетін едік. 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 -қадам: іс
Электрониканың жұмысын білгеннен кейін біз оларды қорапқа салуға болады, бұл үшін шығармашылық еркіндікке қол жеткізуге болады, оны жасамас бұрын сізге қажет емес картон қорапты алыңыз, мысалы, бос жарма қорапшасы сияқты және оны кесіңіз. және өзіңізге ұнайтын нәрсеге ие болғанша оны бүктеңіз. Қорапты қағаз бетіне өлшеп, сызыңыз және оны ағаш сияқты берік материалдан жасаңыз, егер бұл сіздің қолыңыздан келмесе, оны басып шығарыңыз. Сізде түйме, сым қосқышқа, светодиодтар мен дисплейге баратын саңылаулар бар. Сіз өзіңіздің ісіңізді велосипедке немесе скутерге орнатудың жолын іздестіргеннен кейін.
Ұсынылған:
ScanUp NFC оқу құралы/жазушысы және зағиптарға, нашар көретіндерге және басқа адамдарға арналған дыбыс жазғыш: 4 қадам (суреттермен)
ScanUp NFC Reader/жазушы және зағиптарға, нашар көретіндерге және басқаларға арналған аудиожазғыш: Мен өнеркәсіптік дизайнды оқимын, бұл жоба менің семестрімнің жұмысы. Мақсаты - көру қабілеті нашар және зағип жандарға SD картасына WAV форматында дыбыс жазуға және NFC белгісімен қоңырау шалуға мүмкіндік беретін құрылғы арқылы қолдау көрсету. Сонымен
Штрих -кодты қолдану арқылы EXCEL -ден дүкендерге, азық -түліктерге және қызмет көрсету орталықтарына арналған POS жүйесі: 7 қадам
Штрих -кодты қолдана отырып EXCEL -ден дүкендерге, көкөністерге және қызмет көрсету орталықтарына арналған POS ЖҮЙЕСІ: Мен сізге осы блогпен шағын дүкендер мен азық -түлік дүкендері мен қызмет көрсету орталықтары үшін қарапайым POS (сату нүктесі) жүйесін құруды ұсынамын. Бұл әдіспен сіз келесі бағдарламаларды арнайы бағдарламалық жасақтамасыз немесе қымбат жабдықсыз басқара аласыз. v Мәселе
Шағын кеңістіктерге арналған үй бөлмесінің қараңғы бөлмесі: 7 қадам (суреттермен)
Шағын кеңістіктерге арналған үй бөлмесінің қараңғы бөлмесі дизайны: менің түрлендірілген шкафымның 360 көрінісі - сфералық кескін - РИКОХ ТЕТАХИ, мен бұл қараңғы бөлме дизайны барлығына бірдей сәйкес келмейтінін айтқым келеді. Сіздің шкафыңыз үлкенірек, кішірек болуы мүмкін немесе сіз жуынатын бөлмені пайдаланып жатқан боларсыз. Y
Бірлікке арналған мультиплеерлік 3D голограммалық ойын және компьютерге арналған голограмма проекторы: 16 қадам (суреттермен)
Бірлікке арналған мультиплеерлік 3D голограммалық ойын және компьютерге арналған голограмма проекторы: Holus -тың әсерінен мен голографиялық дисплейді өте арзан етіп жасауды ұнатамын. Бірақ ойындарды табуға тырысқанда, мен интернеттен ештеңе таппадым. Сондықтан мен Unity -де өз ойын дамытуды жоспарлап отырмын. Бұл менің бірлікте бірінші ойыным. Бұған дейін мен Flash -те бірнеше ойындар әзірлеймін, бірақ
Үй жануарларына арналған тағамдарды лақтыруға арналған автоматты катапульт (ит, мысық, тауық, т.б.), лақтыру және басқалар!: 4 қадам (суреттермен)
Үй жануарларына арналған тағамдарды лақтыруға арналған автоматты катапульт (ит, мысық, тауық, т.б.), лақтыру және тағы басқалар!: Сәлеметсіз бе, менің бірінші нұсқаулығыма қош келдіңіз! Біздің ит өз тағамын жақсы көреді, ол бәрін бірнеше секунд ішінде жейді. Мен мұны бәсеңдетудің жолдарын ойлап таптым, ішіндегі тамағы бар шарлардан бастап ауланың барлық жеріне лақтыруға дейін. Бір ғажабы, ол