اینترنت اشیا IOT برد ESP8266 برد Nodemcu سیم کارت GSM - GPRS

پروژه اینترنت اشیا با پلتفرم ThingSpeak و ESP8266 اینترنت ماژول SIM800L

نوشته شده توسط علی زاهدی, CiferTech

پیش از این در آموزش های مختلفی برقراری ارتباط با پلتفرم های IOT به کمک Wifi بردهای ESP را انجام داده ایم. اما ممکن است در شرایطی برقراری ارتباط Wifi امکان پذیر نباشد. در این شرایط میتوان از ماژول GSM برای اتصال به اینترنت استفاده نمود. ماژول SIM800L از محبوب ترین ماژول های GSM است که از برقراری ارتباط GPRS نیز پشتیبانی می‌کند. در این پست قصد داریم اینترنت اشیا با پلتفرم ThingSpaek و نحوه برقراری ارتباط با پلتفرم با اینترنت سیم کارت ماژول SIM800L را آموزش دهیم. در ادامه با مرجع تخصصی اینترنت اشیا به زبان فارسی، دیجی اسپارک همراه باشید.

 

 


ماژول SIM800L


ماژول های سیم کارت مختلفی در بازار موجود است. یکی از محبوب ترین ماژول ماژول های سیم کارت، ماژول SIM800L است. این ماژول به دلیل اندازه کوچک، قیمت نسبتا مناسب و قابلیت های مختلفی که دارد بسیار محبوب شده است. با استفاده از این ماژول قادر خواهید بود همانند یک تلفن همراه به شبکه متصل شده و عملیات هایی مانند برقراری تماس، ارسال و دریافت پیامک و حتی اتصال به اینترنت را انجام دهید. این ماژول دارای یک اسلات سیم کارت است که سیم کارت از نوع mini درون آن قرار میگیرد. ماژول SIM800 را میتواند از طریق USART کنترل کنید. دو پایه RX و TX بر روی ماژول برای دریافت فرمان و ارسال داده از طریق USART وجود دارد. بر روی ماژول پایه هایی برای اتصال میکروفون و بلندگو نیز وجود دارد.

 

SIM800L یک مودم مینیاتوری GSM است که می تواند در تعداد زیادی از پروژه های اینترنت اشیا ادغام شود. شما می توانید از این ماژول برای انجام تقریبا هر کاربردی که یک تلفن همراه معمولی قادر به انجام است، استفاده کنید. پیام کوتاه متنی، برقراری یا دریافت تماس تلفنی، اتصال به اینترنت از طریق GPRS  TCP/IP و موارد دیگر که برای تکمیل آن، این ماژول از شبکه چهار بانده GSM/GPRS پشتیبانی می کند، به این معنی که تقریبا در هر کجا که آنتن دهی باشد کار می کند. ماژول برای اتصال به شبکه به آنتن خارجی نیاز دارد. این ماژول معمولا دارای یک آنتن حلزونی است و مستقیما به پین NET در PCB لحیم می شود. در صورتی که بخواهید آنتن را از برد دور نگه دارید، برد همچنین دارای یک اتصال دهنده U.FL است. در قلب ماژول SIM800L یک تراشه GSM از SimCom قرار دارد. ولتاژ کاری تراشه از ۳٫۴ ولت تا ۴٫۴ ولت است که آن را به گزینه‌ای ایده آل برای تامین مستقیم باتری LiPo تبدیل می کند. این امر باعث می شود تا گزینه خوبی برای پروژه هایی بدون فضای زیاد باشد.

این ماژول در محدوده فرکانسی ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰ فعال است. بنابراین، بدون هیچ مشکلی در ایران قابل استفاده خواهد بود. از طرفی دیگر، این ماژول ها به هیچ عنوان وارد طرح رجیستری نشده و بدون نیاز به فعال سازی آن در سامانه همتا، می توان با خیالی آسوده در پروژه های کنترل از راه دور، از این ماژول استفاده نمود.

 


برد ESP8266


تراشه های ESP8266 از موارد محبوب در زمینه اینترنت اشیا هستند که نسبت به دیگر نمونه ها کیفیت بهتر و همچنین قیمت پایین تری نیز دارند، هسته مرکزی این ماژول ESP8266 EX می باشد که در واقع زیر این شیلد فلزی قرار گرفته است، در ضمن این شیلد فلزی به منظور کاهش نویز و همچنین محافظت از قطعات SMD حساس این ماژول قرار داده شده است. این ماژول ها در سری های مختلفی تولید می‌شوند از جمله esp01 و esp12، در واقع تفاوتی که مدل ها با یکدیگر دارند تعداد GPIO ها و همچنین حافظه آن ها است البته معمولا از نظر ظاهری نیز تفاوت هایی که با یکدیگر دارند که قابل تشخیص است. این ماژول ها از شبکه WIFI داخلی پشتیبانی می‌کنند، این میکرو کنترلر ها اولین بار در سال ۲۰۱۴ به بازار عرضه شدند. ESP8266 دارای ۱۳ GPIO و همچنین یک ورودی آنالوگ (A0) است.

 

 


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


سنسور دما و رطوبت DHT11 سنسوری ارزان قیمت جهت اندازه گیری دما و  رطوبت هوا است. اندازه، مصرف کم انرژی آن را به یکی از بهترین گزینه‌ها جهت استفاده در پروژه‌های مختلف، تبدیل کرده است. با توجه به خروجی دیجیتال این سنسور، به راحتی می تواند به pyboard  و یا سایر میکروکنترلر ها متصل گردد.  سنسور DHT11 کالیبره شده و دارای خروجی دیجیتال است. محدوده اندازه گیری رطوبت بین ۲۰ تا ۹۰% RH و محدوده‌ی دما از ۰ تا ۵۰ درجه سانتی گراد می‌باشد. ولتاژ کاری ماژول DHT بین ۳٫۳ تا ۵ ولت DC است. فاصله انتقال سیگنال در ماژول DHT11 تا ۲۰ متر می‌باشد. ماژول دما و رطوبت DHT11 بسیار مقرون به صرفه، دارای کیفیت‌ عالی و واکنش سریع نسبت به تغییر دمای محیط است. ماژول DHT11 به ترتیب دارای ۳ پایه GND, VCC, Signal می‌باشد.

 


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


LM2596 یک آی سی تنظیم کننده سوئیچینگ step-down و محبوب است. نسخه قابل تنظیم می تواند ولتاژ ورودی را از ۴٫۵ ولت به ۴۰ ولت و  منبع ولتاژ متغیر تا ۳ آمپر جریان تبدیل کند. به دلیل توانایی بالای جریان آن معمولا در پروژه های نیاز تغذیه برای تامین برق استفاده می شود. LM2596 به دلیل رتبه بندی بالای جریان ۳A شناخته شده است. این مورد در بسیاری از نسخه ها با ولتاژ خروجی ثابت مانند ۳٫۳ ولت، ۵ ولت و ۱۲ ولت موجود است. اما مشهورترین آن LM2596-ADJ است که ولتاژ خروجی متغیری دارد. این IC در واقع یک مبدل باک است که با فرکانس سوئیچینگ ۱۵۰ کیلوهرتز کار می کند، ولتاژ ورودی را دریافت و از مدار سوئیچینگ داخلی برای تنظیم ولتاژ خروجی دلخواه استفاده می کند. بنابراین اگر به دنبال یک ماژول کوچک و مبدل جریان step-down هستید، LM2596 می تواند گزینه مناسبی برای شما باشد. از این ماژول می‌توان برای تامین برق تجهیزات الکترونیکی، هنگامی که تجهیزات به منبع تغذیه ۳ الی ۳۵ ولت نیاز دارند، با استفاده از این ماژول می توان ولتاژ را به راحتی بر روی ولتاژ مورد نیاز تنظیم کرد. همچنین می تواند برای تست ولتاژ کار سیستم استفاده شود. هنگام انجام پروژه، می توانید از این ماژول برای رفع اشکال دامنه ولتاژ کار در سیستم های مختلف آزمایش ولتاژ استفاده کنید.
  1. دامنه ولتاژ ورودی این ماژول بین DC 3.2V الی ۴۰V است. توجه داشته باشید ولتاژ ورودی باید ۱٫۵ ولت بیشتر از ولتاژ خروجی باشد.
  2. دامنه ولتاژ خروجی قابل تنظیم است و بین ۱٫۲۵ ولت الی ۳۵ ولت است؛ جریان خروجی می تواند به ۳A برسد. زمانی که چراغ نشانگر روشن است به این معنا است که ماژول به خوبی کار می کند.
  3. با تنظیم پتانسیومتر آبی می‌توانید به خروجی مدنظر برسید، که به طور کلی چرخش پتانسیومتر در جهت عقربه های ساعت باعث افزایش نیرو می شود و چرخش در جهت خلاف جهت عقربه ساعت باعث پایین آمدن می شود.

 


اینترنت سیم کارت GPRS


عبارت GPRS مخفف سرویس ارسال و دریافت داده رادیویی(General Radio Packet Service) است. این تکنولوژی قادر است تا سرعت بین ۵۶ الی ۱۱۴ کیلوبیت بر ثانیه داشته باشد. به کمک این فناوری می توانید به ارسال و دریافت داده بپردازید. این داده ها ها می توانند از حجم کم مثل دمای محیط تا داداه هایی با حجم بالا نظیر عکس باشند. ماژول SIM800L می تواند به کمک این فناوری، به ارسال و دریافت داده بپردازد. به عنوان مثال، میتوان دمای محیط را به یک سرور ارسال کرد و یا فرمان قطع و وصل رله را از یک سرور، به ماژول ارسال نمود.

 


اینترنت اشیا با پلتفرم ThingSpeak


پلتفرم ThingSpeak یک برنامه open source اینترنت اشیا و API برای ذخیره و بازیابی اطلاعات از طریق پروتکل های HTTP و MQTT با اینترنت و یا با استفاده از شبکه محلی است. Thingspeak به شما امکان می دهد داده های سنسور ها را جمع آوری، ذخیره کنید و تجزیه و تحلیل کنید، همچنین با استفاده از امکانات موجود در دشبورد IOT این سایت می توانیم نمودار هایی بر اساس مقادیر بدست آمده رسم کنیم. ThingSpeak یک سرویس پلتفرم تجزیه و تحلیل اینترنت اشیا است که به شما امکان می دهد جریان های داده زنده را در کلاود جمع آوری، تجسم و تجزیه و تحلیل کنید. می توانید از طریق دستگاه های خود داده ها را به ThingSpeak ارسال کنید، ایجاد تصویری فوری از داده های زنده و با استفاده از سرویس های وب مانند Twitter و Twilio هشدار ارسال کنید. ThingSpeak مهندسان و دانشمندان را قادر می سازد تا نمونه های اولیه و ساخت سیستم های اینترنت اشیا را بدون تنظیم سرورها یا توسعه نرم افزارهای وب ایجاد کنند.

 


شرح آموزش


همانطور که در ابتدای آموزش گفته شد. ممکن است در برخی از موارد استفاده از قابلیت اتصال به Wifi در تراشه های ESP8266 وجود نداشته باشد. در این مواقع برای اتصال به اینترنت بایستی به فکر راه دیگری باشیم. استفاده از قابلیت GPRS در ماژول های GSM مانند SIM800L میتواند راه مناسبی باشد. در این پروژه با استفاده برد nodemcu (البته با اعمال تغیرات بسیار کوچک در روند اجرای پروژه میتواند از دیگر برد های مبتنی بر تراشه ESP8266 نیز استفاده کنید) مقادیر سنسور DHT11 را تحلیل می‌کنیم و با استفاده از برد SIM800L اینترنت مورد نیاز برای برد ESP8266 را تامین خواهیم کرد تا در ادامه با استفاده از API سایت ThingSpeak مقادیر دما و رطوبت سنسور را به دشبورد IoT خود ارسال کنیم. در این پروژه از اینترنت GPRS استفاده می‌کنیم که توسط ماژول SIM800L فراهم می‌شود، که به ما این امکان را می‌دهد تا در هر زمان و مکان قادر به ارسال اطلاعات به دشبورد ThingSpeak باشیم.

 


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


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

 


کتابخانه‌های موردنیاز


ابتدا در نرم افزار Arduino IDE اقدام به نصب کتابخانه مرجع سنسور های DHT و همچنین کتابخانه را‍‌ه‌اندازی ماژول های GSM یعنی TinyGsmClient می پردازیم. مراحل زیر را دنبال کنید:

  1. این مسیر را دنبال کنید Sketch Include Library > Manage Libraries
  2. کلمه DHT sensor را جستجو کنید.
  3. کتابخانه را نصب کنید.

 

  • در ادامه در بخش جستجو مانند مراحل قبل کلمه TinyGsmClient را جستجو وکتابخانه را نصب کنید.

 


راه اندازی دشبورد ThingSpeak


این بخش در آموزش قبلی هم توضیح داده شد. ولی مجددا برای افزایش سرعت آموزش در این پست هم توضیح خواهم داد. ابتدا به آدرس thingspeak.com مراجعه کنید و یک یک اکانت جدید ایجاد کنید، سپس در قسمت Channels و در ادامه مانند تصویر زیر New Channel، اقدام به ساخت یک چنل یا دشبورد کنید.

  • آموزش کامل راه‌اندازی دشبورد ThingSpeak در این لینک و آموزش مرجع موجود است.

 


دریافت API از ThingSpeak


در بخش API keys و در باکس مشخص شده می‌توانید API مورد نیاز برای پروژه را پیدا کنید، از این API در ادامه استفاده خواهیم کرد. این API پل ارتباطی بین سخت افزار ما و دشبورد ThingSpeak است که در دو نوع Write API و Read API وجود دارد که در این پروژه ما با استفاده نوع اول یعنی Write API مقادیر سنسور DHT11 را به سمت ThingSpeak ارسال خواهیم کرد و در مختصات های مشخص نمایش خواهیم داد. در ائامه داخل بخش مربوط به کد پروژه مشاهده می‌کنید که رشته ای در کد بانام apiKey مشخص شده است. عبارت Key دریافتی از این صفحه را بایستی داخل رشته apiKey در کد پروژه قرار دهید.

 


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


در این آموزش از ماژول SIM800 و برد nodemcu برپایه تراشه ESP8266 استفاده می‌کنیم. این ماژول از طریق ارتباط سریال با یکدیگر ارتباط برقرار می‌کنند، یعنی پین های RX و TX در ماژول SIM800. همچنین برای اندازه گیری دما از سنسور DHT11 نیز استفاده کرده‌ایم، که به یکی از پین های برد nodemcu متصل می‌شود. برای اندازه‌گیری بهتر از یک مقاومت بین پین های سیگنال و VCC سنسور DHT نیز استفاده خواهیم کرد. ماژول LM2596 همراه با یک جک پاور برای راه‌اندازی ماژول SIM کارایی دارد و روند کار پروژه را برای ما بسیار آسان خواهد کرد. همچنین در نهایت تمام اتصالات GND در پروژه باید به یکدیگر متصل باشند.

  • ابتدا اتصالات nodemcu و ماژول SIM800 را برقرار خواهیم کرد. همانطور که ذکر شد، پین های rx و tx از ماژول sim800 به پین های D3 و D2 در برد nodemcu متصل می‌شوند.

 

  • در ادامه نوبت به سنسور DHT21 و برد nodemcu می‌رسد، در این پروژه برای دریافت دیتای سنسور از پین D0 در ESP8266 استفاده می‌کنیم، همچنین بین پین های Vcc و سیگنال خروجی در سنسور DHT11، یک عدد مقاومت استفاده خواهیم کرد، برای بدست آوردن نتیجه بهتر در خروجی های سنسور. برای تغذیه سنسور از پین های ۳v3 و GND از برد nodemcu استفاده خواهیم کرد.

 

  • ماژول LM2596 دارای دو پین ورودی ولتاژ و دو پین خروجی برای ولتاژ است، از پایه های IN+ و IN- برای اتصال به آداپتور استفاده خواهیم کرد، و در نهایت دو پین OUT+ و OUT- به پین های تغذیه ماژول SIM800 ما متصل خواهند شد.
  • لطفا توجه داشته باشید که قبل از اتصال ماژول LM2596 به ماژول SIM800L، حتما ولتاژ آن را بر روی ۴٫۲ ولت تنظیم کنید. در صورتی که ولتاژ را قبل از اتصال به ماژول کاهش ندهید. احتمال آسیب دیدن ماژول SIM800L بسیار بالا خواهد بود.

 

  • در نهایت اتصالات این پروژه به شکل زیر خواهد بود. ماژول LM2596 برد SIM800 را تغذیه می‌کند، برد nodemcu با ماژول SIM800 در ارتباط است، و در نهایت دیتای سنسور DHT11 در برد ESP8266 تحلیل می‌شود.

 


کد و راه‌اندازی مدار


در این قسمت کد اتصال به دشبورد ThingSpeak با استفاده از اینترنت ماژول Sim800L و ارسال دما و رطوبت ماژول DHT11 را مشاهده می‌کند. این کد برای برد NODEMCU توسعه یافته است. اما تغیرات کوچکی میتوانید این کد را بر روی دیگر برد های مبتنی بر تراشه ESP8266 نیز آپلود کنید. ابتدا این کد را بر روی برد NODEMCU آپلود کنید. و سپس سایر ماژول هارا به آن متصل کنید. در این بخش API دریافتی از سایت Thingspeak را وارد می‌کنیم، این API مخصوص به دشبورد ساخته شده توسط شماست و نقش اصلی در برقراری ارتباط دشیورد با سخت افزار را دارد.

 

این دوخط کد مربوط یه سیم کارتی است که استفاده می‌کنید و با توجه به این موضوع باید یک مورد را از کامنت دربیاورید.

 

در این قسمت با مقدار دهی به این خط کد GPRS ماژول را برای اتصال به اینترنت را‌ه‌اندازی میکنیم.

 

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

 

و در نهایت یکی از مهم ترین بخش هایی این پروژه که مربوط به برقراری اتصال با دشبور و ارسال درخواست های مورد نیاز است تا با ThingSpeak.com ارتیاط برقرار کند.

 

کد کامل پروژه برقراری ارتباط با پلتفرم ThingSpeak به کمک ماژول SIM800L

 


جمع بندی


در این آموزش همانطور که در ابتدای آن گفته شد. به مسئله ای پرداخته شد که ممکن است، همه ما با آن روبرو شده باشیم. مسئله ای که در این آموزش با آن رو برو هستیم در دسترس نبودن Wifi برای برقراری ارتباط با سرور های مثل دشبورد ThingSpeak است. روشی که در این آموزش برای رفع این مشکل پیشنهاد شده است، استفاده از GPRS ماژول SIM800L است. در ابتدای آموزش به معرفی ماژول SIM800L، برد NODEMCU، سنسور DHT11 و ماژول تغذیه LM2596 که قطعات مورد استفاده در این پروژه هستند، پرداخیتم. در ادامه اینترنت سیمکارت یا همان GPRS و پلتفرم اینترنت اشیاء ThingSpeak مورد بررسی قرار گرفت. سپس در قسمت شرح پروژه نحوه عملکر مدار توضیح داده شده است. پس از آن کتابخانه های مورد نیاز در پروژه معرفی شده و همچنین نحوه نصب آنها نیز توضیح داده شده است. سپس نحوه راه اندازی دشبورد ThingSpeak و دریافت API از این پلتفرم توضیح داده شده است. با برد ESP8266 و ماژول SIM800 توانستیم دمای محیط را در سریال مانیتور نرم‌افزار Arduino چاپ کنیم. همچنین بدلیل استفاده از برد ESP8266 توانستیم با سایت ThingSpeak ارتباط برقرار کنیم و اطلاعات در دشبورد IOT این سایت مانیتور کنیم. در آخر اتصالات و کد پروژه به همراه تحلیل کامل آن قرار داده شده است.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

علی زاهدی

برنامه نویس و طراح سیستم های مبتنی بر میکروکنترلر

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

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

CiferTech

فقط 10 نوع آدم در این دنیا وجود داره، اونی که باینری میفهمه و اونی که باینری نمیفهمه! ^-^

~ اینستاگرام: CiferTech

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