روشهای کلی راه اندازی بردهای Sim800
شناخت و بررسی بردهای Sim800 تمامی ندارد! یکی از بردها و تراشههای بسیار کاربردی در زمینه اینترنت اشیا و بسیاری سناریوهای تجاری، بردهای خانواده Sim800 هستند. در این پست چند روش معمول و استاندارد را برای پروگرام کردن، برنامه نویسی و راه اندازی از بردهای Sim800 را معرفی و بررسی میکنیم. همانطور که پیشتر صحبت کردیم بردهای Sim800 مدلهای مختلفی دارند. هر مدل هم در نسخههای مختلفی تولید میشود. این دسته بندی ریز و دقیق کمک میکند که به هنگام پیاده سازی یک پروژه بتوانید دقیقترین گزینهها را انتخاب کنید. ولی معمولترین مدل برای پروژههای تجاری تراشه Sim800L است. که در پست قبلی راجع به خانواده سیم کارتی Sim800 صحبت کردیم. برای راه اندازی ماژولهای سیم کارتی توسط میکروکنترلر و یا یک کامپیوتر بایستی دستورها را به آنها ارسال کنیم. در ادامه این مطلب با بلاگ دانشجو کیت همراه باشید. همچنین اگر این مطلب برای شما ارزشمند بود و به اطلاعاتتان اضافه کرد، آنرا با دیگران به اشتراک بگذارید تا دانش فنی مدیرها و کاربران فارسی زبان در این حوزه و IoT رشد پیدا کند.
کمی درباره تراشههای خانواده Sim800
ماژولهای سیم کارتی مبتنی بر تراشه Sim800 از خانواده تراشههای GSM/GPRS طراحی شدهاند. این تراشهها توسط شرکت SIMCom Technology تولید میشوند و در بسیاری از بردهای سیم کارتی استفاده میشوند. تراشه Sim800 دارای ویژگیهای مختلفی است که امکان برقراری ارتباط با شبکههای GSM و GPRS را فراهم میکند. این تراشهها از طریق یک رابط سریال به میکروکنترلر یا برد امبدد متصل میشوند و ارتباط بین دستگاه و شبکه مخابراتی را برقرار میکنند. ویژگیهای کلیدی تراشه Sim800 عبارتند از:
- پشتیبانی از شبکههای GSM/GPRS: تراشه Sim800 قادر به اتصال به شبکههای تلفن همراه GSM و GPRS است و امکان برقراری تماسها، ارسال و دریافت پیامکها و دسترسی به اینترنت را فراهم میکند.
- قابلیت ارسال و دریافت پیامک: با استفاده از تراشه Sim800، میتوانید پیامکهای متنی را به شمارههای دیگر ارسال کنید و پیامکهای دریافتی را دریافت کنید.
- قابلیت برقراری تماس: با استفاده از تراشه Sim800، میتوانید تماسهای صوتی برقرار کنید و تماسهای ورودی را پاسخ دهید.
- پشتیبانی از دستورات AT: تراشه Sim800 با استفاده از دستورات AT قابلیت برنامهریزی و کنترل دستگاه را فراهم میکند.
- قابلیت اتصال به شبکه اینترنت: تراشه Sim800 امکان اتصال به شبکه اینترنت را از طریق GPRS فراهم میکند، که به شما امکان دسترسی به اینترنت و ارسال و دریافت دادهها را میدهد.
تراشه Sim800L یکی از تراشههای محبوب برای کنترل ماژولهای سیم کارتی است و برای انواع پروژههای اینترنت اشیاء (IoT) و ارتباطات سیار استفاده میشود.
تراشههای Sim800 چگونه پروگرام میشوند؟
کلیهی تراشههای خانواده Sim800 دارای رابط سریال هستند. رابط سریال یا UART نوعی ارتباط دو سیمه است که با RX و TX مشخص میشوند. توسط ارتباط سریال میتوان فرامین و دستورهای برنامه نویسی شده را روی تراشههای Sim800 بارگذاری کرد. از اینرو در نظر داشته باشید که مهمترین نکته در برنامه نویسی بردهای خانواده Sim800 در اختیار داشتن رابط سریال است. این رابط سریال را میتوانید توسط یک مبدل USB به UART یا کابلهای سریال به USB فراهم کنید. یا اینکه از ارتباط سریال بردهای میکروکنترلر مانند آردوینو استفاده کنید. به این روش دستورهای مد نظر را میتوانید به صورت مستقل روی تراشههای Sim800 بارگذاری کنید. البته میتوانید در کنار این تراشهها از بردهای میکروکنترلر هم استفاده کنید. در این حالت برنامهی اصلی روی برد میکروکنترلر اجرا میشود و فقط برخی از فرامین توسط آن به تراشه Sim800 منتقل میشوند.
در مرحله بعدی به یک محیط برنامه نویسی نیاز دارید. این محیط میتواند Arduino IDE یا هر محیط برنامه نویسی دیگری باشد. پس از اینکه برنامه مورد نظر را نوشتید. همانطور که در پستهای قبلی توضیح دادیم. میتوانید از دستورات AT Command یا استفاده از کتابخانهها برای پروگرام کردن تراشههای Sim800 استفاده کنید. پس ضمن اینکه ارتباط سریالی را با تراشه Sim800 برقرار میکنید. از طریق یک محیط برنامه نویسی IDE میتوانید دستورها و فرامین مورد نظر را روی تراشه آپلود کنید. اگر از محیط برنامه نویسی آردوینو استفاده میکنید، به زبان C++ میتوانید برنامهی مورد نظر را نوشته و از طریق ارتباط سریالی روی تراشه آپلود کنید. البته تراشههای Sim800 با تغییر فریمور قابلیت برنامه نویسی به زبان میکروپایتون را هم دارا هستند.
زبانهای برنامه نویسی و راه اندازی بردهای Sim800
زبانهای برنامهنویسی مختلفی برای تراشههای Sim800 وجود دارند. به عبارت دیگر با توجه به اینکه تراشههای خانواده Sim800 قابلیت MCU شدن را هم دارا هستند. منظور این است که تراشه Sim800 نقش میکروکنترلر را هم دارد. میتوانید به چند زبان مختلف روی آنها کدنویسی کنید. در ادامه به برخی از زبانهای معروف برای برنامهنویسی تراشههای Sim800 اشاره میکنیم.
1- زبان برنامه نویسی C/C++: زبان C و C++ از زبانهای برنامهنویسی پرطرفداری برای توسعه برنامههای Sim800 هستند. با استفاده از زبانهای C/C++ میتوان به صورت مستقیم با سطح پایین سختافزار تعامل کرده و کنترل کامل بر عملکرد تراشه را داشت.
2- زبان برنامه نویسی Micropython: میکروپایتون یک زبان برنامهنویسی مبتنی بر Python است که برای میکروکنترلرها و تراشههای محدود منابع طراحی شده است. با استفاده از Micropython میتوانید برنامههایی را برای Sim800 توسعه داده و از قابلیتهای زبان Python در زمینه برنامهنویسی استفاده کنید.
3- برنامه نویسی در محیط Arduino: آردوینو یک سکوی برنامهریزی متنباز است که برای توسعه سریع و آسان برنامههای میکروکنترلرها مورد استفاده قرار میگیرد. با استفاده از بردهای Sim800 و محیط برنامهریزی Arduino میتوانید برنامههایی برای کنترل و ارتباط با دستگاههای مختلف توسعه دهید. در این IDE میتوانید نوع برد Sim800 و نسخهی دقیق آنرا مشخص کنید.
تمام این زبانها ابزارها و کتابخانههای مختلفی را برای توسعه برنامههای Sim800 ارائه میدهند و به برنامهنویسان امکان کنترل سختافزار و استفاده از قابلیتهای مختلف تراشه را میدهند. انتخاب زبان برنامهنویسی به وابستگی به تجربه شما، نیازهای پروژه و سطح کنترلی که میخواهید بر روی سختافزار داشته باشید، متفاوت خواهد بود.
در کنار تراشههای Sim800 به چه میکروکنترلری نیاز داریم؟
تراشههای Sim800 در واقع میکروکنترلرهایی هستند که در خودشان قابلیتهای سختافزاری و برنامهریزی را ندارند و مشابه تراشه ESP به صورت یکپارچه قابل استفاده نیستند. بنابراین، برای استفاده از تراشههای Sim800 نیاز به یک میکروکنترلر جداگانه دارید. تراشههای Sim800 برای کاربردهای اینترنت اشیا (IoT) و اتصال به شبکهها طراحی شدهاند. با استفاده از تراشههای Sim800، میتوانید برنامههایی برای کنترل و ارتباط با دستگاهها و سرویسهای اینترنتی را توسعه دهید. با این حال اگر نیاز دارید در کنار تراشههای Sim800 یک میکروکنترلر مناسب در پروژهتان استفاده کنید، میتوانید از بردهای میکروکنترلری مختلف استفاده کنید. بردهای میکروکنترلری معروفی مانند Arduino، STM32، PIC، AVR و ... در این زمینه مناسب هستند. با استفاده از این بردها، میتوانید وظایف مربوط به سنسورها، عملگرهای خارجی، موتورها و سایر اجزای سختافزاری را بر عهده بگیرید و با استفاده از تراشههای Sim800 برای ارتباط بیسیم و اتصال به شبکهی سیم کارتی استفاده کنید. با ترکیب این دو نوع برد، میتوانید پروژههایی را با قابلیتهای گستردهتر و کاربردیتر ایجاد کنید. در ادامه چند نمونه از بردهای امبدد مناسب برای کارکردن در کنار تراشههای Sim800 را معرفی میکنیم.
- Arduino Uno: برد Arduino Uno یکی از معروفترین و پرکاربردترین بردهای میکروکنترلری است که قابلیتهای گستردهای در زمینه کاربردهای الکترونیکی دارد. با استفاده از کتابخانههای Sim800، میتوانید آن را به صورت همزمان با Sim800 استفاده کنید.
- Arduino Mega: برد Arduino Mega دارای پینها و منابع بیشتری نسبت به Arduino Uno است. این برد مناسب برای پروژههایی است که نیاز به تعداد بیشتری پورتها و منابع دارند.
- Raspberry Pi: اگر نیاز به یک سیستم کامل تر است که علاوه بر میکروکنترلر، قابلیتهای کامپیوتری و عملکرد سیستمی دیگر نیز داشته باشد، میتوانید از بردهای Raspberry Pi استفاده کنید. Raspberry Pi به عنوان یک کامپیوتر تک بردی با سیستم عامل لینوکس و قابلیتهای شبکهای و اتصال به اینترنت، با تراشه Sim800 ترکیب میشود و میتوانید برنامههای کاربردی IoT پیچیدهتر را پیادهسازی کنید.
- STM32: سری بردهای STM32 از شرکت STMicroelectronics با میکروکنترلرهای قدرتمند ARM Cortex-M است. این بردها عملکرد بالا و قابلیتهای گستردهای دارند و میتوانند در پروژههایی که نیاز به پردازش سریع داده و کنترل پیچیده دارند، مورد استفاده قرار بگیرند.
- PIC: بردهای میکروکنترلری سری PIC از شرکت Microchip با میکروکنترلرهای کوچک و قدرتمند است. این بردها مناسب برای کاربردهای الکترونیکی ساده تا متوسط و پروژههایی که نیاز به کنترل سیگنالها و ارتباط با سایر دستگاهها دارند، هستند.
- Arduino Due: برد Arduino Due با میکروکنترلر ARM Cortex-M3 بهصورت همزمان با تراشه Sim800 قابل استفاده است. این برد دارای سرعت بالا، پورتهای بیشتر و حافظه بزرگتری نسبت به بردهای Arduino Uno است.
- BeagleBone Black: یک برد تک بردی قدرتمند است که بر پایه پردازنده ARM Cortex-A8 از شرکت Texas Instruments ساخته شده است. این برد دارای امکانات شبکهای و عملکرد سیستمی بیشتری نسبت به تراشه Sim800 دارد و برای پروژههای IoT پیچیده و برنامههای کاربردی سیستمی قدرتمندتر مناسب است.
- Teensy: بردهای Teensy از شرکت PJRC با میکروکنترلرهای ARM Cortex-M قدرتمند است. این بردها دارای اندازه کوچک، سرعت بالا و قابلیتهای گستردهای هستند و برای پروژههایی با نیاز به عملکرد سریع و کاربردهای مختلف در صنعت، هنر و سایر حوزهها مناسب هستند.
- Particle Photon: بردهای Particle Photon دارای میکروکنترلر STM32 و قابلیت اتصال به اینترنت از طریق شبکه Wi-Fi هستند. آنها برای پروژههای IoT و ارتباط با سرورهای ابری مورد استفاده قرار میگیرند.
این تنها چند نمونه از بردهای میکروکنترلری هستند که میتوانید در کنار تراشه Sim800 استفاده کنید. نوع برد مورد نیازتان بستگی به نیازها و سناریوهای خاص پروژه شما دارد. در نهایت، انتخاب برد میکروکنترلری مناسب در کنار تراشه Sim800 بستگی به نیازها و خواستههای پروژه شما دارد. برای هر برد، به مشخصات فنی و منابع موجود برای آن مراجعه کرده و نیازهای خاص خود را در نظر بگیرید تا انتخابی مناسب داشته باشید. این موارد گزینههایی بود که ما جمع آوری کردیم و به این معنی نیست که با بردهای میکروکنترلر دیگر سازگاری وجود نداشته باشد.
تشخیص وضعیت ماژول سیم کارت از ال ای دی
ماژول جی اس ام برای اتصال به شبکه مخابراتی نیازمند جریان بسیار زیادی است. از اینرو پس از تامین ولتاژ مناسب کاری ماژول مورد استفاده، بایستی جریان دهی دقیق و کافی را برای آن در نظر گرفت. به عنوان مثال اگر کیفیت سیگنال و آنتن دهی ماژول در محل مورد استفاده، کم باشد، جریان بیشتری برای اتصال به شبکه و تبادل ارتباطات نیاز دارد. برای تامین جریان مورد نیاز ماژول، منبع تغذیه حتما میبایست توان حداقل ۲ آمپری را تامین نماید. این ماژول در ابتدای راه اندازی و اتصال به شبکه، جریانی در حدود ۲ آمپر را برای اتصال به شبکه، طلب می کند. در صورتیکه منبع تغذیه نتواند این جریان را تامین نماید، ماژول خاموش شده و دوباره سعی در تلاش به اتصال به شبکه خواهد نمود. این موضوع را می توان از وضعیت چشمک زن ماژول متوجه شد. جدول زیر بیانگر وضعیت چشمک زن ماژول در حالات مختلف است.
تجهیزات مورد نیاز برای پروگرام کردن تراشههای Sim800
همانطور که پیشتر اشاره کردیم. برای پروگرام کردن تراشههای Sim800 از رابط سریال UART بایستی استفاده شود. بنابراین ابتداییترین گزینه برای کنترل و ارسال فرامین به آن مبدل USB به سریال است. در کل برای ارسال فرامین به ماژول سیم کارتی Sim800 هم توسط کامپیتور امکان پذیر است. هم توسط یک برد میکروکنترلر که قابلیت برنامه ریزی را داشته باشد. در ادامه لیست وسایل و تجهیزات مورد نیاز برای پروگرام کردن تراشههای Sim800 را معرفی میکنیم.
1- مبدل USB به سریال
انتخابهای متنوعی برای این تجهیز وجود دارد. از آنجایی که تراشههای مبدل USB به سریال متنوع هستند. ماژولهای متنوعی هم با این موارد طراحی و تولید شده است. از جمله انتخابهای این دسته کالایی میتوان به مبدل CH340، مبدل CP2102، مبدل FT232، مبدل PL2303 و... اشاره کرد. تمامی این موارد به صورت ماژول و یا به صورت کابل در فروشگاه دانشجو کیت و در شاخه مبدل پروتکل در دسترس هستند. در تصویر زیر چند نمونه مبدل USB به UART ساخت WaveShare را مشاهده میکنید.
2- بردهای میکروکنترلر
همانطور که پیشتر اشاره شد میتوانید از بردهای راه انداز و مبدل PCB برای دسترس پذیری پایههای تراشههای Sim800 استفاده کنید. به عنوان مثال تراشه Sim800L با توجه به اینکه پکیج طراحی SMD دارد فاقد پین هدر است، بنابراین نمیتواند به صورت مستقیم روی برد بورد قرار گیرد. بنابراین برای این مورد نیازمند برد تبدیل یا برد راه انداز خواهید بود. به این منظور از ماژول سیم کارتی Sim800L به همراه برد راه انداز بجای استفاده صرف از تراشه میتوانید استفاده کنید. در این مدلها کافیست ارتباط سریال بین ماژول و برد میکروکنترلر را برقرار کنید تا بتوانید برنامهی لازم برای آن بنویسید.
بررسی حافظه داخلی مدلهای مختلف Sim800
بردهای خانواده Sim800 به واسطه حافظه داخلی که دارند بسیار حائز اهمیت هستند. تراشههای مختلف خانواده Sim800 از نظر حافظه داخلی ممکن است تفاوتهایی داشته باشند. این تفاوتها ممکن است در حدود حافظه فلش (Flash) برنامه و حافظه SRAM (Static Random-Access Memory) برای ذخیره دادهها و متغیرها باشد. به طور کلی، ماژولهای سیم کارتی با تراشههای Sim800 معمولا دارای حافظه فلش داخلی بین 1 تا 8 مگابایت هستند. این حافظه فلش برای ذخیره کدهای برنامه و فایلهای مورد نیاز استفاده نمیشود. در مورد حافظه SRAM، معمولا ماژولهای سیم کارتی با تراشههای Sim800 دارای حافظه SRAM با ظرفیت بین 32 کیلوبایت تا 128 کیلوبایت هستند. این حافظه برای ذخیره متغیرها و دادههای موقت در طول اجرای برنامه استفاده میشود. مهم است بدانید که حجم دقیق حافظه در هر تراشه Sim800 وابسته به نسخه خاص تراشه است و ممکن است برای ماژولهای مختلف تفاوت داشته باشد. بنابراین، در صورت استفاده از یک ماژول خاص، توصیه میشود مستندات فنی آن را بررسی کنید تا جزئیات دقیق تراشه و حافظه داخلی آن را بدست آورید. در ادامه، حافظه داخلی مدلهای مختلف تراشههای Sim800 که بایستی به صورت استاندارد شامل مقادیر معرفی شده باشند، را لیست کردهایم.
حافظه ماژول سیم کارتی SIM800L:
حافظه فلش (Flash): معمولا دارای 8 مگابایت حافظه فلش داخلی است.
حافظه SRAM: معمولا دارای 32 کیلوبایت حافظه SRAM است.
حافظه ماژول سیم کارتی SIM800C:
حافظه فلش (Flash): معمولا دارای 8 مگابایت حافظه فلش داخلی است.
حافظه SRAM: معمولا دارای 32 کیلوبایت حافظه SRAM است.
حافظه ماژول سیم کارتی SIM800A:
حافظه فلش (Flash): معمولا دارای 8 مگابایت حافظه فلش داخلی است.
حافظه SRAM: معمولا دارای 32 کیلوبایت حافظه SRAM است.
حافظه ماژول سیم کارتی SIM800H:
حافظه فلش (Flash): معمولا دارای 8 مگابایت حافظه فلش داخلی است.
حافظه SRAM: معمولا دارای 32 کیلوبایت حافظه SRAM است.
به عنوان توجه، دقت کنید که ممکن است نسخههای خاصی از هر مدل با ظرفیت حافظه داخلی متفاوتی وجود داشته باشند. بنابراین، در صورت استفاده از مدل خاصی، بهتر است مستندات فنی آن مدل را مورد بررسی قرار دهید تا جزئیات دقیق حافظه داخلی آن را بدست آورید.
راهکار کنترل پایههای GPIO تراشههای Sim800
راهکار افزایش پایههای GPIO در تراشههای Sim800 شامل استفاده از ماژولها و تراشههای الحاقی میشود. بستگی به اینکه چه پایههایی در پروژه نیاز است و یا چه میزان نیازمند افزایش پایهها هستیم، گزینههای مختلفی را باید به عنوان الحاقی انتخاب کنید. برای توسعه پایههای GPIO (ورودی/خروجی عمومی) ماژولهای سیم کارتی مانند مدلهای SIM800، میتوانید از رابط سریال (Serial) موجود در این ماژولها استفاده کنید. با استفاده از دستورات AT، که بر روی رابط سریال ارسال میشوند، میتوانید کنترل و مدیریت پایههای GPIO را انجام دهید. روشهای عمومی برای کنترل پایههای GPIO در ماژولهای سیم کارتی عبارتند از:
استفاده از دستورات AT: ماژولهای سیم کارتی با تراشه Sim800 قابلیت ارسال دستورات AT را از طریق رابط سریال دارند. با ارسال دستورات AT مربوطه، میتوانید پایههای GPIO را کنترل کرده و وضعیت ورودی/خروجی آنها را تعیین کنید.
استفاده از کتابخانهها و پایتون: برای راحتی و سهولت در کنترل پایههای GPIO، میتوانید از کتابخانههای موجود برای زبان برنامهنویسی پایتون استفاده کنید. این کتابخانهها معمولاً توابعی را فراهم میکنند که امکان کنترل و مدیریت پایههای GPIO را با استفاده از دستورات AT فراهم میکنند.
در هر دو روش، ابتدا باید ارتباط سریال را بین میکروکنترلر یا میکروپروسسور خود و ماژول سیم کارتی برقرار کنید. سپس، با ارسال دستورات AT مناسب، میتوانید پایههای GPIO را تنظیم و کنترل کنید. برای دسترسی به جزئیات دقیق تراشه و دستورات AT مربوطه، به مستندات فنی مربوط به ماژول سیم کارتی خود مراجعه کنید.
از چه نرم افزارهایی برای راه اندازی بردهای Sim800 استفاده کنیم؟
برای ارسال دستورات به تراشههای Sim800 میتوانید از نرمافزارهایی مانند Arduino IDE و PlatformIO استفاده کنید. این نرمافزارها ابزارهای برنامهنویسی حاکم بر محیط توسعه میکروکنترلرها را فراهم میکنند و به شما اجازه میدهند کدهای برنامهنویسی را بر روی تراشههای Sim800 بارگذاری و اجرا کنید. در ادامه کلیه انتخابهای مناسب این بردهای را معرفی میکنیم.
1- Arduino IDE: یک محیط توسعه متنباز است که ابزارهایی برای برنامهنویسی تراشههای Sim800 فراهم میکند. شما میتوانید کدهای برنامهنویسی خود را با استفاده از زبان C/C++ در Arduino IDE بنویسید و به تراشه Sim800 بارگذاری کنید.
2- PlatformIO: یک محیط توسعه متقابل است که برای برنامهنویسی تراشههای Sim800 و سایر میکروکنترلرها مناسب است. این محیط توسعه مبتنی بر پلاگین است و ابزارهای کاربردی برای برنامهنویسی، اجرا و پیکربندی تراشههای Sim800 را فراهم میکند. از طریق PlatformIO، شما میتوانید کدهای برنامهنویسی خود را با استفاده از زبان C/C++ یا میکروپایتون بنویسید و به تراشه Sim800 بارگذاری کنید.
3- FreeRTOS: یک سیستم عامل برای میکروکنترلرها است که به طور معمول در تراشههای Sim80032 استفاده میشود. این سیستم عامل قابلیت مدیریت چند وظیفه را فراهم میکند و برای پروژههای پیچیدهتر مناسب است.
4- نرم افزار Hercules: این نرم افزار یک ترمینال پورت سریالی است. قابلیت ارسال فرامین کنترل کننده ماژول سیم کارتی را به صورت مستقیم فراهم میکند.
5- Micropython: یک زبان برنامهنویسی مبتنی بر پایتون است که برای میکروکنترلرها بهینه شده است. با استفاده از Micropython، میتوانید به طور مستقل کدهای پایتونی خود را بر روی تراشههای Sim800 اجرا کنید. این گزینه برای برنامهنویسانی که با زبان پایتون آشنایی دارند و دنبال یک زبان سطح بالا و ساده برای برنامهنویسی Sim800 هستند مناسب است.
تمامی این نرم افزارها و محیطها دارای ویژگیهایی مانند سازگاری با تراشههای Sim800، ابزارهای مفید برای کدنویسی، کامپایل و بارگذاری کد، پشتیبانی از کتابخانهها و ابزارهای اضافی و دسترسی به ابزارهای پیکربندی و رفع اشکال میباشند. با استفاده از این نرمافزارها، شما میتوانید به راحتی با تراشههای Sim800 کار کنید و برنامههای خود را پیاده سازی کنید.