Daftar Isi:

Lacak & lacak untuk Toko Kecil: 9 Langkah (dengan Gambar)
Lacak & lacak untuk Toko Kecil: 9 Langkah (dengan Gambar)

Video: Lacak & lacak untuk Toko Kecil: 9 Langkah (dengan Gambar)

Video: Lacak & lacak untuk Toko Kecil: 9 Langkah (dengan Gambar)
Video: RIVIEW TUTORIAL LENGKAP GPS MINI GF 09 GPS TRACKING MULTIFUNGSI LACAK LOKASI SADAP SUARA APP 365GPS 2024, November
Anonim
Lacak & lacak untuk Toko Kecil
Lacak & lacak untuk Toko Kecil

Ini adalah sistem yang dibuat untuk toko-toko kecil yang seharusnya dipasang ke e-bike atau e-skuter untuk pengiriman jarak dekat, misalnya toko roti yang ingin mengantarkan kue kering.

Apa yang dimaksud dengan Lacak dan Jejak?

Track and trace adalah sistem yang digunakan oleh perusahaan pengangkut atau kurir untuk mencatat pergerakan paket atau barang selama transportasi. Di setiap lokasi pemrosesan, barang diidentifikasi dan data diteruskan ke sistem pemrosesan pusat. Data ini kemudian digunakan untuk memberikan status/update lokasi barang kepada pengirim.

Sistem yang akan kami buat juga akan menunjukkan rute yang diambil dan jumlah guncangan dan guncangan yang diterima. Instruksi ini juga mengasumsikan Anda memiliki pengetahuan dasar tentang raspberry pi, python, dan mysql.

catatan: ini dibuat untuk proyek sekolah, jadi karena keterbatasan waktu ada banyak ruang untuk perbaikan

Perlengkapan

-Raspberry Pi 4 model B

-Raspberry PI T-cobbler

-4x 3, baterai Li-ion 7V

-2x tempat Baterai ganda

-DC Buck Step-down Converter 5v

-2x led oranye besar

-sakelar hidup/mati/hidup

-tombol

-adafruit ultimate gps v3

-mpu6050

-16x2 layar lcd

-motor servo

Langkah 1: Menghidupkan Sirkuit dan Pi

Menghidupkan Sirkuit dan Pi
Menghidupkan Sirkuit dan Pi
Menghidupkan Sirkuit dan Pi
Menghidupkan Sirkuit dan Pi

Ketika datang untuk memberi daya pada sirkuit pi dengan baterai, Anda memiliki beberapa opsi tentang cara melakukannya.

Anda dapat menggunakan powerbank dan menyalakan pi melalui USB, mungkin Anda memasang perangkat pada e-bike atau e-skuter yang memiliki port USB, mungkin Anda memiliki baterai ponsel 5V yang menunggu untuk digunakan atau Anda dapat menggunakan 2 set baterai 3.7V secara paralel dengan konverter step down seperti yang ditunjukkan pada gambar

Apa pun baik-baik saja selama itu dapat memberikan 5V terus menerus dan memiliki masa pakai yang Anda senangi.

Langkah 2: MPU6050

MPU6050
MPU6050

PendahuluanModul sensor MPU6050 adalah perangkat pelacak gerak 6-sumbu terintegrasi.

  • Ini memiliki Giroskop 3-sumbu, Akselerometer 3-sumbu, Prosesor Gerak Digital dan sensor Suhu, semuanya dalam satu IC.
  • Berbagai parameter dapat ditemukan dengan membaca nilai dari alamat register tertentu menggunakan komunikasi I2C. Pembacaan giroskop dan akselerometer sepanjang sumbu X, Y dan Z tersedia dalam bentuk komplemen 2.
  • Pembacaan giroskop dalam satuan derajat per detik (dps); Pembacaan akselerometer dalam satuan g.

Mengaktifkan I2C

Saat menggunakan MPU6050 dengan Raspberry Pi, kita harus memastikan bahwa protokol I2C pada Raspberry Pi dihidupkan. Untuk melakukan ini, buka terminal pi melalui dempul atau perangkat lunak lain dan lakukan hal berikut:

  1. ketik "sudo raspi-config"
  2. Pilih Konfigurasi Antarmuka
  3. Dalam opsi Antarmuka, Pilih "I2C"
  4. Aktifkan konfigurasi I2C
  5. Pilih Ya ketika diminta untuk Reboot.

