Cuprins:
- Provizii
- Pasul 1: Alimentarea circuitului și a Pi
- Pasul 2: MPU6050
- Pasul 3: Adafruit Ultimate Breakout GPS
- Pasul 4: LCD 16x2
- Pasul 5: Servo, Leds, Buton și Comutator
- Pasul 6: Circuitul complet
- Pasul 7: Codul
- Pasul 8: baza de date
- Pasul 9: Cazul
Video: Urmărire și urmărire pentru magazine mici: 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Acesta este un sistem conceput pentru magazinele mici care se presupune că se montează pe biciclete electrice sau scutere electronice pentru livrări la distanță scurtă, de exemplu o brutărie care dorește să livreze produse de patiserie.
Ce înseamnă Track and Trace?
Track and trace este un sistem utilizat de transportatori sau companii de curierat pentru a înregistra mișcarea coletelor sau a articolelor în timpul transportului. În fiecare locație de procesare, mărfurile sunt identificate și datele sunt transmise către sistemul central de procesare. Aceste date sunt apoi utilizate pentru a oferi expeditorilor starea / actualizarea locației mărfurilor.
Sistemul pe care îl vom face va arăta, de asemenea, ruta parcursă și cantitatea de șocuri și umflături primite. Acest instructable presupune, de asemenea, că aveți cunoștințe de bază despre zmeură pi, python și mysql.
notă: acest lucru a fost făcut pentru un proiect școlar, astfel, datorită constrângerii de timp, există mult spațiu de îmbunătățire
Provizii
-Raspberry Pi 4 model B
-Cablon T-Raspberry PI
-4x baterii Li-ion 3, 7V
-2x Suport dublu pentru baterie
-DC Buck Step-down Converter 5v
-2 leduri portocalii mari
-întrerupător pornit / oprit / pornit
-buton
-adafruit ultimate gps v3
-mpu6050
-Afisaj LCD 16x2
-servo motor
Pasul 1: Alimentarea circuitului și a Pi
Când vine vorba de alimentarea circuitului pi cu o baterie, aveți câteva opțiuni despre cum să o faceți.
Puteți utiliza un powerbank și alimenta pi prin USB, poate montați dispozitivul pe o bicicletă electronică sau un scuter electronic care are un port USB, poate aveți o baterie de telefon de 5V care așteaptă să fie utilizată sau ați putea folosi 2 seturi de baterii de 3,7 V în paralel cu un convertor de coborâre, așa cum se arată în imagini
Orice este în regulă, atâta timp cât poate oferi un 5V continuu și are o viață cu care sunteți mulțumit.
Pasul 2: MPU6050
Introducere Modulul senzor MPU6050 este un dispozitiv integrat de urmărire a mișcării pe 6 axe.
- Are un giroscop pe 3 axe, accelerometru pe 3 axe, procesor de mișcare digitală și un senzor de temperatură, toate într-un singur IC.
- Diferiti parametri pot fi gasiti citind valorile de la adresele anumitor registre folosind comunicarea I2C. Citirea giroscopului si a accelerometrului de-a lungul axelor X, Y si Z sunt disponibile in forma complementului 2.
- Citirile giroscopului sunt în grade pe secundă (dps) unitate; Citirile accelerometrului sunt în unitate g.
Activarea I2C
Când utilizați un MPU6050 cu un Raspberry Pi, ar trebui să ne asigurăm că protocolul I2C de pe Raspberry Pi este pornit. Pentru aceasta, deschideți terminalul pi prin chit sau alt software și efectuați următoarele:
- tastați „sudo raspi-config”
- Selectați Configurări de interfață
- În opțiunea Interfață, selectați „I2C”
- Activați configurația I2C
- Selectați Da când solicită repornirea.
Acum, putem testa / scana orice dispozitiv I2C conectat la placa noastră Raspberry Pi instalând instrumente i2c. Putem obține instrumente i2c folosind managerul de pachete apt. Utilizați următoarea comandă în terminalul Raspberry Pi.
"sudo apt-get install -y i2c-tools"
Acum conectați orice dispozitiv bazat pe I2C la portul în modul utilizator și scanați acel port folosind următoarea comandă, „sudo i2cdetect -y 1”
Apoi va răspunde cu adresa dispozitivului.
Dacă nu se returnează nicio adresă, asigurați-vă că MPU6050 este conectat corect și încercați din nou
Făcând-o să funcționeze
acum că suntem siguri că i2c este activat și pi poate ajunge la MPU6050 vom instala o bibliotecă folosind comanda „sudo pip3 install adafruit-circuitpython-mpu6050”.
dacă facem un fișier de testare Python și folosim următorul cod, putem vedea dacă funcționează:
timpul de import
bord de import
import busi
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
în timp ce este adevărat:
print ("Accelerare: X:%. 2f, Y:%.2f, Z:%.2f m / s ^ 2"% (mpu.acceleration))
print ("Gyro X:%. 2f, Y:%.2f, Z:%.2f grade / s"% (mpu.gyro))
print ("Temperatura:%.2f C"% mpu.temperature)
imprimare("")
time.sleep (1)
când dorim acum accelerația pe axa X / Y / Z putem folosi următoarele:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
combinând acest lucru cu o declarație simplă if într-o buclă constantă putem număra cantitatea de șocuri dintr-o călătorie
Pasul 3: Adafruit Ultimate Breakout GPS
Introducere
Breakout-ul este construit în jurul chipsetului MTK3339, un modul GPS de înaltă calitate care poate urmări până la 22 de sateliți pe 66 de canale, are un receptor excelent de înaltă sensibilitate (urmărire -165 dB!) Și o antenă încorporată. Poate efectua până la 10 actualizări de locație pe secundă pentru înregistrarea sau urmărirea cu viteză mare, sensibilitate ridicată. Consumul de energie este incredibil de redus, doar 20 mA în timpul navigării.
Placa vine cu: un regulator ultra-redus de 3,3 V, astfel încât să îl puteți alimenta cu 3,3-5VDC intrare, intrări sigure la nivel de 5V, LED-ul clipește la aproximativ 1Hz în timp ce caută sateliți și clipește o dată la 15 secunde când o soluție este găsit pentru a conserva puterea.
Testarea GPS-ului cu arduino
Dacă aveți acces la un arduino, este o idee bună să testați modulul cu acesta.
Conectați VIN la + 5V Conectați GND la sol Conectați GPS RX (date în GPS) la Digital 0 Conectați GPS TX (date de la GPS) la Digital 1
Pur și simplu rulați un cod arduino gol și deschideți monitorul serial pe 9600 baud. Dacă primiți date GPS modulul GPS funcționează. Notă: dacă modulul dvs. nu are o soluție, încercați să-l puneți pe o fereastră sau în exterior pe o terasă.
Făcând-o să funcționeze
Începeți instalarea bibliotecii gps adafruit utilizând comanda „sudo pip3 install adafruit-circuitpython-gps”.
Acum putem folosi următorul cod python pentru a vedea dacă îl putem face să funcționeze:
timp de import import placa de 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 ') gps.send_command (b'PMTK220, 1000')
în timp ce este adevărat:
gps.update () în timp ce nu este gps.has_fix:
print (gps.nmea_sentence) print ('Se așteaptă remedierea …') gps.update () time.sleep (1) continua
print ('=' * 40) # Imprimați o linie separatoare.print ('Latitudine: {0:.6f} grade'. format (gps.latitude)) print ('Longitudine: {0:.6f} grade'. format (gps.longitude)) print („Calitate fixă: {}”. format (gps.fix_quality))
# Unele atribute dincolo de latitudine, longitudine și marcaj de timp sunt opționale # și s-ar putea să nu fie prezente. Verificați dacă nu sunt niciunul înainte de a încerca să utilizați! Dacă gps.satellites nu este Nici unul:
print („# sateliți: {}”. format (gps.satellites))
dacă gps.altitude_m nu este None:
print („Altitudine: {} metri”.format (gps.altitude_m))
dacă gps.speed_knots nu este None:
print („Viteză: {} noduri”.format (gps.speed_knots))
dacă gps.track_angle_deg nu este None:
print („Unghiul urmăririi: {} grade”.format (gps.track_angle_deg))
dacă gps.horizontal_dilution nu este Niciuna:
print („Diluare orizontală: {}”. format (gps.horizontal_dilution))
dacă gps.height_geoid nu este None:
print („ID înălțime geografică: {} metri”.format (gps.height_geoid))
time.sleep (1)
Pasul 4: LCD 16x2
Introducere
Modulele LCD sunt foarte frecvent utilizate în majoritatea proiectelor încorporate, motivul fiind prețul său ieftin, disponibilitatea și programarea prietenoasă. Cei mai mulți dintre noi am fi întâlnit aceste afișaje în viața noastră de zi cu zi, fie la PCO, fie la calculatoare.16 × 2 LCD este denumit astfel deoarece; are 16 coloane și 2 rânduri. Există o mulțime de combinații disponibile, cum ar fi, 8 × 1, 8 × 2, 10 × 2, 16 × 1 etc., dar cea mai utilizată este LCD-ul de 16 × 2. Deci, va avea (16 × 2 = 32) 32 de caractere în total și fiecare caracter va fi format din 5 × 8 Pixel Dots.
Instalarea smbus
System Management Bus (SMBus) este mai mult sau mai puțin un derivat al magistralei I2C. Standardul a fost dezvoltat de Intel și este menținut acum de SBS Forum. Principala aplicație a SMBus este monitorizarea parametrilor critici de pe plăcile de bază ale computerului și din sistemele încorporate. De exemplu, există o mulțime de monitorizare a tensiunii de alimentare, monitorizare a temperaturii și circuite integrate de monitorizare / control al ventilatorului cu o interfață SMBus disponibilă.
Biblioteca pe care o vom folosi necesită instalarea și smbus. Pentru a instala smbus pe rpi folosiți comanda „sudo apt install python3-smbus”.
Făcând-o să funcționeze
mai întâi instalați biblioteca RPLCD folosind comanda „sudo pip3 install RPLCD”.
acum testăm lcd afișând ip-ul folosind următorul cod:
din RPLCD.i2c import CharLCDimport socket
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 () return ip_address
lcd = CharLCD („PCF8574”, 0x27)
lcd.write_string ('Adresă IP: / r / n' + str (get_ip_address ()))
Pasul 5: Servo, Leds, Buton și Comutator
Introducere
Un servomotor este un actuator rotativ sau motor care permite un control precis în ceea ce privește poziția unghiulară, accelerația și viteza, capacități pe care nu le are un motor obișnuit. Folosește un motor obișnuit și îl împerechează cu un senzor pentru feedback-ul poziției. Controlerul este cea mai sofisticată parte a servomotorului, deoarece este conceput special pentru acest scop.
LED scurt pentru diode emițătoare de lumină. Un dispozitiv electronic semiconductor care emite lumină atunci când un curent electric trece prin el. Sunt considerabil mai eficiente decât becurile cu incandescență și rareori se ard. LED-urile sunt utilizate în multe aplicații, cum ar fi afișajele cu ecran plat și din ce în ce mai mult ca surse generale de lumină.
Un buton sau pur și simplu un buton este un mecanism simplu de comutare pentru a controla unele aspecte ale unei mașini sau ale unui proces. Butoanele sunt de obicei realizate din material dur, de obicei din plastic sau metal.
Un comutator de pornire / oprire / pornire are 3 poziții în care cea din mijloc este starea oprită, aceste tipuri sunt utilizate în cea mai mare parte pentru controlul simplu al motorului în care aveți o stare înainte, oprită și inversă.
Făcând-o să funcționeze: servo
Servo-ul folosește un semnal PWM pentru a determina ce unghi trebuie să fie la noroc pentru noi GPIO are această caracteristică încorporată. Prin urmare, putem folosi pur și simplu următorul cod pentru a controla servo-ul: import RPi. GPIO ca GPIO import timp
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)
în timp ce este adevărat:
duty_cycle = float (input ("Enter Duty Cycle (Left = 5 to Right = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Făcând-o să funcționeze: ledul și comutatorul
Datorită modului în care am conectat ledul și comutatorul, nu este necesar să controlăm sau să citim ledurile și să le comutăm. Pur și simplu trimitem impulsuri către butonul vrăjitoare, care va rota la rândul său semnalul către ledul dorit.
Făcând-o să funcționeze: butonul
Pentru buton, vom crea propria noastră clasă simplă, astfel vom vedea cu ușurință când este apăsat, fără a fi nevoie să adăugăm un eveniment detectat la el de fiecare dată când îl folosim. Vom crea fișierul classbutton.py folosind următorul cod:
din butonul GPIOclass de import RPi:
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 apăsat (self):
ingedrukt = GPIO.input (self.pin) return nu este 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)
Pasul 6: Circuitul complet
Acum, că am trecut peste toate componentele, este timpul să le combinăm pe toate.
În timp ce imaginile arată că componentele arată totul pe panoul propriu-zis, este mai bine să aveți lcd, GPS-ul adafruit și butonul conectat folosind fire de la mamă la masculin. folosiți fire mai lungi pentru a vă asigura că puteți ajunge la barele intermitente și la bara de direcție.
Pasul 7: Codul
Pentru a păstra această instrucțiune curată, am oferit un depozit github cu fișierele backend și frontend. Pur și simplu puneți fișierele în folderul frontend din folderul / var / www / html și fișierele din folderul backend într-un folder din / home / folderul [username] / [foldername]
Pasul 8: baza de date
Datorită modului în care este configurat acest sistem, există un magazin online simplu, utilizând o listă de produse dintr-o bază de date, în plus, avem toate punctele și comenzile salvate aici. Un script de creare poate fi găsit în depozitul github legat în urmatorul pas
Pasul 9: Cazul
Odată ce știm că funcționează electronica, le putem înfășura într-o cutie. Puteți să vă lăsați o libertate creativă cu aceasta. Înainte de a o construi, pur și simplu apucați o cutie de carton de care nu mai aveți nevoie, cum ar fi o cutie goală de cereale, de exemplu și tăiați-o, lipiți-o cu bandă și pliați-l până când aveți ceva care vă place. Măsurați-vă și trageți carcasa pe o bucată de hârtie și confecționați-o dintr-un material mai robust, cum ar fi lemnul, sau dacă nu este ceea ce vă place, imprimați-l 3D. aveți găuri pentru buton, firul care trece la întrerupător, led și ecranul LCD. Odată ce ați făcut ca cazul dvs. să fie doar o problemă de a găsi un mod de a-l monta pe bicicletă sau scuter
Recomandat:
ATtiny85 Urmărire și programare urmărire activități vibrante purtabile ATtiny85 cu Arduino Uno: 4 pași (cu imagini)
ATtiny85 Ceas și programare de urmărire a activității vibrante purtabile ATtiny85 Cu Arduino Uno: Cum să faci ceasul de urmărire a activității purtabil? Acesta este un gadget portabil conceput pentru a vibra atunci când detectează stagnarea. Îți petreci cea mai mare parte a timpului pe computer ca mine? Stai ore în șir fără să-ți dai seama? Atunci acest dispozitiv este f
SISTEM POS PENTRU MAGAZINE, BUTIERI ȘI CENTRE DE SERVICII DE LA EXCEL Cu utilizarea codurilor de bare: 7 pași
SISTEM POS PENTRU MAGAZINE, BĂRCĂRI ȘI CENTRE DE SERVICII DE LA EXCEL Cu utilizarea codurilor de bare: Vă prezint cu acest blog un mod de a crea un sistem POS simplu (punct de vânzare) pentru magazinele alimentare mici și centrele de servicii. Cu această metodă puteți gestiona următoarele facilități fără software special sau echipamente scumpe. v Iss
Construirea de roboți mici: realizarea de roboți micro-sumo de un inch cubic și mai mici: 5 pași (cu imagini)
Construirea de roboți mici: realizarea de roboți micro-sumo de un inch cubic și mai mici: Iată câteva detalii despre construirea unor roboți și circuite mici. Acest instructable va acoperi, de asemenea, câteva sfaturi și tehnici de bază care sunt utile în construirea roboților de orice dimensiune. Pentru mine, una dintre marile provocări în electronică este să văd cât de mic este
Lightbox profesional de urmărire a ARTEI GRATUIT în mai puțin de 15 minute !!! (100 USD în magazine): 3 pași
Lightbox profesional de urmărire a ARTEI GRATUIT în mai puțin de 15 minute !!! (100 USD în magazine): Atenție la toți artiștii, arhitecții, fotografii și pasionații de hobby-uri: Ți-a fost vreodată dificil să urmărești lucrări de artă, fotografii sau alte materiale media? Ați lucrat vreodată la o piesă de artă și ați găsit că hârtia de calc este incomodă, ineficientă sau
Telecomandă pentru copii mici pentru video player pentru PC: 6 pași
Telecomandă video pentru copii mici pentru player video PC: Construiesc o telecomandă care se conectează la un computer cu USB. Telecomanda mare permite copilului meu să aleagă și să redea videoclipuri pe un computer vechi. Acesta este un proiect relativ simplu. Componenta de bază este fie o tastatură USB, fie o tastatură USB fără fir. Apoi