پروژه الکترونیکپروژه خانه هوشمندپروژه های پایتونپروژه های رزبری پای

آموزش کنترل وسایل خانه با تلفن هوشمند و رزبری پای

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

راه اندازی خانه هوشمند با برد Raspberry pi

رزبری پای 3 دارای وای فای و بلوتوث داخلی است. بلوتوث همانطور که میدانید یک پروتکل ارتباط بی سیم بسیار محبوب است. بنابراین امروز قصد داریم با استفاده از تلفن همراه از طریق بلوتوث دستورات را به Raspberry pi بفرستیم و وسایل خانه را کنترل کنیم.

در این پروژه خانه هوشمند ما از رزبری پای 3 استفاده میکنیم که دارای بلوتوث داخلی است. بنابراین در صورت نیاز به استفاده از Raspberry pi 3 یا مدل بالاتر نیازی به استفاده از دانگل بلوتوث USB نداریم. ما برای این پروژه فقط به یک تلفن همراه و ماژول رله نیاز داریم. در اینجا ما از پروتکل بلوتوث RFCOMM برای ارتباطات بی سیم استفاده می کنیم. اگر Raspberry Pi 2 دارید ، لازم است از دانگل بلوتوث خارجی یا ماژول بلوتوث HC-06 استفاده کنید

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

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

راه اندازی خانه هوشمند با برد Raspberry pi

توضیحات مدار پروژه

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

شماتیک پروژه کنترل وسایل خانه با Raspberry pi

کنترل لوازم خانه با برنامه BlueTerm

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

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

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

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

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

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

اکنون می توانید ‘1’ یا ‘0 را در برنامه BlueTerm وارد کنید تا به ترتیب پین GPIO رزبری پای HIGH و LOW کنید، اینکار باعث میشود رله فعال و غیرفعال شود. شما میتوانید تعداد زیادی از این دستور ها برای پین های مختلف رزبری پای قرار دهید و هر پین را به رله ی مخصوص یک وسیله در خانه اختصاص دهید.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.
حتما ببینید :  ساخت دماسنج بدون تماس با آردوینو (مخصوص کرونا و ثبت در فرمت اکسل)

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

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

lsusb

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

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

sudo bluetoothctl

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

[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 مشاهده خواهید کرد که با استفاده از آن می توانید جفت شدن تلفن همراه با رزبری پای را به راحتی انجام دهید.

حتما ببینید :  تشخیص چشم، فک، دهان با OpenCV و رزبری پای

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

آموزش کد پایتون پروژه خانه هوشمند Raspberry pi

برنامه 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()

server_socket = bl Bluetooth.BluetoothSocket: ایجاد سوکت برای ارتباطات RFCOMM بلوتوث.

server_socket.listen (1): سرور یک بار یک اتصال را بپذیرد.

client_socket, address = server_socket.accept(): سرور درخواست اتصال را می پذیرد و آدرس مک را به آدرس متغیر اختصاص می دهد.

data = client_socket.recv(1024): داده ها را از طریق سوکت client_socket دریافت کرده و آن را به داده های متغیر اختصاص میدهد. حداکثر 1024 نویسه را می توان همزمان دریافت کرد.

فیلم عملکرد پروژه کنترل وسایل AC با موبایل

اینگونه میتوانیم فقط با وارد کردن اعداد در تلفن همراه خود، پین های رزبری پای و در ادامه وسایل AC خانه را کنترل کنیم. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

برای دانلود فیلم عملکرد پروزه خانه هوشمند با رزبری پای کلیک کنید.

موارد موجود در فایل : سورس کد ، شماتیک پروژه

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

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

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

محمد رحیمی

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

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

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

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