Taula de continguts:

Seguiment i seguiment de botigues petites: 9 passos (amb imatges)
Seguiment i seguiment de botigues petites: 9 passos (amb imatges)

Vídeo: Seguiment i seguiment de botigues petites: 9 passos (amb imatges)

Vídeo: Seguiment i seguiment de botigues petites: 9 passos (amb imatges)
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, De novembre
Anonim
Track & trace per a botigues petites
Track & trace per a botigues petites

Es tracta d’un sistema dissenyat per a petites botigues que se suposa que es munta en bicicletes elèctriques o patinets electrònics per a lliuraments a curt abast, per exemple, una fleca que vulgui lliurar pastes.

Què significa Track and Trace?

Track and trace és un sistema utilitzat pels transportistes o empreses de missatgeria per registrar el moviment de paqueteria o articles durant el transport. A cada lloc de processament, la mercaderia s’identifica i es transmeten les dades al sistema central de processament. A continuació, aquestes dades s’utilitzen per donar als expedidors l’estat / actualització de la ubicació de la mercaderia.

El sistema que farem també mostrarà la ruta realitzada i la quantitat de xocs i cops rebuts. Aquest instructable també suposa que teniu un coneixement bàsic de raspberry pi, python i mysql.

nota: es va fer per a un projecte escolar, per tant, a causa de la limitació de temps, hi ha molt marge de millora

Subministraments

-Raspberry Pi 4 model B

-Construcció Raspberry PI

-4x 3, bateries de ions Li 7V

-2x porta-bateries doble

-DC Buck Step-Down Converter 5v

-2 leds taronja grans

-interruptor on / off / on

-botó

-adfruit ultimate gps v3

-mpu6050

Pantalla lcd de 16x2

-servo motor

Pas 1: alimentació del circuit i de Pi

Alimentació del circuit i de Pi
Alimentació del circuit i de Pi
Alimentació del circuit i de Pi
Alimentació del circuit i de Pi

A l’hora d’alimentar el circuit pi amb una bateria, teniu algunes opcions sobre com fer-ho.

Podeu utilitzar un powerbank i alimentar el pi mitjançant USB, potser esteu muntant el dispositiu en una bicicleta elèctrica o en un patinet electrònic que tingui un port USB, potser teniu una bateria de telèfon de 5V a l’espera d’utilitzar-la o en podeu fer servir 2 conjunts de bateries de 3,7 V en paral·lel amb un convertidor descendent com es mostra a les imatges

Tot està bé, sempre que pugui proporcionar una continuïtat de 5 V i tingui una vida amb la qual estigui satisfet.

Pas 2: el MPU6050

El MPU6050
El MPU6050

Introducció El mòdul de sensor MPU6050 és un dispositiu de seguiment de moviment integrat de 6 eixos.

  • Compta amb un giroscopi de 3 eixos, un acceleròmetre de 3 eixos, un processador de moviment digital i un sensor de temperatura, tot en un únic CI.
  • Es poden trobar diversos paràmetres llegint valors d’adreces de determinats registres mitjançant la comunicació I2C. La lectura del giroscopi i l’acceleròmetre al llarg dels eixos X, Y i Z estan disponibles en forma de complement de 2.
  • Les lectures del giroscopi es fan en unitats de graus per segon (dps); Les lectures de l’acceleròmetre es troben en unitat g.

Habilitació de l'I2C

Quan utilitzeu un MPU6050 amb un Raspberry Pi, hem d’assegurar-nos que el protocol I2C del Raspberry Pi estigui activat. Per fer-ho, obriu el terminal del pi mitjançant una massilla o un altre programari i feu el següent:

  1. escriviu "sudo raspi-config"
  2. Seleccioneu Configuracions d'interfície
  3. A l'opció Interfacing, seleccioneu "I2C"
  4. Activeu la configuració I2C
  5. Seleccioneu Sí quan us demani reiniciar.

Ara podem provar / escanejar qualsevol dispositiu I2C connectat a la nostra placa Raspberry Pi instal·lant eines i2c. Podem obtenir eines i2c mitjançant l’administrador de paquets apt. Utilitzeu l'ordre següent al terminal Raspberry Pi.

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

Ara connecteu qualsevol dispositiu basat en I2C al port en mode d’usuari i escanegeu aquest port mitjançant l’ordre següent, "sudo i2cdetect -y 1"

Llavors respondrà amb l'adreça del dispositiu.

Si no es retorna cap adreça, assegureu-vos que el MPU6050 estigui correctament connectat i torneu-ho a provar

Fent que funcioni

ara que estem segurs que l'i2c està habilitat i que el pi pot arribar al MPU6050, instal·larem una biblioteca mitjançant l'ordre "sudo pip3 install adafruit-circuitpython-mpu6050".

si fem un fitxer de prova de Python i fem servir el codi següent, podem veure si funciona:

temps d'importació

tauler d’importació

importar busi

oimport adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

mentre que és cert:

print ("Acceleració: X:%. 2f, Y:%.2f, Z:%.2f m / s ^ 2"% (mpu.acceleration))

print ("Giroscopi X:%. 2f, Y:%.2f, Z:%.2f graus / s"% (mpu.gyro))

print ("Temperatura:%.2f C"% mpu.temperature)

imprimir("")

time.sleep (1)

quan volem l’acceleració a l’eix X / Y / Z podem utilitzar el següent:

accelX = mpu.acceleració [0] accelY = mpu.acceleració [1] accelZ = mpu.acceleració [2]

combinant això amb una sentència if simple en un bucle constant podem comptar la quantitat de xocs en un viatge

Pas 3: el GPS Adafruit Ultimate Breakout

El GPS Adafruit Ultimate Breakout
El GPS Adafruit Ultimate Breakout

Introducció

El desglossament es basa en el chipset MTK3339, un mòdul GPS d'alta qualitat que pot rastrejar fins a 22 satèl·lits en 66 canals, té un excel·lent receptor d'alta sensibilitat (seguiment de -165 dB!) I una antena integrada. Pot fer fins a 10 actualitzacions d'ubicació per segon per al registre o seguiment d'alta velocitat i alta sensibilitat. L’ús d’energia és increïblement baix, només 20 mA durant la navegació.

La placa ve amb: un regulador de baixa intensitat de 3,3 V perquè pugueu alimentar-lo amb 3,3-5VDC d’entrada, entrades segures de nivell de 5V, el LED parpelleja a 1Hz aproximadament mentre busca satèl·lits i parpelleja cada 15 segons quan es resol trobat per conservar l'energia.

Prova del GPS amb arduino

Si teniu accés a un arduino, és una bona idea provar el mòdul amb ell.

Connecteu VIN a + 5V Connecteu GND a terra Connecteu GPS RX (dades al GPS) a Digital 0 Connecteu TX TX (dades des del GPS) a Digital 1

Simplement executeu un codi arduino en blanc i obriu el monitor sèrie amb 9600 bauds. Si obteniu dades de GPS, el vostre mòdul de GPS funciona. Nota: si el vostre mòdul no té una solució, intenteu posar-lo per una finestra o per fora a una terrassa.

Fent que funcioni

Comenceu a instal·lar la biblioteca adafruit gps mitjançant l'ordre "sudo pip3 install adafruit-circuitpython-gps".

Ara podem utilitzar el següent codi python per veure si podem fer que funcioni:

importació importació placa importació busioimport adafruit_gpsimport serial uart = serial. Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 10)

gps = adafruit_gps. GPS (uart, depuració = Fals) 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')

mentre que és cert:

gps.update () mentre no és gps.has_fix:

print (gps.nmea_sentence) print ("S'està esperant la correcció …") gps.update () time.sleep (1) continua

print ('=' * 40) # Imprimeix una línia separadora.print ('Latitud: {0:.6f} graus'. format (gps.latitude)) print ('Longitud: {0:.6f} graus'. format (gps.longitude)) print ("Qualitat de correcció: {}". Format (gps.fix_quality))

# Alguns atributs més enllà de la latitud, la longitud i la marca de temps són opcionals # i és possible que no estiguin presents. Comproveu si no són cap abans de provar d’utilitzar-lo. Si gps.satellites no és Cap:

print ("# satèl·lits: {}". format (gps.satellites))

si gps.altitude_m no és Cap:

print ("Altitud: {} metres".format (gps.altitude_m))

si gps.speed_knots no és Cap:

print ("Velocitat: {} nusos".format (gps.speed_knots))

si gps.track_angle_deg no és Cap:

print ("Angle de pista: {} graus".format (gps.track_angle_deg))

si gps.horizontal_dilution no és Cap:

print ("Dilució horitzontal: {}". Format (gps.horizontal_dilution))

si gps.height_geoid no és Cap:

print ("Identificador geogràfic d'alçada: {} metres".format (gps.height_geoid))

time.sleep (1)

Pas 4: la pantalla LCD de 16 x 2

La pantalla LCD de 16x2
La pantalla LCD de 16x2

Introducció

Els mòduls LCD s’utilitzen molt sovint en la majoria de projectes incrustats, la raó és el seu preu econòmic, disponibilitat i facilitat per al programador. La majoria de nosaltres ens hauríem trobat amb aquestes pantalles en el nostre dia a dia, ja sigui a PCO o calculadores. El LCD 166 × 2 s’anomena així perquè; té 16 columnes i 2 files. Hi ha moltes combinacions disponibles, com ara 8 × 1, 8 × 2, 10 × 2, 16 × 1, etc., però la més utilitzada és la pantalla LCD de 16 × 2. Per tant, tindrà (16 × 2 = 32) 32 caràcters en total i cada caràcter estarà format per 5 × 8 Pixel Dots.

Instal·lació de smbus

El sistema System Management Bus (SMBus) és més o menys una derivada del bus I2C. L’estàndard ha estat desenvolupat per Intel i ara el manté el Fòrum SBS. L’aplicació principal del SMBus és controlar paràmetres crítics a les plaques base de PC i en sistemes incrustats. Per exemple, hi ha una gran quantitat de monitor de tensió d'alimentació, monitor de temperatura i circuits integrats de control / control del ventilador amb una interfície SMBus disponible.

La biblioteca que farem servir requereix que també s’instal·li smbus. Per instal·lar smbus a l’RPI utilitzeu l’ordre "sudo apt install python3-smbus".

Fent que funcioni

primer instal·leu la biblioteca RPLCD mitjançant l'ordre "sudo pip3 install RPLCD".

ara provem el lcd mostrant la IP mitjançant el codi següent:

des del sòcol d'importació CharLCDimport de RPLCD.i2c

def get_ip_address ():

adreça_ip = "s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM) s.connect ((" 8.8.8.8 ", 80)) adreça_ip = s.getsockname () [0] s.close () retorna adreça_ip

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('Adreça IP: / r / n' + str (get_ip_address ()))

Pas 5: Servo, leds, botó i commutador

Servo, leds, botó i interruptor
Servo, leds, botó i interruptor

Introducció

Un servomotor és un actuador rotatiu o motor que permet un control precís en termes de posició angular, acceleració i velocitat, capacitats que no té un motor normal. Fa ús d’un motor normal i el vincula amb un sensor per retroalimentar la posició. El controlador és la part més sofisticada del servomotor, ja que està dissenyat específicament per a aquest propòsit.

Curt LED per a díodes emissors de llum. Dispositiu semiconductor electrònic que emet llum quan hi passa un corrent elèctric. Són considerablement més eficients que les bombetes incandescents i poques vegades es cremen. Els LED s’utilitzen en moltes aplicacions, com ara pantalles de vídeo de pantalla plana, i cada vegada més com a fonts generals de llum.

Un polsador o simplement un botó és un simple mecanisme d’interruptor per controlar algun aspecte d’una màquina o d’un procés. Els botons solen estar fets de material dur, generalment de plàstic o metall.

Un interruptor d’encès / apagat / encès té 3 posicions en què l’interior és l’estat apagat; aquests tipus s’utilitzen principalment per a un control simple del motor, on es té un estat cap endavant, apagat i invers.

Fent que funcioni: el servo

El servo utilitza un senyal PWM per determinar quin angle ha de tenir per sort GPIO té incorporada aquesta característica. Per tant, simplement podem utilitzar el següent codi per controlar el servo: importar RPi. GPIO com a GPIOimport time

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)

mentre que és cert:

duty_cycle = float (entrada ("Enter Duty Cycle (Left = 5 to Right = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Fent que funcioni: el led i l'interruptor

A causa de la forma en què hem connectat el led i l’interruptor, no necessitem controlar ni llegir els leds i canviar-nos-en. Simplement enviam polsos al botó que al seu torn encaminarà el senyal al led que desitgem.

Fent que funcioni: el botó

Per al botó, crearem la nostra pròpia classe simple d’aquesta manera, veiem fàcilment quan es prem sense haver d’afegir-hi cap esdeveniment cada vegada que l’utilitzem. Farem el fitxer classbutton.py amb el següent codi:

des del botó GPIOclass d'importació 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 pressionat (auto):

ingedrukt = GPIO.input (self.pin) retorn no 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)

Pas 6: el circuit complet

El circuit complet
El circuit complet
El circuit complet
El circuit complet

Ara que hem repassat tots els components, és hora de combinar-los tots.

Tot i que les imatges mostren que els components mostren tot el que hi ha a la mateixa placa, és millor tenir el lcd, el GPS i el botó adafruit connectats mitjançant cables femella a masculina. utilitzeu cables més llargs per assegurar-vos que pugueu arribar a les barres de parpelleig i a la barra de direcció.

Pas 7: el codi

Per mantenir-lo net, he proporcionat un repositori de github amb els fitxers backend i frontend. Simplement poseu els fitxers a la carpeta frontend a la carpeta / var / www / html i els fitxers a la carpeta backend d’una carpeta a / home / carpeta [nom d'usuari] / [nom de carpeta]

Pas 8: la base de dades

La base de dades
La base de dades

A causa de la configuració d’aquest sistema, es crea una botiga web senzilla que utilitza una llista de productes en una base de dades, a més, tenim tots els punts i ordres guardats aquí. Es pot trobar un script de creació al repositori de github enllaçat al següent pas

Pas 9: el cas

El cas
El cas

Un cop sabem que funcionen els productes electrònics, els podem embolicar en una caixa. Podeu prendre una mica de llibertat creativa. Abans de construir-la, simplement agafeu una caixa de cartró que ja no necessiteu, com una caixa de cereals buida, per exemple, i talleu-la, enganxeu-la i plegueu-lo fins que tingueu alguna cosa que us agradi. Mesureu i dibuixeu la funda en un tros de paper i feu-la amb un material més resistent com la fusta, o si això no és el vostre, imprimiu-la en 3D. teniu forats per al botó, el cable que va cap a l’interruptor, el led i el lcd. Un cop hàgiu fet que el vostre estoig només sigui qüestió de trobar una manera de muntar-lo a la bicicleta o al patinet

Recomanat: