Obsah:
- Zásoby
- Krok 1: Napájení obvodu a Pi
- Krok 2: MPU6050
- Krok 3: Adafruit Ultimate Breakout GPS
- Krok 4: LCD 16x2
- Krok 5: Servo, LED, tlačítko a přepínač
- Krok 6: Celý obvod
- Krok 7: Kód
- Krok 8: Databáze
- Krok 9: Případ
Video: Track & trace for Small Shops: 9 Steps (with Pictures)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Jedná se o systém, který je vytvořen pro malé obchody a které se mají montovat na elektrokola nebo koloběžky pro dodávky na krátkou vzdálenost, například do pekárny, která chce doručovat pečivo.
Co znamená Track and Trace?
Track and trace je systém, který používají přepravci nebo kurýrní společnosti k záznamu pohybu balíků nebo věcí během přepravy. Na každém místě zpracování je zboží identifikováno a data předána do centrálního systému zpracování. Tato data se poté použijí k poskytnutí stavu/aktualizace polohy zboží odesílateli.
Systém, který vytvoříme, bude také ukazovat trasu, kterou jste absolvovali, a množství obdržených nárazů a nárazů. Tento návod také předpokládá, že máte základní znalosti o malinovém pi, pythonu a mysql.
poznámka: toto bylo vytvořeno pro školní projekt, takže z důvodu časové tísně je zde velký prostor pro zlepšení
Zásoby
-Raspberry Pi 4 model B
-Malinový PI T-ševec
-4x 3, 7V Li-ion baterie
-2x dvojitý držák baterie
-DC Buck Step-down Converter 5v
-2x velké oranžové LED diody
-spínač zapnuto/vypnuto/zapnuto
-knoflík
-adafruit ultimate gps v3
-mpu6050
-16x2 LCD displej
-servomotor
Krok 1: Napájení obvodu a Pi
Pokud jde o napájení obvodu pi baterií, máte několik možností, jak to udělat.
Můžete použít powerbanku a napájet pi přes USB, možná zařízení montujete na elektrokolo nebo e-koloběžku, která má USB port, možná máte 5V baterii telefonu a čekáte na použití, nebo můžete použít 2 sady baterií 3,7 V paralelně se snižujícím převodníkem, jak je znázorněno na obrázcích
Cokoli je v pořádku, pokud může poskytovat nepřetržité napětí 5 V a má životnost, se kterou jste spokojeni.
Krok 2: MPU6050
Úvod Senzorový modul MPU6050 je integrované 6osé zařízení pro sledování pohybu.
- Má 3osý gyroskop, 3osý akcelerometr, digitální pohybový procesor a teplotní senzor, vše v jednom integrovaném obvodu.
- Různé parametry lze nalézt načtením hodnot z adres určitých registrů pomocí komunikace I2C. Čtení gyroskopu a akcelerometru podél os X, Y a Z je k dispozici ve formě doplňku 2.
- Hodnoty gyroskopu jsou ve stupních za sekundu (dps) jednotka; Hodnoty akcelerometru jsou v g jednotkách.
Povolení I2C
Při použití MPU6050 s Raspberry Pi bychom měli zajistit, aby byl na Raspberry Pi zapnutý protokol I2C. Chcete -li to provést, otevřete terminál pí pomocí tmelu nebo jiného softwaru a proveďte následující:
- zadejte „sudo raspi-config“
- Vyberte Konfigurace rozhraní
- V možnosti Rozhraní vyberte „I2C“
- Povolit konfiguraci I2C
- Když se zobrazí výzva k restartování, vyberte Ano.
Nyní můžeme testovat/skenovat jakékoli zařízení I2C připojené k naší desce Raspberry Pi instalací nástrojů i2c. Nástroje i2c můžeme získat pomocí správce balíčků apt. V terminálu Raspberry Pi použijte následující příkaz.
"sudo apt-get install -y i2c-tools"
Nyní připojte jakékoli zařízení založené na I2C k portu uživatelského režimu a naskenujte tento port pomocí následujícího příkazu, "sudo i2cdetect -y 1"
Poté odpoví adresou zařízení.
Pokud není vrácena žádná adresa, zkontrolujte, zda je MPU6050 správně připojen, a zkuste to znovu
Aby to fungovalo
teď, když jsme si jisti, že je povolen i2c a pi může dosáhnout MPU6050, nainstalujeme knihovnu pomocí příkazu „sudo pip3 install adafruit-circuitpython-mpu6050“.
pokud vytvoříme testovací soubor pythonu a použijeme následující kód, uvidíme, zda funguje:
čas importu
dovozní deska
importovat busi
import adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
zatímco pravda:
tisk ("Zrychlení: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.acceleration))
tisk ("Gyro X: %. 2f, Y: %.2f, Z: %.2f stupňů/s" %(mpu.gyro))
tisk ("Teplota: %.2f C" % mpu.teplota)
tisk("")
time.sleep (1)
když nyní chceme zrychlení v ose X/Y/Z, můžeme použít následující:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
když to zkombinujeme s jednoduchým příkazem if v konstantní smyčce, můžeme spočítat množství šoků na cestě
Krok 3: Adafruit Ultimate Breakout GPS
Úvod
Breakout je postaven na čipové sadě MTK3339, nesmyslném, vysoce kvalitním modulu GPS, který dokáže sledovat až 22 satelitů na 66 kanálech, má vynikající přijímač s vysokou citlivostí (sledování -165 dB!) A vestavěnou anténu. Může provádět až 10 aktualizací polohy za sekundu pro vysokou rychlost, vysokou citlivost protokolování nebo sledování. Spotřeba energie je neuvěřitelně nízká, pouze 20 mA během navigace.
Deska je dodávána s: ultra nízkým výpadkem 3,3 V regulátoru, takže jej můžete napájet vstupy 3,3-5 V DC, bezpečné vstupy na úrovni 5 V, LED bliká přibližně 1 Hz při vyhledávání satelitů a bliká jednou za 15 sekund, když je oprava zjištěno, že šetří energii.
Testování GPS s arduino
Pokud máte přístup k arduinu, je dobré modul s ním otestovat.
Připojte VIN k +5V Připojte GND k GroundConnect GPS RX (data do GPS) k Digital 0 Připojte GPS TX (data z GPS) k Digital 1
Jednoduše spusťte prázdný arduino kód a otevřete sériový monitor na 9600 baudů. Pokud získáte data gps, váš modul gps funguje.
Aby to fungovalo
Začněte instalovat knihovnu adafruit gps pomocí příkazu „sudo pip3 install adafruit-circuitpython-gps“.
Nyní můžeme pomocí následujícího kódu pythonu zjistit, zda můžeme zajistit jeho správnou funkci:
import timeimport board import busioimport adafruit_gpsimport serial 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, 0, 0 ') gps.send_command (b'PMTK220, 1000')
zatímco pravda:
gps.update () bez gps.has_fix:
print (gps.nmea_sentence) print ('Čekání na opravu …') gps.update () time.sleep (1) pokračovat
print ('=' * 40) # Vytiskne oddělovací řádek.print ('Zeměpisná šířka: {0:.6f} stupňů'. formát (gps.latitude)) tisk ('Zeměpisná délka: {0:.6f} stupňů'.formát (gps.longitude)) tisk ("Kvalita opravy: {}". formát (gps.fix_quality))
# Některé atributy mimo zeměpisnou šířku, délku a časové razítko jsou volitelné# a nemusí být k dispozici. Před pokusem o použití zkontrolujte, zda nejsou None! Pokud gps.satellites není None:
tisk ("# satelity: {}". formát (gps.satellites))
pokud gps.altitude_m není None:
tisk ("Nadmořská výška: {} metrů".formát (gps.altitude_m))
pokud gps.speed_knots není None:
tisk ("Rychlost: {} uzlů".formát (gps.speed_knots))
pokud gps.track_angle_deg není None:
tisk ("Úhel stopy: {} stupňů".formát (gps.track_angle_deg))
pokud gps.horizontal_dilution není None:
tisk ("Horizontální ředění: {}". formát (gps.horizontal_dilution))
pokud gps.height_geoid není None:
tisk ("Geo geo ID: {} metry".format (gps.height_geoid))
time.sleep (1)
Krok 4: LCD 16x2
Úvod
LCD moduly se velmi běžně používají ve většině vestavěných projektů, důvodem je jeho nízká cena, dostupnost a přátelství k programátorům. Většina z nás by se s těmito displeji setkala ve svém každodenním životě, ať už na PCO nebo na kalkulačkách. 16 × 2 LCD je pojmenováno proto, že; má 16 sloupců a 2 řádky. K dispozici je mnoho kombinací jako 8 × 1, 8 × 2, 10 × 2, 16 × 1 atd., Ale nejpoužívanější je LCD 16 × 2. Celkem tedy bude mít (16 × 2 = 32) 32 znaků a každý znak bude tvořen 5 × 8 pixelovými tečkami.
Instalace smbus
System Management Bus (SMBus) je víceméně derivát sběrnice I2C. Standard vyvinula společnost Intel a nyní jej udržuje fórum SBS. Hlavní aplikací SMBus je monitorování kritických parametrů na základních deskách PC a vestavěných systémech. K dispozici je například mnoho monitorů napájecího napětí, monitoru teploty a monitoru/ovládání ventilátoru s rozhraním SMBus.
Knihovna, kterou použijeme, vyžaduje také instalaci smbusu. Chcete-li nainstalovat smbus na rpi, použijte příkaz "sudo apt install python3-smbus".
Aby to fungovalo
nejprve nainstalujte knihovnu RPLCD pomocí příkazu „sudo pip3 install RPLCD“.
nyní testujeme LCD zobrazením IP pomocí následujícího kódu:
z RPLCD.i2c importujte zásuvku 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 () návrat ip_address
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('IP adresa: / r / n'+str (get_ip_address ()))
Krok 5: Servo, LED, tlačítko a přepínač
Úvod
Servomotor je rotační pohon nebo motor, který umožňuje přesné ovládání z hlediska úhlové polohy, zrychlení a rychlosti, schopností, které běžný motor nemá. Využívá běžný motor a spáruje jej se snímačem pro zpětnou vazbu polohy. Ovladač je nejpropracovanější součástí servomotoru, protože je k tomuto účelu speciálně navržen.
Zkratka LED pro světlo emitující diodu. Elektronické polovodičové zařízení, které vyzařuje světlo, když jím prochází elektrický proud. Jsou podstatně účinnější než klasické žárovky a jen málokdy vyhoří. LED diody se používají v mnoha aplikacích, jako jsou video displeje s plochou obrazovkou, a stále častěji jako obecné zdroje světla.
Tlačítko nebo jednoduše tlačítko je jednoduchý přepínací mechanismus k ovládání určitého aspektu stroje nebo procesu. Knoflíky jsou obvykle vyrobeny z tvrdého materiálu, obvykle z plastu nebo kovu.
Přepínač zapnutí/vypnutí/zapnutí má 3 polohy, kde prostřední je stav vypnuto. Tyto typy se většinou používají pro jednoduché ovládání motoru, kde máte stav vpřed, vypnuto a vzad.
Aby to fungovalo: servo
Servo pomocí signálu PWM určuje, jaký úhel pro nás naštěstí musí mít, GPIO má tuto funkci vestavěnou. Proto můžeme pro ovládání servo jednoduše použít následující kód: import RPi. GPIO jako čas GPIOimport
servo_pin = 18 cyklus_služby = 7.5
GPIO.setmode (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
zatímco pravda:
duty_cycle = float (vstup ("Enter Duty Cycle (Left = 5 to Right = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Aby to fungovalo: LED a spínač
Vzhledem k tomu, jak jsme zapojili LED diody a přepínač, nepotřebujeme ovládat ani číst LED diody a přepínat samotné. Jednoduše odešleme impulsy na tlačítko, které čarodějnice následně nasměruje signál na požadovanou LED.
Aby to fungovalo: tlačítko
Pro tlačítko vytvoříme naši vlastní jednoduchou třídu tímto způsobem snadno uvidíme, když je stisknuto, aniž bychom k němu museli přidávat detekci událostí pokaždé, když ji použijeme. Vytvoříme soubor classbutton.py pomocí následujícího kódu:
z RPi importovat tlačítko 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 defPress (self):
ingedrukt = GPIO.input (self.pin) return not 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)
Krok 6: Celý obvod
Nyní, když jsme prošli všechny komponenty, je čas je všechny zkombinovat.
Zatímco obrázky ukazují, že komponenty ukazují vše na samotném prkénku, je lepší mít připojený LCD, adafruit GPS a tlačítko pomocí kabelů od samice k samce. Na stěnové desce mějte pouze t-cobbler a mpu6050. Pokud jde o LED a přepínač použijte delší dráty, abyste se ujistili, že dosáhnete na blinkr a lištu řízení.
Krok 7: Kód
Aby byl tento pokyn čistý, poskytl jsem úložiště github se soubory backendu i frontendu. Jednoduše vložte soubory do složky frontend ve složce/var/www/html a soubory ve složce backend ve složce v adresáři/home/ Složka [uživatelské jméno]/[název složky]
Krok 8: Databáze
Vzhledem k tomu, jak je tento systém nastaven, existuje jednoduchý internetový obchod nastavený pomocí seznamu produktů v databázi, navíc zde máme uloženy všechny body a objednávky. Skript pro vytvoření najdete v úložišti github propojeném v další krok
Krok 9: Případ
Jakmile poznáme práci s elektronikou, můžeme je nacpat do krabice. Můžete si s tím vzít trochu tvůrčí svobody. Před tím, než ji postavíte, jednoduše vezměte kartonovou krabici, kterou už nepotřebujete, například jako prázdnou krabici od obilovin, a ořízněte ji, zalepte páskou a složte jej, dokud nebudete mít něco, co se vám líbí. Změřte a nakreslete pouzdro na kus papíru a vyrobte jej z odolnějšího materiálu, jako je dřevo, nebo pokud to není vaše věc, vytiskněte jej. Stačí se ujistit, že se veškerá elektronika vejde dovnitř a máte otvory pro tlačítko, drát vedoucí k přepínači, LED a LCD. Jakmile si vyrobíte kufr, stačí jen najít způsob, jak jej namontovat na kolo nebo skútr
Doporučuje:
Dual Trace osciloskop: 11 kroků (s obrázky)
Duální trasovací osciloskop: Když jsem stavěl svůj předchozí mini osciloskop, chtěl jsem zjistit, jak dobře dokážu svůj nejmenší mikrokontrolér ARM dosáhnout výkonu STM32F030 (F030), a odvedl skvělou práci. V jednom z komentářů bylo navrženo, že " Modrá pilulka " s STM32F103
8x8 LED Matrix Clock & Anti-Intrusion Warning: 4 Steps (with Pictures)
8x8 Led Matrix Clock & Anti-Intrusion Warning: V tomto Instructable uvidíme, jak sestrojit 8x8 Led Matrix Clock aktivované detekcí pohybu. Tyto hodiny lze použít také jako zařízení proti vniknutí, které při pohybu vysílá varovnou zprávu detekováno telegramovým robotem !!! Uděláme to se dvěma různými
DIY Logitech Pure Fi Anywhere 2 Rebuild & Mini Bluetooth Speaker Upgrade Conversion: 14 Steps (with Pictures)
DIY Logitech Pure Fi Anywhere 2 Rebuild & Mini Bluetooth Speaker Upgrade Conversion: Jeden z mých nejoblíbenějších k tomuto účelu, je brát něco, co mi přijde levné v Goodwill, Yardsale, nebo dokonce Craigslist, a udělat z toho něco lepšího. Zde jsem našel starou dokovací stanici pro iPod Logitech Pure-Fi Anywhere 2 a rozhodl jsem se dát jí nový
How to Make a Bumpin 'Electronic Track: Introductory Music Production for FL Studio: 6 Steps
How to Make a Bumpin 'Electronic Track: Introductory Music Production for FL Studio: Welcome! Tato instruktážní příručka pomůže začínajícím až středně pokročilým hudebním producentům používat FL Studio k vytváření různých žánrů elektronické taneční hudby. Projede se základními prvky tvorby písně s cílem podrobně popsat základní rady
Hack Any Radio into a Guitar Amp V2: 9 Steps (with Pictures)
Hack Any Radio into a Guitar Amp V2: Proměňte jakékoli rádio v kytarový zesilovač. Toto je pravděpodobně jeden z mých oblíbených hacků, na které jsem kdy narazil! Je to tak jednoduché, že to zvládne každý, kdo má páječku a šroubovák. Všechna rádia mají v sobě zabudovaný zesilovač - takto