سیم کارت GSM - GPRS پروژه های آردوینو

پیاده سازی سیستم مانیتورینگ آنلاین وضعیت اتاق سرور با اینترنت SIM800L

create-server-temperature-monitor-with-arduino-and-sim800l-digispark
نوشته شده توسط معین صابری

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

 


ماژول SIM800L


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

  • ولتاژ کاری بین ۳٫۴ الی ۴٫۴
  • قابلیت کار در فرکانس های ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰
  • قابلیت برقراری تماس صوتی دو طرفه
  • قابلیت ارسال و دریافت پیامک
  • قابلیت اتصال به اینترنت و ارسال و دریافت داده
  • پشتیبانی از پروتکل های FTP،HTTP،SMTP و….

ماژول Sim800L برای ساخت دوربین سیم کارتی

 

در این پروژه ما از این ماژول جهت ارسال داده ها در بستر اینترنت به سرور استفاده می کنیم. از آنجاییکه ولتاژ کاری این ماژول بین ۳٫۴ الی ۴٫۲ قرار می گیرد، لذا از طریق باتری لیتیمی به صورت مستقیم و بدون واسط می توانیم این ماژول را تغذیه نماییم. در این پروژه ما از یک آداپتور ۱۲ ولت ۵ آمپر که به یک ماژول کاهنده متصل شده، استفاده می کنیم. برای راه اندازی و کار با این ماژول کاربردی سلسله آموزشی طی ۱۱ مرحله منتشر شده که با کلیک بر روی این لینک می توانید این آموزش ها را دنبال و مطالعه کنید.

 


ماژول کاهنده ولتاژ LM2596


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

Activation of relays via DTMF call with voice report

 

در این پروژه به کمک این ماژول ولتاژ ۱۲ ولت آداپتور را به ۴٫۲ ولت که مناسب ماژول SIM800L است کاهش می دهیم. دقت داشته باشید که ابتدا ولتاژ خروجی ماژول را به کمک مولتی ترن آن کاهش داده و سپس به ماژول SIM800L متصل نمایید. همچنین در این پروژه آداپتور به جک تغذیه آردوینو متصل میشود. سپس ماژول کاهنده ولتاژ ورودی خود را از پایه VIN که همان ولتاژ آداپتور است، تامین می نماید.

 


برد آردوینو UNO وضعیت اتاق سرور


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

 

 بر روی برد آردوینو UNO تمام ملزومات لازم جهت راه اندازی برد تعبیه شده است. از جمله این ملزومات می توان به کریستال و خازن های کاهش نوسان ولتاژ اشاره نمود. همچنین بر روی این برد یک رگولاتور ۳٫۳ ولت جهت تغذیه ماژول های مختلف قرار گرفته است. به طور کلی استفاده از برد آردوینو در پروژه ها، سبب تسریع و تسهیل روند توسعه خواهد شد. در این پروژه برد آردوینو مسئولیت تعامل با ماژول های مخابراتی و پخش صدا را دارد. در پروژه وضعیت اتاق سرور برد آردوینو داده های مربوط به ماژول ولتمتر و سنسور DHT11 را می خواند. سپس این داده ها را با ارسال فرمان به ماژول SIM800L، به یک سرور اینترنتی ارسال می نماید.

 


ماژول اندازه گیری ولتاژ ZMPT101B


ماژول های اندازه گیری ولتاژ از ابزارهای پرکاربرد در صنایع الکترونیک و پروژه های مختلف به شمار می روند. به کمک این ماژول ها می توانید ولتاژ را اندازه گیری نمایید. ماژول ولتاژ ZMPT101B اندازه گیری ولتاژ AC، یکی از ماژول های پرکاربرد در زمینه اندازه گیری ولتاژ محسوب می شود. به کمک این ماژول می توانید به سادگی و بدون نیاز به طراحی مدارهای خاص، تا ۲۵۰ ولت AC را اندازه گیری نمایید. این ماژول دارای خروجی آنالوگ بوده که ولتاژی متناسب با ولتاژ AC اندازه گیری شده را می توانید مشاهده کنید. خروجی این ولتاژ در حالت بیشینه برابر با ۳٫۵۶ بوده که کاملا مناسب برای راه اندازی با بردهای  است.

ماژول اندازه گیری ولتاژ ZMPT101B - دیجی اسپارک

 

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

 


سنسور دما و رطوبت DHT11


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

  • محدوده اندازه گیری  دما: ۰ الی ۵۰ درجه سانتی گراد با دو درجه خطا
  • محدوده اندازه گیری رطوبت:  ۲۰ الی ۸۰ درصد با ۵ درصد خطا
  • محدوده ولتاژ کاری: ۳ الی ۵ ولت

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

سنسور دما رطوبت DHT11 در برد هود آشپزخانه - دیجی اسپارک

 


سرور اینترنتی


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

توجه: سرور باید از نوع لینوکس و با زبان برنامه نویسی PHP باشد.

 


شماتیک و اتصالات پروژه


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

اتصالات پروژه وضعیت اتاق سرور با آردوینو - دیجی اسپارک

 

 با توجه به تصویر فوق، اتصالات مدار را ادامه می دهیم. توجه داشته باشید که برای تغذیه این مدار از یک آداپتور ۱۲ ولت ۵ آمپر که به فیش آردوینو متصل شده، استفاده می کنیم.

 


اتصالات ماژول SIM800L


  • اتصال پایه VCC ماژول SIM800L به خروجی مثبت ماژول کاهنده ولتاژ با ولتاژ ۴٫۲ ولت
  • اتصال پایه GND ماژول SIM800L به خروجی منفی ماژول کاهنده ولتاژ
  • اتصال پایه TX ماژول SIM800L به پایه RX(0) برد آردوینو
  • اتصال پایه (۱)TX آردوینو با دو مقاومت به صورت تقسیم مقاومتی به RX آردوینو

 


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


  • اتصال پایه VCC ماژول به پایه ۵ ولت آردوینو
  • اتصال پایه OUT ماژول به پایه A0 آردوینو
  • اتصال پایه GND ماژول به پایه GND آردوینو

 


اتصالات سنسور DHT11


  • اتصال پایه VCC به پایه ۳٫۳ ولت آردوینو
  • اتصال پایه GND سنسور به پایه GND آردوینو
  • اتصال پایه DATA سنسور به پایه ۴ آردوینو

 


کدهای پروژه- بخش سخت افزار


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

  • هنگام آپلود کد روی آردوینو، کابل متصل به پایه RX را جدا کنید.
  • هنگام آپلود کد روی آردوینو، تغذیه آداپتور را جدا کرده و با کابل USB متصل به رایانه، آردوینو را تغذیه و پروگرام کنید.

 

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

 

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

 


کدهای پروژه، بخش سرور


پس از آپلود کدها روی آردوینو، نوبت به آپلود کدهای سرور می رسد. برای آپلود این کدها در سرور خود، از طریق کنترل پنل وارد سرور شوید. پس از ورود به سرور، وارد قسمت file manager شوید. در این قسمت در فولدر public_html، فایل index.php را باز کنید(اگر نیست، بسازید) و کدهای زیر را در آن قرار داده و سپس ذخیره کنید.

 

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

 

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

 


اجرای پروژه


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

 

 در نهایت در سمت سرور، با مراجعه به فایل info.txt، می توانید داده ها را مانند تصویر زیر، مشاهده نمایید.

 

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

پروژه وضعیت اتاق سرور با برد آردوینو - دیجی اسپارک

 


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


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

عملکرد نام تابع
کنترل اتصال ماژول به شبکه GSM check_connect()
تنظیمات مربوط به پیامک جهت ارسال پیامک هشدار به کاربر set_sms()
تابع جهت اتصال به اینترنت و کنترل وضعیت اتصال connect_internet()
تابع جهت ارسال داده به سرور send_data

 

در سمت سرور نیز، از آنجاییکه داده ها با متد GET ارسال می شوند، لذا می بایست به کمک دستور GET آن را دریافت کنیم. پس از دریافت داده، به کمک تابع fwrite، داده ها در فایل نوشته می شوند.

 


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


  1. برد آردوینو UNO
  2. سنسور دما و رطوبت DHT11
  3. ماژول ولت متر
  4. ماژول کاهنده ولتاژ LM2596
  5. آداپتور ۱۲ ولت ۵ آمپر

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۲ دیدگاه

  • سلام
    وقت شما بخیر
    ضمن تشکر از شما یک سوال داشتم:
    آیا دستورات داخل تابع send_data در آردوینو با تابع delay(); نوشته شده یا multitasking مثل millis(); ؟
    سپاسگزارم

    • سلام و عذرخواهی می کنم بابت تاخیر در پاسخگویی
      دستورات با MILLIS نوشته شده اما MULTITASK نیست!