آموزش پروژه caller ID با استفاده از میکروکنترلر avr
با سلام خدمت همه دوستان
در این مطلب یک پروژه caller id با استفاده میکروکنترلر avr خواهیم داشت.
سخت افزار با استفاده از ای سی کالر آي دي با تراشه هاي MT 8843 و يا HT9032 قابل انجام است.
در این پروژه از ای سی HT9032 استفاده کرده ام که از روبوکیو یا جوان الکترونیک میتوانید تهیه کنید .تمام قطعات این پروژه را از سایت روبوکیو تهیه شده است.
هر دو تراشه با سرعت ۱۲۰۰bps اطلاعات را از طریق یوزارت ارسال مي کنند.
براي ارتباط سريال ،اسيلاتور اين تراشه ها با BAUD RATE دائما در حال نوسانن ،حتما يک خازن سراميک با ظرفيت ۱۰۰nf با تغذيه آي سي موازي کنيد تا روي خط تغذيه نويز نداشته باشيد.
بين زنگ اول و دوم اطلاعات با نرخ ۱۲۰۰ بيت بر ثانيه ارسال ميشود،اين اطلاعات از جنس کاراکتر اند، پس از چند بايت علامت(حدود ۳۰ بايت علامت) اطلاعات اصلي که مربوط به شماره مخاطب ، ساعت تماس و تاريخ تماس ارسال ميشود .
طبق تست هایی که با این ای سی انجام دادم با خطوط ایرانسل، همراه اول ، تلفن ثابت داخل استان و خارج استان تماس میگرفتم فرمت شماره دریافتی با هم فرق میکردند که این مسئله مربوط به مخابرات می شود و پس از تست های زیادی و تغییرات برنامه موفق شدم تمامی شماره هارا به درستی از ای سی استخراج کنم.
چند نمونه از خروجی دیتای ای سی را برای شما قرار می دهم:
1 2 3 4 5 6 7 8 9 |
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU€0109220422083368%ًپ€" or !` @ @ ! `@UUUUUUUUUUUUUUص€01242058 1333301122»@@ P !@@ a@D P`Qaa`aaaa |
اینجا من دو نمونه از خروجی ماژول را قرار دادم همانطور که میبینید در حال عادی و اماده به کار ای سی یک سری دیتای بی ربط که دائمنا در حال پرینت شدن هستن می فرستد (مربع ها و کاراکتر های ناشناخته) به محض اینکه با خط ،تماس برقرار میکنید دیتای شماره و ساعت و تاریخ پرینت می شود.
مورد نمونه اول شماره داخل استان تهران بدون پیش شماره ۰۲۱ و مورد دومی تماس از رشت بدون ۰ و شماره همراه اول در ابتدا ۹۸ دارد و شماره ایرانسل در ابتدا ۰ دارد.این پیپچیدگی در فرمت شماره بسیار کار را مشکل میکند اما بنده برای تمام حالت ها برنامه رو نوشتم و در اخر کار و پس محاسبات یک شماره ۱۱ رقمی به شما تحویل می دهیم که هم میتوانید روی lcd نمایش دهید و هم ان را از طریق پیامک توسط ماژول sim800L بفرستید و میتوانید این سخت افزار را مثلا در محل تلفن منزل متصل کنید تا وقتی کسی با تلفن منزل تماس گرفت و شما حضور نداشتید شماره به شخص تماس گیرنده به گوشی شما یا بهتره بگم به شماره شما پیامک شود و به همین منظور من در سخت افزار یک صفحه کلید یا keypad هم پیش بینی کردم که بتوانید شماره خود را به میکرو تعریف کنید و این شماره در حافظه ایپرام میکرو ذخیره میشود تا اگر شخصی با تلفن منزل یا شرکت تماس گرفت شماره شخص تماس گیرنده به شماره شما توسط sim800l پیامک شود و همچنین کاربرد های دیگری نیز میتوانید داشته باشید.
یک نکته هم خدمتتون بگم که این ای سی ht9032 یک پایه پاور هم دارد که شما با صفر و یک کردن این پایه می توانید ای سی را خاموش و روشن کنید در مواقعی که خاموش است دیگر برای شما کاراکتر های پرت و پلا ارسال نمی شود و فقط موقع زنگ خوردن ای سی را روشن کنید که برای اینکه بفهمید کی زنگ خورده یا تعداد دفعات زنگ خوردن رو داشته باشید یه یک مدار آشکار ساز ring نیاز دارید که شماتیک اون هم براتون قرار میدم.
در این پروژه دوعدد خازن mkt هم قرار دارند که ولتاژ کاری ان ها باید بالای ۵۰ ولت باشد
همانطور که تصویر مدار را میبینید استفاده از قابلیت ماژول پیامک و lcd و keypad کاملا اختیاری است و توسط پین هدر انجام می شود:
همچنین مدار با استفاده از یک باتری لیتیومی ۳٫۷ ولتی(فول شارژ ۴٫۲ ولت) به راحتی راه اندازی می شود که در بالا پین های ان را مشاهده میکنید(با ماژیک نوشتم B+ , B- ):
پس از اینکه با وقفه خارجی میکرو وجود سیگنال رینگ را تشخیص دادیم پایه شماره ۵ ای سی را صفر میکنیم تا فعال شود و شماره تلفن را به میکروکنترلر بفرستد.
دقت کنید ولتاژ خط تلفن در بیشترین حالت حدود ۵۰ ولت است بنابراین خازن ها با ولتاژ ۵۰ولت تهیه کنید. توضیحات دقیق تر به صورت زیر است:
سورس کد به زبان سی در کامپایلر کدویژن و طراحی مدار در نرم افزار التیوم دیزاینر انجام شده است.
دقت کنید که فرکانس کاری میکرو ۸ مگاهرتز است و حتما از کریستال خارجی استفاده کنید.
جهت تهیه پروژه میتوانید از لینک زیر اقدام کنید: