ساخت کنترل رله پیامکی با ماژول M66 کوییکتل

blog
۱۴۰۲-۰۳-۰۸
6 دقیقه

کنترل وسایل از راه دور همیشه جزو جذابیت های الکترونیک بوده، نمونه ای از این کار هم که متداول تر هست با کمک ماژول های gsm و پیامک انجام میشه، حالا ما توی این آموزش می خوایم با کمک ماژول M66 شرکت کوییتل یک کنترل رله پیامکی بسازیم، البته نه به همراه یک پردازنده خارجی (مثل آردوینو)، بلکه به صورت OpenCpu استفاده از این روش باعث میشه تا هزینه سخت افزار ما پایین تر بیاد و برد کوچیک تری هم داشته باشیم، پس با سیسوگ همراه باشید تا به سراغ این پروژه محبوب بریم.

 

در ابتدا باید بگم که شما برای انجام این پروژه باید با کار با OpenCpu توی ماژول M66 آشنا باشید برای اینکار میتونید این قسمت آمورش رو بررسی کنید:
کار با ماژول M66 – قسمت اول – کار با OpenCpu

سخت افزار

برای سخت افزار ما از برد توسعه ماژول M66 استفاده کردیم و برای اون یک مین برد زدیم تا وارد بحث طراحی برد برای خود ماژول نشیم در ادامه تصویر این برد رو مشاهده میکنید:
ساخت کنترل رله پیامکی با ماژول M66 کوییکتل

شماتیک برد بالا رو میتونید از اینجا مشاهده کنید، در ادامه بخش های مختلف شماتیک رو بررسی میکنیم:

تغذیه

ساخت کنترل رله پیامکی با ماژول M66 کوییکتل

ورودی برد ما 12 ولت هست و این 12 ولت مستقیم میره سر سیم پیچ های رله، غیر از اون یه رگولاتور L7805 هم اینجا داریم تا ولتاژ مورد نیاز برای هدر برد M66 رو تامین کنه، همچنین یه رگولاتور 3.3 ولت برای تامین تغذیه آیسی های PCF8574 و 7HC04 که در ادامه کاربرد اونها گفته میشه.

بخش کنترل

ساخت کنترل رله پیامکی با ماژول M66 کوییکتل

قسمت اصلی ما اینجا خروجی I2C ماژول M66 هست که به آیسی PCF8574 میره تا از طریق اون خروجی های ما کنترل بشه ، هر چند بدون این آیسی هم ما میتونستیم خروجی ها رو کنترل کنیم (حداقل الان چون فقط 4 تا خروجی داریم) اما یه مزیت مهم داره استفاده از این آیسی ، مسئله اینجاست که این ماژول های GSM ممکنه برخی اوقات ریست بشند که دلایل مختلفی میتونه داشته باشه و میشه گفت طبیعی هست توی این ماژول ها ، اما نکته اینه که اگر ما مستقیم خروجی ها رو به پایه های ماژول متصل کنیم هنگام ریست شدن وضعیت پایه ها از دست میره یا دست کم یه بار قطع و وصل میشه که اتفاق جالبی نیست! بعد از اون خروجی آیسی PCF8574 رو به یک آیسی NOT میدیم که استفاده ازش دوتا دلیل داره ، یکی همون NOT کردن خروجی های PCF (چون برعکس هست خروجیش) و دیگری بافر کردن خروجی PCF که بتونیم به کمک اون ترانزیستور ها رو فعال کنیم.

کنترل خروجی ها

ساخت کنترل رله پیامکی با ماژول M66 کوییکتل

قسمت آخر هم اینجاست که خروجی آیسی NOT به یک ترانزیستور رفته و از اونجا رله رو فعال میکنه، همچنین اینجا یک دیود هرزگرد و یک LED برای هر رله داریم.

کدنویسی

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

اولین بار که ماژول روشن میشه از هیچ شماره ای دستور نمیگیره.

بعد باید دکمه btn که روی برد هست رو 2 ثانیه نگه دارید تا سه تا led روی برد شروع به چشمک زدن بکنند.

حالا شماره اصلی که میخواید برد رو کنترل کنه باهاش یه پیام با محتوای “admin” بدید.
اگر پیام درست ارسال بشه چراغ ها از حالت چشمک زن در میاد.

و اون شماره به عنوان ادمین ذخیره میشه.

حالا چهار تا خروجی داریم.
با دستور
on out x
که به جای x از 1 تا 4 شماره خروجی رو مشخص میکنید.
با دستور
off out x
هم خاموش میشه
و با دستور
pulse out x
خروجی لحظه ای فعال میشه.

برای اضافه کردن کاربر هم از این دستور استفاده میشه.
add user +989100000000

فقط فرمت شماره باید به همین صورت باشه.

با دستور
user list
هم شماره کاربران برگردونده میشه.

چهار تا شماره هم جمعا ذخیره میتونید بکنید.

کد کامل این پروژه اینجا موجود هست، ما به بررسی بخش های مختلف کد فایل main.c میپردازیم که نسخه کاملش رو میتونید از اینجا بررسی کنید.
نقطه شروع کد ما تابع proc_main_task هست.

این قسمت کار خاصی انجام نمیده فقط میاد I2C رو راه اندازی میکنه و یک بار ال ای دی های روی خود برد توسعه رو خاموش روشن میکنه، در آخر تابع check_file صدا زده میشه این تابع میاد و بررسی میکنه که فایلی داخل UFS داخلی ماژول با نام data.txt موجود هست یا نه، در واقع ما از این فایل برای ذخیره شماره هایی که امکان دسترسی دارند رو مشخص میکنیم.

اگر که این فایل وجود داشت اطلاعات اون رو پردازش میکنه و در آرایه users میریزه.

دوباره به تابع proc_main_task  بر میگردیم، در ادامه یک حلقه while داریم که پیام های دریافتی از هسته ماژول رو دریافت میکنه که یکی از اونها دریافت SMS جدید هست، توی خط 758 این اتفاق میوفته.

اگر که پیام جدیدی دریافت شده بود تابع Hdlr_RecvNewSMS صدا زده میشه و اطاعات پیام هم به تابع ارسال میشه، با قسمت های اول این تابع کاری نداریم و به خط 292 میرسیم.

در اینجا بررسی میشه که آیا داخل حالت تنظیم admin هست یا نه (که این در 521 مشخص میشه و در صورتی که دکمه روی برد بیشتر از 2 ثانیه نگه داشته بشه )، اگر در این وضعیت بود شماره ای که از اون پیامک دریافت شده رو توی فایل data.txt ذخیره میکنه و فقط از اون دستور میگیره.

در ادامه محتویات متن دریافتی از طریق پیامک بررسی میشه تا عمل مرتبط با اون انجام بشه، توی خط 326 بررسی میشه که اگر پیامک با متن “add user” شروع شده بود شماره ای که وارد شده رو به لیست کاربر ها اضافه کنه.

در ادامه در خط 368 بررسی میشه که اگر دستور “user list” اومد لیست شماره هایی که میتونند دستور ارسال کنند رو برگردونه.

بعد از اون میرسیم به قسمت اصلی کارمون یعنی اگر دستور با “on out” شروع شد.

ابتدا در خط 380 بررسی میشه که بعد از دستور “on out” حتما یه عدد اومده باشه و نه کاراکتر یا چیز دیگه ای

بعد از اون هم اگر مثلا عدد 1 اومده بود، بیت اول متغیر all رو برابر 1 میکنه و در انتها تابع update_IO صدا زده میشه که دیتا ها رو برای PCF میفرسته تا اعمال بشند.

 

 

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

m66 sms relay

اطلاعات
9
0
لینک و اشتراک
profile

Mahdi.h  

متخصص الکترونیک

علاقه مند به سیستم های امبدد | http://mahdi2001h.ir

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
الکترونیکی گفت :
۱۴۰۲-۰۸-۲۳ ۰۸:۵۳

سلام وقت بخیر
این برنامه روی کدام 4 پایه برد m66 عمل میکند؟

profile
Mahdi.h   گفت :
۱۴۰۲-۰۹-۰۵ ۱۶:۲۰

سلام
متوجه سوالتون نشدم
کامل تر بپرسید

profile
حامد گفت :
۱۴۰۲-۰۸-۰۲ ۱۷:۵۹

سلام
وقت بخیر
برای راه اندازی این پروژه با اردینو یا esp32 و ماژول رله و ماژول gsm اموزشی دارید؟
روال کار با این روش فرق داره؟

profile
Masoud گفت :
۱۴۰۲-۰۳-۰۸ ۲۱:۳۴

با سلام و خسته نباشید
ممنون بابت آموزش، سوالم اینکه آیا سنسوری مثل ds18b20 و پروتکل onewire رو میشه با opencpu خوند؟

profile
Mahdi.h   گفت :
۱۴۰۲-۰۳-۰۹ ۱۱:۳۷

سلام
خواهش میکنم
به صورت مستقیم خیر ، اما میتونید از مبدل های one wire to i2c استفاده کنید و از طریق i2c با این سنسور ارتباط بگیرید

profile
sisoog user گفت :
۱۴۰۲-۰۳-۲۰ ۱۲:۵۸

یعنی کلا نمیشه پروتکل oneWire رو روی MC60 به صورت openCPU اجرا کرد؟

profile
Mahdi.h   گفت :
۱۴۰۲-۰۳-۲۰ ۲۱:۲۴

خیر. چراکه شما نمیتونید io ها رو با سرعت بالا صفر و یک کنید

profile
َََAmirAli گفت :
۱۴۰۲-۰۳-۰۸ ۰۹:۳۵

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

profile
Mahdi.h   گفت :
۱۴۰۲-۰۳-۰۸ ۱۱:۲۰

سلام
ممنون از لطفتون🙏🙏

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله