جدول المحتويات:

تتبع وتعقب المتاجر الصغيرة: 9 خطوات (بالصور)
تتبع وتعقب المتاجر الصغيرة: 9 خطوات (بالصور)

فيديو: تتبع وتعقب المتاجر الصغيرة: 9 خطوات (بالصور)

فيديو: تتبع وتعقب المتاجر الصغيرة: 9 خطوات (بالصور)
فيديو: Gps چى بى اس …. افهم قبل ما تشترى 2024, شهر نوفمبر
Anonim
تتبع وتتبع المتاجر الصغيرة
تتبع وتتبع المتاجر الصغيرة

هذا نظام مصمم للمحلات الصغيرة التي من المفترض أن يتم تركيبها على الدراجات الإلكترونية أو الدراجات البخارية الإلكترونية للتسليم قصير المدى ، على سبيل المثال مخبز يريد توصيل المعجنات.

ماذا يعني التعقب والتتبع؟

التتبع والتعقب هو نظام تستخدمه شركات النقل أو شركات البريد السريع لتسجيل حركة الطرود أو العناصر أثناء النقل. في كل موقع معالجة ، يتم تحديد البضائع وترحيل البيانات إلى نظام المعالجة المركزي. ثم يتم استخدام هذه البيانات لإعطاء حالة / تحديث موقع البضائع للشاحنين.

سيعرض النظام الذي سنقوم به أيضًا المسار الذي سلكته ومقدار الصدمات والصدمات التي تم تلقيها. تفترض هذه التعليمات أيضًا أن لديك معرفة أساسية بـ raspberry pi و python و mysql.

ملحوظة: تم إجراء هذا لمشروع مدرسي ، وبالتالي نظرًا لضيق الوقت ، هناك مجال كبير للتحسين

اللوازم

- Raspberry Pi 4 موديل ب

-توت العليق PI T-cobbler

-4 × 3 ، بطاريات ليثيوم أيون 7 فولت

-2x حامل بطارية مزدوج

-DC باك تنحى محول 5v

-2x ليد برتقالي كبير

على / قبالة / على التبديل

-زر

-الفروت في نهاية المطاف GPS v3

-mpu6050

-شاشة LCD 16x2

-أجهزة السيارات

الخطوة 1: تشغيل الدائرة و Pi

تشغيل الدائرة و Pi
تشغيل الدائرة و Pi
تشغيل الدائرة و Pi
تشغيل الدائرة و Pi

عندما يتعلق الأمر بتزويد الدائرة الكهربية بالطاقة ببطارية ، فلديك بعض الخيارات حول كيفية القيام بذلك.

يمكنك استخدام powerbank وتشغيل pi عبر USB ، ربما تقوم بتركيب الجهاز على دراجة إلكترونية أو سكوتر إلكتروني به منفذ USB ، ربما لديك بطارية هاتف 5 فولت تنتظر استخدامها أو يمكنك استخدام 2 مجموعات من بطارية 3.7 فولت بالتوازي مع محول تنحى كما هو موضح في الصور

أي شيء على ما يرام طالما أنه يمكن أن يوفر 5 فولت مستمر وله العمر الذي تسعد به.

الخطوة الثانية: MPU6050

MPU6050
MPU6050

مقدمة وحدة مستشعر MPU6050 عبارة عن جهاز تتبع للحركة سداسي المحاور.

  • يحتوي على جيروسكوب ثلاثي المحاور ومقياس تسارع ثلاثي المحاور ومعالج حركة رقمي ومستشعر درجة حرارة ، كل ذلك في دائرة متكاملة واحدة.
  • يمكن العثور على معلمات مختلفة من خلال قراءة القيم من عناوين سجلات معينة باستخدام اتصال I2C. تتوفر قراءة الجيروسكوب ومقياس التسارع على طول المحاور X و Y و Z في شكل مكمل 2.
  • قراءات الجيروسكوب بوحدة الدرجات في الثانية (dps) ؛ قراءات مقياس التسارع بوحدة g.

تمكين I2C

عند استخدام MPU6050 مع Raspberry Pi ، يجب أن نتأكد من تشغيل بروتوكول I2C على Raspberry Pi. للقيام بذلك ، افتح الطرفية pi من خلال المعجون أو البرامج الأخرى وقم بما يلي:

  1. اكتب "sudo raspi-config"
  2. حدد تكوينات التفاعل
  3. في خيار Interfacing ، حدد "I2C"
  4. تفعيل تكوين I2C
  5. حدد نعم عندما يطلب إعادة التشغيل.

الآن ، يمكننا اختبار / مسح أي جهاز I2C متصل بلوحة Raspberry Pi الخاصة بنا عن طريق تثبيت أدوات i2c. يمكننا الحصول على أدوات i2c باستخدام apt package manager. استخدم الأمر التالي في محطة Raspberry Pi.

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

قم الآن بتوصيل أي جهاز قائم على I2C بمنفذ وضع المستخدم ومسح هذا المنفذ باستخدام الأمر التالي ،

"sudo i2cdetect -y 1"

ثم سوف يستجيب بعنوان الجهاز.

إذا لم يتم إرجاع أي عنوان ، فتأكد من توصيل MPU6050 بشكل صحيح وحاول مرة أخرى

إنجاحها

الآن بعد أن تأكدنا من تمكين i2c ويمكن لـ pi الوصول إلى MPU6050 ، سنقوم بتثبيت مكتبة باستخدام الأمر "sudo pip3 install adafruit-circpython-mpu6050".

إذا أنشأنا ملف اختبار Python واستخدمنا الكود التالي ، فيمكننا معرفة ما إذا كان يعمل:

وقت الاستيراد

مجلس الاستيراد

استيراد busi

oimport adafruit_mpu6050

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

mpu = adafruit_mpu6050. MPU6050 (i2c)

احيانا صحيح:

طباعة ("التسريع: X:٪. 2f، Y:٪.2f، Z:٪.2f m / s ^ 2"٪ (mpu.acceleration))

طباعة ("Gyro X:٪. 2f، Y:٪.2f، Z:٪.2f درجة / ثانية"٪ (mpu.gyro))

طباعة ("درجة الحرارة:٪.2f C"٪ mpu.temperature)

مطبعة("")

time.sleep (1) الوقت

عندما نريد الآن التسارع في المحور X / Y / Z ، يمكننا استخدام ما يلي:

تسريع X = mpu.acceleration [0] تسريعY = mpu.acceleration [1] تسريعZ = mpu.acceleration [2]

بدمج هذا مع عبارة if البسيطة في حلقة ثابتة يمكننا حساب كمية الصدمات في الرحلة

الخطوة 3: نظام Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

مقدمة

تم بناء الاختراق حول شرائح MTK3339 ، وهي وحدة GPS عالية الجودة لا معنى لها يمكنها تتبع ما يصل إلى 22 قمراً صناعياً على 66 قناة ، وتحتوي على جهاز استقبال ممتاز عالي الحساسية (تتبع -165 ديسيبل!) ، وهوائي مدمج. يمكنه إجراء ما يصل إلى 10 تحديثات للموقع في الثانية للتسجيل أو التتبع عالي السرعة والحساسية العالية. استخدام الطاقة منخفض بشكل لا يصدق ، فقط 20 مللي أمبير أثناء التنقل.

تأتي اللوحة مع: منظم تسرب منخفض للغاية 3.3 فولت حتى تتمكن من تشغيله باستخدام 3.3-5VDC في ، ومدخلات آمنة بمستوى 5 فولت ، ويومض LED عند حوالي 1 هرتز أثناء البحث عن الأقمار الصناعية ويومض مرة واحدة كل 15 ثانية عند الإصلاح وجدت للحفاظ على الطاقة.

اختبار نظام تحديد المواقع باستخدام اردوينو

إذا كان لديك وصول إلى اردوينو ، فمن الجيد اختبار الوحدة به.

قم بتوصيل VIN بـ +5 فولت ، قم بتوصيل GND بالأرض ، قم بتوصيل GPS RX (البيانات إلى GPS) بالرقم الرقمي 0 قم بتوصيل GPS TX (إخراج البيانات من GPS) إلى Digital 1

ما عليك سوى تشغيل رمز اردوينو فارغ وفتح الشاشة التسلسلية على 9600 باود. إذا حصلت على بيانات GPS ، تعمل وحدة GPS الخاصة بك.

إنجاحها

ابدأ في تثبيت مكتبة adafruit GPS باستخدام الأمر "sudo pip3 install adafruit-circpython-gps".

يمكننا الآن استخدام كود python التالي لمعرفة ما إذا كان بإمكاننا جعله يعمل:

وقت الاستيراد استيراد لوحة الاستيراد busioimport adafruit_gpsimport serial uart = serial. Serial ("/ dev / ttyS0" ، معدل الباود = 9600 ، المهلة = 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')

احيانا صحيح:

gps.update () بينما ليس gps.has_fix:

طباعة (gps.nmea_sentence) طباعة ("في انتظار الإصلاح …") gps.update () time.sleep (1) تابع

print ('=' * 40) # اطبع سطرًا فاصلًا. print ('Latitude: {0:.6f} degrees'.format (gps.latitude)) print (' Longitude: {0:.6f} degrees'.format (gps.longitude)) طباعة ("إصلاح الجودة: {}". تنسيق (gps.fix_quality))

# بعض السمات خارج خطوط الطول والعرض والطابع الزمني اختيارية # وقد لا تكون موجودة. تحقق مما إذا كانت لا شيء قبل محاولة الاستخدام!

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

إذا لم يكن gps.altitude_m بلا:

طباعة ("الارتفاع: {} أمتار". تنسيق (gps.altitude_m))

إذا لم يكن gps.speed_knots بلا:

طباعة ("السرعة: {} عقدة" تنسيق. (gps.speed_knots))

إذا لم يكن gps.track_angle_deg لا شيء:

طباعة ("زاوية المسار: {} درجات". تنسيق (gps.track_angle_deg))

إذا لم يكن gps.horizontal_dilution بلا:

طباعة ("التخفيف الأفقي: {}". تنسيق (gps.horizontal_dilution))

إذا لم يكن gps.height_geoid لا شيء:

print ("معرّف الارتفاع الجغرافي: تنسيق {} متر" (gps.height_geoid))

time.sleep (1) الوقت

الخطوة 4: شاشة LCD مقاس 16 × 2

شاشة LCD مقاس 16 × 2
شاشة LCD مقاس 16 × 2

مقدمة

تُستخدم وحدات LCD بشكل شائع في معظم المشاريع المضمنة ، والسبب هو سعرها الرخيص وتوافرها وسهولة المبرمجين. كان من الممكن أن يصادف معظمنا هذه الشاشات في حياتنا اليومية ، إما في أجهزة الكمبيوتر الشخصية أو الآلات الحاسبة ، وقد تم تسمية 16 × 2 LCD بهذا الاسم ؛ يحتوي على 16 عمودًا وصفين. هناك الكثير من التركيبات المتاحة مثل ، 8 × 1 ، 8 × 2 ، 10 × 2 ، 16 × 1 ، وما إلى ذلك ، ولكن الأكثر استخدامًا هو شاشة LCD مقاس 16 × 2. لذلك ، سيكون بها (16 × 2 = 32) 32 حرفًا في المجموع ، وستتكون كل شخصية من 5 × 8 بكسل نقاط.

تركيب smbus

يعد ناقل إدارة النظام (SMBus) مشتقًا إلى حد ما من ناقل I2C. تم تطوير المعيار من قبل Intel ويتم الحفاظ عليه الآن بواسطة SBS Forum. التطبيق الرئيسي لـ SMBus هو مراقبة المعلمات الهامة على اللوحات الأم للكمبيوتر الشخصي والأنظمة المدمجة. على سبيل المثال ، هناك الكثير من أجهزة مراقبة الجهد الكهربائي ، ومراقبة درجة الحرارة ، ومراقب / تحكم المروحة مع واجهة SMBus المتاحة.

تتطلب المكتبة التي سنستخدمها تثبيت smbus أيضًا. لتثبيت smbus على rpi ، استخدم الأمر "sudo apt install python3-smbus".

إنجاحها

أولًا تثبيت مكتبة RPLCD باستخدام الأمر "sudo pip3 install RPLCD".

نقوم الآن باختبار شاشة LCD من خلال عرض IP باستخدام الكود التالي:

من RPLCD.i2c استيراد مأخذ CharLCDimport

def get_ip_address ():

ip_address = '' socket.socket (socket. AF_INET، socket. SOCK_DGRAM) s.connect (("8.8.8.8"، 80)) ip_address = s.getsockname () [0] s.close () إرجاع ip_address

شاشات الكريستال السائل = CharLCD ('PCF8574' ، 0x27)

lcd.write_string ('عنوان IP: / r / n' + str (get_ip_address ()))

الخطوة 5: المؤازرة ، المصابيح ، الزر والتبديل

أجهزة ، المصابيح ، زر والتبديل
أجهزة ، المصابيح ، زر والتبديل

مقدمة

المحرك المؤازر عبارة عن مشغل دوار أو محرك يسمح بالتحكم الدقيق من حيث الموضع الزاوي والتسارع والسرعة ، وهي قدرات لا يمتلكها المحرك العادي. إنه يستخدم محركًا عاديًا ويقرنه بجهاز استشعار لتلقي نظرة على الموقف. وحدة التحكم هي الجزء الأكثر تعقيدًا في محرك سيرفو ، حيث إنها مصممة خصيصًا لهذا الغرض.

LED قصير للديود الباعث للضوء. جهاز إلكتروني من أشباه الموصلات ينبعث منه الضوء عندما يمر عبره تيار كهربائي. إنها أكثر كفاءة بكثير من المصابيح المتوهجة ، ونادرًا ما تحترق. تُستخدم مصابيح LED في العديد من التطبيقات مثل شاشات عرض الفيديو ذات الشاشات المسطحة ، وبشكل متزايد كمصادر عامة للضوء.

زر الضغط أو الزر البسيط هو آلية تبديل بسيطة للتحكم في بعض جوانب الآلة أو العملية. عادة ما تكون الأزرار مصنوعة من مادة صلبة ، وعادة ما تكون من البلاستيك أو المعدن.

يحتوي مفتاح التشغيل / الإيقاف / التشغيل على 3 مواضع حيث يكون الوضع الأوسط هو حالة إيقاف التشغيل ، وتستخدم هذه الأنواع في الغالب للتحكم البسيط في المحرك حيث يكون لديك حالة أمامية وإيقاف وعكس.

جعلها تعمل: المؤازرة

تستخدم المؤازرة إشارة PWM لتحديد الزاوية التي يجب أن تكون عليها لحسن الحظ بالنسبة لنا ، تمتلك GPIO هذه الميزة مضمنة ، لذلك يمكننا ببساطة استخدام الكود التالي للتحكم في المؤازرة: استيراد RPi. GPIO كوقت استيراد GPIO

servo_pin = 18duty_cycle = 7.5

GPIO.setmode (GPIO. BCM)

إعداد GPIO (servo_pin ، GPIO. OUT)

pwm_servo = GPIO. PWM (servo_pin، 50) pwm_servo.start (duty_cycle)

احيانا صحيح:

duty_cycle = float (الإدخال ("إدخال دورة العمل (يسار = 5 إلى اليمين = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

جعلها تعمل: الصمام والتبديل

نظرًا للطريقة التي قمنا بتوصيلها بمصابيح LED والمفتاح ، فإننا لا نحتاج إلى التحكم في المصابيح أو قراءتها وتبديل نفسها ، فنحن ببساطة نرسل نبضات إلى ساحرة الزر ستقوم بدورها بتوجيه الإشارة إلى المصباح الذي نريده.

جعلها تعمل: الزر

بالنسبة للزر ، سنقوم بإنشاء فئة بسيطة خاصة بنا بهذه الطريقة التي نراها بسهولة عند الضغط عليها دون الحاجة إلى إضافة حدث يتم اكتشافه في كل مرة نستخدمها. سنجعل الملف classbutton.py باستخدام الكود التالي:

من RPi استيراد زر GPIOclass:

def _init _ (self، pin، bouncetime = 200): self.pin = pin self.bouncetime = وقت الارتداد GPIO.setmode (GPIO. BCM) GPIO.setup (pin، GPIO. IN، GPIO. PUD_UP)property def مضغوط (ذاتي)):

ingedrukt = إدخال GPIO.input (self.pin) لا يرجع إلى 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)

الخطوة 6: الدائرة الكاملة

الدائرة الكاملة
الدائرة الكاملة
الدائرة الكاملة
الدائرة الكاملة

الآن بعد أن تجاوزنا جميع المكونات ، حان الوقت لدمجها جميعًا.

بينما تُظهر الصور المكونات تُظهر كل شيء على اللوح نفسه ، فمن الأفضل أن يكون لديك شاشة LCD و adafruit GPS وزر متصل باستخدام أسلاك أنثى إلى ذكر فقط لديك t-cobbler و mpu6050 على لوح التجارب. عندما يتعلق الأمر بمصابيح LED والمفتاح استخدم أسلاكًا أطول للتأكد من أنه يمكنك الوصول إلى القضبان الوامضة وشريط التوجيه.

الخطوة 7: الكود

للحفاظ على هذا التوجيه نظيفًا ، قمت بتوفير مستودع github مع كل من ملفات الواجهة الخلفية والواجهة الأمامية ، ما عليك سوى وضع الملفات في مجلد الواجهة الأمامية في مجلد / var / www / html والملفات الموجودة في مجلد الواجهة الخلفية في مجلد في / home / مجلد [اسم المستخدم] / [اسم المجلد]

الخطوة 8: قاعدة البيانات

قاعدة البيانات
قاعدة البيانات

نظرًا للطريقة التي تم بها إعداد هذا النظام ، هناك متجر ويب بسيط تم إعداده باستخدام قائمة من المنتجات في قاعدة بيانات ، علاوة على ذلك ، لدينا جميع النقاط والأوامر المحفوظة هنا. يمكن العثور على نص إنشاء في مستودع جيثب المرتبط في الخطوة التالية

الخطوة 9: القضية

القضية
القضية

بمجرد أن نعرف عمل الإلكترونيات يمكننا تعبئتها في صندوق ، ويمكنك أن تأخذ بعض الحرية الإبداعية مع هذا ، قبل بنائه ببساطة خذ صندوقًا من الورق المقوى لن تحتاج بعد الآن مثل علبة حبوب فارغة على سبيل المثال وقصها ، قم بلصقها قم بطيها حتى تحصل على ما تريد ، قم بقياس ورسم العلبة الخاصة بك على قطعة من الورق وجعلها من مادة أكثر متانة مثل الخشب ، أو إذا لم يكن هذا هو الشيء الخاص بك ، اطبعها ثلاثية الأبعاد. فقط تأكد من أن جميع الأجهزة الإلكترونية مناسبة للداخل و لديك ثقوب للزر ، والسلك الذي يذهب إلى المفتاح ، ومصباح LED وشاشة LCD. بمجرد أن تجعل قضيتك مجرد مسألة إيجاد طريقة لتثبيتها على دراجتك أو سكوترك

موصى به: