برد Nodemcu سیم کارت GSM - GPRS

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

create-internet-uploader-backup-with-wifi-and-gprs-sim800l-module-digispark
نوشته شده توسط معین صابری

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

 


ساز و کار عملکرد دستگاه ارسال دیتا


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

 

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

 


برد NODEMCU بر پایه ESP8266


هر پروژه IOT نیاز به یک واحد پردازنده مرکزی جهت پردازش داده و اجرای برنامه کاربر دارد. در این آموزش ما از برد NODEMCU استفاده می کنیم. برد NODEMCU یک برد همه فن حریف جهت اجرای پروژه های IOT است. این برد دارای قابلیت وای فای است. به عبارت دیگر این برد می تواند به یک مودم متصل شده و در فضای اینترنت به تبادل داده بپردازد.

برد NODEMCU بر پایه ESP8266 -دیجی اسپارک

 

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

 


ماژول سیم کارت SIM800L


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

اینترنت ماژول سیم کارت SIM800L - دیجی اسپارک

 

در این آموزش ما از ماژول SIM800L جهت اتصال به اینترنت استفاده می کنیم. به کمک اینترنت GPRS این ماژول در زمان هایی که اتصال وای فای قطع شود، داده ها را به سرور اینترنتی ارسال می نماید. جهت راه اندازی و کار با این ماژول هم سلسله آموزش صفر تا صد منتشر شده که با کلیک بر روی این لینک، قابل دسترسی است.

ماژول SIM800L دارای بازه ولتاژ ۳٫۴ الی ۴٫۲ ولت است. ولتاژ مناسب برای کارکرد این ماژول، ۴ ولت است. از آنجاییکه این ولتاژ در آداپتورهای موجود در بازار وجود ندارد، لذا می بایست از مبدل های ولتاژ استفاده نماییم. یکی از مبدل های کاربردی، ماژول کاهنده ولتاژ LM2596 است. به کمک این ماژول می توانید ولتاژ منبع تغذیه را کاسته و به مقدار ایده آل برسانید. بر روی ماژول LM2596 یک مولتی ترن تعبیه شده که با چرخاندن آن می توانید ولتاژ مد نظر خود را در خروجی خود ایجاد کنید.

ماژول کاهنده LM2596 - دیجی اسپارک

 

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

 


شماتیک و اتصالات


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

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

 

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

  • اتصال کابل های آداپتور با رعایت پلاریته به ورودی ماژول کاهنده
  • اتصال پایه خروجی مثبت ماژول کاهنده به پایه VCC ماژول SIM800L
  • اتصال پایه خروجی منفی ماژول کاهنده به پایه GND ماژول SIM800L
  • اتصال پایه GND ماژول NODEMCU به پایه GND ماژول SIM800L
  • اتصال پایه TX ماژول SIM800L به پایه RX ماژول NODEMCU
  • اتصال پایه RX ماژول SIM800L به پایه TX ماژول NODEMCU

 

 توجه۱: پیش از برقراری اتصالات، ابتدا ولتاژ خروجی ماژول کاهنده ولتاژ را روی ۴ تنظیم کرده و سپس به ماژول SIM800L متصل کنید.

توجه۲: در این آموزش تغذیه برد NODEMCU از طریق کابل تامین می گردد.

توجه ۳: جهت تغذیه ماژول SIM800L، از یک آداپتور ۱۲ ولت ۵ آمپر استفاده شده است.

 


کدهای پروژه سمت کلاینت (NODEMCU)


پس از برقراری اتصالات، نوبت به کدهای پروژه می رسد. پیش از آپلود کدها روی برد، از آنجاییکه جهت ارتباط بین SIM800L و NODEMCU از سریال سخت افزاری استفاده شده، لذا پیش از آپلود کدها، ابتدا کابل های متصل به پایه های RX و TX ماژول NODEMCU را جدا کنید. پس از اتمام آپلود، مجددا کابل ها را متصل نمایید.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 


کدهای سمت سرور آموزش


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

توجه: این کد را روی صفحه روت یا index.php قرار دهید.

 


اجرای پروژه اینترنت پشتیبان


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

اجرای پروژه اینترنت پشتیبان با sim800l - دیجی اسپارک

 

 در ادامه نیز بر روی سرور خود در فایل data2.txt می توانید داده های ارسالی را مطابق تصویر زیر مشاهده کنید.

 

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

 


تحلیل کدهای پروژه


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

کاربرد تابع
کنترل اتصال به شبکه GSM check_connect
اتصال به اینترنت GPRS connect_internet
ارسال داده ها به سرور به کمک اینترنت GPRS send_data_via_gprs
ارسال داده ها به سرور به کمک اینترنت وای فای send_data_via_wifi

 

 توجه داشته باشید که در این آموزش خروجی تابع millis به سرور ارسال می گردد.

 


لوازم مورد نیاز


  1.  برد nodemcu
  2. فیش آداپتور
  3. ماژول sim800l
  4. ماژول کاهنده ولتاژ lm2596
  5. آداپتور تغذیه ۱۲ ولت با جریان ۵ آمپر

 


جمع بندی


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

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

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۲ دیدگاه

  • سلام مهندس میشه با استفاده از برد اردوینو یا node mcu یه اسکنر درست کنیم ؟
    به این صورت که یه ماژول مادون قرمز با استفاده از یک موتور بالا پایین بشه و شئ که میخواهیم ازش تصویر سه بعدی درست کنه را روی یک موتور دیگر سپس با دستور اردوینو موتور به بچرخه و ماژول مادون قرمز هم به شئ مورد نظر بتابه و شکل سه بعدی داخل ماژول SD ذخیره بشه

    • سلام
      با ESP32CAM راحت تر می توانیم عکس بگیریم و ذخیره کنیم.
      ولی ایده بسیار جالبی بود!
      فکر می کنم با دوربین راحت تر اجرا شود.

  • سلام مجدد
    مهندس اگه میشه با شیلد cnc اردوینو هم پروژه بزارید
    مثلاً ساخت دستگاه cnc با اردوینو

  • سلام مهندس
    اگه میشه پروژه ای را طراحی کنید که تصویر زنده از ماژول esp32cam را روی یک ماژول صفحه نمایش نشان دهیم بصورت بیسیم
    مثل پروژه دوربین دنده عقب ولی بصورت بیسیم

  • سلام روزتون بخیر
    من می خوام در یک پروژه همزمان از ماژول ۸۲۶۶wifiوsim800l استفاده کنم (ولی نیاز به اینترنت ندارم-تماس سیمکارت و اس ام اس مورد نیاز است و wifi از طریق اپلیکیشن درموبایل با دستگاه مربوطه ارتباط برقرار کند.).
    میکرو atmega32 می باشد.

    ۱) sim800 از طریق rx,tx متصل میشه.در این صورت wifi به کجا باید وصل شه؟

    ۲)آیا میشه هم wifi هم sim800 به صورت همزمان به usart میکرو وصل شه؟یا اینکه این تداخل مشکل به وجود میاره؟

    ۳)لطفا لینک آموزش هایی که در راستای این پروژه بهمون کمک می کنه رو معرفی کنید.ممنون

    • سلام و متشکرم
      در این حالت از کتابخانه سریال نرم افزاری، در صورت وجود، برای ATMEGA32 استفاده کنید. در غیر اینصورت از میکروکنترلر AVR با تعداد UART بیشتر استفاده کنید. اما پیشنهاد می کنم برای این مورد که دو دستگاه قصد استفاده از یک UART را دارند، از مالتی پلکسر ۲ به ۱ استفاده کنید.

  • درود بر شما
    در صورتی که بخواهیم از این پروژه بعنوان یک مودم وای فای استفاده کنیم چه تغییراتی در برنامه نیاز هست. ؟