Obsah:

Track & trace for Small Shops: 9 Steps (with Pictures)
Track & trace for Small Shops: 9 Steps (with Pictures)

Video: Track & trace for Small Shops: 9 Steps (with Pictures)

Video: Track & trace for Small Shops: 9 Steps (with Pictures)
Video: Track and Trace - presentation @EuroBLECH Digital Innovation 2024, Listopad
Anonim
Track & trace pro malé obchody
Track & trace pro malé obchody

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

Napájení obvodu a Pi
Napájení obvodu a Pi
Napájení obvodu a Pi
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

MPU6050
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í:

  1. zadejte „sudo raspi-config“
  2. Vyberte Konfigurace rozhraní
  3. V možnosti Rozhraní vyberte „I2C“
  4. Povolit konfiguraci I2C
  5. 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

GPS Adafruit Ultimate Breakout
GPS Adafruit Ultimate Breakout

Ú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

LCD 16x2
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č

Servo, LED, tlačítko a přepínač
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

Celý okruh
Celý okruh
Celý okruh
Celý okruh

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

Databáze
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

Pouzdro
Pouzdro

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: