نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • مشاوره
  • زنگ هشدار GSM بودجه با مغزهای آردوینو. ما سوکت را از طریق پیامک کنترل می کنیم

زنگ هشدار GSM بودجه با مغزهای آردوینو. ما سوکت را از طریق پیامک کنترل می کنیم

مقاله ای برای کسانی که می خواهند آردوینو را مجبور به ارسال اس ام اس از این طریق کنندماژول GSM . ماژول NEOWAY M590 مبتنی بر تراشه SIM900 برای ایجاد مناسب است سیستم دزدگیر خانگی, خانه هوشمند. همچنین یک ماژول GSM جایگزین وجود دارد که مستقیماً از طریق 5 ولت به آردوینو متصل می شود: Sim800L EVB v2.0

فرمول بندی مسئله

  • تنها با استفاده از آردوینو و یک ماژول GSM، LED را از طریق تماس تلفنی خود کنترل کنید.
  • ارسال پیامک (در حالی که از طریق دستوری که از طریق مانیتور پورت در Arduino IDE می آید)

اتصال به آردوینو

ماژول GSM را به آردوینو وصل می کنیم.
ماژول 5 ولت -> 5 ولت آردوینو
ماژول GND -> آردوینو GND
ماژول TX -> پین دیجیتالی 2 آردوینو
ماژول RX -> پین دیجیتالی 3 آردوینو
پینوت در عکس قابل مشاهده است. ترتیب مخاطبین به شرح زیر است: 1 - +5V، 2 - GND، 7 - TX، 8 - RX.


ماژول را می توان از 4 ولت تا 5 ولت تغذیه کرد، من از خروجی 5 ولت استفاده کردم.

این ماژول به برق جداگانه نیاز دارد زیرا در اوج مصرف تا 2A مصرف می کند. یک خازن به احتمال زیاد کمکی نخواهد کرد. بنابراین، هنگامی که توسط آردوینو تغذیه می شود، ممکن است کار نکند یا از کار بیفتد.

زمین آردوینو و ماژول GSM با منبع تغذیه جداگانه باید متصل شوند، اما ابتدا باید ولتاژ بین این "زمین ها" را با یک مولتی متر اندازه گیری کنید. مقداری بلوک های کامپیوتریمنابع تغذیه دارای افت احتمالی در سراسر کیس و زمین USB تا 100 ولت هستند. جریان وجود دارد بسیار کوچک است و نمی تواند بکشد، اما به راحتی می توان یک آردوینو یا یک ماژول GSM یا هر دو را با هم از بین برد.

طرح

#عبارتند از< نرم افزار سریال. h> نرم افزار سریال mySerial(2, 3); // RX، TX int ch = 0 ; int led = 13 ; String val = "" ; void setup() (
تاخیر (2000); //زمان مقداردهی اولیه ماژول pinMode (led، OUTPUT) ; digitalWrite (LED، LOW)؛ سریال. شروع (9600)؛ //سرعت پورت سریال. println ("تستر GSM نسخه 1.0"); mySerial. شروع (9600)؛ mySerial. println ("AT+CLIP=1"); //روشن کردن تاخیر شناسه تماس گیرنده (100) ; mySerial. println ("AT+CMGF=1"); //حالت رمزگذاری پیامک - عادی (برای انگلیسی)تاخیر (100); mySerial. println("AT+CSCS=\"GSM\"" ); //حالت کدگذاری متنتاخیر (100); ) void loop () ( if (mySerial . موجود () ) ( //اگر ماژول GSM چیزی برای ما ارسال کرد، پس while (mySerial.available()) ( // رشته ورودی را در متغیر val ذخیره کنید ch = mySerial. خواندن()؛ val += char (ch); تاخیر (10); ) if (val . indexOf ( "RING" ) > - 1 ) (//اگر تماسی شناسایی شد، شماره را بررسی کنید //اگر شماره تماس گیرنده مال ما باشد. شماره خود را بدون "+" وارد کنید سریال. println( "--- RING Master Detected ---") ؛ mySerial. println ("ATH0"); //قطع اتصال digitalWrite (LED، HIGH); // LED را به مدت 3 ثانیه روشن کنیدتاخیر (3000); digitalWrite (LED، LOW)؛ // رله را خاموش کنید ) ) else سریال. println(val); //خط دریافتی را در مانیتور پورت چاپ کنید val = "" ; ) اگر ( سریال. در دسترس () ) ( //اگر چیزی در مانیتور پورت وارد شوددر حالی که ( سریال. در دسترس () ) ( // رشته را در متغیر val ذخیره کنید ch = سریال. خواندن()؛ val += char (ch); تاخیر (10); )//mySerial.println(val); //انتقال تمام دستورات تایپ شده در مانیتور پورت به ماژول GSM if (val . indexOf ( "sendsms" ) > - 1 ) (//اگر دستور ارسال پیامک را مشاهده کردید اس ام اس (رشته ("سلام جهان")، رشته ("+71234567890"));//به شماره +71234567890 پیامک ارسال کنید ) val = "" ; //پاک کردن)) پیامک خالی (متن رشته، تلفن رشته) { سریال//روال ارسال پیامک سریال. println("ارسال پیامک شروع شد") ; mySerial. println ("AT+CMGS=\"" + تلفن + "\"" ); تاخیر (500); mySerial. چاپ (متن)؛ تاخیر (500); mySerial. چاپ ((char ) 26 ) ; تاخیر (500);

. println ("ارسال پیامک کامل شد"); تاخیر (2000); )


معاینه

GPRS

در ماژول نسخه 1.30 مورد بررسی، پشتیبانی GPRS کاهش یافته است. من نتوانستم با نام DNS آن به سرور متصل شوم (به عنوان مثال mysite.ru)، فقط با آدرس IP آن موفق شدم. در ماژول دیگر SIM800L چنین مشکلی وجود نداشت.

این کتابخانه به شما این امکان را می دهد که اکثر عملیات اساسی انجام شده توسط یک تلفن GSM را انجام دهید: کار با تماسهای صوتی، پیامک ارسال و دریافت کنید و از طریق GPRS به اینترنت متصل شوید.

برد توسعه GSM حاوی یک مودم است که داده های دریافتی را از طریق شبکه GSM به آن منتقل می کند. درگاه سریال. تمام عملیات توسط مودم به صورت دنباله ای از دستورات AT انجام می شود. برای بهبود خوانایی کد، کتابخانه عملکردهای سطح پایینی را که با مودم و سیم کارت کار می کنند، خلاصه می کند. مودم GSM با آردوینو از طریق یک رابط سریال با استفاده از کتابخانه SoftwareSerial تعامل دارد.

هر فرمانی که توسط مودم اجرا می شود، به عنوان یک قاعده، بخشی از یک دنباله از دستورات با هدف انجام یک عملکرد است. کتابخانه GSM با در نظر گرفتن این موضوع طراحی شده است و قادر به دریافت/بازگرداندن اطلاعات در هر مرحله از ترتیب دستور است.

ساختار کتابخانه

عملکرد کتابخانه GSM بسیار گسترده است، بنابراین چندین کلاس مختلف را ترکیب می کند:

  • کلاس کلوب جی اس اموظیفه کنترل مودم رادیویی را بر عهده دارد. این کلاس شامل توابع سطح پایین برای اتصال و ثبت کارت توسعه در یک شبکه GSM است. یک نمونه از این کلاس باید در همه برنامه هایی که از GSM/GPRS استفاده می کنند، اعلان شود.
  • کلاس GSMVoiceCallمسئول تماس های صوتی
  • کلاس GSM_SMSوظیفه ارسال و دریافت پیامک را بر عهده دارد.
  • کلاس GPRSوظیفه اتصال به اینترنت را بر عهده دارد.
  • در کلاس GSMClientکلاینت مشابه کلاینت در کتابخانه های اترنت و وای فای پیاده سازی شده است.
  • در کلاس سرور جی اس ام اسسروری مشابه سرور در کتابخانه های اترنت و وای فای پیاده سازی شده است. توجه: برخی از ISP ها/اپراتورها اتصالات ورودی را مسدود می کنند شبکه جهانی اینترنت، فقط به اتصالات اینترانت اجازه می دهد. با شرکت مخابراتی خود برای محدودیت های داده قابل اعمال تماس بگیرید.
  • بسیاری از کلاس های کمکی مانند اسکنر جی اس ام اس, GSMModemو غیره.

سازگار با کتابخانه اترنت

توسعه دهندگان تمام تلاش خود را انجام داده اند تا اطمینان حاصل کنند که کتابخانه GSM تا حد ممکن با کتابخانه اترنت سازگار است. به لطف این، انتقال کدی که از کتابخانه های اترنت یا WiFi استفاده می کند به آردوینو با برد توسعه GSM باید بسیار ساده باشد. با این حال، برای اجرای برنامه های نوشته شده برای اترنت روی کارت توسعه GSM، کپی کردن کد کافی نیست. این ممکن است به تغییرات جزئی در برنامه نیاز داشته باشد، مانند اتصال کتابخانه های GSM و GPRS، دریافت تنظیمات شبکه از ارائه دهنده و غیره.

مثال ها

تمام نمونه های کار با کارت توسعه GSM را می توان به دو گروه تقسیم کرد. گروه اول نمونه هایی است که قابلیت های برد را نشان می دهد (مثلاً ارسال پیامک، اتصال به اینترنت و غیره). گروه دوم ابزارهایی هستند که با آنها می توانید عملکرد کتابخانه و سخت افزار آردوینو را در سطح پایینی اشکال زدایی کنید.

آردوینو یک پلتفرم سخت افزاری است که برای آن استفاده می شود ایجاد سریعمختلف لوازم برقی، از جمله موارد امنیتی. به لطف طراحی بدون پیچیدگی، سادگی زبان برنامه نویسی و سهولت استفاده متن بازحتی یک فرد غیر حرفه ای نیز می تواند به طور مستقل یک سیستم هشدار چند منظوره برای محافظت از خانه، کلبه، آپارتمان یا گاراژ خود بسازد. ماژول GSM آردوینو بهترین گزینه برای ایجاد یک سیستم امنیتی بودجه است که می تواند به طور بهینه برای یک شی خاص پیکربندی شود.

منطقه برنامه

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

نمونه ای از استفاده از این ماژول ها در ویدیو:

هدف

پلتفرم سخت افزاری آردوینو امکان تعامل موثر با محیط کنترل شده را از طریق طیف گسترده ای از سنسورهای کاربردی که می توانند کنترل کنند را ممکن می سازد. پارامترهای مختلف. به لطف این، بر اساس چنین پلتفرم هایی، می توان مجتمع های امنیتی تشکیل داد که حرکات در امتداد محیط محافظت شده، باز شدن پنجره ها و درها و آسیب به شیشه را نظارت می کنند. علاوه بر سنسورهای نوع امنیتی، می توانید از سنسورهای دما، سنسورهایی برای نظارت بر نشت آب یا گاز نیز استفاده کنید.

با استفاده از ماژول GSM آردوینو به همراه پلتفرم، اطلاعات مربوط به یک خطر یا وضعیت اضطراری در یک مرکز را می توان در اسرع وقت در اختیار مالک قرار داد. برای این منظور از یکی از شبکه های اپراتورهای تلفن همراه استفاده می شود.

ویژگی متمایز دستگاه های آردوینواین است که میکروکنترلر آنها می تواند توسط خود کاربر برنامه ریزی شود زبان آردوینو، بر اساس سیم کشی. با تشکر از این، همه می توانند الگوریتم عملیاتی ایجاد شده را برنامه ریزی کنند دزدگیرهمانطور که برای یک شی محافظت شده خاص و ویژگی های کاربرد آن مورد نیاز است.

مزایای استفاده

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

  1. کم هزینه. پلتفرم ها در مقایسه با آنالوگ های خود دستگاه های بسیار ارزانی هستند که به هیچ وجه بر عملکرد آنها تأثیر نمی گذارد.
  2. کراس پلتفرم. نرم افزار آردوینو به طور موثر تحت چنین کاری کار می کند پلت فرم های عاملمانند ویندوز، لینوکس، مکینتاش-OSX.
  3. سهولت برنامه نویسی. برای پیکربندی میکروکنترلرها از محیط برنامه نویسی Processing استفاده می شود. این به طور مطلوب برای هر دو حرفه ای و کوچک مناسب است کاربران با تجربه، که با دستگاه های آردوینو کار می کنند.
  4. امکان بهبود. نرم افزار تخصصیآردوینو متفاوت است متن باز، که به کاربران با تجربه اجازه می دهد آن را با نیازهای خاص تطبیق دهند.

قابلیت اطمینان بالای پلت فرم سخت افزاری. بردهای آردوینوبا میکروکنترلرهای ATMEGA8 و ATMEGA168 (مدل های قبلی) و با کنترلرهای ATmega32u4، Atmel ATmega328 (مدل های جدیدتر) در دسترس هستند. عملکرد بالاو قابلیت اطمینان

اصل عملیات

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

برد GSM از یک مودم رادیویی ویژه M10 استفاده می کند که تعامل با آن از طریق دستورات ویژه AT تضمین می شود. تبادل اطلاعات با مودم با استفاده از نرم افزار اجرا می شود رابط سریال، داشتن کدهای دیجیتال.

مودم GSM مورد استفاده در آردوینو یک مودم 4 بانده است که می تواند در فرکانس های زیر کار کند: GSM 850MHz و 900MHz، PCS1900MHz و DCS1800MHz. مودم از پروتکل هایی مانند TCP/UDP و HTTP پشتیبانی می کند و اتصالات را از طریق GPRS فراهم می کند. سرعت انتقال بسته های اطلاعاتیدر این حالت حدود 90 کیلوبیت بر ثانیه خواهد بود.

ارسال پیامک از طریق آردوینو و ماژول GSM در صورت وجود اجرا می شود سیم کارت نصب شدهیکی از اپراتورهای تلفن همراه."

علاوه بر این امکان انتقال نیز وجود خواهد داشت پیام های صوتی، تماس برقرار کنید - برای این کار علاوه بر این به یک میکروفون و اسپیکر خارجی. نصب سیم کارت به شما امکان می دهد از آردوینو در حالت تلفن همراه یا GPRS استفاده کنید.

نحوه اتصال ماژول ها به آردوینو

قبل از اتصال ماژول GSM به آردوینو در اسلات آن، باید یک سیم کارت مناسب از یکی از اپراتورهای تلفن همراه نصب کنید. پس از این، ماژول به سخت افزار متصل می شود پلتفرم آردوینوطبق دستورالعمل، سیستم عامل آن نصب شده است. برای این منظور از رایانه شخصی استفاده می شود که با استفاده از کابل USB به دستگاه متصل می شود. بعد از دانلود محیط آردوینوشما باید دکمه آپلود را فشار دهید که فرآیند دانلود نرم افزار شروع می شود. پس از تکمیل این فرآیند، پلت فرم را می توان از رایانه جدا کرد و از آن تغذیه کرد سیستم خارجیتغذیه.

ویژگی های مقایسه ای ماژول های GSM

بازار مصرف طیف گسترده ای از ماژول های مختلف GSM را برای آردوینو ارائه می دهد. در زیر ویژگی های اصلی محبوب ترین آنها آورده شده است.

Neoway M590

ماژول آردوینو GSM M590 یک دستگاه ارتباطی بی سیم است که برای دریافت و انتقال اطلاعات در شبکه ها استفاده می شود ارتباطات سیار. ماژول این سری بر روی یک برد با حداقل سیم کشی ایجاد شده و به عنوان یک ماژول GSM برای پلتفرم سخت افزاری آردوینو قرار گرفته است.

با این دستگاه می توانید ارتباطات سیار را با آن برقرار کنید تلفن خارجی، ارسال پیام کوتاه، تبادل اطلاعات با استفاده از استاندارد GPRS Class-10. ماژول این طرح دارای ورودی میکروفون نیست، که امکان دریافت ارتباطات صوتی را محدود می کند - می توان اتصال برقرار کرد، اما صدا منتقل نمی شود.

برای کنترل M590 از دستورات AT استفاده می شود که از طریق ارتباط سریال صادر می شود. فرکانس های 900 مگاهرتز تا 1800 مگاهرتز به عنوان فرکانس های رادیویی عامل استفاده می شوند. ولتاژ تغذیه در محدوده 3.3...5 ولت است. بنابراین، GSM ماژول Neoway M590 از طریق مبدل ولتاژ ویژه 5 ولت به 3.3 ولت به آردوینو متصل می شود.

ماژول GSM SIM800L

ماژول جمع و جور Sim800l GPRS GSM دستگاهی است که برای پشتیبانی از ارتباطات سیار استفاده می شود. این ماژول بر روی مرنگ SIM-800L ساخته شده است که توسط SIMCom Wireless Solutions ایجاد شده است و برای ارائه خدمات به خدمات طراحی شده است. شبکه های اطلاعاتی GPRS\GSM با استفاده از فرکانس های 850 مگاهرتز تا 1900 مگاهرتز. می توان از آن برای ارسال پیام کوتاه، برقراری تماس و تبادل اطلاعات از طریق کانال های GPRS استفاده کرد.

ماژول GSM مجهز به آنتن است، اگر نیاز به بهبود سطح سیگنال دارید، می توانید از آن استفاده کنید آنتن های اضافی. برای کنترل ماژول، می توان از رایانه شخصی استفاده کرد، از طریق یک برد تبدیل رابط USB-UART ویژه یا مستقیماً از طریق خود UART متصل شد. اگر از ماژول Sim800l GPRS GSM استفاده شود , اتصال به آردوینو باید از طریق یک مبدل انجام شود سطوح منطقی. این به دلیل این واقعیت است که SIM800L دارای یک مقدار ولتاژ در منطقی است سطح بالا 2.8 ولت است و در آردوینو - 3.3...5 ولت.

GPRS Shield توسط Seeed Studio

اتصال ماژول GSM به آردوینو امکان استفاده از فناوری های تبادل داده GSM/GPRS و همچنین برقراری تماس و ارسال پیامک را فراهم می کند. دستگاه هایی از این نوع با استفاده از ماژول SIMCom SIM900 ساخته می شوند. دارای اسلات برای نصب سیم کارت، کانکتور برای اتصال آنتن خارجی و مجموعه ای از جک های 3.5 میلی متری برای ورودی و خروجی صدا هستند. کنترل و کار با آردوینو GSM Shield از طریق اتصالات سریال و مجموعه ای از دستورات تخصصی AT انجام می شود.

این ماژول یک برد مخصوص است که برای کنترل استفاده می شود دستگاه های دیجیتالاز راه دور و همچنین برای تبادل اطلاعات. استفاده از SIM900 به آردوینو اجازه می دهد تا با استفاده از فناوری های GSM/GPRS کار کند ارتباط صوتی، ارسال اس ام اس و تبادل داده با استفاده از شبکه های تلفن همراه و تلفن همراه.

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

ماژول GSM و GPRS در پروژه های آردوینو به شما امکان می دهد به ریموت متصل شوید دستگاه های مستقلاز طریق معمولی ارتباط سلولی. ما می توانیم با استفاده از دستورات SMS یا از طریق اتصال اینترنت باز شده از طریق GPRS، دستوراتی را به دستگاه ارسال کنیم و از آن اطلاعات دریافت کنیم. در این مقاله ما به محبوب ترین ماژول ها برای آردوینو نگاه می کنیم، ارتباط را درک می کنیم و به مثال های برنامه نویسی نگاه می کنیم.

ماژول های GSM GPRS

ماژول GSM برای گسترش قابلیت های بردهای معمولی آردوینو - ارسال SMS، برقراری تماس، تبادل داده از طریق GPRS استفاده می شود. وجود داشته باشد انواع مختلفماژول هایی که بیشتر مورد استفاده قرار می گیرند SIM900، SIM800L، A6، A7 هستند.

توضیحات ماژول SIM900

ماژول SIM900 در موارد مختلف استفاده می شود سیستم های خودکار. با استفاده از رابط UART، داده ها با دستگاه های دیگر رد و بدل می شوند. این ماژول امکان برقراری تماس و تبادل پیامک را فراهم می کند. این ماژول بر روی مولفه SIM900، ایجاد شده توسط SIMCom Wireless Solution پیاده سازی شده است.

مشخصات فنی:

  • محدوده ولتاژ 4.8-5.2V;
  • که در حالت عادیجریان به 450 میلی آمپر می رسد، حداکثر جریان در حالت پالس 2 A;
  • پشتیبانی 2G؛
  • قدرت انتقال: 1 وات 1800 و 1900 مگاهرتز، 2 وات 850 و 900 مگاهرتز.
  • ساخته شده است پروتکل های TCPو UDP؛
  • کلاس چند اسلات GPRS 10/8;
  • دمای کارکرد از -30 تا 75 درجه سانتیگراد

با استفاده از دستگاه می توانید مسیر حمل و نقل را به همراه GLONASS یا ردیابی کنید دستگاه جی پی اس. از قابلیت ارسال پیامک استفاده شده است زنگ بی سیمو انواع سیستم های امنیتی

توضیحات ماژول SIM800L

این ماژول مبتنی بر مولفه SIM800L است و برای ارسال پیامک، برقراری تماس و تبادل داده از طریق GPRS استفاده می شود. یک میکرو سیم کارت در ماژول نصب شده است. دستگاه دارای یک آنتن داخلی و یک رابط است که می توانید به آن متصل شوید آنتن خارجی. برق به ماژول می آید منبع خارجییا از طریق مبدل DC-DC. کنترل با استفاده از رایانه از طریق UART، Arduino، Raspberry Pi یا دستگاه های مشابه انجام می شود.

مشخصات فنی:

  • محدوده ولتاژ 3.7 - 4.2 ولت؛
  • پشتیبانی از شبکه 4 باند 900/1800/1900 مگاهرتز.
  • GPRS کلاس 12 (85.6 کیلوبایت بر ثانیه)؛
  • حداکثر جریان 500 میلی آمپر;
  • پشتیبانی 2G؛
  • جستجوی خودکار در چهار محدوده فرکانس؛
  • دمای کارکرد از -30 تا 75 درجه سانتیگراد

توضیحات ماژول A6

ماژول A6 توسط AI-THINKER در سال 2016 توسعه یافته است. این دستگاه برای تبادل پیامک و تبادل اطلاعات از طریق GPRS استفاده می شود. این برد با مصرف برق کم و اندازه کوچک مشخص می شود. این دستگاه کاملاً با اپراتورهای تلفن همراه روسیه سازگار است.

مشخصات فنی:

  • محدوده ولتاژ 4.5 - 5.5 ولت؛
  • منبع تغذیه 5 ولت؛
  • محدوده دمای عملیاتی از -30C تا 80C؛
  • حداکثر جریان مصرفی 900mA;
  • GPRS کلاس 10;
  • پشتیبانی از پروتکل های PPP، TCP، UDP، MUX.

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

توضیحات ماژول A7

A7 است آخرین ماژولاز AI-THINKER. در مقایسه با مدل قبلی خود، A6 دارای GPS داخلی است که امکان طراحی ساده دستگاه را فراهم می کند.

مشخصات فنی:

  • محدوده ولتاژ کاری 3.3-4.6 ولت؛
  • ولتاژ تغذیه 5 ولت؛
  • فرکانس 850/900/1800/1900 مگاهرتز;
  • GPRS کلاس 10: حداکثر. 85.6 کیلوبیت؛
  • مهار اکو و نویز.

این دستگاه از میکرو سیم کارت پشتیبانی می کند. این ماژول از تبادل تماس، تبادل پیام کوتاه، انتقال داده از طریق GPRS، دریافت سیگنال از طریق GPS پشتیبانی می کند.

ماژول های GSM را برای آردوینو از کجا بخریم

به طور سنتی، قبل از شروع، چند نکته و لینک های مفیدبه فروشندگان Aliexpress

لیست برخی از دستورات AT: AT+CMGF=1 برحالت متنی
(پیامک فقط به زبان لاتین) AT+CSCS= "GSM"
بر رژیم AT+CLIP=1
شناسایی شماره تماس ورودی را فعال کنید
اگر فرمانی با 0 ارسال کنید، شناسایی شماره غیرفعال می شود و ماژول به جای شماره تماس گیرنده فقط پیام "RING" را ارسال می کند. AT+CMGS="+79123456789"
ارسال اس ام اس ATI
اطلاعات دستگاه را دریافت کنید AT+IPR=19200
تنظیم سرعت پورت AT+GSN
IMEI ماژول را برمی گرداند AT+CCLK؟
زمان را از ماژول بخوانید AT+CCLK=«سال/میلی‌متر/روز، ساعت:مم: ss+zz»
که در آن ترتیب "سال / ماه / تاریخ، ساعت: دقیقه: ثانیه + منطقه زمانی" است، داده ها باید با صفرهای ابتدایی ارسال شوند، به عنوان مثال، اگر ماه ما "4" است، "04" باید ارسال شود . آن را پس بگیریدزمان فعلی
و تاریخ را می توان با ارسال همان دستور، فقط با علامت "؟" ارسال کرد: AT+CMEE=0
سطح اطلاعات خطا می تواند از 0 تا 2 باشد.
0 - غیر فعال به سادگی ERROR را می نویسد. 1 - کد خطا بر خواهد گشتکد دیجیتال
خطاها
برای کار با ماژول از طریق ترمینال، حالت های ATV1، ATE1 AT+CMEE=2 برای برقراری ارتباط با میکروکنترلر راحت تر است، بهتر است از ATV0، ATE0 و AT+CMEE=0 استفاده کنید - این کار را آسان تر می کند. پاسخ های دریافتی را پردازش کنید.
این تنظیمات پس از راه اندازی مجدد ماژول ذخیره نمی شوند، بنابراین باید این دستورات را در کد برنامه قرار دهید.
AT+CSQ اطلاعات در مورد کیفیت سیگنال
ماژول دو عدد +CSQ: 17.0 را برمی گرداند
17 - سطح سیگنال. می تواند در محدوده 0..31 یا 99 باشد. هر چه بیشتر بهتر است، اما 99 به معنای عدم وجود آن است.
0 - میزان خطای ارتباطی (اصطلاحاً RXQUAL). می تواند از 0 تا 7 باشد، هر چه عدد کمتر باشد، کیفیت ارتباط بهتر است.
AT+COPS؟ اطلاعات مربوط به اپراتور که ماژول در شبکه آن ثبت شده است
ATD+79121234567; گرفتن شماره ("؛" لزوما)
ماژول تماس خواهد گرفت عدد مشخص شدهو یکی از گزینه ها را برمی گرداند
BUSY - شماره مشغول است
NO DIALTONE - بدون سیگنال در خط
NO CARRIER - بدون شبکه یا مشکل دیگری (به عنوان مثال، بدون پول در حساب)
پاسخ NA - بدون پاسخ
اتصال - یک تماس وجود دارد!
AT+CMGR=3.0
ماژول KEYES SIM900 GSM GPRS با کیفیت بسیار بالا ماژول SIM800C برای آردوینو از یک تامین کننده قابل اعتماد
سپر توسعه، سازگار با آردوینو، بر اساس ماژول SIM900 GPRS/GSM ماژول mini A6 GPRS GSM ارزان قیمت

اتصال شیلد GSM GPRS به آردوینو

در این قسمت به بررسی مسائل مربوط به اتصال ماژول های GSM به برد Aduino می پردازیم. تقریباً همه نمونه ها بر اساس Arduino Uno هستند، اما بیشتر نمونه ها برای بردهای Mega، Nano و غیره نیز استفاده خواهند شد.

اتصال ماژول SIM800

برای اتصال به یک برد آردوینو، یک ماژول SIM800L، یک مبدل ولتاژ کاهنده، سیم های اتصال و یک باتری 12 ولتی نیاز دارید. ماژول SIM800L به یک ولتاژ غیراستاندارد آردوینو 3.7 ولتی نیاز دارد.

پین اوت ماژول SIM800 در شکل نشان داده شده است.

برد آردوینو باید از طریق به کامپیوتر متصل شود کابل یو اس بی. باتری 12 ولت را از طریق مبدل وصل کنید: -12 ولت به زمین آردوینو، از مبدل زمین به مبدل منفی، +12 ولت به مبدل مثبت. خروجی های ماژول TX و RX باید به پایه های 2 و 3 آردوینو متصل شوند. چندین ماژول را می توان به هر پین دیجیتال متصل کرد.

ماژول اتصال A6

ماژول A6 ارزانتر از SIM900 است و اتصال به آردوینو بسیار آسان است. ماژول با ولتاژ 5 ولت تغذیه می شود، بنابراین اتصال به عناصر کاهش ولتاژ اضافی نیاز ندارد.

برای اتصال به یک برد آردوینو (در در این موردبررسی شده آردوینو UNO)، ماژول GSM A6، سیم های اتصال. نمودار اتصال در شکل نشان داده شده است.

پایه RX از ماژول GSM باید به TX در برد آردوینو وصل شود، پایه TX باید به پایه RX در آردوینو وصل شود. زمین از ماژول به زمین در میکروکنترلر متصل می شود. پین Vcc در ماژول GSM باید به PWR_KEY متصل شود.

اتصال با استفاده از شیلد GSM-GPRS

قبل از اتصال، توجه به ولتاژ تغذیه سپر مهم است. جریان در زمان تماس یا ارسال داده می تواند به مقادیر 15-2 A برسد، بنابراین نباید سپر را مستقیماً از آردوینو تغذیه کنید.

قبل از اتصال به آردوینو، باید یک سیم کارت روی شیلد GSM-GPRS نصب کنید. همانطور که در شکل نشان داده شده است باید جامپرهای TX و RX را نیز نصب کنید.

اتصال به شرح زیر انجام می شود - اولین تماس (سیم زرد در شکل) از محافظ باید به TX در آردوینو متصل شود. پین دوم (سیم سبز) به RX در آردوینو متصل می شود. زمین از سپر به زمین از aruino متصل است. برق از طریق کابل USB به میکروکنترلر تامین می شود.

طرح اتصال بین شیلد و برد آردوینو در شکل نشان داده شده است.

برای کار، باید کتابخانه GPRS_Shield_Arduino را نصب کنید.

برای بررسی صحت مدار مونتاژ شدهشما باید کارهای زیر را انجام دهید: RESET و GND را در آردوینو وصل کنید (این منجر به انتقال مستقیم داده ها از شیلد به رایانه می شود)، سیم کارت را در شیلد قرار دهید و برق محافظ را روشن کنید. برد آردوینو باید به کامپیوتر متصل شود و دکمه پاور را فشار دهید. اگر همه چیز به درستی متصل شود، LED قرمز روشن می شود و LED سبز چشمک می زند.

شرح مختصری از تعامل از طریق دستورات AT

دستورات AT یک مجموعه هستند تیم های ویژهبرای یک مودم، متشکل از کوتاه رشته های متنی. برای اینکه مودم بتواند دستور داده شده را تشخیص دهد، خطوط باید با حروف در شروع شوند. زمانی که مودم داخل است، رشته پذیرفته می شود حالت فرمان. دستورات AT را می توان با استفاده از یک ارتباط ارسال کرد نرم افزارو به صورت دستی از صفحه کلید. تقریباً تمام دستورات را می توان به 3 حالت تقسیم کرد - تست که در آن ماژول پاسخ می دهد که آیا از دستور پشتیبانی می کند یا خیر. خواندن - خروجی پارامترهای فرمان فعلی. نوشتن - مقادیر جدید نوشته خواهد شد.

فهرست پرکاربردترین دستورات AT:

  • AT - برای بررسی اینکه آیا ماژول به درستی وصل شده است یا خیر. اگر همه چیز درست باشد، OK برگردانده می شود.
  • الف/ – دستور قبلی را تکرار کنید.
  • AT+IPR؟ - به دست آوردن اطلاعات در مورد سرعت پورت. پاسخ +IPR خواهد بود: 0 OK (0 در این مورد خودکار است).
  • AT+ICF؟ - تنظیم انتقال پاسخ +ICF: بیت، برابری خواهد بود.
  • AT+IFC؟ - کنترل انتقال پاسخ IFC + خواهد بود: ترمینال از ماژول، ماژول از ترمینال (0 – بدون کنترل، 1 – کنترل برنامه، 2 - سخت افزار).
  • AT+GCAP – قابلیت های ماژول را نشان می دهد. یک نمونه پاسخ +GCAP:+FCLASS،+CGSM است.
  • AT+GSN – دریافت ماژول IMEI. نمونه پاسخ 01322600XXXXXXXXX.
  • AT+COPS؟ - اپراتورهای موجود را نشان می دهد.
  • AT+CPAS – وضعیت ماژول. پاسخ +CPAS: 0. 0 – آماده برای کار، 3 – تماس دریافتی، 4 – اتصال صوتی، 2 – ناشناخته.
  • AT+CCLK؟ - اطلاعات مربوط به زمان و تاریخ فعلی
  • AT+CLIP=1 – شناسه تماس گیرنده را فعال/غیرفعال کنید. 1 - فعال، 0 - غیرفعال.
  • AT+CSCB=0 – دریافت پیامک های ویژه. 0 - مجاز، 1 - غیرفعال است.
  • AT + CSCS = "GSM" - رمزگذاری پیام SMS. می توانید یکی از کدگذاری های زیر را انتخاب کنید: IRA، GSM، UCS2، HEX، PCCP، PCDN، 8859-1.
  • AT+CMEE=0 – دریافت اطلاعات خطا.
  • AT+CPIN=XXXX – کد پین سیم کارت را وارد کنید.
  • AT&F - بازنشانی به تنظیمات کارخانه.
  • AT+CPOWD=1 – خاموش شدن فوری (0) یا عادی (1) ماژول.
  • ATD+790XXXXXXXXX – با شماره +790XXXXXXXXXX تماس بگیرید.
  • ATA - پاسخ به تماس.
  • AT+CMGS=”+790XXXXXXXXX”> پیامک آزمایشی – ارسال پیامک به شماره +790XXXXXXXXX.

در این مورد ما در نظر گرفتیم دستورات اساسیبرای ماژول SIM900. برای ماژول های مختلفدستورات ممکن است کمی متفاوت باشد. داده های ماژول از طریق ارائه خواهد شد برنامه ویژه"ترمینال" که باید روی رایانه شما نصب شود. همچنین می توانید دستورات را از طریق مانیتور پورت در Arduino IDE به ماژول ارسال کنید.

طرح هایی برای کار با ماژول GSM

ارسال پیامک با استفاده از SIM900 به عنوان مثال

قبل از ارسال پیام، باید ماژول را پیکربندی کنید. اول از همه، شما باید تبدیل به قالب متن پیام منتقل شده. برای این دستور AT+CMGF=1 وجود دارد. شما باید کدگذاری را با استفاده از دستور AT+CSCS="GSM" به GSM تبدیل کنید. این رمزگذاری راحت ترین است، زیرا کاراکترها در کد ASCII نشان داده می شوند که به راحتی توسط کامپایلر قابل درک است.

سپس باید یک پیام کوتاه شماره گیری کنید. برای این کار دستوری با شماره مشترک AT+CMGS=»+79XXXXXXXXXX» r ارسال می شود که در پاسخ از شما خواسته می شود یک متن پیامکی تایپ کنید. شما باید یک پیام ارسال کنید. پس از تکمیل، باید کد ترکیبی Ctrl+Z را ارسال کنید، ماژول امکان ارسال متن را به گیرنده می دهد. وقتی پیام ارسال شد، OK برگردانده می شود.

تعامل با ماژول بر اساس شاخص هایی است که به هر پیام جدید اختصاص داده می شود. با استفاده از این فهرست می توانید تعیین کنید که کدام پیام حذف یا خوانده شود.

دریافت پیامک. برای خواندن پیامک از دستور AT + CNMI = 2,2,0,0,0 استفاده کنید. ماژول کی میاد؟ پیام متنی، به پورت سریال +CMTI ارسال می کند: "SM",2 (در این مورد 2 است شماره سریالپیام ها). برای خواندن آن باید دستور AT+CMGR=2 را ارسال کنید.

پذیرایی تماس صوتی. اول از همه، برای انجام یک مکالمه، باید یک بلندگو و میکروفون را به ماژول متصل کنید. وقتی تماسی دریافت می شود، شماره ای که از آن تماس گرفته شده نشان داده می شود. برای کار، باید کتابخانه GSM را فعال کنید:

#عبارتند از

اگر سیم کارت مسدود شده است، باید کد پین آن را وارد کنید. اگر کد پین مورد نیاز نیست، این قسمت باید خالی بماند.

#define PINNUMBER ""

در setup()، انتقال داده به کامپیوتر باید مقداردهی اولیه شود. گام بعدییک متغیر محلی برای ردیابی وضعیت اتصال شبکه ایجاد می کند. طرح تا زمانی که سیم کارت به شبکه وصل نشود اجرا نمی شود.

boolean notConnected = true;

تابع gsmAccess.begin() برای اتصال به شبکه استفاده می شود. هنگامی که اتصال برقرار شد، مقدار GSM_READY برگردانده می شود.

vcs.hangCall(); - عملکردی که نشان می دهد مودم آماده دریافت تماس است.

getvoiceCallStatus() – وضعیت طرح را تعیین می کند. اگر کسی تماس بگیرد، RECEIVINGCALL را برمی‌گرداند. برای ثبت یک عدد، باید از تابع retrieveCallingNumber() استفاده کنید. وقتی به تماس پاسخ داده شد، TALKING برمی گردد. سپس طرح منتظر شخصیت می ماند خط جدیدبرای قطع گفتگو

یک اتصال GPRS برقرار کنید و داده ها را به یک سرور راه دور ارسال کنید

ابتدا باید کتابخانه SoftwareSerial را نصب کنید که به شما امکان انتقال اطلاعات سریال و اتصال ماژول GSM و میکروکنترلر آردوینو را می دهد.

برای ارسال اطلاعات به سرور، باید دستورات زیر را ارسال کنید:

AT+SAPBR=1,1 – باز کردن حامل.

سه دستور بعدی مربوط به تنظیم تنظیمات اتصال شبکه است.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – انتخاب اپراتور mts، نام نقطه دسترسی.

AT+SAPBR=3,1,\”USER\”,\”mts \” – کاربر mts را انتخاب کنید.

AT+SAPBR=3,1، \”PWD\”,\” mts\”

AT+SAPBR=1,1 – برقراری اتصال.

AT+HTTPINIT – مقداردهی اولیه http.

AT+HTTPPARA=”URL” – آدرس URL.

AT+HTTPREAD - در انتظار پاسخ.

AT+HTTPTERM – توقف http.

اگر همه چیز به درستی انجام شود، خطوط با دستورات AT در مانیتور پورت ظاهر می شود. اگر ارتباطی با مودم وجود نداشته باشد، هر بار یک خط نشان داده می شود. هنگامی که اتصال GPRS با موفقیت برقرار شد، LED روی ماژول شروع به چشمک زدن می کند.

من می خواهم یک راه بسیار ساده را به شما ارائه دهم کنترل از راه دورمنبع تغذیه
ما از سوکت های آماده RC استفاده خواهیم کرد، بنابراین نیازی به لحیم کاری نداریم. این بسیار جالب است، زیرا بهتر است 220 ولت (برای مبتدیان) را لمس نکنید.

کد

اگر از GSMSHIELD استفاده نمی کنید، بلکه از کتابخانه دیگری استفاده می کنید، البته کد متفاوت خواهد بود، اما اصل یکسان خواهد بود. در فواصل زمانی معین، اگر پیامک خوانده نشده ای داریم، آن ها را تجزیه می کنیم و اگر دستور معتبری از یک شماره مجاز آمده باشد، یک سیگنال رادیویی با توابع mySwitch.switchOff یا mySwitch.switchOn ارسال می کنیم و آدرس آن را به آنها ارسال می کنیم. سوکت
توجه داشته باشید در مورد من، برای شیلد از Seeedstudio، باید به GSM.cpp می رفتم و پین های مشخص شده را به 7 و 8 تغییر می دادم./* کد نمونه سوئیچ GSM آردوینو روشن/خاموش کردن پریزهای کنترل شده رادیویی نویسنده: ولادیسلاو راس، 2014 تماس: [ایمیل محافظت شده]شما باید دانلود کنید: 1. rc-switch https://code.google.com/p/rc-switch/ 2. GSMSHIELD http://www.gsmlib.org/ برای GSMSHIELD: * برای تغییر پین ها برای نرم افزارسریال، از دو خط در GSM.cpp استفاده کنید. *اگر شما هستیدبا استفاده از Mega، خط "#define MEGA" را در HWSerial.h حذف کنید * می توانید پیام های اشکال زدایی را در پورت سریال با تعریف DEBUG_ON */ #include "SIM900.h" #include فعال کنید. #include "sms.h" #include "call.h" #include // 433 مگاهرتز پایه فرستنده بایت RCpin = 12; char groupAddress = "11111"; char smsLetters = "ABC"; char* deviceAddresses = ( "10000", //A "01000", //B "00100" //C ); char adminNumber = "+74991356235"; //شماره تلفن شما CallGSM تماس. اس ام اس SMSGSM; RCSwitch mySwitch = RCSwitch(); شماره کاراکتر؛ بایت stat=0; char smsText; موقعیت بایت؛ int deviceLetterIdx = -1; بایت i,j; void setup() (gsm.begin(2400); delay(10000); for(i = 1; i<= 21; i++) { sms.DeleteSMS(i); } mySwitch.enableTransmit(RCpin); }; void loop() { //hang up all incoming calls /*stat=call.CallStatus(); if(stat==CALL_INCOM_VOICE) { call.HangUp(); }*/ position = sms.IsSMSPresent(SMS_UNREAD); //get new SMS if (position) { sms.GetSMS(position, number, smsText, 10); sms.DeleteSMS(position); if(strcmp(number, adminNumber) == 0) //accept SMS only from defined number { for (i = 0; i < sizeof(smsText) - 1; i++) { if(deviceLetterIdx != -1) { //got letter, now expecting 0 or 1 if(smsText[i] == "0") { mySwitch.switchOff(groupAddress, deviceAddresses); delay(500); } if(smsText[i] == "1") { mySwitch.switchOn(groupAddress, deviceAddresses); delay(500); } deviceLetterIdx = -1; } else { //waiting for letter A,B,C... for(j = 0; j < sizeof(smsLetters) - 1; j++) { if(smsLetters[j] == smsText[i]) { deviceLetterIdx = j; break; } } } } } } delay(10000); }; GitHub .

چالش ها و مسائل؟

اگر سوکت ها نمی خواهند به هیچ کدام سوئیچ شوند، می توانید سعی کنید سیگنالی را از کنترل از راه دور اصلی به گیرنده دریافت کنید. rc-switch دارای کد نمونه است.

بعدش چی؟

چگونه می توان این پروژه را بیشتر توسعه داد؟
اولا، ما هنوز یک دسته پین ​​روی خود آردوینو و روی شیلد GSM باقی مانده است. می توانید چند سنسور یا دستگاه را به آنها متصل کنید. به عنوان مثال، نظارت بر دما از راه دور یا آبیاری گل ها را انجام دهید.
ثانیا ما فقط از SMS استفاده کردیم و ماژول می تواند صدا و GPRS را نیز ارسال کند. GPRS می تواند داده های بسیار بیشتری را انتقال دهد. علاوه بر این، مجبور نیستید هنگام تماس تلفن را قطع کنید، اما، برای مثال، تماس را بپذیرید و به آنها اجازه دهید در محل به آنچه در حال رخ دادن است گوش دهند.
همچنین این امکان وجود دارد که بخواهید پیامک کنترلی را نه از یک شماره، بلکه از چندین شماره دریافت کنید. در این مورد، من توصیه می کنم اعداد را در دفترچه آدرس ذخیره کنید.

بهترین مقالات در این زمینه