Obsah:

Sledovanie a sledovanie malých obchodov: 9 krokov (s obrázkami)
Sledovanie a sledovanie malých obchodov: 9 krokov (s obrázkami)

Video: Sledovanie a sledovanie malých obchodov: 9 krokov (s obrázkami)

Video: Sledovanie a sledovanie malých obchodov: 9 krokov (s obrázkami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Sledovanie a sledovanie malých obchodov
Sledovanie a sledovanie malých obchodov

Ide o systém, ktorý je vyrobený pre malé obchody a ktoré sa majú montovať na elektrobicykle alebo skútre pri dodávkach na krátku vzdialenosť, napríklad v pekárni, ktorá chce dodávať pečivo.

Čo znamená sledovanie a sledovanie?

Track and trace je systém, ktorý používajú dopravcovia alebo kuriérske spoločnosti na zaznamenávanie pohybu zásielok alebo predmetov počas prepravy. Na každom mieste spracovania je tovar identifikovaný a údaje sú odoslané do centrálneho systému spracovania. Tieto údaje sa potom použijú na poskytnutie stavu/aktualizácie polohy tovaru odosielateľom.

Systém, ktorý vytvoríme, bude tiež zobrazovať prejdenú trasu a množstvo prijatých otrasov a nárazov. Tento návod tiež predpokladá, že máte základné znalosti o malinovom pí, pythone a mysql.

poznámka: bola vytvorená pre školský projekt, takže z dôvodu časového obmedzenia je veľa priestoru na zlepšenie

Zásoby

-Raspberry Pi 4 model B

-T-švec maliny PI

-4x 3, 7V Li-ion batérie

-2x dvojitý držiak batérie

-Buck prevodník zníženia výkonu 5v

-2x veľké oranžové LED diódy

-vypínač/vypínač/vypínač

-tlačidlo

-adafruit ultimate gps v3

-mpu6050

-16x2 LCD displej

-servo motor

Krok 1: Napájanie obvodu a pí

Napájanie obvodu a Pi
Napájanie obvodu a Pi
Napájanie obvodu a Pi
Napájanie obvodu a Pi

Pokiaľ ide o napájanie obvodu pi batériou, máte niekoľko možností, ako to urobiť.

Môžete použiť powerbanku a napájať pí cez USB, možno zariadenie montujete na elektrobicykel alebo kolobežku s USB portom, možno máte 5-volnú batériu telefónu a čakáte na použitie, alebo môžete použiť 2 sady 3,7 V batérií súbežne so stupňovitým prevodníkom, ako je znázornené na obrázkoch

Všetko je v poriadku, pokiaľ môže poskytovať nepretržité napätie 5 V a má životnosť, s ktorou ste spokojní.

Krok 2: MPU6050

MPU6050
MPU6050

Úvod Snímací modul MPU6050 je integrované 6-osové zariadenie na sledovanie pohybu.

  • Má 3-osový gyroskop, 3-osový akcelerometer, digitálny pohybový procesor a teplotný senzor, všetko v jednom IC.
  • Odčítaním hodnôt z adries určitých registrov pomocou komunikácie I2C je možné nájsť rôzne parametre. Gyroskop a akcelerometer čítajúce pozdĺž osí X, Y a Z sú k dispozícii vo forme doplnku 2.
  • Hodnoty gyroskopu sú v stupňoch za sekundu (dps) jednotka; Hodnoty akcelerometra sú v g jednotkách.

Povolenie I2C

Pri použití MPU6050 s Raspberry Pi by sme mali zabezpečiť, aby bol protokol I2C na Raspberry Pi zapnutý. Na tento účel otvorte terminál pí pomocou tmelu alebo iného softvéru a postupujte takto:

  1. napíšte „sudo raspi-config“
  2. Vyberte Konfigurácie rozhrania
  3. V možnosti Rozhranie vyberte „I2C“
  4. Povoliť konfiguráciu I2C
  5. Keď sa zobrazí výzva na reštartovanie, vyberte možnosť Áno.

Inštaláciou nástrojov i2c teraz môžeme testovať/skenovať akékoľvek zariadenie I2C pripojené k našej doske Raspberry Pi. Nástroje i2c môžeme získať pomocou správcu balíkov apt. V termináli Raspberry Pi použite nasledujúci príkaz.

"sudo apt-get install -y i2c-tools"

Teraz pripojte akékoľvek zariadenie založené na I2C k portu užívateľského režimu a naskenujte tento port pomocou nasledujúceho príkazu, "sudo i2cdetect -y 1"

Potom odpovie adresou zariadenia.

Ak nie je vrátená žiadna adresa, uistite sa, že je MPU6050 správne pripojený a skúste to znova

Aby to fungovalo

teraz, keď sme si istí, že je povolená i2c a pi môže dosiahnuť MPU6050, nainštalujeme knižnicu pomocou príkazu „sudo pip3 install adafruit-circuitpython-mpu6050“.

ak vytvoríme testovací súbor pythonu a použijeme nasledujúci kód, uvidíme, či funguje:

čas importu

dovozná doska

import busi

import adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

kým je pravda:

tlač ("Zrýchlenie: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.acceleration))

tlač ("Gyro X: %. 2f, Y: %.2f, Z: %.2f stupňov/s" %(mpu.gyro))

tlač ("Teplota: %.2f C" % mpu.teplota)

vytlačiť ("")

time.sleep (1)

keď teraz chceme zrýchlenie v osi X/Y/Z, môžeme použiť nasledujúce:

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

kombináciou tohto jednoduchého príkazu if v konštantnej slučke dokážeme spočítať množstvo otrasov na ceste

Krok 3: Adafruit Ultimate Breakout GPS

GPS Adafruit Ultimate Breakout
GPS Adafruit Ultimate Breakout

Úvod

Breakout je postavený na čipovej súprave MTK3339, kvalitnom GPS module, ktorý dokáže sledovať až 22 satelitov na 66 kanáloch, má vynikajúci vysokocitlivý prijímač (sledovanie -165 dB!) A vstavanú anténu. Dokáže vykonať až 10 aktualizácií polohy za sekundu za účelom vysokorýchlostného protokolovania alebo sledovania s vysokou citlivosťou. Spotreba energie je neuveriteľne nízka, iba 20 mA počas navigácie.

Doska je dodávaná s: extrémne nízkym výpadkom 3,3 V regulátora, takže ho môžete napájať vstupom 3,3-5 V DC, bezpečnými vstupmi na úrovni 5 V, dióda LED pri vyhľadávaní satelitov bliká približne 1 Hz a bliká každých 15 sekúnd, keď je oprava vykonaná zistilo sa, že šetrí energiou.

Testovanie GPS s arduino

Ak máte prístup k arduinu, je dobré modul s ním otestovať.

Pripojte VIN k +5V Pripojte GND k GroundConnect GPS RX (údaje do GPS) k Digital 0 Pripojte GPS TX (dáta z GPS) k Digital 1

Jednoducho spustite prázdny arduino kód a otvorte sériový monitor na 9600 baudoch. Ak získate údaje gps, váš modul gps funguje. Poznámka: ak váš modul nedostane opravu, skúste ho dať von oknom alebo von na terasu.

Aby to fungovalo

Začnite s inštaláciou knižnice adafruit gps pomocou príkazu „sudo pip3 install adafruit-circuitpython-gps“.

Teraz môžeme pomocou nasledujúceho kódu pythonu zistiť, či to môže fungovať:

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')

kým je pravda:

gps.update () bez gps.has_fix:

print (gps.nmea_sentence) print ('Čaká sa na opravu …') gps.update () time.sleep (1) pokračovať

print ('=' * 40) # Vytlačí oddeľovací riadok.print ('Zemepisná šírka: {0:.6f} stupňov'.formát (gps.latitude)) print (' Zemepisná dĺžka: {0:.6f} stupňov'.formát (gps.longitude)) tlač ("Kvalita opravy: {}". formát (gps.fix_quality))

# Niektoré atribúty mimo zemepisnej šírky, dĺžky a časovej pečiatky sú voliteľné# a nemusia byť k dispozícii. Pred pokusom o použitie skontrolujte, či nie sú None! Ak gps.satellites nie je None:

tlač ("# satelity: {}". formát (gps.satellites))

ak gps.altitude_m nie je None:

vytlačiť ("Nadmorská výška: {} metre".formát (gps.altitude_m))

ak gps.speed_knots nie je None:

vytlačiť ("Rýchlosť: {} uzlov". formát (gps.speed_knots))

ak gps.track_angle_deg nie je None:

vytlačiť ("Uhol stopy: {} stupňov". formát (gps.track_angle_deg))

ak gps.horizontal_dilution nie je None:

tlač ("Horizontálne riedenie: {}". formát (gps.horizontal_dilution)

ak gps.height_geoid nie je None:

vytlačiť ("Geo geo ID: {} metre".format (gps.height_geoid))

time.sleep (1)

Krok 4: LCD 16x2

LCD displej 16x2
LCD displej 16x2

Úvod

Moduly LCD sa veľmi bežne používajú vo väčšine vstavaných projektov, dôvodom je jeho nízka cena, dostupnosť a priateľstvo k programátorom. Väčšina z nás by sa s týmito displejmi stretla v každodennom živote, či už na počítačoch PCO alebo na kalkulačkách. 16 × 2 LCD je pomenovaný tak, pretože; má 16 stĺpcov a 2 riadky. Existuje mnoho kombinácií, ako napríklad 8 × 1, 8 × 2, 10 × 2, 16 × 1 atď., Ale najpoužívanejšou je LCD monitor 16 × 2. Bude teda mať (16 × 2 = 32) 32 znakov a každý znak bude vytvorený z 5 × 8 pixelových bodiek.

Inštalácia smbus

System Management Bus (SMBus) je viac -menej derivátom zbernice I2C. Štandard vyvinula spoločnosť Intel a teraz ho spravuje fórum SBS. Hlavnou aplikáciou SMBus je monitorovanie kritických parametrov na základných doskách PC a vstavaných systémoch. K dispozícii je napríklad veľa monitorov napájacieho napätia, monitora teploty a monitorov/ovládačov ventilátora s rozhraním SMBus.

Knižnica, ktorú použijeme, vyžaduje tiež nainštalovanie smbusu. Ak chcete nainštalovať smbus na rpi, použite príkaz "sudo apt install python3-smbus".

Aby to fungovalo

najskôr nainštalujte knižnicu RPLCD pomocou príkazu „sudo pip3 install RPLCD“.

teraz testujeme lcd zobrazením ip pomocou nasledujúceho 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čidlo a prepínač

Servo, LED, tlačidlo a vypínač
Servo, LED, tlačidlo a vypínač

Úvod

Servomotor je rotačný pohon alebo motor, ktorý umožňuje presné ovládanie uhlovej polohy, zrýchlenia a rýchlosti, ktoré bežný motor nemá. Využíva bežný motor a spáruje ho so snímačom spätnej väzby o polohe. Ovládač je najsofistikovanejšou súčasťou servomotora, pretože je na tento účel špeciálne navrhnutý.

Skratka LED pre diódy vyžarujúce svetlo. Elektronické polovodičové zariadenie, ktoré vyžaruje svetlo, keď ním prechádza elektrický prúd. Sú oveľa efektívnejšie ako žiarovky a len zriedka vyhoria. LED diódy sa používajú v mnohých aplikáciách, ako sú video displeje s plochou obrazovkou, a stále častejšie ako všeobecné zdroje svetla.

Tlačítko alebo jednoducho tlačidlo je jednoduchý prepínací mechanizmus na ovládanie určitého aspektu stroja alebo procesu. Gombíky sú zvyčajne vyrobené z tvrdého materiálu, zvyčajne z plastu alebo kovu.

Prepínač zapnutia/vypnutia/zapnutia má 3 polohy, kde stredná je vypnutá. Tieto typy sa väčšinou používajú na jednoduché ovládanie motora, kde máte stav vpred, vypnutý a vzad.

Aby to fungovalo: servo

Servo pomocou signálu PWM určuje, v akom uhle našťastie musí byť pre nás našťastie, GPIO má túto funkciu vstavanú. Preto môžeme na ovládanie serva jednoducho použiť nasledujúci kód: import RPi. GPIO ako čas GPIOimportu

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)

kým je pravda:

duty_cycle = float (vstup ("Zadajte pracovný cyklus (vľavo = 5 doprava = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Aby to fungovalo: LED a vypínač

Vzhľadom na spôsob zapojenia LED a prepínača nepotrebujeme ovládať ani čítať LED diódy a prepínať sa. Jednoducho pošleme impulzy na tlačidlo, ktoré zase nasmeruje signál na požadovanú LED.

Ako to funguje: tlačidlo

Pre tlačidlo vytvoríme vlastnú jednoduchú triedu týmto spôsobom, aby sme ľahko videli, kedy je stlačené bez toho, aby sme k nemu museli pridať detekciu udalostí pri každom použití. Vytvoríme súbor classbutton.py pomocou nasledujúceho kódu:

z tlačidla RPI importu GPI triedy:

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

Teraz, keď sme prešli všetky komponenty, je načase ich všetky skombinovať.

Zatiaľ čo obrázky ukazujú, že komponenty ukazujú všetko na samotnom doske, je lepšie mať pripojený LCD, adafruit GPS a tlačidlo pomocou káblov od samice k mužovi. Na prepojovacej doske majte iba t-cobbler a mpu6050. Pokiaľ ide o LED a prepínač použite dlhšie káble, aby ste sa zaistili, že sa dostanete k tyčiam blikačky a k riadidlu.

Krok 7: Kód

Aby bol tento pokyn čistý, poskytol som úložisko github so súbormi typu backend aj frontend. Jednoducho vložte súbory do priečinka frontend v priečinku/var/www/html a súbory v priečinku backend v priečinku v adresári/home/ priečinok [používateľské meno]/[názov priečinka]

Krok 8: Databáza

Databáza
Databáza

Vzhľadom na to, ako je tento systém nastavený, existuje jednoduchý internetový obchod zostavený pomocou zoznamu produktov v databáze, navyše tu máme uložené všetky body a objednávky. Skript na vytváranie nájdete v úložisku github prepojenom v ďalši krok

Krok 9: Prípad

Púzdro
Púzdro

Akonáhle poznáme prácu s elektronikou, môžeme ich napchať do škatule. S týmto si môžete dať trochu kreatívnej slobody. Predtým, ako ju postavíte, jednoducho vezmite kartónovú škatuľu, ktorú už nepotrebujete, napríklad ako prázdnu škatuľu od obilnín, a odstrihnite ju, zalepte páskou. a zložte ho, kým nebudete mať niečo, čo sa vám páči. Zmerajte a nakreslite puzdro na kus papiera a vyrobte ho z odolnejšieho materiálu, akým je drevo, alebo ak to nie je vaša vec, vytlačte ho. Jednoducho sa uistite, že sa všetka elektronika zmestí dovnútra a máte otvory pre tlačidlo, drôt smerujúci k prepínaču, LED diódy a LCD. Keď si zadáte kufrík, stačí nájsť spôsob, ako ho namontovať na bicykel alebo kolobežku.

Odporúča: