فهرست مطالب:
- مرحله 1: منبع تغذیه
- مرحله 2: ورودی های دیجیتال
- مرحله 3: خروجی های دیجیتال
- مرحله 4: نوسان ساز Micro Controller
- مرحله 5: LED های نشانگر
- مرحله 6: مدار تنظیم مجدد پردازنده میکرو
- مرحله 7: ماژول SIM800L
- مرحله 8: کنترل کننده میکرو
- مرحله 9: بهینه سازی حافظه SRAM
- مرحله 10: اندازه بافر سریال نرم افزار
- مرحله 11: ساخت برد PC
- مرحله 12: مونتاژ برد PC
- مرحله 13: برنامه نویسی AtMega328p
- مرحله 14: اتصال واحد
- مرحله 15: راه اندازی اولیه
- مرحله 16: دستورات SMS
تصویری: واحد کنترل از راه دور GSM/SMS مبتنی بر آردوینو: 16 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
! ! ! اطلاع !
به دلیل ارتقاء برج تلفن همراه محلی در منطقه من ، دیگر نمی توانم از این ماژول GSM استفاده کنم. برج جدیدتر دیگر از دستگاه های 2G پشتیبانی نمی کند. بنابراین ، من دیگر نمی توانم از این پروژه پشتیبانی کنم.
با وجود چنین طیف گسترده ای از ماژول های GSM برای علاقمندان ، اکثر ما خرید آن را متوقف کردیم. من یک ماژول SIM800L را به صورت محلی خریداری کردم و در نهایت با دستورات مختلف ماژول بازی کردم.
با استفاده از Arduino Uno و Arduino IDE ، توانستم ایده های خود را به واقعیت تبدیل کنم. این به آسانی به دست نیامد ، زیرا تنها بزرگترین مسئله محدودیت فقط 2 کیلوبایت SRAM است. پس از تحقیقات زیادی در اینترنت و انجمن های مختلف ، توانستم بر این محدودیت غلبه کنم.
تکنیک های مختلف برنامه نویسی ، درک بسیار بهتر از کامپایلر آردوینو و استفاده از سیم کارت و EEPROM برای حافظه بیشتر ، این پروژه را نجات داد. پس از برخی تغییرات در کد ، نمونه اولیه پایدار ساخته شد و طی یک هفته آزمایش شد.
اشکال SRAM محدود این بود که نمی توان دستگاه را با صفحه نمایش و کلیدهای کاربر مجهز کرد. این منجر به بازنویسی کامل کد شد. بدون رابط کاربری ، تنها گزینه برای ادامه پروژه ، استفاده از پیام های SMS برای پیکربندی واحد و همچنین کاربران بود.
این یک پروژه هیجان انگیز بود و با ادامه توسعه ، آینده های بیشتری به آن اضافه شد.
هدف اصلی من این بود که از Arduino Uno یا در این مورد از ATMEGA328p استفاده کنم و از اجزای نصب سطح استفاده نکنم. به این ترتیب کپی و ساخت واحد برای عموم مردم آسان تر می شود.
مشخصات واحد:
- حداکثر 250 کاربر را می توان روی دستگاه برنامه ریزی کرد
- چهار خروجی دیجیتالی
- چهار ورودی دیجیتال
- هر خروجی را می توان به صورت خروجی PULSE یا ON/OFF پیکربندی کرد
- مدت زمان پالس خروجی را می توان بین 0.5.. 10 ثانیه تنظیم کرد
- هر ورودی را می توان پیکربندی کرد تا تغییرات OFF به ON فعال شود.
- هر ورودی را می توان پیکربندی کرد تا تغییرات ON به OFF فعال شود
- هر زمان تأخیر ورودی را می توان بین 0 ثانیه تا 1 ساعت تنظیم کرد
- پیام های SMS برای تغییرات در ورودی ها می تواند به 5 کاربر مختلف ارسال شود
- نام و متن وضعیت هر ورودی را می توان توسط کاربر تنظیم کرد
- نام و متن وضعیت هر خروجی را می توان توسط کاربر تنظیم کرد
- واحد را می توان برای دریافت پیام های موجودی سیم کارت از طریق پیام های USSD پیکربندی کرد.
- همه کاربران می توانند به روز رسانی وضعیت ورودی/خروجی واحد را درخواست کنند
- همه کاربران می توانند خروجی های فردی را از طریق پیام های SMS کنترل کنند
- همه کاربران می توانند خروجی های فردی را با تماس با واحد کنترل کنند
ویژگی های ایمنی
- راه اندازی اولیه واحد را فقط می توان در هنگام کار در واحد انجام داد.
- راه اندازی اولیه فقط توسط MASTER USER قابل انجام است
- دستورات راه اندازی اولیه پس از ده دقیقه به طور خودکار غیرفعال می شوند.
- فقط تماس ها و پیامک های ارسال شده از کاربران شناخته شده می توانند دستگاه را کنترل کنند
- کاربران فقط می توانند خروجی هایی را که توسط MASTER USER به آنها اختصاص داده شده ، کار کنند
ویژگی های دیگر
- تماس با این واحد رایگان است ، زیرا تماس هرگز پاسخ داده نمی شود.
- هنگام تماس با واحد ، تماس فقط پس از 2 ثانیه قطع می شود. این تأیید کننده تماس گیرنده است که واحد به تماس پاسخ داده است.
- اگر ارائه دهنده خدمات سیم کارت از پیام های USSD پشتیبانی می کند ، می توان از MASTER USER درخواست تعادل کرد. پیام USSD حاوی موجودی ، سپس به MASTER USER ارسال می شود.
مرحله 1: منبع تغذیه
برای اطمینان از اتصال واحد به سیستم های امنیتی استاندارد (سیستم های هشدار دهنده ، درهای گاراژ برقی ، موتورهای برقی دروازه ای) ، واحد از 12 ولت DC تغذیه می کند که معمولاً در چنین سیستم هایی موجود است.
برق در پایانه های 12V IN و 0V اعمال می شود و توسط فیوز 1A محافظت می شود. پایانه های اضافی 12V OUT موجود است و همچنین توسط فیوز محافظت می شود.
دیود D1 از واحد در برابر اتصالات قطبیت معکوس در خطوط 12 ولت محافظت می کند.
خازنهای C1 و C2 هرگونه نویز موجود در خطوط تغذیه 12 ولت را فیلتر می کند. منبع تغذیه 12 ولت برای تغذیه رله های واحد استفاده می شود.
منبع تغذیه 5V شامل یک تنظیم کننده ولتاژ LM7805L است و خروجی یک پایدار +5V مورد نیاز برای ماژول SIM800L GSM و همچنین پردازنده میکرو را دارد. خازنهای C3 و C4 هرگونه نویز موجود در خط تغذیه +5V را فیلتر می کند. از خازن های الکترولیتی نسبتاً بزرگی استفاده شد ، زیرا ماژول SIM800L GSM در هنگام انتقال انرژی زیادی مصرف می کند.
نیازی به هیت سینک در تنظیم کننده ولتاژ نیست.
مرحله 2: ورودی های دیجیتال
سیگنال های ورودی دیجیتال همه 12 ولت هستند و باید با میکرو کنترلر 5 ولت ارتباط برقرار کنند. برای این منظور از اتصال دهنده های نوری برای جداسازی سیگنال های 12 ولت از سیستم 5 ولت استفاده می شود.
مقاومت ورودی 1K جریان ورودی را به opto coupler تا حدود 10mA محدود می کند.
به دلیل محدودیت فضا ، هیچ فضایی در برد PC برای مقاومتهای کششی 5V وجود نداشت. میکرو کنترلر طوری تنظیم شده است که پین های ورودی را می توان کشش های ضعیف را فعال کرد.
بدون وجود سیگنال در ورودی (LOW) کوپلر اپتو ، هیچ جریانی از طریق LED Opto Coupler جریان نمی یابد. بنابراین ترانزیستور اپتو کوپلر خاموش می شود. کشش ضعیف میکرو کنترلر ، کلکتور را تقریباً تا 5 ولت بالا می برد و توسط میکرو کنترلر به عنوان منطقی HIGH در نظر گرفته می شود.
با اعمال ولتاژ 12 ولت (HIGH) به ورودی کوپلر اپتو ، حدود 10 میلی آمپر از طریق چراغ اتصال دهنده اپتو عبور می کند. بنابراین ترانزیستور اپتو کوپلر روشن می شود. این باعث می شود که کلکتور تا 0 ولت پایین بیاید و توسط کنترل کننده میکرو به عنوان یک LOW منطقی در نظر گرفته شود.
توجه داشته باشید که ورودی مشاهده شده توسط میکرو کنترلر در مقایسه با ورودی 12 ولت معکوس است.
کد معمولی برای خواندن پین ورودی به شرح زیر است:
بولین ورودی = digitalRead (ورودی ورودی) ؛
برای تصحیح سیگنال معکوس ، از کد زیر استفاده کنید:
بولین ورودی =! digitalRead (ورودی ورودی) ؛ // توجه داشته باشید که ! در مقابل خوانده شده
در حال حاضر ، ورودی مشاهده شده توسط میکرو کنترلر با ورودی ورودی 12 ولت مطابقت دارد.
مدار ورودی نهایی شامل 4 ورودی دیجیتال است. هر ورودی به پایانه های برد PC متصل است.
مرحله 3: خروجی های دیجیتال
به طور معمول ، در حالی که یک مدار فقط با حداقل تعداد رله کار می کند ، بهترین راه استفاده از مدار راننده ترانزیستور مطابق شکل است. ساده ، کم هزینه و م effectiveثر است.
مقاومت ها کشش به زمین و محدودیت جریان پایه ترانزیستور را ارائه می دهند. از ترانزیستور برای افزایش جریان موجود برای حرکت رله استفاده می شود. با برداشتن تنها 1 میلی آمپر از پین میکرو کنترلر ، ترانزیستور می تواند بار 100 میلی آمپر را تغییر دهد. برای اکثر انواع رله ها بیش از اندازه کافی است. دیود یک دیود برگشتی است که از مدار در برابر جهش ولتاژ بالا در هنگام تعویض رله محافظت می کند. مزیت دیگر استفاده از این مدار این است که ولتاژ عملکرد رله می تواند متفاوت از ولتاژ میکرو کنترلر باشد. بنابراین ، به جای استفاده از رله 5 ولت ، می توان از هرگونه ولتاژ DC تا 48 ولت استفاده کرد.
معرفی ULN2803
هرچه یک پروژه به رله بیشتری نیاز داشته باشد ، تعداد اجزای آن بیشتر است. این کار طراحی PCB را دشوارتر می کند و ممکن است از فضای PCB با ارزش استفاده کند. اما استفاده از یک آرایه ترانزیستور ، مانند ULN2803 ، قطعاً به کوچک نگه داشتن اندازه PCB کمک خواهد کرد. ULN2803 به طور ایده آل برای ورودی های 3.3V و 5V از میکرو کنترلر مناسب است و می تواند رله ها را تا 48V DC هدایت کند. این ULN2803 دارای 8 مدار ترانزیستور جداگانه است که هر مدار با تمام اجزای مورد نیاز برای تغییر رله مجهز شده است.
مدار خروجی نهایی شامل یک ULN3803 است که 4 رله خروجی DC 12 ولت را هدایت می کند. هر مخاطب رله در پایانه های PC Board در دسترس است.
مرحله 4: نوسان ساز Micro Controller
مدار نوسان ساز
میکروکنترلر برای عملکرد صحیح به نوسان ساز نیاز دارد. برای حفظ طراحی Arduino Uno ، مدار از نوسان ساز استاندارد 16 مگاهرتز استفاده می کند. دو گزینه در دسترس است:
کریستال
در این روش از بلوری متصل به دو خازن بارگیری استفاده می شود. این رایج ترین گزینه است.
تشدید کننده
رزوناتور در اصل یک کریستال و دو خازن بارگیری در یک بسته 3 پین است. این امر باعث کاهش میزان اجزا و افزایش فضای موجود در برد PC می شود.
برای اینکه تعداد اجزاء تا حد ممکن پایین نگه داشته شود ، من از رزوناتور 16 مگاهرتز استفاده کردم.
مرحله 5: LED های نشانگر
بدون وجود چراغ LED هر مدار چه خواهد بود؟ برای برد LED های 3 میلی متری بر روی برد PC پیش بینی شده است.
از مقاومتهای 1K برای محدود کردن جریان از طریق LED به کمتر از 5mA استفاده می شود ، هنگام استفاده از LED های 3 میلی متری با روشنایی بالا ، روشنایی عالی است.
برای تفسیر آسان LED های وضعیت ، از دو رنگ استفاده می شود. با ترکیب دو LED با علائم چشمک زن ، اطلاعات بسیار زیادی را فقط از دو LED می توان دریافت کرد.
LED قرمز
LED قرمز برای نشان دادن شرایط خطا ، تاخیرهای طولانی و هرگونه دستور نادرست استفاده می شود.
LED سبز
LED سبز برای نشان دادن ورودی ها و دستورات سالم و/یا صحیح استفاده می شود.
مرحله 6: مدار تنظیم مجدد پردازنده میکرو
به دلایل امنیتی ، برخی از عملکردهای دستگاه فقط در 10 دقیقه اول پس از روشن شدن دستگاه در دسترس است.
با دکمه تنظیم مجدد ، نیازی به خاموش کردن دستگاه برای تنظیم مجدد دستگاه نیست.
چگونه کار می کند
مقاومت 10K خط RESET را نزدیک 5V نگه می دارد. هنگامی که دکمه را فشار می دهید ، خط RESET به 0V کشیده می شود ، بنابراین میکرو کنترلر در حالت تنظیم مجدد باقی می ماند. هنگامی که دکمه آزاد می شود ، خط RESET به٪ v باز می گردد و میکرو کنترلر را مجددا فعال می کند.
مرحله 7: ماژول SIM800L
قلب واحد ماژول SIM800L GSM است. این ماژول فقط از 3 پین ورودی/خروجی روی میکرو کنترلر استفاده می کند.
ماژول از طریق یک پورت سریال استاندارد به میکرو کنترلر متصل می شود.
- همه دستورات به واحد از طریق پورت سریال با استفاده از دستورات استاندارد AT ارسال می شود.
- با یک تماس ورودی ، یا هنگامی که پیامکی دریافت می شود ، اطلاعات از طریق پورت سریال با استفاده از متن ASCII به میکرو کنترلر ارسال می شود.
برای صرفه جویی در فضا ، ماژول GSM از طریق یک هدر 7 پین به برد کامپیوتر متصل می شود. این کار حذف ماژول GSM را آسان می کند. این همچنین کاربر را قادر می سازد تا سیم کارت را به راحتی در انتهای ماژول وارد یا حذف کند.
یک سیم کارت فعال مورد نیاز است و سیم کارت باید بتواند پیامک ارسال و دریافت کند.
راه اندازی ماژول SIM800L GSM
هنگام روشن کردن دستگاه ، پین تنظیم مجدد ماژول GSM برای یک ثانیه به پایین کشیده می شود. این اطمینان می دهد که ماژول GSM فقط پس از تثبیت منبع تغذیه راه اندازی می شود. راه اندازی مجدد ماژول GSM چند ثانیه طول می کشد ، بنابراین قبل از ارسال هرگونه دستور AT به ماژول 5 ثانیه صبر کنید.
برای اطمینان از پیکربندی ماژول GSM جهت ارتباط صحیح با میکرو کنترلر ، از دستورات AT زیر در هنگام راه اندازی استفاده می شود:
در AT
برای تعیین وجود ماژول GSM استفاده می شود
AT+CREG؟
تا زمانی که ماژول GSM در شبکه تلفن همراه ثبت نشده باشد ، از این فرمان نظرخواهی کنید
AT+CMGF = 1
حالت پیامک را روی ASCII تنظیم کنید
AT+CNMI = 1 ، 2 ، 0 ، 0 ، 0
در صورت موجود بودن پیامک ، جزئیات پیامک را به درگاه سریال ماژول GSM ارسال کنید
AT+CMGD = 1 ، 4
پیامک های ذخیره شده روی سیم کارت را حذف کنید
AT+CPBS = / "SM
دفترچه تلفن ماژول GSM را روی سیم کارت تنظیم کنید
AT+COPS = 2 ، سپس AT+CLTS = 1 ، سپس AT+COPS = 0
زمان ماژول GSM را روی زمان شبکه تلفن همراه تنظیم کنید
5 ثانیه صبر کنید تا زمان تنظیم شود
AT+CUSD = 1
عملکرد پیام رسانی USSD را فعال کنید
مرحله 8: کنترل کننده میکرو
میکرو کنترلر یک استاندارد AtMega328p است ، همان چیزی که در Arduino Uno استفاده می شود. بنابراین کد با هر دو قابل مقایسه است. برای سهولت برنامه نویسی روی صفحه ، یک سربرگ برنامه نویسی 6 پین در برد PC موجود است.
بخشهای مختلف دستگاه به ریز پردازنده متصل شده و شامل موارد زیر است:
- چهار ورودی دیجیتال
- چهار خروجی دیجیتالی
- نوسان ساز
- دو عدد LED نشانگر
- تنظیم مجدد مدار
- ماژول SIM800L GSM
تمام ارتباطات به و از ماژول GSM با استفاده از تابع () SoftwareSerial انجام می شود. این روش برای آزادسازی پورت سریال اصلی Arduino IDE در مرحله توسعه استفاده شد.
با تنها 2 کیلوبایت SRAM و 1 کیلوبایت EEPROM ، حافظه کافی برای ذخیره بیش از چند کاربر که می توانند به واحد متصل شوند وجود ندارد. برای آزادسازی SRAM ، تمام اطلاعات کاربر روی سیم کارت روی ماژول GSM ذخیره می شود. با این ترتیب ، دستگاه می تواند تا 250 کاربر مختلف را تامین کند.
داده های پیکربندی واحد در EEPROM ذخیره می شود ، بنابراین داده های کاربر و داده های سیستم را از یکدیگر جدا می کند.
هنوز چندین پین I/O اضافی در دسترس است ، اما به دلیل مقدار زیاد SRAM استفاده شده توسط SoftWareSerial () بافرهای دریافت و انتقال ، امکان افزودن صفحه LCD و/یا صفحه کلید وجود نداشت ،
به دلیل عدم وجود هر نوع رابط کاربری روی دستگاه ، همه تنظیمات و کاربران با استفاده از پیام های SMS برنامه ریزی می شوند.
مرحله 9: بهینه سازی حافظه SRAM
در مراحل اولیه توسعه ، Arduino IDE هنگام تدوین کد ، حافظه SRAM پایینی را گزارش کرد. چندین روش برای غلبه بر این مورد استفاده شد.
محدود کردن داده های دریافت شده بر روی پورت سریال
ماژول GSM تمام پیامها را به درگاه سریال به میکرو کنترلر گزارش می دهد. هنگام دریافت برخی از پیام های SMS ، طول کل پیام دریافتی می تواند بیش از 200 کاراکتر باشد. این می تواند به سرعت تمام SRAM موجود در تراشه AtMega را مصرف کند و مشکلات ثبات ایجاد کند.
برای جلوگیری از این امر ، تنها از 200 حرف اول هر پیام دریافت شده از ماژول GSM استفاده می شود. مثال زیر نحوه انجام این کار را با شمارش کاراکترهای دریافت شده در متغیر Counter نشان می دهد.
// اسکن داده ها از پورت سریال نرم افزار
// --------------------------------------------------- RxString = ""؛ شمارنده = 0 ؛ while (SSerial.available ()) {تاخیر (1)؛ // تاخیر کوتاه برای دادن زمان برای قرار دادن داده های جدید در بافر // دریافت کاراکتر جدید RxChar = char (SSerial.read ())؛ // اگر نویسه 200 را به رشته اضافه کنید (Counter <200) {RxString.concat (RxChar)؛ شمارنده = شمارنده + 1 ؛ }}
کاهش کد Serial.print ()
اگرچه در طول توسعه مفید است ، Arduino Serial Monitor می تواند SRAM زیادی را مصرف کند. کد با استفاده از حداقل تعداد Serial.print () کد توسعه داده شد. یک قسمت از کد برای کار آزمایش شده است ، تمام کد Serial.print () از آن قسمت کد حذف شده است.
با استفاده از کد Serial.print (F ((""))
بسیاری از اطلاعاتی که معمولاً در مانیتور سریال آردوینو نمایش داده می شوند ، هنگام اضافه شدن توضیحات منطقی تر می شوند. مثال زیر را در نظر بگیرید:
Serial.println ("در انتظار اقدامات خاص") ؛
رشته "منتظر اقدامات خاص" ثابت است و قابل تغییر نیست.
در طول تدوین کد ، کامپایلر رشته "منتظر اقدامات خاص" را در حافظه FLASH قرار می دهد.
علاوه بر این ، کامپایلر می بیند که رشته یک ثابت است که توسط دستور "Serial.print" یا "Serial.println" استفاده می شود. در هنگام بوت شدن میکرو ، این ثابت نیز در حافظه SRAM قرار می گیرد.
با استفاده از پیشوند "F" در توابع Serial.print () ، به کامپایلر می گوید که این رشته فقط در حافظه FLASH موجود است. برای این مثال ، رشته شامل 28 نویسه است. این 28 بایت است که می تواند در SRAM آزاد شود.
Serial.println (F ("منتظر اقدامات خاص")) ؛
این روش در مورد دستورات () SoftwareSerial.print نیز صدق می کند. همانطور که ماژول GSM روی دستورات AT کار می کند ، کد شامل دستورات متعدد SoftwareSerial.print ("xxxx") است. با استفاده از پیشوند "F" تقریبا 300 بایت SRAM آزاد شد.
از پورت سریال سخت افزار استفاده نکنید
پس از اشکال زدایی کد ، پورت سریال سخت افزار با حذف همه دستورات Serial.print () غیرفعال شد. با این کار چند بایت SRAM آزاد شد.
بدون هیچگونه دستور Serial.print () در کد باقی مانده ، 128 بایت SRAM دیگر در دسترس بود. این کار با حذف پورت سریال سخت افزار از کد انجام شد. با این کار بافرهای انتقال 64 بایت و دریافت 64 بایت افزایش می یابد.
// Serial.begin (9600) ؛ // سخت افزار پورت سریال غیرفعال شده است
استفاده از EEPROM برای رشته ها
برای هر ورودی و خروجی ، سه رشته باید ذخیره شود. آنها عبارتند از نام کانال ، رشته هنگام روشن بودن کانال و رشته زمانی که کانال خاموش است.
در مجموع 8 کانال ورودی/خروجی ، آنها وجود خواهد داشت
- 8 رشته حاوی نام کانال ، هر کدام 10 کاراکتر
- 8 رشته حاوی کانال در توضیحات ، هر کدام 10 کاراکتر است
- 8 رشته حاوی توضیحات کانال خاموش ، هر کدام 10 کاراکتر است
این تا 240 بایت SRAM تبلیغ می کند. به جای ذخیره این رشته ها در SRAM ، آنها در EEPROM ذخیره می شوند. با این کار 240 بایت SRAM آزاد شد.
اعلان رشته با طول مناسب
معمولاً متغیرها در ابتدای کد اعلام می شوند. یک اشتباه رایج هنگام اعلام متغیر رشته این است که ما رشته را با تعداد صحیح نویسه ها اعلام نمی کنیم.
رشته GSM_Nr = ""؛
رشته GSM_Name = ""؛ رشته GSM_Msg = ""؛
در هنگام راه اندازی ، میکرو کنترلر حافظه ای را در SRAM برای این متغیرها اختصاص نمی دهد. این می تواند بعداً باعث بی ثباتی هنگام استفاده از این رشته ها شود.
برای جلوگیری از این امر ، رشته ها را با تعداد صحیح نویسه هایی که رشته در نرم افزار استفاده می کند ، اعلام کنید.
رشته GSM_Nr = "1000000000" ؛
رشته GSM_Name = "2000000000" ؛ رشته GSM_Msg = "3000000000"؛
توجه کنید که چگونه رشته ها را با کاراکترهای مشابه اعلام نکردم. اگر همه این رشته ها را با عبارت "1234567890" اعلام کنید ، کامپایلر همان رشته را در سه متغیر مشاهده می کند و فقط حافظه کافی را در SRAM برای یکی از رشته ها اختصاص می دهد.
مرحله 10: اندازه بافر سریال نرم افزار
در کد زیر متوجه خواهید شد که حداکثر 200 کاراکتر از درگاه سریال نرم افزار قابل خواندن است.
// اسکن داده ها از پورت سریال نرم افزار
// --------------------------------------------------- RxString = ""؛ شمارنده = 0 ؛ while (SSerial.available ()) {تاخیر (1)؛ // تاخیر کوتاه برای دادن زمان برای قرار دادن داده های جدید در بافر // دریافت کاراکتر جدید RxChar = char (SSerial.read ())؛ // اگر نویسه 200 را به رشته اضافه کنید (Counter <200) {RxString.concat (RxChar)؛ شمارنده = شمارنده + 1 ؛ }}
این امر به یک بافر حداقل 200 بایت برای پورت سریال نرم افزار نیز نیاز دارد. به طور پیش فرض ، بافر پورت سریال نرم افزار فقط 64 بایت است. برای افزایش این بافر ، فایل زیر را جستجو کنید:
SoftwareSerial.h
فایل را با ویرایشگر متن باز کنید و اندازه بافر را به 200 تغییر دهید.
/******************************************************************************
*تعاریف ********************************************** ****************************/ #ifndef _SS_MAX_RX_BUFF #تعریف _SS_MAX_RX_BUFF 200 // اندازه بافر RX #endif
مرحله 11: ساخت برد PC
PC Board با استفاده از نسخه رایگان Cadsoft Eagle (معتقدم نام تغییر کرده است) طراحی شده است.
- PC Board یک طراحی یک طرفه است.
- از اجزای نصب سطح استفاده نمی شود.
- همه قطعات از جمله ماژول SIM800L روی برد کامپیوتر نصب شده اند.
- هیچ قطعه یا اتصال خارجی مورد نیاز نیست
- بلوزهای سیم دار در زیر اجزا برای ظاهری تمیزتر پنهان شده اند.
من از روش زیر برای ساخت برد PC استفاده می کنم:
- تصویر PC Board با استفاده از چاپگر لیزری در Press-n-Peel چاپ می شود.
- Press-n-Peel سپس بر روی یک تکه تمیز از برد PC قرار می گیرد و با مقداری نوار محکم می شود.
- سپس تصویر PC Board از Press-n-Peel به PC Board خالی با عبور برد از طریق لمینیتور منتقل می شود. برای من 10 پاس بهترین عملکرد را دارد.
- پس از سرد شدن برد PC تا دمای اتاق ، Press-n-Peel به آرامی از روی برد برداشته می شود.
- سپس برد PC با استفاده از بلورهای آمونیوم پرسولفات حل شده در آب گرم حک می شود.
- پس از اچ کردن ، تونر آبی Press-n-Peel و سیاه با تمیز کردن برد PC حک شده با مقداری استون برداشته می شود.
- سپس تخته با درمل به اندازه بریده می شود
- با استفاده از یک مته 1 میلی متری سوراخ هایی برای همه اجزای سوراخ سوراخ می شود.
- اتصالات پیچ پایانه با استفاده از یک مته 1.2 میلی متری حفاری می شوند.
مرحله 12: مونتاژ برد PC
مونتاژ با افزودن کوچکترین اجزا ابتدا انجام می شود و به بزرگترین اجزا می رسیم.
همه اجزای مورد استفاده در این دستورالعمل ، به استثنای ماژول SIM800 ، از منبع محلی من تهیه شده است. به آنها فکر می کند که همیشه سهام دارند. لطفاً به وب سایت آنها در آفریقای جنوبی نگاهی بیندازید:
www.shop.rabtron.co.za/catalog/index.php
توجه داشته باشید! ابتدا دو بلوز را که زیر IC IC ATMEGA328p قرار دارند لحیم کنید
ترتیب به شرح زیر است:
- مقاومت و دیود
- دکمه تنظیم مجدد
- سوکت IC
- تنظیم کننده ولتاژ
- پین هدر
- خازن های کوچک
- LED ها
- نگهدارنده فیوز
- بلوک های ترمینال
- رله ها
- خازن های الکترولیتی
قبل از قرار دادن IC ها ، دستگاه را به 12 ولت وصل کرده و تمام ولتاژها را تست کنید تا درست باشد.
در نهایت ، با استفاده از یک لاک شفاف ، قسمت مسی برد PC را بپوشانید تا در برابر عناصر محافظت شود.
وقتی لاک خشک شد ، IC ها را وارد کنید ، اما ماژول GSM را تا برنامه ریزی AtMega ترک کنید.
مرحله 13: برنامه نویسی AtMega328p
# # ارتقاء سیستم عامل به نسخه 3.02 # #
ارسال پیامک فعال به MASTER USER در صورت بازگرداندن برق به دستگاه
من از Arduino Uno با سپر برنامه نویسی برای برنامه ریزی واحد استفاده می کنم. برای اطلاعات بیشتر در مورد نحوه استفاده از Arduino Uno به عنوان برنامه نویس ، به این دستورالعمل مراجعه کنید:
Arduino UNO به عنوان برنامه نویس AtMega328P
برای دسترسی به سربرگ برنامه نویسی ، ماژول GSM باید از برد PC حذف شود. هنگام برداشتن ماژول GSM مراقب باشید که سیم آنتن آسیب نبیند.
کابل برنامه نویسی را بین برنامه نویس و واحد با استفاده از سربرگ برنامه نویسی روی برد PC متصل کرده و طرح را روی دستگاه بارگذاری کنید.
برای برنامه ریزی دستگاه نیازی به منبع تغذیه خارجی 12 ولت نیست. PC PC از طریق کابل برنامه نویسی از آردوینو تغذیه می شود.
فایل پیوست شده را در Arduino IDE باز کنید و آن را روی دستگاه برنامه ریزی کنید.
پس از برنامه نویسی ، کابل برنامه نویسی را برداشته و ماژول GSM را وارد کنید.
اکنون واحد آماده استفاده است.
مرحله 14: اتصال واحد
تمام اتصالات به دستگاه از طریق پایانه های پیچ انجام می شود.
تغذیه واحد
اطمینان حاصل کنید که یک سیم کارت ثبت شده را در ماژول GSM وارد کرده اید و اینکه سیم کارت قادر به ارسال و دریافت پیامک است.
منبع تغذیه 12 ولت DC را به 12 ولت IN و هر پایانه 0 ولت وصل کنید. پس از روشن شدن ، چراغ قرمز روی برد کامپیوتر روشن می شود. در عرض یک دقیقه ، ماژول GSM باید به شبکه تلفن همراه متصل شود. LED قرمز خاموش می شود و LED قرمز روی ماژول GSM به سرعت چشمک می زند.
پس از رسیدن به این مرحله ، واحد آماده پیکربندی است.
اتصالات ورودی
ورودی های دیجیتال روی 12 ولت کار می کند. برای روشن کردن ورودی ، باید 12 ولت به ورودی اعمال شود. با حذف 12 ولت ورودی خاموش می شود.
اتصالات خروجی
هر خروجی شامل یک مخاطب تغییر است. در صورت لزوم هر مخاطب را سیم کشی کنید.
مرحله 15: راه اندازی اولیه
راه اندازی اولیه دستگاه باید انجام شود تا اطمینان حاصل شود که همه پارامترها به طور پیش فرض کارخانه تنظیم شده اند و سیم کارت پیکربندی شده است تا اطلاعات کاربر را در قالب صحیح بپذیرد.
از آنجا که همه دستورات بر اساس پیامک هستند ، برای انجام تنظیمات به تلفن دیگری نیاز دارید.
برای راه اندازی اولیه ، باید در واحد باشید.
شماره تلفن MASTER USER را تنظیم کنید
از آنجا که فقط MASTER USER می تواند واحد را پیکربندی کند ، این مرحله ابتدا باید انجام شود.
- دستگاه باید تغذیه شود.
- دکمه Reset را فشار داده و رها کنید و منتظر بمانید تا LED قرمز روی برد کامپیوتر خاموش شود.
- LED NET روی ماژول GSM به سرعت چشمک می زند.
- اکنون واحد آماده پذیرش دستورات راه اندازی اولیه است. این باید در عرض 10 دقیقه انجام شود.
- یک پیام کوتاه حاوی MASTER ، توضیحات به شماره تلفن واحد ارسال کنید.
- در صورت دریافت ، LED سبز روی برد PC دو بار چشمک می زند.
- MASTER USER در حال حاضر برنامه ریزی شده است.
دستگاه را به حالت پیش فرض کارخانه برگردانید
پس از برنامه ریزی MASTER USER ، تنظیمات دستگاه باید روی پیش فرض کارخانه تنظیم شود.
- یک پیام کوتاه فقط با CLEARALL به شماره تلفن واحد ارسال کنید.
- در صورت دریافت ، LED سبز و قرمز روی برد رایانه به طور متناوب یک بار در ثانیه چشمک می زند. دستگاه با تنظیمات پیش فرض کارخانه بازیابی شده است.
- همه تنظیمات به حالت پیش فرض کارخانه بازگردانده شده است.
- برای راه اندازی مجدد دستگاه ، دکمه Reset را فشار داده و رها کنید.
فرمت کردن سیم کارت
آخرین مرحله این است که تمام اطلاعات ذخیره شده روی سیم کارت را پاک کرده و برای استفاده در این واحد پیکربندی کنید.
- دکمه Reset را فشار داده و رها کنید و منتظر بمانید تا LED قرمز روی برد کامپیوتر خاموش شود.
- LED NET روی ماژول GSM به سرعت چشمک می زند.
- اکنون واحد آماده پذیرش دستورات راه اندازی اولیه است. این باید در عرض 10 دقیقه انجام شود.
- فقط با ERASESIM به شماره تلفن واحد پیامک ارسال کنید.
- در صورت دریافت ، چراغ سبز روی برد رایانه بار درختی چشمک می زند.
واحد در حال حاضر پیکربندی شده است ، و آماده استفاده است.
مرحله 16: دستورات SMS
سه نوع مختلف از دستورات مورد استفاده واحد وجود دارد. همه دستورات از طریق SMS ارسال می شوند و همه در قالب زیر هستند:
دستور ، ، ، ، ،
- همه دستورات به جز دستورات NORMAL USER به حروف کوچک و بزرگ حساس هستند.
- پارامترها به حروف بزرگ و کوچک حساس نیستند.
دستورات راه اندازی اولیه
MASTER ، نام
شماره تلفن فرستنده پیامک به عنوان شماره تلفن MASTER USER استفاده می شود. توضیحات مربوط به واحد را می توان در اینجا اضافه کرد.
همه را پاک کن
دستگاه را به حالت پیش فرض کارخانه بازگردانید
CLEARSIM
همه اطلاعات را از سیم کارت پاک کنید
بازنشانی
دستگاه را راه اندازی مجدد کنید
MASTER USER دستورات پیکربندی واحد
OUTMODE ، c ، m ، t توجه داشته باشید! ! ! هنوز اجرایی نشده است
کانالهای خاصی را تنظیم کنید که دارای خروجی های PULSED ، TIMED یا LATCHING باشند. t مدت زمان خروجی TIMED بر حسب دقیقه است
PULSE ، cccc
کانال های خاصی را روی خروجی های PULSED تنظیم کنید. اگر تنظیم نشده باشد ، کانالها به عنوان خروجی LATCHING تنظیم می شوند.
PULSETIME ، t مدت زمان خروجی پالس را در ثانیه تنظیم می کند (0.. 10 ثانیه)
INPUTON ، cccc
کانال هایی را تنظیم کنید که باید فعال شوند و در صورت تغییر حالت از حالت خاموش به روشن ، پیام SMS ارسال کنید
INPUTOFF ، cccc
کانالهایی را که باید فعال شوند تنظیم کنید و وقتی حالت از ON به OFF تغییر می کند پیام SMS ارسال کنید
INTIME ، c ، t
زمان تاخیر ورودی را برای تشخیص تغییرات وضعیت در ثانیه تنظیم می کند
INTEXT ، ch ، نام ، روشن ، خاموش
نام هر کانال ورودی را روی متن و متن غیرفعال تنظیم کنید
OUTTEXT ، ch ، نام ، روشن ، خاموش
نام هر کانال خروجی را روی متن و متن غیرفعال تنظیم کنید
افزودن ، مکان ، شماره ، تماس های خروجی ، پیامک های پیامکی ، ورودی ها
افزودن کاربر به سیم کارت در محل "حافظه" ، با خروجی و کانال های ورودی به کاربر اختصاص داده شده
دل ، مکان
حذف کاربر از "محل" حافظه سیم کارت
نام کانال
خروجی با نام ChannelName پالس می شود
ChannelName ، onText یا ChannelName ، offText
خروجی را با نام ChannelName و onText/offText روشن/خاموش می کند
دستورات کاربر عادی برای کنترل واحد
؟؟؟؟ درخواست به روز رسانی وضعیت I/O پیامک وضعیت برای سازنده ارسال می شود.
نام کانال
خروجی با نام ChannelName پالس می شود
نام کانال ، onText
خروجی را با نام ChannelName و متن وضعیت onText روشن می کند
ChannelName ، offText خروجی را با نام ChannelName خاموش می کند و متن وضعیت را خاموش می کند
برای توضیحات بیشتر در مورد دستورات ، لطفاً به سند پیوست PDF مراجعه کنید.
توصیه شده:
کنترل از راه دور مبتنی بر مرورگر آردوینو (لینوکس): 9 مرحله (همراه با تصاویر)
کنترل از راه دور مبتنی بر مرورگر آردوینو (linux): ما بچه داریم. & nbsp؛ من آنها را کمی دوست دارم اما وقتی کانال های کودکان را روشن می کنند ، کنترل از راه دور را برای ماهواره و تلویزیون پنهان می کنند. پس از این اتفاق برای چندین سال به طور روزانه و بعد از اینکه همسر عزیزم به من اجازه داد
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
کنترل از راه دور مبتنی بر آردوینو برای Eskate یا Hydrofoil: 5 مرحله (همراه با تصاویر)
کنترل از راه دور مبتنی بر آردوینو برای Eskate یا Hydrofoil: این دستورالعمل به شما نشان می دهد که چگونه می توانید یک ریموت فیزیکی برای استفاده با اسکیت یا هیدروفویل برقی شامل تمام کد و سخت افزار مورد نیاز خود بسازید. لحیم کاری زیادی وجود دارد ، اما ساخت آن نیز سرگرم کننده است. ریموت کنترل چه کاری می تواند انجام دهد؟ شرکت
راه دور IR خود را به RF از راه دور تبدیل کنید: 9 مرحله (همراه با تصاویر)
راه دور IR خود را به RF Remote تبدیل کنید: در دستورالعمل امروز ، به شما نشان خواهم داد که چگونه می توانید از یک ماژول RF عمومی بدون میکروکنترلر استفاده کنید که در نهایت ما را به ساخت پروژه ای می رساند که در آن می توانید یک IR Remote از هر دستگاه را به RF تبدیل کنید. از راه دور. مزیت اصلی تبدیل یک
کنترل از راه دور سایه/کنترل از راه دور: 5 مرحله
Shadow/Remote Control Activated Leds: آیا تا به حال خواسته اید یک نور فعال شده در شب یا سایه ایجاد کنید؟ خوب .. در اینجا یک دستورالعمل وجود دارد ، اما یک مورد اضافی وجود دارد: می توانید آن را با کنترل RF از راه دور فعال کنید. این بسیار قدرتمند است ، من می توانم اتاق سوراخ خود را روشن کنم