فهرست مطالب:
- تدارکات
- مرحله 1: تغذیه مدار و Pi
- مرحله 2: MPU6050
- مرحله 3: GPS Adafruit Ultimate Breakout GPS
- مرحله 4: LCD 16x2
- مرحله 5: Servo ، Leds ، Button و Switch
- مرحله 6: مدار کامل
- مرحله 7: کد
- مرحله 8: پایگاه داده
- مرحله 9: مورد
تصویری: پیگیری و ردیابی برای مغازه های کوچک: 9 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
این سیستمی است که برای مغازه های کوچک ساخته شده است و قرار است برای تحویل در کوتاه مدت بر روی دوچرخه های الکترونیکی یا اسکوترهای الکترونیکی سوار شوند ، به عنوان مثال نانوایی که می خواهد شیرینی تهیه کند.
Track and Trace به چه معناست؟
ردیابی و ردیابی سیستمی است که توسط حامل ها یا شرکت های پیک برای ثبت حرکت بسته ها یا اقلام در حین حمل و نقل استفاده می شود. در هر مکان پردازش ، کالاها شناسایی شده و داده ها به سیستم پردازش مرکزی منتقل می شوند. سپس از این داده ها برای ارائه وضعیت/به روزرسانی مکان کالا به ارسال کنندگان استفاده می شود.
سیستمی که ما ایجاد می کنیم همچنین مسیر طی شده و میزان ضربه ها و ضربه های دریافت شده را نشان می دهد. این دستورالعمل ها همچنین فرض می کند که شما دانش اولیه ای از تمشک pi ، پایتون و mysql دارید.
توجه: این برای یک پروژه مدرسه ساخته شده است ، بنابراین به دلیل محدودیت زمانی ، فضای زیادی برای پیشرفت وجود دارد
تدارکات
-تشک تمشک 4 مدل B
تمشک PI T-cobbler
-4 باتری 3 لیتری لیتیوم یون 7 ولت
-2 برابر نگهدارنده دو باتری
-DC Buck Step-down Converter 5v
-2 لید نارنجی بزرگ
سوئیچ روشن/خاموش/روشن
-دکمه
-adafruit ultimate gps v3
-mpu6050
صفحه نمایش LCD 16x2
-سرو موتور
مرحله 1: تغذیه مدار و Pi
وقتی نوبت به تغذیه مدار pi با باتری می رسد ، چند راه برای انجام این کار دارید.
می توانید از پاوربانک استفاده کنید و pi را از طریق USB تغذیه کنید ، شاید دستگاه را روی دوچرخه الکترونیکی یا اسکوتر الکترونیکی که دارای درگاه USB است سوار کنید ، شاید باتری تلفن 5 ولت در انتظار استفاده قرار گرفته یا می توانید از 2 استفاده کنید مجموعه ای از باتری 3.7V موازی با مبدل گام به گام مانند در تصاویر نشان داده شده است
همه چیز خوب است به شرطی که بتواند 5 ولت مداوم را تأمین کند و یک عمر از آن راضی باشید.
مرحله 2: MPU6050
مقدمه ماژول سنسور MPU6050 یک دستگاه ردیابی حرکت 6 محوره است.
- دارای ژیروسکوپ 3 محوره ، شتاب سنج 3 محوری ، پردازشگر حرکت دیجیتال و سنسور دما ، همه در یک IC واحد.
- پارامترهای مختلفی را می توان با خواندن مقادیر از آدرس های برخی از رجیسترها با استفاده از ارتباط I2C پیدا کرد. خواندن ژیروسکوپ و شتاب سنج در محورهای X ، Y و Z به صورت مکمل 2 در دسترس است.
- قرائت ژیروسکوپ بر حسب واحد بر ثانیه (dps) است. قرائت شتاب سنج در واحد g است.
فعال کردن I2C
هنگام استفاده از MPU6050 با Raspberry Pi ، باید اطمینان حاصل کنیم که پروتکل I2C در Raspberry Pi روشن است. برای انجام این کار ، پایانه pi را از طریق بتونه یا سایر نرم افزارها باز کنید و موارد زیر را انجام دهید:
- "sudo raspi-config" را تایپ کنید
- Interfacing Configurations را انتخاب کنید
- در گزینه Interfacing ، "I2C" را انتخاب کنید
- پیکربندی I2C را فعال کنید
- در صورت درخواست راه اندازی مجدد ، Yes را انتخاب کنید.
اکنون ، ما می توانیم با نصب ابزارهای i2c ، هر دستگاه I2C متصل به برد Raspberry Pi را آزمایش/اسکن کنیم. با استفاده از apt package manager می توانیم ابزارهای i2c را دریافت کنیم. از دستور زیر در ترمینال رزبری پای استفاده کنید.
"sudo apt-get install -y i2c-tools"
اکنون هر دستگاه مبتنی بر I2C را به پورت حالت کاربر وصل کرده و با استفاده از دستور زیر آن پورت را اسکن کنید ،
"sudo i2cdetect -y 1"
سپس با آدرس دستگاه پاسخ می دهد.
در صورت عدم بازگشت آدرس مطمئن شوید که MPU6050 به درستی متصل شده است و دوباره امتحان کنید
کارکردن آن
اکنون که مطمئن هستیم i2c فعال است و pi می تواند به MPU6050 برسد ، می خواهیم کتابخانه ای را با استفاده از دستور "sudo pip3 install adafruit-circuitpython-mpu6050" نصب کنیم.
اگر یک فایل آزمایشی پایتون بسازیم و از کد زیر استفاده کنیم ، می بینیم که کار می کند:
زمان واردات
تابلوی واردات
واردات busi
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL، board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
در حالی که True:
چاپ ("شتاب: X:٪. 2f ، Y:٪.2f ، Z:٪.2f m/s^2"٪ (mpu.acceleration))
چاپ ("Gyro X:٪. 2f ، Y:٪.2f ، Z:٪.2f درجه/ثانیه"٪ (mpu.gyro))
چاپ ("دما:٪.2f C"٪ mpu.temperature)
چاپ("")
زمان خواب (1)
وقتی می خواهیم شتاب در محور X/Y/Z باشد می توانیم از موارد زیر استفاده کنیم:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
با ترکیب این جمله با یک if ساده در یک حلقه ثابت ، می توانیم مقدار شوک های یک سفر را حساب کنیم
مرحله 3: GPS Adafruit Ultimate Breakout GPS
معرفی
بریکت در اطراف چیپست MTK3339 ساخته شده است ، یک ماژول GPS بی معنی و با کیفیت است که می تواند تا 22 ماهواره را در 66 کانال ردیابی کند ، دارای یک گیرنده با حساسیت بسیار عالی (ردیابی -165 دسی بل!) ، و یک آنتن داخلی است. به این دستگاه می تواند تا 10 بار به روزرسانی موقعیت مکانی را برای سرعت ، ثبت حساسیت بالا یا ردیابی انجام دهد. مصرف برق فوق العاده کم است ، فقط 20 میلی آمپر در طول ناوبری.
این برد دارای: تنظیم کننده خروجی 3.3V بسیار کم است ، بنابراین می توانید آن را با ورودی های امن 3.3-5VDC ، سطح 5V تغذیه کنید ، LED هنگام جستجو در ماهواره ها در حدود 1 هرتز چشمک می زند و هر 15 ثانیه یکبار چشمک می زند. برای حفظ قدرت پیدا شده است
تست gps با آردوینو
اگر به آردوینو دسترسی دارید ایده خوبی است که ماژول را با آن آزمایش کنید.
اتصال VIN به +5V اتصال GND به زمین اتصال GPS RX (داده به GPS) به دیجیتال 0 اتصال GPS TX (داده از GPS) به دیجیتال 1
به سادگی یک کد آردوینو خالی اجرا کنید و مانیتور سریال را در 9600 baud باز کنید. اگر اطلاعات GPS دریافت می کنید ، ماژول GPS شما کار می کند. توجه: اگر ماژول شما برطرف نشد ، آن را از پنجره یا بیرون تراس بیرون بیاورید.
کارکردن آن
شروع نصب کتابخانه adafruit gps با استفاده از دستور "sudo pip3 install adafruit-circuitpython-gps".
اکنون می توانیم از کد پایتون زیر استفاده کنیم تا ببینیم آیا می توانیم آن را کار کنیم یا خیر:
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')
در حالی که True:
gps.update () در حالی که gps.has_fix نیست:
print (gps.nmea_sentence) print ('در انتظار رفع…') gps.update () time.sleep (1) ادامه
print ('=' * 40) # چاپ یک خط جداکننده. print ('عرض جغرافیایی: {0:.6f} درجه'.format (gps.latitude)) print ('طول جغرافیایی: {0:.6f} درجه'.format (gps.longitude)) چاپ ("رفع کیفیت: {}". فرمت (gps.fix_quality))
# برخی از ویژگیهای فراتر از عرض جغرافیایی ، طول و طول زمانی اختیاری هستند# و ممکن است وجود نداشته باشند. قبل از استفاده از آنها بررسی کنید که آیا آنها هیچکدام هستند! اگر gps.satellites هیچکدام نیست:
چاپ ("# ماهواره: {}". فرمت (gps.satellites))
اگر gps.altitude_m هیچکدام نیست:
print ("ارتفاع: {} متر".format (gps.altitude_m))
اگر gps.speed_knots هیچکدام نیست:
print ("Speed: {} knots".format (gps.speed_knots))
اگر gps.track_angle_deg هیچکدام نیست:
چاپ ("زاویه پیگیری: {} درجه".format (gps.track_angle_deg))
اگر gps.horizontal_dilution هیچکدام نباشد:
چاپ ("رقیق سازی افقی: {}". قالب (gps.horizontal_dilution))
اگر gps.height_geoid هیچکدام نیست:
چاپ ("ارتفاع جغرافیایی شناسه: {} متر".format (gps.height_geoid))
زمان خواب (1)
مرحله 4: LCD 16x2
معرفی
ماژول های LCD معمولاً در اکثر پروژه های جاسازی شده استفاده می شوند ، دلیل آن قیمت ارزان ، در دسترس بودن و دوستدار برنامه نویس است. اکثر ما در زندگی روزمره خود ، با این نمایشگرها ، چه در PCO’s و چه در ماشین حساب ها مواجه شده بودیم. دارای 16 ستون و 2 ردیف است. ترکیبات زیادی مانند 8 × 1 ، 8 × 2 ، 10 × 2 ، 16 × 1 و غیره موجود است ، اما بیشترین مورد استفاده LCD 16 × 2 است. بنابراین ، دارای 32 کاراکتر (16 × 2 = 32) کل شخصیت است و هر کاراکتر از 5 × 8 نقطه پیکسل ساخته می شود.
نصب smbus
گذرگاه مدیریت سیستم (SMBus) کمابیش مشتق از گذرگاه I2C است. این استاندارد توسط اینتل توسعه یافته است و اکنون توسط انجمن SBS حفظ می شود. برنامه اصلی SMBus نظارت بر پارامترهای مهم بر روی مادربردهای رایانه و سیستم های تعبیه شده است. به عنوان مثال تعداد زیادی مانیتور ولتاژ منبع تغذیه ، مانیتور دما ، و IC های مانیتور/کنترل فن با رابط 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 = '' s = 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: Servo ، Leds ، Button و Switch
معرفی
سرو موتور یک محرک یا موتور دوار است که امکان کنترل دقیق از نظر موقعیت زاویه ای ، شتاب و سرعت را فراهم می کند ، قابلیت هایی که یک موتور معمولی ندارد. از یک موتور معمولی استفاده می کند و آن را با یک سنسور برای بازخورد موقعیت جفت می کند. کنترل کننده پیچیده ترین بخش سرو موتور است ، زیرا به طور خاص برای این منظور طراحی شده است.
LED کوتاه برای دیود ساطع کننده نور. یک دستگاه نیمه هادی الکترونیکی که هنگام عبور جریان الکتریکی از آن نور منتشر می کند. آنها به طور قابل ملاحظه ای کارآمدتر از لامپ های رشته ای هستند و به ندرت می سوزند. چراغ های LED در بسیاری از برنامه ها مانند نمایشگرهای صفحه تخت و به طور فزاینده ای به عنوان منابع کلی نور استفاده می شود.
یک دکمه یا دکمه ساده یک مکانیزم سوئیچ ساده برای کنترل برخی از جنبه های یک ماشین یا یک فرآیند است. دکمه ها معمولاً از مواد سخت ، معمولاً پلاستیک یا فلز ساخته می شوند.
سوئیچ روشن/خاموش/روشن دارای 3 موقعیت است که حالت میانی آن حالت خاموش است ، این نوع بیشتر برای کنترل ساده موتور در مواردی که حالت رو به جلو ، خاموش و معکوس دارید استفاده می شود.
کارکردن آن: سروو
سروو از یک سیگنال PWM برای تعیین زاویه ای که خوشبختانه برای ما نیاز دارد استفاده می کند. GPIO این ویژگی را در خود دارد. بنابراین ما می توانیم به سادگی از کد زیر برای کنترل سروو استفاده کنیم: وارد کردن RPi. GPIO به عنوان زمان GPIOimport
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 (چرخه_ وظیفه)
در حالی که True:
duty_cycle = float (ورودی ("وارد چرخه وظیفه (از چپ = 5 به راست = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
کارکردن آن: led و switch
با توجه به نحوه سیم کشی led ها و سوئیچ ، نیازی به کنترل یا خواندن led ها نداریم و خود را تغییر می دهیم. ما به سادگی پالس ها را به جادوگر دکمه ارسال می کنیم و به نوبه خود سیگنال را به led مورد نظر ما هدایت می کند.
عملکرد آن: دکمه
برای دکمه ، کلاس ساده خود را به این ترتیب ایجاد می کنیم ، به راحتی می توانیم آن را فشار دهیم بدون نیاز به افزودن یک رویداد در هر بار استفاده از آن. ما فایل classbutton.py را با استفاده از کد زیر ایجاد می کنیم:
از وارد کردن RPi دکمه GPIOclass:
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 pressed (self):
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: مدار کامل
اکنون که همه اجزا را مرور کرده ایم ، زمان ترکیب همه آنها فرا رسیده است.
در حالی که تصاویر نشان می دهد که اجزا همه چیز را روی صفحه نان نشان می دهند ، بهتر است ال سی دی ، GPS adafruit و دکمه را با استفاده از سیم های زن به نر متصل کنید. فقط t-cobbler و mpu6050 را روی تخته نان داشته باشید. وقتی صحبت از led و سوئیچ می شود برای اطمینان از دسترسی به میله های چشمک زن و نوار فرمان از سیم های بلندتر استفاده کنید.
مرحله 7: کد
برای تمیز نگه داشتن این دستورالعمل ، من یک مخزن github با فایلهای پشتیبان و frontend ارائه کرده ام. به سادگی فایلها را در پوشه frontend در پوشه/var/www/html قرار دهید و فایلها را در پوشه پشتیبان در یک پوشه در/home/قرار دهید پوشه [نام کاربری]/[نام پوشه]
مرحله 8: پایگاه داده
به دلیل نحوه راه اندازی این سیستم ، یک فروشگاه اینترنتی ساده با استفاده از لیستی از محصولات موجود در پایگاه داده راه اندازی شده است ، علاوه بر این ما تمام نقاط و سفارشات را در اینجا ذخیره کرده ایم. یک اسکریپت ایجاد می توان در مخزن github که در گام بعدی
مرحله 9: مورد
هنگامی که کار الکترونیک را می دانیم ، می توانیم آنها را در یک جعبه قرار دهیم. شما می توانید آزادی خلاقانه ای در این زمینه داشته باشید. قبل از ساختن آن ، به سادگی یک جعبه مقوایی بگیرید که دیگر به عنوان مثال به عنوان یک جعبه غلات خالی دیگر به آن احتیاج ندارید و آن را ببرید ، آن را بچسبانید و آن را تا کنید تا چیزی که دوست دارید داشته باشید. کیف خود را اندازه بگیرید و روی یک تکه کاغذ بکشید و آن را از یک ماده محکم تر مانند چوب تهیه کنید ، یا اگر چیز شما این کار را به صورت سه بعدی انجام نمی دهد. فقط مطمئن شوید همه وسایل برقی داخل آن قرار دارند و شما سوراخ هایی برای دکمه دارید ، سیم به سوئیچ می رود ، چراغ ها و ال سی دی. هنگامی که مورد خود را ایجاد کردید ، فقط باید راهی برای نصب آن روی دوچرخه یا روروک مخصوص بچه ها پیدا کنید
توصیه شده:
ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله
دستگاه DIY Robot Smart Tracking Car Tracking Car Photosensitive: طراحی شده توسط SINONING ROBOT شما می توانید از ربات ردیابی ماشین خرید کنید بچرخید تا
بازاریابی رسانه های اجتماعی برای گروه های کوچک دانشگاهی: 4 مرحله
بازاریابی رسانه های اجتماعی برای گروه های کوچک دانشگاهی: در دانشگاه ما ، گروه های کوچکی در محوطه دانشگاه وجود دارد-مجلات دانشگاهی ، محل اقامت کالج ، رستوران های داخل دانشگاه ، گروه های زندگی دانشجویی و موارد دیگر-که همچنین علاقه مند به استفاده از رسانه های اجتماعی هستند. با مردم و جوامع خود ارتباط برقرار کنند. این س
ربات های پیگیری چهره و تشخیص لبخند در هالووین: 8 مرحله (همراه با تصاویر)
ردیابی چهره و تشخیص لبخند روبات های هالووین: هالووین در راه است! ما تصمیم گرفتیم چیزی جالب بسازیم. با ربات های Ghosty و Skully آشنا شوید. آنها می توانند چهره شما را دنبال کنند و می دانند وقتی لبخند می زنید تا با شما بخندند! این پروژه نمونه دیگری از استفاده از برنامه iRobbie است که iPhone را تبدیل به
موتورهای دنده ارزان برای ربات های کوچک: 5 مرحله (همراه با تصاویر)
موتورهای گران قیمت ارزان برای ربات های کوچک: برای جدیدترین پروژه ربات کوچک خود به موتورهای کوچک ، قدرتمند و ارزان نیاز دارید؟ من این & quot؛ N20 & quot؛ را کشف کردم. Gearmotors یک سال پیش یا بیشتر ، هنگام کار بر روی پروژه ProtoBot من. آنها از منابع آنلاین بسیار کوچک ، قدرتمند و فراوان هستند. شما
ساخت ربات های کوچک: ساخت یک روبات میکروسومو مکعبی کوچک و کوچکتر: 5 مرحله (همراه با تصاویر)
ساخت ربات های کوچک: ساخت یک روبات میکرو سومو مکعبی کوچک و کوچکتر: در اینجا جزئیاتی در مورد ساخت ربات ها و مدارهای کوچک آورده شده است. این دستورالعمل همچنین برخی نکات و تکنیک های اساسی را که در ساخت ربات ها با هر اندازه مفید است ، پوشش می دهد. برای من ، یکی از چالش های بزرگ در زمینه الکترونیک این است که ببینیم چقدر کوچک است