با سلام امروز با پروژه آردوینو کنترل وسایل برقی با صدا که خیلی کاربردی و تک هستش در خدمتتون هستیم ( من نمونشو توی سایتای ایرانی ندیدم ) توی این پروژه مطالب زیر رو یاد می گیریم :
- چطوری ماژول hc05 (بلوتوث) رو بوسیله آردوینو راه بندازیم.
- چطوری از سریال نرم افزاری استفاده کنیم.
- چطوری به آردوینو فرمان صوتی بدیم.
- چطوری از نرم افزار آندروید فرمان صوتی استفاده کنیم.
- و …
پروژه آردوینو کنترل وسایل برقی با صدا
شماتیک پروژه آردوینو :
پروژه آردوینو
کد پروژه آردوینو :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#include <SoftwareSerial.h> SoftwareSerial BTserial(2, 3); // Connect the HC-05 TX to Arduino pin 2 RX. // Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider. #define red 5 #define white 6 #define yellow 7 char c = ' '; String s = ""; void setup() { Serial.begin(9600); BTserial.begin(9600); pinMode(red,OUTPUT); pinMode(white,OUTPUT); pinMode(yellow,OUTPUT); } void loop() { s= ""; while(BTserial.available()>0){ c = BTserial.read(); s += c; //Serial.println(c); delay(1); } if (s != ""){ Serial.println(s); if (s.startsWith("redOn")) digitalWrite(red , HIGH); else if (s.startsWith("redOff")) digitalWrite(red , LOW); else if (s.startsWith("whiteOn")) digitalWrite(white , HIGH); else if (s.startsWith("whiteOff")) digitalWrite(white , LOW); else if (s.startsWith("yellowOn")) digitalWrite(yellow , HIGH); else if (s.startsWith("yellowOff")) digitalWrite(yellow , LOW); } } |
توضیح خط به خط برنامه :
1 2 |
#include <SoftwareSerial.h> SoftwareSerial BTserial(2, 3); |
توی خط اول کتابخونه سریال نرم افزاری رو به برناممون اضافه می کنیم. دلیل این کار اینه که نمیخوایم از پایه rx و tx روی آردوینو برای وصل کردن به ماژول استفاده کنیم چون اگه از این پایه ها استفاده کنیم دیگه نمیتونیم از سریال مانیتور بهره ببریم و اطلاعات روش نمایش بدیم.
خط دومم که یک شی از این کتابخونه ساختیم و میگیم که پایه tx ماژول به پایه 2 آردوینو و پایه rx ماژول به پایه 3 آردوینو وصل خواهد شد.
1 2 3 |
#define red 5 #define white 6 #define yellow 7 |
اینا هم که واسه خوانایی بیشتر به برنامه اضافه میشه یعنی پایه 5 به ال ای دی قرمز، پایه 6 به ال ای دی سفید و پایه 7 به ال ای دی زرد وصل میشه.
1 2 |
char c = ' '; String s = ""; |
توی این دو خط هم که یک متغیر از نوع کاراکتر و یکی دیگه هم از نوع استرینگ تعریف میکنیم.
1 2 3 4 5 6 7 8 |
void setup() { Serial.begin(9600); BTserial.begin(9600); pinMode(red,OUTPUT); pinMode(white,OUTPUT); pinMode(yellow,OUTPUT); } |
می رسیم به بخش setup برنامه که باودریتها رو تنظیم میکنیم چون توی حالت پیشفرض ماژول hc05 باودریتش 9600 هست پس اینجا هم 9600 می زاریم.
و در آخرشم پایه هایی که ال ای دی هامون بهش وصله رو به عنوان خروجی تعریف کردیم.
میایم به قسمت loop برنامه
1 |
s= ""; |
در ابتدای هر بار تکرار شدن حلقه مقدار اطلاعاتی که دفعه قبل دریافت کردیم رو خالی می کنیم تا اطلاعات جدید رو بریزیم داخلش.
1 2 3 4 5 |
while(BTserial.available()>0){ c = BTserial.read(); s += c; delay(1); } |
حالا اینجا میگیم اگه اطلاعات توی بافر موجود بود(یعنی ما با نرم افزار اطلاعات فرستاده بودیم) شروع کن به خوندن کاراکتر به کاراکتر این اطلاعات و این کاراکترها رو در کنار هم قرار بده.
1 2 3 4 5 6 7 8 9 |
if (s != ""){ Serial.println(s); if (s.startsWith("redOn")) digitalWrite(red , HIGH); else if (s.startsWith("redOff")) digitalWrite(red , LOW); else if (s.startsWith("whiteOn")) digitalWrite(white , HIGH); else if (s.startsWith("whiteOff")) digitalWrite(white , LOW); else if (s.startsWith("yellowOn")) digitalWrite(yellow , HIGH); else if (s.startsWith("yellowOff")) digitalWrite(yellow , LOW); } |
اینجا هم که میگیم اگه اطلاعاتی دریافت شده بود بیا و این شرط ها رو چک کن ببین اون اطلاعات دریافتی با کدوم یکی از این استرینگ ها برابره و کار متناظر هر استرینگ رو انجام بده.
خب حالا بریم سر بحث شیرین نرم افزار آندروید
اول که باید نرم افزار ضمیمه شده رو روی گوشیتون نصب کنید.
با ورود به برنامه منوی بالا رو می بینیم.
برای ورود به برنامه اول باید تنظیمات بلوتوث و اتصال به دستگاه رو انجام بدیم.
با انتخاب گزینه تنظیمات بلوتوث به قسمت تنظیمات بلوتوث هدایت میشیم :
بلوتوث گوشیمون رو وصل می کنیم با ماژول pair میشیم :
حالا که بلوتوث رو روشن کردیم با دکمه back برمیگردیم به نرم افزار و حالا از قسمت منو گزینه اتصال به دستگاه رو انتخاب می کنیم :
با انتخاب گزینه hc05 در صورت درست بودن اتصالات پیام conected در پایین صفحه ظاهر میشه و حالا میتونیم گزینه ورود به برنامه رو انتخاب کنیم که با این کار صفحه پایین ظاهر میشه :
با اومدن این قسمت با لمس عکس تنظیمات بالای صفحه وارد قسمت زیر میشیم :
که بالاش باز هم می بینیم دو تا عکس وجود داره که باهاشون می تونیم دستور های صوتی اضافه و حذف کنیم.
حالا اینها چیه اصلا؟
اون نوشته فارسی دستوری هست که ما میدیم و باید با این کلمات تطبیق بشه
حالا چون توی آردوینو ما نمیتونیم از کلمات فارسی استفاده کنیم میایم بجاش یه کلمه انگلیسی در نظر می گیریم و اون رو ارسال می کنیم.
برای اضافه کردن فرمان صوتی صفحه زیر رو داریم :
و برای حذف دستور ها هم صفحه زیر رو داریم :
حالا میتونیم از قسمت زیر فرمان صوتی بدیم و از برنامه لذت ببریم :
برای درک بیشتر موضوع حتما فیلم پایین رو ببینید، البته قبلش یه توضیح بدم راجع به فیلم که باعث سردرگمی نشه : اونجاش که دستورها رو اضاف میکنم و میگم چراغ قرمز روشن و متن جایگزین رو مشخص میکنم بعدش فیلم stop شده تا حجم فیلم خیلی زیاد نشه و در همین حین بقیه دستور هایی که بعد از stop نشون داده میشه رو اضاف کردم؛ http://www.aparat.com/v/UOIE6
مهمان
سلام برنامه اش و ریختم همون کارارا کردم ولی کار نکرد فایل ino را دارید مستقیم بریزم امتحان کنم
مهمان
سلام
به جای ماژول hc_05 تو پروژه کنترل وسایل برقی با صدا میشه از hc_06 استفاده کرد ؟ کد همینه؟
مهمان
با عرض سلام و خداقوت
در صورتی که این اپلیکشین می تونست به ماژول های بلوتوث که ble هستن متصل بشه خیلی خوب می شد!
آیا این امکان وجود داره؟؟؟
مهمان
سلام
آقا مهدی واقعا دمت گرم..
فقط یه سوال دارم.. سورس برنامه رو توروخدا نمیدی؟ خیلی خیلی نیاز دارم.
مهمان
نیاز باشه پولشم میدم
مدیر سایت
سلام – دوست عزیز مطلب رو من ننوشتم – اگه من نوشته بودم که سورس تمام قسمتهای برنامه رو میزاشتم؛ حالا باید نویسنده مطلب بیاد و نظر شما رو جواب بده.
مهمان
دمت گرم .دیگه نیازی نیست. خودم یه برنامه خفن واسش نوشتم
مدیر سایت
دوس داشتی بده پیوست کنم انتهای مطلب بقیه هم استفاده کنن.
مهمان
میتونی برای من هم بفرستی؟
مهمان
سلام
میشه یه لطفی کنید لینک دانلود برنامه اندردیش روقرار بدید!؟
مهمان
سورس که قرار گرفته !!!!
مهمان
سلام می شه تو این پروژه به جای led رو لامپ اتاق انجام داد با یه رله؟
اگه می شه ، می شه دقیقتر شو توضیح بدین؟
مهمان
سلام من برنامه بالا که کنترل صوتی با ماژول hc05 بود رو نوشتم .طبق همون روال رفتم اما جواب نگرفتم .led هارو تست کردم سالم هست .لطفا راهنمایی کنید .مشکل کجا میتونه باشه
مهمان
سلام امکان دانلود برنامه برام فراهم نمیشه میشه راهنماییم کنید
متشکر
مهمان
سلام. ببخشید نرم افزار نصب نمیشه. کانال یا آیکون برنامرو ندارید ک دانلود کنیم؟
مهمان
سلام ببخشید اون متغیر کاراکتر و استرینگ واسه چی باید ازینا استفاده کنیم؟
مهمان
سلام من به کد برنامه اندروید شما برای پروژه ام نساز دارم
مهمان
سلام یاشا قارداش
با این فرمان صوتی چند کانالو میشه کنترل کرد؟
مهمان
از کجا باید نرم افزار رو دانلود کنم ؟؟
مهمان
سلام.من وقتی بخوام مثلا بگم لامپ روشن.این دستورو چطوری بلوتوس تشخیص میده برای آردینو که بفهمه و براش بفرسته
مهمان
تشخیص صوت توسط اپ موبایل انجام میشه نه ماژول بلوتوث و آردوینو
وقتی اپ تشخیص داد یه عبارت متناسب به صورت سریال میفرسته برای ماژول و از اونجا به آردوینو
مهمان
با سلام
ایا به led ها باید مقاومت هم اضافه کرد؟
مدیر سایت
سلام
اضافه کنی بهتره.
مهمان
سلام ببخشید میشه ایمیل یا آی دی تون رو داشته باشم ؟
توی سایتتون نیست؟
یه سوال خیلی مهم درمورد پروژم ازتون داشتم?
تو رو خدا کمکم کنید?
مهمان
سلام
تستش کردم واس من که به ماژ<ل وصل نشد
مهمان
سلام.
میتونم از بورد های دیگه آردویتو استفاده کنم، آخه میخوام ندارم کوچیک بشه که بگذارم توی باکس کنار لامپ.
پیشنهادت از اینها که میگم کدوم هست؟
برد آردوینو Pro Micro دارای پردازنده مرکزی ATmega32u4
برد آردوینو Pro Mini دارای پردزنده مرکزی ATmega328
برد آردوینو Pro Mini دارای پردزنده مرکزی ATmega328 محصول BAITE
برد آردوینو Pro Mini دارای پردزنده مرکزی ATmega328 محصول BEE
برد آردوینو NANO دارای پردازنده مرکزی ATmega328 و و چیپ مبدل CH340
چند تای دیگه هم هست که اینجا سرچ کردم.
http://shop.aftabrayaneh.com/Arduino_Boards/
هرکدوم اوکی بدی انشأالله میخوام بسازم،کلی هم دعات میکنم.
یه سوال کوچولو هم میپرسم لطفا اینم جواب بده: برای پروگرام کردن این مینی آردوینو باید پروگرامر دیگه ای بخرم یا با مال خودم که ISP داره هم میشه؟
ممنون از آموزش خوبت.
مهمان
پیشنهاد میکنم از آردوینو Pro mini یا mini05 استفاده کنید، اما میتونید از بقیه آردوینو ها هم استفاده کنید
مهمان
سلام ببخشید یه سوال داشتم
اگه بخوام اینو با ۵ متر ال ای دی نواری درست کنم
اونوقت چکار باید بکنم و ولتاژ بندیش چجوریه
مهمان
اگه ۱۲ ولته با رله میشه
مهمان
سلام خوبین خسته نباشید
من توی یک پروژه که شبیه همین پروژه هست نیاز به کمک داشتم
می خواستم ببینم راه ارتباطی جز همین سایت دارین که از اون طریق باهاتون صحبت کنم؟
خیلی ممنون
مدیر سایت
سلام
برا بحث قسمت موبایل که تو سایت های برنامه نویسی اندروید بپرسین زود تر به جواب میرسین – برا قسمت میکرو و بلوتوثش هم مطلب تو سایت و نت به اندازه کافی هستش – نویسنده مطلب رفته سربازی
مهمان
با سلام ایا کد نویسی hc05 با ماژول بلوتوث CC2540 BLE 4.0 XM یکی هست
میشه راهنمایی کنید.
مدیر سایت
سلام- هردوشون با سریال راه اندازی میشن ولی روال کار این دومیه رو نمیدونم که تنظیماتی چیزی هم میخواد یا مثل hc05 ساده هستش کار باهاش
مهمان
سلام ممنون از مطالب خوب وعالی شما

اگر امکانش وجود داره قسمت اندروید نرم افزاری رو که نوشتید اموزش بدید
مهمان
سلام و خسته نباشید میشه آموزش کنترل رله با آردوینو و hc05رو بزارید؟؟؟؟
مدیر سایت
سلام – به زودی میزارم – طی روز های آینده – پروژه هاشو ۲ تاشو انجام دادم ( با hc05 ) یه ۴ تا دیگه مونده
مهمان
با سلام و عرض ادب و احترام
مهندس جان توی برنامه اندروید در قسمت اضافه کردن فرمان صوتی یه مشکل وجود داره!
رنگ زمینه و رنگ فونت نوشته یکیه (هردو سفید) و اصلا قابل خوندن نیست.
حتی تکست باکس ها هم غیر قابل تشخیصن
این هم لینک اسکرین شات از مشکل برنامه
http://uupload.ir/files/by7_screenshot_%DB%B2%DB%B0%DB%B1%DB%B7-%DB%B0%DB%B4-%DB%B2%DB%B3-%DB%B1%DB%B3-%DB%B1%DB%B9-%DB%B4%DB%B3.png
ممنون از سایت خوبتون
مهمان
سلام اسم برنامش چی هست
مهمان
سلام
ممنون برای کار خوبتون.
ببخشید من فاز با فاز پروژه رو پیاده سازی کردم.
توی سخت افزار کار به خوبی پیش رفت.
نرم افزار هم روی گوشی نصب شد.
گوشی با بلوتوث هم جفت شد.
اما
هنگان آزمایش صدا خطای “عدم ارتباط با سرور گوگل” میداد.
علت چیه؟
آیا باید همزمان با کارکرد نرم افزار و دستگاه به اینترنت وصل باشم؟
ممنون
نویسنده این مطلب
سلام آره برای پشتیبانی از زبان فارسی باید به اینترنتم وصل باشید در صورتی که اگه انگلیسی باشه نمیخواد
مهمان
من به اینترنت وصل بودم ولی باز اررور گوگل رو میداد
مهمان
سلام یه سوال داداش راجب برد وقطعات بیشتر میشه توضیح بدی
نویسنده این مطلب
سلام قطعات که همش معلومه راجع به چیش دقیقا توضیح بدم؟
مهمان
آقا ما همچنان منتظر راهنمایی شما هستیمااااااا!!
مهمان
آقا مهدی با سلامی دوباره ما مزاحم شدیم باز با یه عالمه سوال
من همین پروژه رو میخوام انجام بدم با یه چیز اضافه. میخوام وقتی دستور رو ارسال کردم که اجرا کنه، همراه با اجرا کردن با صدا تایید کنه. مثلا اگه گفتم چراغ یک فعال، همراه با فعال کردن بگه “چراغ یک فعال شد”. واسه این کار باید از این ماژول های SD card reader بگیرم درسته؟ حقیقتش من سایتتو خوب نگشتم نمیدونم آموزش پخش صدا با این ماژول و اینکه چطوری صدا رو به بلندگو ارسال کنیم رو گذاشتی یا نه. اگه موجود هست لینکشو لطفا بذار خدا خیرت بده. اگر هم اموزشش موجود نیست که…. توروخدا آموزش بده دیگه :'(
البته اینم بگم که مودم ADSL که دارم فلش میخوره. میشه با ماژول وای فای به مودم وصل بشم و صدا ها رو از فلشی که به مودم خورده رو با آردوینو اجرا کنم؟ خلاصه تا اینجا منظورم اینه که یه راهی به من نشوم بدی که بتونم صداهای ضبط شده رو با آردوینو پخش کنم.
یه سوال دیگه هم دارم که مربوط به این مطلب نیست اما با اجازت همینجا مطرح میکنم.
ماژول میکروفن گرفتم (از همین ۳-۴ تومنی ها) میخوام صدا رو دریافت کنه و از ۰ تا ۱۰۲۳ یه مقداری رو تو سریال مانیتور نشون بده از همون دستور analogRead استفاده کرم و پایه out رو به A0 در آردوینو زدم اما یه سری اعداد مزخرف نشون میده. اصلا نمیدونم این ماژول قابلیت analogRead داره؟ اگه داره، تابعی، کتابخونه ای چیزی باید فراخوانی کنم؟ (تو حالت digitalRead خوب کار میکنه)
توروخدا اگه میشه زود جواب بده فردا میخوام برم بازار چیزایی که معرفی کنی رو بگیرم. راهم تا بازار خیلی دوره سخته بخوام یه روز دیگه برم.
آقا دست گلتم درد نکنه واسه زحماتی که واسه ما مبتدی ها میکشی.
نویسنده این مطلب
سلام واسه این کار همون ماژولایی که sd کارت میخورن که خودت گفتی مناسب ترین انتخابه آموزششم فک نکنم تو سایت باشه ولی کاره سختی نیس من و آقا مهدی هم ماژولشو نداریم که بخوایم آموزششو بزاریم با اون مودمی هم که گفتی نمیشه اگه هم بشه از سواد من خیلییی بالاتره
واسه اون میکروفنه هم اطلاعات چندانی ندارم
مهمان
فکر میکنم مودم هایی که فلش میخورن خیلی راحت فلش رو تو شبکه به اشتراک میذارن مثل یک درایو معمولی
مهمان
سلام میشه بدون استفاده از ماژول بلوتوث و اتصال یه میکروفون به میکرو اینکار رو انجام داد
که احتیاج به گوشی نباشه
نویسنده این مطلب
سلام بله ماژولش موجوده سرچ کنید پیداش می کنید
مهمان
voice recognition module V3
دنبال این بگرد اما گرونه
مهمان
سلام میشه از این مدار خروجی های بیشتری هم گرفت؟
نویسنده این مطلب
سلام بله ولی باید برنامه رو تغییر داد
مهمان
سلام میشه خروجی های این مدار رو بیشتر کرد؟
مهمان
سلام برای این بروژه از هر آردوینویی میشه استفاده کرد مال من MEGA 2560 هست
ممنون میشم جواب بدید
نویسنده این مطلب
سلام ممکنه سریال نرم افزاری واسه این پایه ها توی mega جواب نده حالا تست کنید به احتمال زیاد باید جواب بده البته به جای Serial چون اونجا چند تا سریال داره باید مشخص کنید که از کدومش میخواید استفاده کنید. موفق باشید
مهمان
سلام مهندس جان عالی بود
من مدارا بستم اما داخل نرم افزار وقتی فرمان میدم هیچکدام از چراغها روشن نمیشه
نویسنده این مطلب
توی نرم افزار پیامی ، اروری چیزی نمیده؟
کار رو مرحله به مرحله ببرید جلو
مهمان
نه اصلا ارور نمیده
نویسنده این مطلب
کد رد مرحله به مرحله ببرید جلو حتما یه جا اشتباه کردین ان شاالله درست میشه
مهمان
با سلام مهندس اين تبلت بايد به اينترنت نصب بشه يا از طريق خود نرم افزار android اين كار انجام ميشه
مدیر سایت
سلام
بلوتوث.
مهمان
سلام میخواستم بدونم میشه بجای استفاده از ال ای دی از رله استفاده کرد وسایل برقیو خواموش روشن کرد؟؟
مدیر سایت
سلام-بله میشه ولی رله یه مدار راه اندازی چیزی میخواد – مدارش تو نت هستش
نویسنده این مطلب
میتونید از ماژولهای توی بازار استفاده کنید فقط به active-high یا active-low بودنش دقت کنید.
مهمان
سلام ، تشکر از پروژه
لطفا اگه کد هم نمیذارید برای همین اپی که نوشتین یه توضیحاتی بذارید
خیلی ممنون
مهمان
من فقط میخوام بگم دمت گرم من کارشناسی تغذیه دارم ولی دیونه الکترونیکم من دستتو میبوسم دادا یعنی نمیدونم چی بگم خدای دمت گرم ایشالله از ته دل میگم هرچی میخوای خدا بهت بده ایشالله
مهمان
سلام
خدا قوت
ممنون بابت آموزش هایی که میذارین
ببخشید میشه یه آموزش درباره برد وای فای esp8266 بذارین . مخصوصا کنترل و فرمان دادن به این برد از طریق اینترنت
کلا در مورد مبحث اینترنت اشیا آموزش بذارین (آردوینو ) ممنون میشم
نویسنده این مطلب
سلام ممنون
توی لیست آموزش هامون هست انشاالله به زودی شروع میکنیم
نویسنده سایت
سلام دمت گرم.
اون برنامه ای که روی گوشی نصب میشه رو هم خودتون نوشتید؟
نویسنده این مطلب
سلام بله
مهمان
دمتون گرم
ولی من اینو با avr انجام دادم ،برنامه اندرویدشم خودم خیلی ساده نوشتم.
این شکلیه برنامم
—
شما سورس این برنامه رو دارین؟
نویسنده این مطلب
لینکتون که مشکل داره
سورس کدوم برنامه رو؟
مهمان
سلام خسته نباشی
این اندرویید را میگیم سورس اش را می ذاری
راستی می توانی یه بر نامه انتقال دیتا با بلوتوث را بذاری سورس اندرویی اش را میگم
تشکر
نویسنده این مطلب
برادر دیگه همه چی آماده که نمیشه
ایشالا اگه وقت شد آموزش آندرویدشو میزارم تو سایت.
مهمان
اگر اینو بزاری سورسش رو خیلی دعات میکنیم !
اگرم نشد لطفا سریعتر آموزشش رو بزار