پروژه الکترونیکپروژه های بلوتوثپروژه های پایتونپروژه های رزبری پای

پروژه برقراری ارتباط اندروید و رزبری پای با بلوتوث و کنترل پین ها

سلام. پروژه برقراری ارتباط اندروید و رزبری پای با بلوتوث و کنترل پین ها را آماده کردیم.

ارسال اطلاعات از گوشی موبایل Android به Raspberry Pi

برد های رزبری پای به دلیل دارا بودن ماژول های ارتباط بی سیم داخلی، برای پروژه های اینترنت اشیا بسیار محبوب هستند. Raspberry Pi 3 دارای Wi-Fi و Bluetooth است که پروتکل های ارتباط بی سیم بسیار محبوب هستند. در این پروژه رزبری پای ما میخواهیم از طریق اپلیکیشن اندروید، با استفاده از ارتباط بلوتوث پین های GPIO برد پای را کنترل کنیم. در اینجا ما از Raspberry 2 Pi Model B استفاده کردیم که بلوتوث داخلی ندارد، بنابراین ما از یک دانگل بلوتوث USB ساده استفاده می کنیم.و فقط به یک مقاومت 220 اهم و یک LED نیاز داریم تا نحوه کنترل GPIO را نشان دهیم. در اینجا ما از پروتکل بلوتوث RFCOMM برای ارتباطات بی سیم استفاده می کنیم.

میتوانید پین های متفاوتی را کنترل کنید و به هر کدام یک رله متصل کنید. اینگونه میتوانید یک پروژه خانه هوشمند را به سادگی بسازید که وسایل خانه را با استفاده از موبایل اندروید و بلوتوث کنترل میکند.

برنامه نویسی برای بلوتوث در پایتون از مدل برنامه نویسی سوکت تبعیت می کند و ارتباطات بین دستگاه های بلوتوث از طریق سوکت RFCOMM انجام می شود. مشخصات درگاه سریال بلوتوث براساس این پروتکل تنظیم شده است. RFCOMM به دلیل پشتیبانی گسترده و API عمومی، در پروژه های بلوتوث بسیار محبوب است.

فیلم عملکرد پروژه و کد کامل در انتهای صفحه قرار داده شده است.

نصب بسته های لازم برای ارتباط بلوتوث با رزبری پای

برای برقراری ارتباط بلوتوث در Raspberry Pi باید تعدادی نرم افزار نصب کنیم. شما باید Raspbian Jessie را نصب کرده باشید. ما ابتدا باید Raspbian را با استفاده از دستورات زیر به روز کنیم:

sudo apt-get update
sudo apt-get upgrade

سپس باید چند بسته مرتبط با بلوتوث را نصب کنیم:

sudo apt-get install bluetooth blueman bluez

سپس Raspberry Pi را دوباره راه اندازی کنید:

sudo reboot

BlueZ یک پروژه متن باز و پروتکل بلوتوث رسمی Linux است. این پروتکل از تمام پروتکل های اصلی بلوتوث پشتیبانی می کند و اکنون جزئی از هسته رسمی لینوکس است. Blueman رابط دسک تاپ را برای مدیریت و کنترل دستگاه های بلوتوث فراهم می کند.

سرانجام برای ارتباط بلوتوث به کتابخانه پایتون نیاز داریم تا بتوانیم داده ها را از طریق RFCOMM با استفاده از زبان پایتون ارسال و دریافت کنیم:

sudo apt-get install python-bluetooth

همچنین کتابخانه های پشتیبانی GPIO را برای Raspberry Pi نصب کنید:

sudo apt-get install python-rpi.gpio
اکنون نصب بسته های مورد نیاز برای ارتباط بلوتوث در Raspberry Pi انجام شده است.

جفت کردن دستگاه های بلوتوث با Raspberry Pi

جفت کردن دستگاه های بلوتوث، مثلا تلفن همراه ، با Raspberry Pi بسیار آسان است. در اینجا تلفن Android هوشمند خود را با Raspberry Pi جفت میکنیم. ما قبلاً BlueZ را در Pi نصب کرده ایم که یک ابزار خط فرمان به نام “bl Bluetoothctl” را برای مدیریت دستگاه های بلوتوث ما فراهم می کند. اما قبل از آن ، دانگل بلوتوث USB خود را به Raspberry Pi متصل کنید و با استفاده از دستور زیر بررسی کنید که تشخیص داده شده است یا نه:

lsusb

جفت کردن دستگاه های بلوتوث با Raspberry Pi

اکنون برنامه bl Bluetoothctl را با دستور زیر باز کنید:

sudo bluetoothctl

می توانید با تایپ کردن “help” ، تمام دستورالعمل های برنامه Bluetooth Bluetooth را بررسی کنید. سپس باید دستورات زیر را به ترتیب مشخص وارد کنیم:

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.
حتما ببینید :  پروژه دریافت ساعت از اینترنت با برد ESP32 و NTP
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# discoverable on
[bluetooth]# pairable on
[bluetooth]# scan on

بعد از ارسال آخرین دستور یعنی”scan on” ، دستگاه بلوتوث (تلفن همراه) خود را لیست مشاهده خواهید کرد. مطمئن شوید که بلوتوث تلفن همراهتان توسط دستگاههای مجاور روشن و قابل مشاهده است. سپس آدرس MAC دستگاه خود را کپی کرده و با استفاده از دستور داده شده آن را جفت کنید:

pair <address of your phone>

سپس برای این ترمینال از شما یک رمز عبور خواسته میشود، سپس رمز عبور را در آنجا تایپ کنید و اینتر را بزنید. سپس همان رمز عبور را در تلفن همراه خود وارد کنید. تبریک اکنون گوشی اندروید شما با موفقیت با رزبری پای جفت شده است.

نصب بسته های لازم برای ارتباط بلوتوث با رزبری پای

همانطور که قبلاً گفته شد ، می توانید برای جفت کردن تلفن همراه از رابط دسک تاپ استفاده کنید. بعد از نصب Blueman، مانند تصویر زیر یک نماد بلوتوث در سمت راست دسکتاپ Raspberry Pi مشاهده خواهید کرد که با استفاده از آن می توانید جفت شدن تلفن همراه با رزبری پای را به راحتی انجام دهید.

ارسال اطلاعات از گوشی موبایل Android به Raspberry Pi

شماتیک پروژه

نمودار مدار بسیار ساده است ، ما فقط یک LED را به PIN 40 (GPIO 21) رزبری پای با مقاومت 220 اهم وصل کردیم:

شماتیک پروژه ارتباط بلوتوث

کنترل LED با برنامه AndroidT BlueTerm

اکنون پس ازجفت کردن تلفن همراه، برای برقراری ارتباط با Raspberry Pi با استفاده از آداپتور سریال بلوتوث، باید یک برنامه Android نصب کنیم.  ما اینجا برنامه BlueTerm را نصب کردیم. دانلود نرم افزار BlueTerm

همچنین می توانید از هر برنامه ترمینال بلوتوث دیگری که از طریق ارتباطات RFCOMM پشتیبانی می کند ، استفاده کنید.

حتما ببینید :  پروژه ساعت و تاریخ با لانچ پد MSP430 و ماژول DS3231

پس از بارگیری و نصب برنامه BlueTerm، کد پایتون داده شده در انتهای صفحه را اجرا کنید و دستگاه رزبری پای جفت شده را از برنامه BlueTerm انتخاب کنید.

کنترل LED با برنامه AndroidT BlueTerm

پس از اتصال موفق، در بالای نرم افزار پیام connected:raspberrypi را مشاهده میکنید.

ارتباط اندروید و رزبری پای با بلوتوث

اکنون می توانید ‘1’ یا ‘0 را در برنامه BlueTerm وارد کنید تا به ترتیب پین GPIO رزبری پای HIGH و LOW کنید، که باعث روشن و خاموش شدن ال ای دی متصل به رزبری پای میشود. برای خروج از برنامه ، “q” را فشار دهید. برای کنترل GPIO می توانید از صفحه کلید تایپ کنید یا با گوگل ویس، با استفاده از صدا پیام خود را ارسال کنید.

برنامه نویسی پایتون برای ارتباط بلوتوث با اندروید

برنامه Python برای کنترل پین های Raspberry Pi GPIO با برنامه اندرویدی بسیار ساده است. فقط باید کمی درباره کد مربوط به ارتباطات RFCOMM بلوتوث بیاموزیم. ابتدا باید کتابخانه سوکت بلوتوث را وارد کنیم که به ما امکان می دهد بلوتوث را با زبان پایتون کنترل کنیم. ما در بخش قبلی کتابخانه را نصب کرده ایم. کد کامل پروژه در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.

import Bluetooth

کد زیر مسئول ارتباط بلوتوث است :

server_socket=bluetooth.BluetoothSocket( bluetooth.RFCOMM ) 
//  ایجاد سوکت برای ارتباطات RFCOMM بلوتوث
port = 1
server_socket.bind(("",port))
server_socket.listen(1) // یک اتصال در لحظه
 
client_socket,address = server_socket.accept() // سرور درخواست اتصال را میپذیرد
print "Accepted connection from ",address
while 1:
 
 data = client_socket.recv(1024) 
// داده ها را دریافت کرده و حداکثر 1024 نویسه را همزمان دریافت میکند

با استفاده از کد زیر میتوانیم تعیین کنیم در صورت دریافت چه متنی، چه عملی انجام شود.

 if (data == "1"):  // اگر عدد 1 ارسال شد
  print ("GPIO 21 HIGH, LED ON")
  GPIO.output(21,1) // پین 21 فعال شود

بعد از اتمام برنامه نویسی ، client و سرور را با استفاده از کد زیر میبندیم.

client_socket.close()
server_socket.close()

فیلم عملکرد پروژه

با اتصال رله و تغییر کوچک در این پروژه می توانید وسایل منزل را کنترل کنید یااز طریق تلفن اندرویدی یک ربات را کنترل کنید. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن