در این مقاله آموزشی قصد داریم بورد LILYGO T-SIM7000G ESP32 معرفی و راه اندازی کنیم که تراشه ESP32، قطعه SIM7000G، شکاف کارت حافظه، نگهدارنده باتری و شارژر رو در یک بورد واحد جمع میکنه و کنار هم قرار میده. در بورد ESP32 علاوه بر وای فای و بلوتوث از پیام کوتاه هم میتونین برای برقراری ارتباط استفاده کنین. حتی میتونین این بورد رو با استفاده از داده سیم کارت به اینترنت وصل کنین و موقعیت جهانی رو به دست بیارین.
معرفی بورد LILYGO T-SIM7000G ESP32
این بورد دارای تراشه SIM7000G می باشد. این تراشه باعث میشه بوردتون به امکاناتی مانند: ارتباط با سامانهٔ موقعیتیابی جهانی (GPS)، اینترنت نسل چهارم (4G)، و سرویس عمومی بستههای رادیویی (GPRS) مجهز بشه. به عبارت دیگه، با این بورد میتونین پیام کوتاه ارسال کنین، زمان و موقعیت مکانی رو به دست بیارین و به کمک داده سیم کارت اون رو به اینترنت وصل کنین. این بورد از تماسهای تلفنی پشتیبانی نمیکنه.
این بورد علاوه بر قطعه SIM7000G مشخصات دیگهای هم داره، مثل نگهدارنده باتری مناسب برای یک باتری 18650، یک مدار شارژکننده باتری که میتونین صفحه خورشیدی رو به اون وصل کنین و باتری رو مجدداً شارژ کنین و یک شکاف برای کارت حافظه که در پروژههای جمعآوری داده یا ذخیره تنظیمات به دردتون میخوره.
مشخصات بورد:
- ولتاژ تغذیه: 3 v DC یا 5V DC
- تراشه ESP32 (قطعه WROVER-B) (پردازنده دو هستهای 240MHz)
- حافظه داخلی : 4 مگابایت
- حافظه اصلی شبه ایستا: 8 مگابایت
- حافظه اصلی ایستا: 520 کیلوبایت
- شبکه بی سیم داخلی
- بلوتوث داخلی
- مبدل USB به سریال: CP2104 یا CH9102 (درایورها)
- قطعه SIM7000G داخلی
- شکاف سیم کارت نانو
- شکاف آنتن سیم کارت
- شکاف آنتن سامانهٔ موقعیتیابی جهانی
- مدار شارژکننده باتری Li-ion/Li-PO
- IC محافظ باتری DW01A
- رابط شارژ انرژی خورشیدی CN3065 برای صفحه خورشیدی 4-6.8 V
- نگهدارنده داخلی باتری 1x 18650
- رابط صفحه خورشیدی 2p JST-PH
- شکاف کارت حافظه
- کلید روشن و خاموش
این بورد یک آنتن خارجی برای شبکه تکامل طولانی مدت (LTE) و یک آنتن دیگه برای سامانهٔ موقعیتیابی جهانی داره.
دو نسخه از این بورد وجود داره (نسخه 20191227 و نسخه 20200415). در تصویر زیر این دو نسخه رو نشون دادیم. تفاوت اصلی این دو تا بورد در جای قرارگیری نگهدارنده سیم کارت نانو هست.
طراحی مدل اول یک سری مشکلات داره، برای همین بهتون توصیه میکنیم آخرین مدل رو تهیه کنین. همچنین مدل جدیدتر با توجه به بازخوردهای کاربران بهبود پیدا کرده. من خیلی وقت پیش بورد خودم رو تهیه کردم که مدل اول است و برای همین در این پروژه از این مدل استفاده میکنم. البته این پروژه رو با آخرین مدل بورد هم میتونین انجام بدین.
برخی از بهبودیهایی که در این آخرین نسخه انجام شده:
- افزودن قابلیت کنترل برق مصرفی آنتن سامانهٔ موقعیتیابی جهانی، وقتی قطعه خاموش باشه، آنتن فقط جریان ثابت افت پایین (LDO) رو مصرف میکنه.
- برای مدیریت ورودی شارژ خورشیدی TP4056 رو با CN3065 جایگزین کرده.
- افزودن محافظ معکوس باتری
- افزودن محافظ شارژ بیش از حد باتری
- افزودن محافظ خالی شده بیش از اندازه باتری
با مراجعه به لینکهای زیر میتونین دیاگرام این دو نسخه رو مشاهده کنین:
- LILYGO T-SIM7000G ESP32 Version 1.0 schematic diagram
- LILYGO T-SIM7000G ESP32 Version 1.1 schematic diagram
پایه های بورد
تصویر زیر پایه های نسخه 1.0 این بورد رو نشون میده.
تصویر زیر پایه های آخرین نسخه بورد یعنی 1.1 رو نشون میده.
جدول زیر اتصالات ESP32 و تراشه SIM7000G رو نشون میده:
برای برقراری ارتباط با کارت حافظه به پروتکل ارتباطی گذرگاه ارتباط جانبی سریال نیاز دارین.
سیم کارت
این بورد فقط از سیم کارتهای نانو پشتیبانی میکنه. برای شبکه تکامل طولانی مدت و سرویس عمومی بستههای رادیویی به یک سیم کارت نیاز دارین. اما اگه فقط میخواین از داده سامانهٔ موقعیتیابی جهانی استفاده کنین، به سیم کارت نیاز ندارین.
برای استفاده از شبکه تکامل طولانی مدت و سرویس عمومی بستههای رادیویی به یک سیم کارت با بسته اینترنت نیاز دارین.
جزئیات نام نقطه دسترسی
برای اتصال سیم کارت به اینترنت، به جزئیات نام نقطه دسترسی ارائهدهنده بسته اینترنتی تلفنتون نیاز دارید. به عبارت دیگه، به نام دامنه، نام کاربری و رمز عبور نیاز دارین.
فرمانهای AT
از این فرمانها برای کنترل مودمها استفاده میشه، SIM7000G چنین کاری انجام میده. این فرمان ها در ESP32 از طریق پروتکل ارتباط سریال ارسال میشوند. مودم هم از طریق ارتباط سریال پاسخ میده.
چهار نمونه فرمان وجود داره: test، read، set و execution. با مراجعه به لینک زیر میتونین فهرست کامل فرمانها رو مشاهده کنین.
برخی از متداولترین فرمانها:
- چک کردن ارتباط با قطعه: AT
- چک کردن اینکه سیم کارت آماده است یا نه: ?AT+CPIN
- بررسی وضعیت ثبت دستگاه: ?AT+CGREG
- ارسال پیام کوتاه به یک شماره: AT+CMGS=PHONE_NUMBER (شماره در قالب شماره بینالمللی)
کتابخانهها
همینطور که قبل از این هم گفتیم، ESP32 برای برقراری ارتباط با تراشه SIM7000G فرمانها رو از طریق ارتباط سریال ارسال میکنه. شما به کتابخانه نیاز ندارین، خیلی راحت میتونین با قطعه ارتباط سریال برقرار کنین و فرمانهای AT رو ارسال کنین.
اما، بهتره از کتابخانه استفاده کنین. برای مثال، کتابخانه TinyGSM میدونه چه فرمانی باید ارسال کنه، چجوری پاسخهای رو مدیریت کنه و اون رو در رابط استاندارد Arduino Client قرار بده. در این پروژه هم از همین کتابخانه استفاده میکنیم.
نصب کتابخانه TinyGSM
Arduino IDE رو باز کنین و به Sketch > Include Library > Manage Libraries برید. Library Manager باید براتون باز بشه. TinyGSM رو جستوجو کنین و کتابخانه TinyGSM از Volodymyr Shymankskyy انتخاب کنین.
کتابخانه StreamDebugger رو هم باید نصب کنین. به Sketch > Include Library > Manage Libraries برید و StreamDebugger رو جستوجو و نصب کنین.