Sekarang, kita dapat menguji / memindai perangkat I2C apa pun yang terhubung ke papan Raspberry Pi kami dengan menginstal alat i2c. Kita bisa mendapatkan alat i2c dengan menggunakan manajer paket apt. Gunakan perintah berikut di terminal Raspberry Pi.

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

Sekarang hubungkan perangkat berbasis I2C ke port mode pengguna dan pindai port itu menggunakan perintah berikut, "sudo i2cdetect -y 1"

Kemudian akan merespon dengan alamat perangkat.

Jika tidak ada alamat yang dikembalikan, pastikan MPU6050 terhubung dengan benar dan coba lagi

Membuatnya bekerja

sekarang kita yakin i2c diaktifkan dan pi dapat mencapai MPU6050, kita akan menginstal perpustakaan menggunakan perintah "sudo pip3 install adafruit-circuitpython-mpu6050".

jika kita membuat file uji python dan menggunakan kode berikut, kita dapat melihat apakah itu berfungsi:

waktu impor

papan impor

bisnis impor

oimport adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050(i2c)

sementara Benar:

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

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

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

mencetak("")

waktu.tidur(1)

ketika kita sekarang menginginkan percepatan pada sumbu X/Y/Z kita dapat menggunakan yang berikut ini:

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

menggabungkan ini dengan pernyataan if sederhana dalam loop konstan, kita dapat menghitung jumlah guncangan dalam perjalanan

Langkah 3: GPS Adafruit Ultimate Breakout

GPS Breakout Ultimate Adafruit
GPS Breakout Ultimate Adafruit

pengantar

Breakout dibangun di sekitar chipset MTK3339, modul GPS berkualitas tinggi tanpa basa-basi yang dapat melacak hingga 22 satelit di 66 saluran, memiliki penerima sensitivitas tinggi yang sangat baik (pelacakan -165 dB!), dan antena internal. Itu dapat melakukan hingga 10 pembaruan lokasi per detik untuk kecepatan tinggi, pencatatan atau pelacakan sensitivitas tinggi. Penggunaan daya sangat rendah, hanya 20 mA selama navigasi.

Papan dilengkapi dengan: regulator 3.3V putus sekolah ultra-rendah sehingga Anda dapat menyalakannya dengan 3.3-5VDC, input aman level 5V, LED berkedip sekitar 1Hz saat mencari satelit dan berkedip setiap 15 detik saat perbaikan ditemukan untuk menghemat daya.

Menguji gps dengan arduino

Jika Anda memiliki akses ke arduino, ada baiknya Anda menguji modul dengannya.

Hubungkan VIN ke +5VHubungkan GND ke GroundConnect GPS RX (data ke GPS) ke Digital 0Hubungkan GPS TX (data keluar dari GPS) ke Digital 1

Cukup jalankan kode arduino kosong dan buka serial monitor pada 9600 baud. Jika Anda mendapatkan data gps, modul gps Anda berfungsi. Catatan: jika modul Anda tidak dapat diperbaiki, coba letakkan di luar jendela atau di teras

Membuatnya bekerja

Mulailah menginstal pustaka gps adafruit menggunakan perintah "sudo pip3 install adafruit-circuitpython-gps".

Sekarang kita dapat menggunakan kode python berikut untuk melihat apakah kita dapat membuatnya bekerja:

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')gps.send_command(b'PMTK220, 1000')

sementara Benar:

gps.update() saat tidak gps.has_fix:

print(gps.nmea_sentence)print('Menunggu perbaikan…')gps.update()time.sleep(1)lanjutkan

print('=' * 40) # Cetak garis pemisah.print('Lintang: {0:.6f} derajat'.format(gps.latitude))print('Bujur: {0:.6f} derajat'.format (gps.longitude))print("Perbaiki kualitas: {}".format(gps.fix_quality))

# Beberapa atribut di luar garis lintang, garis bujur, dan stempel waktu adalah opsional# dan mungkin tidak ada. Periksa apakah mereka Tidak Ada sebelum mencoba menggunakan! jika gps.satellites bukan Tidak Ada:

print("# satelit: {}".format(gps.satellites))

jika gps.altitude_m bukan None:

print("Ketinggian: {} meter".format(gps.altitude_m))

jika gps.speed_knots bukan None:

print("Kecepatan: {} knot".format(gps.speed_knots))

jika gps.track_angle_deg bukan Tidak Ada:

print("Sudut lintasan: {} derajat".format(gps.track_angle_deg))

jika gps.horizontal_dilution bukan None:

print("Pengenceran horizontal: {}".format(gps.horizontal_dilution))

jika gps.height_geoid bukan None:

print("Tinggi geo ID: {} meter".format(gps.height_geoid))

waktu.tidur(1)

Langkah 4: LCD 16x2

LCD 16x2
LCD 16x2

pengantar

Modul LCD sangat umum digunakan di sebagian besar proyek yang disematkan, alasannya karena harganya yang murah, ketersediaan, dan ramah pemrogram. Sebagian besar dari kita akan menemukan tampilan ini dalam kehidupan kita sehari-hari, baik di PCO atau kalkulator. LCD 16×2 dinamai demikian karena; memiliki 16 Kolom dan 2 Baris. Ada banyak kombinasi yang tersedia seperti, 8×1, 8×2, 10×2, 16×1, dll. Namun yang paling banyak digunakan adalah LCD 16×2. Jadi totalnya akan ada (16×2=32) 32 karakter dan setiap karakter akan dibuat dari 5×8 Pixel Dots.

Menginstal smbus

Bus Manajemen Sistem (SMBus) kurang lebih merupakan turunan dari bus I2C. Standar telah dikembangkan oleh Intel dan sekarang dikelola oleh Forum SBS. Aplikasi utama SMBus adalah untuk memantau parameter penting pada motherboard PC dan sistem tertanam. Misalnya ada banyak monitor tegangan suplai, monitor suhu, dan IC monitor/kontrol kipas dengan antarmuka SMBus yang tersedia.

Pustaka yang akan kita gunakan membutuhkan smbus untuk diinstal juga. Untuk menginstal smbus di rpi gunakan perintah "sudo apt install python3-smbus".

Membuatnya bekerja

pertama-tama instal pustaka RPLCD menggunakan perintah "sudo pip3 install RPLCD".

sekarang kita uji lcd dengan menampilkan ip menggunakan kode berikut:

dari RPLCD.i2c impor soket 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() mengembalikan ip_address

lcd = CharLCD('PCF8574', 0x27)

lcd.write_string('alamat IP:\r\n'+str(get_ip_address()))

Langkah 5: Servo, Led, Tombol dan Sakelar

Servo, Led, Tombol dan Sakelar
Servo, Led, Tombol dan Sakelar

pengantar

Motor servo adalah aktuator atau motor putar yang memungkinkan kontrol presisi dalam hal posisi sudut, akselerasi dan kecepatan, kemampuan yang tidak dimiliki motor biasa. Itu menggunakan motor biasa dan memasangkannya dengan sensor untuk umpan balik posisi. Kontroler adalah bagian paling canggih dari motor servo, karena dirancang khusus untuk tujuan tersebut.

LED singkatan dari light-emitting diode. Perangkat semikonduktor elektronik yang memancarkan cahaya ketika arus listrik melewatinya. Mereka jauh lebih efisien daripada lampu pijar, dan jarang terbakar. LED digunakan dalam banyak aplikasi seperti tampilan video layar datar, dan semakin sering digunakan sebagai sumber cahaya umum.

Tombol tekan atau tombol sederhana adalah mekanisme sakelar sederhana untuk mengontrol beberapa aspek mesin atau proses. Kancing biasanya terbuat dari bahan keras, biasanya plastik atau logam.

Sakelar on/off/on memiliki 3 posisi di mana yang di tengah adalah keadaan mati. Jenis ini sebagian besar digunakan untuk kontrol motor sederhana di mana Anda memiliki keadaan maju, mati, dan mundur.

Membuatnya bekerja: servo

Servo menggunakan sinyal PWM untuk menentukan sudut apa yang diperlukan. Untungnya bagi kami, GPIO memiliki fitur ini. Oleh karena itu, kami dapat menggunakan kode berikut untuk mengontrol servo: import RPi. GPIO as 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)

sementara Benar:

duty_cycle = float(input("Masukkan Duty Cycle (Kiri = 5 ke Kanan = 10):"))pwm_servo. ChangeDutyCycle(duty_cycle)

Membuatnya bekerja: led dan sakelar

Karena cara kita menghubungkan led dan switch kita tidak perlu mengontrol atau membaca led dan switch itu sendiri. Kita cukup mengirimkan pulsa ke tombol witch yang nantinya akan mengarahkan sinyal ke led yang kita inginkan.

Membuatnya bekerja: tombol

Untuk tombol kita akan membuat kelas sederhana kita sendiri dengan cara ini kita mudah melihat ketika ditekan tanpa harus menambahkan deteksi acara setiap kali kita menggunakannya. kita akan membuat file classbutton.py menggunakan kode berikut:

dari RPi, impor Tombol GPIOclass:

def _init_(self, pin, bouncetime=200): self.pin = pin self.bouncetime = waktu pantulan GPIO.setmode(GPIO. BCM) GPIO.setup(pin, GPIO. IN, GPIO. PUD_UP)@property def ditekan(self):

ingedrukt = GPIO.input(self.pin) kembali bukan ingedrukt

def on_press(self, call_method):

GPIO.add_event_detect(self.pin, GPIO. FALLING, call_method, bouncingtime=self.bouncetime)

def on_release(self, call_method):

GPIO.add_event_detect(self.pin, GPIO. RISING, call_method, bouncingtime=self.bouncetime)

Langkah 6: Sirkuit Penuh

Sirkuit Penuh
Sirkuit Penuh
Sirkuit Penuh
Sirkuit Penuh

Sekarang kita telah membahas semua komponen, saatnya untuk menggabungkan semuanya.

Sementara gambar menunjukkan komponen menunjukkan semua yang ada di papan tempat memotong roti itu sendiri, lebih baik memiliki lcd, adafruit GPS dan tombol yang terhubung menggunakan kabel female to male Hanya ada t-cobbler dan mpu6050 di papan tempat memotong roti. Ketika datang ke led dan sakelar gunakan kabel yang lebih panjang untuk memastikan Anda dapat mencapai palang lampu tanda bahaya dan palang kemudi.

Langkah 7: Kode

Untuk menjaga kebersihan yang dapat diinstruksikan ini, saya telah menyediakan repositori github dengan file backend dan frontend. cukup letakkan file di folder frontend di folder /var/www/html dan file di folder backend di folder di /home/ folder [nama pengguna]/[nama folder]

Langkah 8: Basis Data

Data
Data

Karena cara sistem ini diatur, ada toko web sederhana yang diatur menggunakan daftar produk dalam database, selanjutnya kami memiliki semua titik jalan dan pesanan disimpan di sini. Skrip pembuatan dapat ditemukan di repositori github yang ditautkan di langkah berikutnya

Langkah 9: Kasus

Kasus
Kasus

Setelah kita mengetahui cara kerja elektronik, kita dapat memasukkannya ke dalam sebuah kotak. Anda dapat mengambil kebebasan berkreasi dengan ini. Sebelum membangunnya cukup ambil kotak kardus yang tidak Anda perlukan lagi seperti kotak sereal kosong misalnya dan potong, rekatkan dan lipat sampai Anda memiliki sesuatu yang Anda suka. Ukur dan gambar kasing Anda di selembar kertas dan buat dari bahan yang lebih kokoh seperti kayu, atau jika bukan itu yang Anda inginkan, cetaklah 3d. Pastikan semua barang elektronik pas di dalam dan Anda memiliki lubang untuk tombol, kabel menuju sakelar, led dan lcd. Setelah Anda membuat kasing, itu hanya masalah menemukan cara memasangnya di sepeda atau skuter Anda

Direkomendasikan: