مهندسی برق و کامپیوتر

  • نویسنده : admin
  • بازدید : [] مشاهده
  • دسته بندی : دسته: مهندسی برق

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

پروژه ارسال دما ds1820 به سرور با مگا16

پروژه ارسال دما به سرور با sim800c و ds18b20

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

 

دستگاه های اینترنت اشیا

دستگاه های اینترنت اشیا سه بخش اصلی همیشه دارن :

  1. واحد سنسور : میتونه سنسور دما، رطوبت، گاز و…… باشه ( این قسمت میتونه شامل یه وسیله ای هم باشه که بشه کنترلش کرد مثل لامپ که اصطلاحا بهش میگن actuator )
  2. واحد مخابراتی : که میتونه با سیم مثل تلفن ثابت و یا بیسیم مثل gsm-gprs-wifi
  3. واحد پردازنده : که همون میکروکنترلر هست که داده ها رو از سنسور میگیره وتحلیل میکنه، به ماژول مخابراتی میده و اون میفرسته، البته میتونه از ماژول مخابراتی هم داده بگیره و اون لامپ رو کنترل کنه

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

 

نکته مهم در اینجا استفاده از اینترنت ماژول sim800c و یکم بحث شبکه ای اون هست که البته راحته؛ ببنین ما در اینجا برای ارسال داده از پروتکل tcp استفاده میکنیم، کاری که مرورگر شما برای باز کردن سایت dmf میکنه، tcp یکی از پنج لایه شبکه هست که وظیفه ارتباط با لایه های بالاتر و پایین تر داره. برای اطلاعات بیشتر پنج لایه رو تو نت سرچ کنین یا سرکلاس شبکه یا شبکه های پیشرفته بچه های کامپیوتر یا شبکه تو دانشگاه بشینید که جالبه درسش؛ خب تا حالا حتما عبارت http رو شنیدین، به کمک این پروتکل ما میتونیم به وب سایت ها داده بفرستیم و بگیریم.

 

پروتکل های معروف ارسال و دریافت داده

یه لیستی از پروتکل های معروف ارسال و دریافت داده به شکل زیر هستن :

  1. http : انتقال داده به به سرور
  2. ftp : انتقال فایل به سرور
  3. Smtp : ارسال و دریافت ایمیل

جالبه که ماژول های simcom که ما داریم ازش استفاده میکنیم تمام قابلیت های بالا رو دارن و جای بسی تشکر از مهندسی برق چینی رو داره))))):

 

خب، اینجا دستورات ماژول مخابراتی رو برای ارسال داده به سرور با هم مرور میکنیم:

تو قسمت بالا عدد ۸۰ نشان دهنده شماره پورتی هست که میخوایم با اون به سرور وصل بشیم، برای اتصال از طریق HTTP، شماره پورت ۸۰ هستش و عبارت TCP هم قبلا راجبش صحبت کردیم ( Site_Address هم که آدرس سایت ( سرور ) ما هستش )

بعد دستور زیر  کمک میکنه تا داده ها رو بفرستیم :

 

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

نکته بسیار مهم در اینجا، نحوه ارسال داده هستش :

 

روشهای ارسال داده در پروتکل HTTP

اول این که پروتکل HTTP روی پروتکل TCP سوار میشه و داده هارو ارسال و دریافت میکنه، پروتکل HTTP دو روش مهم برای ارسال داده داره :

  1. متد GET
  2. متد POST

مکانیزم کلی این روش به این صورته که ما داده رو به یک پیج در سرور ارسال میکنیم، بعد اون پیج داده رو دریافت میکنه و تو یه فایل ذخیره میکنه، بعد یه پیج اصلی داریم که هرچند ثانیه یکبار اون فایل رو میخونه و داده رو نشون میده؛ ما در اینجا  از متد GET استفاده میکنیم؛ برای ارسال داده در این روش باید از فرمت زیر استفاده کنیم :

نکته مهم :

 

به عبارت زیر توجه کنین :

در عبارت بالا پیج مورد نظر ds18b20 قراره براش داده ارسال شه و value هم همون دما هستش که در قسمت سرور بیشتر باهاش آشنا میشیم؛ پس تا اینجا روند به این شکل شده که ما داده رو به یه پیج میدیم و اون داده رو تو یه فایل ذخیره میکنه و یه پیج دیگه دائم اون فایل رو میخونه و دما رو نمایش میده. البته اینجا جای اون فایل میشه دیتابیس گذاشت که فعلا اینجا ازش میگذریم.

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

 

خط اول و آخر به سرور میگن که کد از نوع PHP هستش، البته نکته مهم اینه که کدهای سرور برای کاربر قابل نمایش نیستن؛ خط دوم رو دقت کنین، یادتونه تو میکرو میخواستیم به  سرور برای اون صفحه داده بدیم ، این کار رو کردیم :

حالا خط دوم کد سرور هم همینه، دقیقا مقادیری رو قبول میکنه که  تو متغیر value ارسال شده باشن، جالب بود نه؟؟؟؟؟؟ خط سوم هم  داده دریافتی رو تو یه فایل ذخیره میکنه، اگر هم فایله رو سرور نباشه ایجادش میکنه. یه نکته راجب اون عبارت die اینه که اگه فایل باز نشه از قسمت کد سرور برنامه میاد بیرون ودیگه کاری انجام نمیده.

یکی از قوانین زبان php اینه که متغیرها رو باید مقدارشون رو باعبارت $ مشخص کنی، مثلا $s که حاوی دمای ارسالی از میکرو هست رو تو فایل ذخیره میکنه و بعد هم با تابع fclose فایل رو میبنده؛ اگر خواستید دما رو مشاهده کنین به آدرس زیر برید :

امیدوارم که مطلب بالا مفید باشه، هرجا که مبهم بود تو نظرات بگین راجبش بحث کنیم .

 

شماتیک پروژه : 

پروژه ارسال دما ds1820 به سرور با مگا16

 

عکس پروژه در عمل : در اول مطلب قرار داده شده!

 

کد پروژه ( میکروکنترلر ) : 

 

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


 

 

فیلم عملکرد پروژه : 

http://aparat.com/v/OSJ90