به نام خدا : تو این مطلب میخوام پروژه ترمینال بلوتوث ( چت روم بلوتوث یا هر چیزی که بهش میگید! ) با ماژول بلوتوث و اندروید رو بزارم براتون، به میکروکنترلر هم میتونید ماژول HC05 یا HC06 وصل کنید؛ برای توضیحات بیشتر فیلم ته مطلب رو ببینید؛ برنامه اندروید با Android Studio نوشتم که سورس کدش رو ته مطلب و داخل خود مطلب میزارم ( ارتباط موبایل با میکرو از طریق bluetooth قسمت 3 )
ارتباط موبایل با میکرو از طریق bluetooth قسمت 3
پروژه آردوینو
شماتیک پروژه : برای دیدن در اندازه اصلی، روی عکس کلیک کنید.
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 |
char command; String string; char command1; String string1; void setup() { Serial.begin(9600); // Serial Serial1.begin(9600); // Bluetooth } void loop() { string = ""; while(Serial.available() > 0) { // Read Data from Serial command = ((byte)Serial.read()); if( command == '\n' ) { Serial1.println( string ); // Send Data to Bluetooth break; } else { string += command; } delay(10); } string1 = ""; while(Serial1.available() > 0) { // Read Data from Bluetooth command1 = ((byte)Serial1.read()); if( command1 == '\n' ) { Serial.println( string1 ); // Send Data to Serial break; } else { string1 += command1; } delay(10); } } |
پروژه اندروید نوشته شده در محیط اندروید استودیو
کدهای پروژه اندروید : از زیر میتونید کدهای ظرروی این پروژه رو دانلود کنید ( حجم کمتر از 5 کیلو بایته! )
عکس پروژه در عمل : حسش نبود بگیرم؛ فایل apk ته مطلب گزاشتم، دانلود کنید تست کنید و کل پروژه رو ببینید ^_^
فیلم پروژه :
امیدوارم این پروژه مفید باشه براتون، فعلا یا علی.
مهمان
سلام اقای مهندس اگه ممکنه درباره نحوه نمایش داده های دریافتی روی گوشی یعنی اون قسمت ازبرنامه که که داده ها جای دیتای خوانده شده ، نوشته میشن راهنمایی کنید ممنون
مهمان
سلام وقتتون بخیر
من در قسمتی که اطلاعات رو از ماژول میگیره میام یک تابع معرفی میکنم که داده رو ذخیره کنم و در دیتا بیس داشته باشم ولی یه خط کد که اضافه میکنم دیگه پیام هارو از ماژول نمیگیره ممنون میشم اگر کمک کنید
if (activity != null) {
switch (msg.what) {
case DataIsReady:
if (Data == null) return;
tv_DataReaded.append(Data);
databaseHandler.insertNote(new Model_temp(Data, get_time()));
//work_with_data(Data);
Toast.makeText(ledControl.this, databaseHandler.getAllNotes().toString(), Toast.LENGTH_SHORT).show();
break;
}
}
تماما کد های شماست فقط این خط کد رو من اضافه کردم
databaseHandler.insertNote(new Model_temp(Data, get_time()));
که الان برنامه روی گوشی اجرا نمیشه و بریک میکنه
ولی اگر پاک کنم مثل قبل اجرا میشه
اگر میشه زودتر جواب بدین
نویسنده این مطلب
سلام – خطایی که میده رو تو نت سرچ کنید – اندروید استدیو نصب ندارم که تست کنم کدتون رو ببینم مشکل از کجاس.
مهمان
سلام. با تشکر از مطالب عالیتون.
و در میکرو نوع متغیری که داده های دریافتی درون اون میریزم از نوع char هست.لطفا راهنمایی بفرمایین، خیلی لازم دارم.ممنون
من از برنامه اندروید شما استفاده کردم و فایل apk را مستقیما بدون تغییر در سورس در گوشیم نصب کردم و عدد 255 یا هر کلمه و عددی را که بیش از یک کاراکتر است را که میفرستم به میکرو atmega32 به صورت تک کاراکتر در میکرو دریافت میکنم مثلاعدد 255 را به این شکل در میکرو دریافت می کنم ‘2 بعد’10 بعد ‘5 و بعد ’10 و بعد ‘5 و ’10 و اکثرا هم این 5 آخر را هم دریافت نمیکند.در نهایت پروژه من این طوریه که می خوام دمارو هر لحظه بخونم و به اندروید بفرستم و تو یه نمودار هم نشون بدم و همینطور یه سری دیتا که چندتا عدد مثل 255 و … هم از اندروید به میکرو بفرستم که تو همین قسمت فرستندش موندم.
چطوری میتونم اعداد و کلمات را کامل بفرستم نه تک تک؟؟؟
مهمان
سلام مهندس جان
اجرت قبول که رایگان زحماتت رو نشر میدی
یا حق
مهمان
سلام . با avr انجامش نمیدی؟؟ من اردوینر کلا کار نکردم.. ای کاش با avr هم انجام میدادین
مهمان
سلام
این پروژه خیلی عالیه جناب مهندس. یک سوال در موردش دارم.چطور می تونیم تو برنامه اندرویدش وقتی داریم رشته ای دریافت می کنیم اون را مثلا تو دیتا بیس ذخیره کنیم؟من تو برنامه بلوتوث فقط دقیقا متوجه نشدم کدوم تابع داره دریافت می کنه که بتونم روی اون دستوراتی اجرا کنم مثل همین که عرض کردم ذخیره کنم تو دیتا بیس
نویسنده این مطلب
سلام – آموزش کار با دیتابیس در اندروید استدیو تو نت هستش هم فارسی و هم غیر فارسی
مهمان
بله درسته مشکل من بیشتر با خود همین برنامه هست دقیقا نمی دونم کدوم تابع داره دیتا را میگیره که اونجا تابع برای ذخیره سازی در دیتا بیس را بنویسم
نویسنده این مطلب
شما یه کاری کن – آموزش برنامه نویسی جاوا رو دانلود کن و ببین – خیلی شبیه سی هستش – همت کنی تو ۱-۲ روز یادش میگیری کامل – بعد برنامه نویسی اندروید استدیو رو هم فیماش تو نت هستش – یه نگاه کن – مخصوصا فیلم سایت اسفندونه و irprogram
مهمان
سلام، سایت programchi.ir می تونه بهت کمک کنه!
مهمان
لطفا راهنمایی بفرمائید
نویسنده این مطلب
سلام
کاش تو مطلب مربوطه مطرح میکردی – رجیسترارو بررسی کن – احتمالا قسمت دریافت دیتا رو فعال نکردم.
مهمان
با عرض سلام و خسته نباشید
متاسفانه ماژول بلوتوث من دیتا ارسال نمی کنه نمی دونم مشکل از برنامه است یا ؟
این برنامه خود شماست دیتا را می گیره و موقعی که کاراکتر ؟ را ارسال می کنم ال سی دی را پاک می کنه تا اینجاش درسته ولی دستور بعدی که ارسال دیتا از طریق میکرو است و دریافت از طریق هایپر ترمینال این قسمت اجرا نمیشه
#include
#include
#include
#include
#asm
.equ __lcd_port=0x1b //PORTA
#endasm
void main()
{
char str[1];
int h=16;
int m=49;
int s=40;
UCSRA=0x00;
UCSRB=0x10;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=51;
lcd_init(16);
//سه خط زیر رو برای این میزاریم تا ببینیم آیا فرکانس روی ۸ مگا تنظیم شده است یا نه
//اگه فرکانس روی ۸ میگ باشه>>>وقتی متن نمایش داده شد>>۱ثانیه بعد از صفحه پاک میشه
lcd_putsf(“Press any key : “);
delay_ms(1000);
lcd_clear();
////////////////////////////////////////////////////////////////////////////////////
while(1)
{
gets(str,1);
if(str[0]==0x3f){
lcd_clear();
printf(“Time=%d:%d:%d/n”,h,m,s);
}
else
lcd_puts(str);
}
}