با سلام امروز با پروژه آردوینو کنترل وسایل برقی با صدا که خیلی کاربردی و تک هستش در خدمتتون هستیم ( من نمونشو توی سایتای ایرانی ندیدم ) توی این پروژه مطالب زیر رو یاد می گیریم :
شماتیک پروژه آردوینو :
پروژه آردوینو
کد پروژه آردوینو :
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 37 38 39 40 |
#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); } |
اینجا هم که میگیم اگه اطلاعاتی دریافت شده بود بیا و این شرط ها رو چک کن ببین اون اطلاعات دریافتی با کدوم یکی از این استرینگ ها برابره و کار متناظر هر استرینگ رو انجام بده.
چون فقط با این دستور جواب داد
برای دیدن بقیه دستورها به مطلب زیر برید : آموزش جامع آردوینو جلسه 19 string در arduino
خب حالا بریم سر بحث شیرین نرم افزار آندروید
اول که باید نرم افزار ضمیمه شده رو روی گوشیتون نصب کنید.
با ورود به برنامه منوی بالا رو می بینیم.
برای ورود به برنامه اول باید تنظیمات بلوتوث و اتصال به دستگاه رو انجام بدیم.
با انتخاب گزینه تنظیمات بلوتوث به قسمت تنظیمات بلوتوث هدایت میشیم :
بلوتوث گوشیمون رو وصل می کنیم با ماژول pair میشیم :
حالا که بلوتوث رو روشن کردیم با دکمه back برمیگردیم به نرم افزار و حالا از قسمت منو گزینه اتصال به دستگاه رو انتخاب می کنیم :
با انتخاب گزینه hc05 در صورت درست بودن اتصالات پیام conected در پایین صفحه ظاهر میشه و حالا میتونیم گزینه ورود به برنامه رو انتخاب کنیم که با این کار صفحه پایین ظاهر میشه :
با اومدن این قسمت با لمس عکس تنظیمات بالای صفحه وارد قسمت زیر میشیم :
که بالاش باز هم می بینیم دو تا عکس وجود داره که باهاشون می تونیم دستور های صوتی اضافه و حذف کنیم.
حالا اینها چیه اصلا؟
اون نوشته فارسی دستوری هست که ما میدیم و باید با این کلمات تطبیق بشه
حالا چون توی آردوینو ما نمیتونیم از کلمات فارسی استفاده کنیم میایم بجاش یه کلمه انگلیسی در نظر می گیریم و اون رو ارسال می کنیم.
برای اضافه کردن فرمان صوتی صفحه زیر رو داریم :
و برای حذف دستور ها هم صفحه زیر رو داریم :
حالا میتونیم از قسمت زیر فرمان صوتی بدیم و از برنامه لذت ببریم :
برای درک بیشتر موضوع حتما فیلم پایین رو ببینید، البته قبلش یه توضیح بدم راجع به فیلم که باعث سردرگمی نشه :
اونجاش که دستورها رو اضاف میکنم و میگم چراغ قرمز روشن و متن جایگزین رو مشخص میکنم بعدش فیلم stop شده تا حجم فیلم خیلی زیاد نشه و در همین حین بقیه دستور هایی که بعد از stop نشون داده میشه رو اضاف کردم.
http://www.aparat.com/v/UOIE6
تازه کارشناسیمو توی رشته الکترونیک تموم کردم علاقه مند به برنامه نویسی حالا هرچی میخواد باشه (ولی آردوینو یه چیزه دیگس :دی) و علاقه بسیاااار زیاد به پروژه های نورپردازی.
(بعد از ثبت ایمیلتون حتما باید به ایمیلتون برید و اشتراکتون رو فعال کنید.)
سلام ببخشید میشه ایمیل یا آی دی تون رو داشته باشم ؟
توی سایتتون نیست؟
یه سوال خیلی مهم درمورد پروژم ازتون داشتم🙏
تو رو خدا کمکم کنید🙁
سلام
تستش کردم واس من که به ماژ<ل وصل نشد
سلام.
میتونم از بورد های دیگه آردویتو استفاده کنم، آخه میخوام ندارم کوچیک بشه که بگذارم توی باکس کنار لامپ.
پیشنهادت از اینها که میگم کدوم هست؟
برد آردوینو Pro Micro دارای پردازنده مرکزی ATmega32u4
برد آردوینو Pro Mini دارای پردزنده مرکزی ATmega328
برد آردوینو Pro Mini دارای پردزنده مرکزی ATmega328 محصول BAITE
برد آردوینو Pro Mini دارای پردزنده مرکزی ATmega328 محصول BEE
برد آردوینو NANO دارای پردازنده مرکزی ATmega328 و و چیپ مبدل CH340
چند تای دیگه هم هست که اینجا سرچ کردم.
http://shop.aftabrayaneh.com/Arduino_Boards/
هرکدوم اوکی بدی انشأالله میخوام بسازم،کلی هم دعات میکنم.
یه سوال کوچولو هم میپرسم لطفا اینم جواب بده: برای پروگرام کردن این مینی آردوینو باید پروگرامر دیگه ای بخرم یا با مال خودم که ISP داره هم میشه؟
ممنون از آموزش خوبت.
سلام ببخشید یه سوال داشتم
اگه بخوام اینو با ۵ متر ال ای دی نواری درست کنم
اونوقت چکار باید بکنم و ولتاژ بندیش چجوریه
سلام خوبین خسته نباشید
من توی یک پروژه که شبیه همین پروژه هست نیاز به کمک داشتم
می خواستم ببینم راه ارتباطی جز همین سایت دارین که از اون طریق باهاتون صحبت کنم؟
خیلی ممنون
سلام
برا بحث قسمت موبایل که تو سایت های برنامه نویسی اندروید بپرسین زود تر به جواب میرسین – برا قسمت میکرو و بلوتوثش هم مطلب تو سایت و نت به اندازه کافی هستش – نویسنده مطلب رفته سربازی
با سلام ایا کد نویسی 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 انجام دادم ،برنامه اندرویدشم خودم خیلی ساده نوشتم.
این شکلیه برنامم
http://link.dmf313.ir/Nk
شما سورس این برنامه رو دارین؟
لینکتون که مشکل داره
سورس کدوم برنامه رو؟
سلام خسته نباشی
این اندرویید را میگیم سورس اش را می ذاری
راستی می توانی یه بر نامه انتقال دیتا با بلوتوث را بذاری سورس اندرویی اش را میگم
تشکر
برادر دیگه همه چی آماده که نمیشه
ایشالا اگه وقت شد آموزش آندرویدشو میزارم تو سایت.