Съдържание:
- Консумативи
- Стъпка 1: Захранване на веригата и Pi
- Стъпка 2: MPU6050
- Стъпка 3: Adafruit Ultimate Breakout GPS
- Стъпка 4: 16x2 LCD
- Стъпка 5: Серво, светодиоди, бутон и превключвател
- Стъпка 6: Пълният кръг
- Стъпка 7: Кодът
- Стъпка 8: Базата данни
- Стъпка 9: Делото
Видео: Проследяване и проследяване за малки магазини: 9 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Това е система, която е създадена за малки магазини, които се предполага да се монтират на електронни велосипеди или електронни скутери за доставки на къси разстояния, например пекарна, която иска да доставя сладкиши.
Какво означава Track and Trace?
Проследяване е система, използвана от превозвачи или куриерски компании за записване на движението на колети или пратки по време на транспортиране. На всяко място за обработка стоките се идентифицират и данните се предават към централната система за обработка. След това тези данни се използват за предоставяне на състояние/актуализация на местоположението на стоката на изпращачите.
Системата, която ще направим, също ще покаже изминатия маршрут и размера на получените удари и удари. Тези инструкции също предполагат, че имате основни познания за малинов pi, python и mysql.
забележка: това е направено за училищен проект, поради което поради ограниченото време има много място за подобрения
Консумативи
-Maslin Pi 4 модел B
-Малина PI T-обущар
-4x 3, 7V литиево-йонни батерии
-2x двоен държач на батерията
-DC Buck Стъпкав конвертор 5v
-2x големи оранжеви светодиоди
-включване/изключване/включване
-бутон
-adafruit ultimate gps v3
-mpu6050
-16x2 LCD дисплей
-серво мотор
Стъпка 1: Захранване на веригата и Pi
Що се отнася до захранването на веригата pi с батерия, имате няколко опции как да го направите.
Можете да използвате powerbank и да захранвате pi чрез USB, може би монтирате устройството на e-bike или e-scooter, който има USB порт, може би имате 5V батерия на телефона, чакаща да бъде използвана, или можете да използвате 2 комплекти от 3.7V батерии паралелно с понижаващ преобразувател, както е показано на снимките
Всичко е наред, стига да може да осигури непрекъснато 5V и да има цял живот, от който сте доволни.
Стъпка 2: MPU6050
Въведение MPU6050 сензорният модул е интегрирано 6-осно устройство за проследяване на движение.
- Той разполага с 3-осен жироскоп, 3-осен акселерометър, цифров процесор за движение и температурен сензор, всичко в една IC.
- Различни параметри могат да бъдат намерени чрез четене на стойности от адреси на определени регистри, използвайки I2C комуникация. Четенето на жироскоп и акселерометър по осите X, Y и Z са достъпни под формата на 2 за допълване.
- Показанията на жироскопа са в единица в градуси в секунда (dps); Показанията на акселерометъра са в g единица.
Активиране на I2C
Когато използвате MPU6050 с Raspberry Pi, трябва да се уверим, че протоколът I2C на Raspberry Pi е включен. За да направите това, отворете терминала на pi чрез шпакловка или друг софтуер и направете следното:
- въведете "sudo raspi-config"
- Изберете Interfacing Configurations
- В опцията Interfacing изберете „I2C“
- Активирайте I2C конфигурацията
- Изберете Да, когато поиска да рестартирате.
Сега можем да тестваме/сканираме за всяко I2C устройство, свързано към нашата платка Raspberry Pi, като инсталираме i2c инструменти. Можем да получим i2c инструменти, като използваме apt package manager. Използвайте следната команда в терминала 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 и използваме следния код, можем да видим дали работи:
време за импортиране
борда за внос
внос на бизнес
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
докато е вярно:
печат ("Ускорение: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu. ускорение))
печат ("Жироскоп X: %. 2f, Y: %.2f, Z: %.2f градуса/s" %(mpu.gyro))
печат ("Температура: %.2f C" % mpu.температура)
print ("")
time.sleep (1)
когато сега искаме ускорението по оста X/Y/Z, можем да използваме следното:
ускорениеX = mpu.акселерация [0] ускорениеY = mpu.ускорение [1] ускорениеZ = mpu.ускорение [2]
комбинирайки това с просто изявление if в постоянен цикъл, можем да преброим количеството шокове при пътуване
Стъпка 3: Adafruit Ultimate Breakout GPS
Въведение
Пробивът е изграден около чипсета MTK3339, безсмислен, висококачествен GPS модул, който може да проследява до 22 спътника по 66 канала, има отличен приемник с висока чувствителност (-165 dB проследяване!) И вградена антена. Той може да прави до 10 актуализации на местоположение в секунда за висока скорост, високочувствително регистриране или проследяване. Консумацията на енергия е изключително ниска, само 20 mA по време на навигация.
Платката се доставя с: ултра-нисък отпадащ 3.3V регулатор, така че можете да го захранвате с 3.3-5VDC вход, 5V ниво на безопасни входове, светодиодът мига на около 1Hz, докато търси сателити и мига веднъж на всеки 15 секунди, когато е поправено установено, че пести енергия.
Тестване на gps с arduino
Ако имате достъп до arduino, добра идея е да тествате модула с него.
Свържете VIN към +5V Свържете GND към GroundConnect GPS RX (данни в GPS) към Digital 0Connect GPS TX (данни от GPS) към Digital 1
Просто стартирайте празен код на arduino и отворете серийния монитор на 9600 бода. Ако получите данни за GPS, вашият GPS модул работи.
Правейки работа
Започнете да инсталирате библиотеката на adafruit gps, като използвате командата "sudo pip3 install adafruit-circuitpython-gps".
Сега можем да използваме следния код на python, за да видим дали можем да го накараме да работи:
време за импортиране борд за импортиране busioimport adafruit_gpsimport сериен 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 ') gps.send_command (b'PMTK220, 1000')
докато е вярно:
gps.update (), а не gps.has_fix:
print (gps.nmea_sentence) print ('Изчакване за поправка …') gps.update () time.sleep (1) продължи
print ('=' * 40) # Отпечатайте разделител line.print ('Latitude: {0:.6f} градуса'. format (gps.latitude)) print ('Longitude: {0:.6f} градуса'. (gps.longitude)) print ("Качество на поправка: {}". формат (gps.fix_quality))
# Някои атрибути извън географската ширина, дължина и времевата отметка са незадължителни# и може да не присъстват. Проверете дали не са, преди да опитате да използвате! Ако gps.satellites не е None:
print ("# сателити: {}". формат (gps.satellites))
ако gps.altitude_m не е None:
print ("Надморска височина: {} метра".format (gps.altitude_m))
ако gps.speed_knots не е None:
print ("Скорост: {} възела".format (gps.speed_knots))
ако gps.track_angle_deg не е None:
print ("ъгъл на проследяване: {} градуса".format (gps.track_angle_deg))
ако gps.horizontal_dilution не е None:
print ("Хоризонтално разреждане: {}". формат (gps.horizontal_dilution))
ако gps.height_geoid не е None:
print ("Географски идентификатор на височина: {} метра".format (gps.height_geoid))
time.sleep (1)
Стъпка 4: 16x2 LCD
Въведение
LCD модулите са много често използвани в повечето вградени проекти, като причината е ниската им цена, наличността и удобството на програмистите. Повечето от нас биха се сблъскали с тези дисплеи в ежедневието си, било то в PCO или калкулатори. 16 × 2 LCD е кръстен така, защото; има 16 колони и 2 реда. Налични са много комбинации като, 8 × 1, 8 × 2, 10 × 2, 16 × 1 и т.н., но най -използваната е 16 × 2 LCD. Така че, той ще има (16 × 2 = 32) общо 32 знака и всеки знак ще бъде направен от 5 × 8 пикселни точки.
Инсталиране на smbus
Шината за управление на системата (SMBus) е горе -долу производна на I2C шината. Стандартът е разработен от Intel и сега се поддържа от SBS Forum. Основното приложение на SMBus е да наблюдава критични параметри на дънните платки на компютри и във вградените системи. Например има много монитори за захранващо напрежение, температурен монитор и контролни/контролни интегрални схеми на вентилатора с интерфейс SMBus.
Библиотеката, която ще използваме, също изисква инсталиране на smbus. За да инсталирате smbus на rpi, използвайте командата "sudo apt install python3-smbus".
Правейки работа
първо инсталирайте библиотеката RPLCD с помощта на командата "sudo pip3 install RPLCD".
сега тестваме lcd, като показваме ip, използвайки следния код:
от 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_address
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('IP адрес: / r / n'+str (get_ip_address ()))
Стъпка 5: Серво, светодиоди, бутон и превключвател
Въведение
Сервомоторът е въртящ се задвижващ механизъм или двигател, който позволява прецизен контрол по отношение на ъгловото положение, ускорението и скоростта, възможности, които обикновеният двигател няма. Той използва обикновен двигател и го свързва със сензор за обратна връзка за позицията. Контролерът е най -сложната част от серво мотора, тъй като е специално проектиран за целта.
LED кратък за светодиод. Електронно полупроводниково устройство, което излъчва светлина, когато през него преминава електрически ток. Те са значително по -ефективни от крушките с нажежаема жичка и рядко изгарят. Светодиодите се използват в много приложения, като например видео дисплеи с плосък екран, и все повече като общи източници на светлина.
Бутонът или просто бутонът е прост механизъм за превключване, който контролира някои аспекти на машина или процес. Бутоните обикновено са изработени от твърд материал, обикновено пластмаса или метал.
Превключвателят за включване/изключване/включване има 3 позиции, където средното е в състояние на изключване, тези видове се използват най -вече за просто управление на двигателя, когато имате състояние напред, изключване и заден ход.
За да работи: серво
Сервото използва PWM сигнал, за да определи под какъв ъгъл трябва да бъде за щастие за нас GPIO има вградена тази функция. Следователно можем просто да използваме следния код за управление на серво: импортиране на RPi. GPIO като 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 (input ("Enter Duty Cycle (Left = 5 to Right = 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 натиснат (self):
ingedrukt = GPIO.input (self.pin) връщане не 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: Пълният кръг
Сега, когато разгледахме всички компоненти, е време да ги комбинираме.
Докато снимките показват, че компонентите показват всичко на самата платка, по-добре е да имате LCD, adafruit GPS и бутон, свързани с женски към мъжки проводници. използвайте по -дълги проводници, за да сте сигурни, че можете да достигнете до мигачите и кормилната лента.
Стъпка 7: Кодът
За да поддържам тази инструкция чиста, осигурих хранилище на github както с бекенд, така и с интерфейсни файлове. Просто поставете файловете във външната папка в/var/www/html папката и файловете в задната папка в папка в/home/ [потребителско име]/[име на папка] папка
Стъпка 8: Базата данни
Поради начина, по който е създадена тази система, има прост уеб магазин, настроен с помощта на списък с продукти в база данни, освен това тук имаме всички точки и поръчки, запазени тук. Следваща стъпка
Стъпка 9: Делото
След като разберем, че електрониката работи, можем да я поставим в кутия. Можете да си дадете творческа свобода с това. Преди да я конструирате, просто вземете картонена кутия, от която вече нямате нужда, като празна кутия за зърнени култури например и я изрежете, залепете и го сгънете, докато имате нещо, което харесвате. Измерете и нарисувайте кутията си върху лист хартия и я направете от по -здрав материал като дърво, или ако това не е вашето нещо, го отпечатайте 3D. Просто се уверете, че цялата електроника се побира вътре и имате дупки за бутона, проводника към превключвателя, светодиодите и LCD.
Препоръчано:
7 сегментен часовник - издание за малки принтери: 9 стъпки (със снимки)
7 -сегментен часовник - Издание за малки принтери: Още един 7 -сегментен часовник. xDA Въпреки че трябва да кажа, че не изглежда толкова лудо, когато гледам профила си на Instructables. Вероятно ще стане още по -дразнещо в момента, в който погледнете моя профил на различни неща
Максимално проследяване на Power Point за малки вятърни турбини: 8 стъпки
Проследяване на максимална мощност за малки вятърни турбини: В интернет има много вятърни турбини „направи си сам“, но много малко обясняват ясно резултата, който получават по отношение на мощност или енергия. Също така често има объркване между мощност, напрежение и ток. Много време хората казват: „Измервам
ПОС СИСТЕМА ЗА МАГАЗИНИ, ХРАНИТЕЛНИ И СЕРВИЗНИ ЦЕНТРОВЕ ОТ EXCEL С използване на баркодове: 7 стъпки
ПОС СИСТЕМА ЗА МАГАЗИНИ, ХРАНИТЕЛНИ И СЕРВИЗНИ ЦЕНТРОВЕ ОТ EXCEL С използване на баркодове: Представям ви с този блог как да създадете проста POS (точка на продажба) система за малки магазини, хранителни стоки и сервизни центрове. С този метод можете да управлявате следните съоръжения без специален софтуер или скъпо оборудване. v Ис
Ръчно запояване на малки малки чипове!: 6 стъпки (със снимки)
Ръчно запояване Teeny Tiny Chips !: Виждали ли сте някога чип, който е по-малък от върха на пръста ви и няма щифтове, и сте се чудили как изобщо бихте могли да го запоите на ръка? друг инструктаж от Колин има хубаво обяснение как да направите свое собствено запояване, но ако вашият чи
Изграждане на малки роботи: Изработка на микро-сумо роботи с кубичен инч и по-малки: 5 стъпки (със снимки)
Изграждане на малки роботи: Изработка на микро-сумо роботи с един кубичен инч и по-малки: Ето някои подробности за изграждането на малки роботи и схеми. Тази инструкция ще обхваща и някои основни съвети и техники, които са полезни при изграждането на роботи от всякакъв размер. За мен едно от големите предизвикателства в електрониката е да видя колко малък е