به کارگاه ترجمه ی سینا2 خوش آمدید!

تبلیغات شما در اینجا بالا

استفاده از رایانه برای انتقال داده های سنسور

 

آیا به یاد می آورید که 20 سال پیش چگونه رایانه ی خود را به اینترنت متصل می کردید؟ ابتدا مودم هایی با سرعت انتقال 38,400 بود و Netscape Navigator 3 و فلاپی های AOL (در آمریکا) یا سی دی های  رایگانی که در صندوق های پستی دریافت می کردیم.

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

در تصویر زیر، ما می توانیم یک فرایند نصب برای اتصال آردوینو را مشاهده کنیم. برای این کار، یک نرم افزار بر روی رایانه ی ما اجرا می شود و با استفاده از پورت سریال(serial port) با آردوینو ارتباط برقرار می کند. هر موقع که اپلیکیشن به  اینترنت نیاز داشته باشد، برنامه ی مورد نظر بر روی رایانه این کار را انجام می دهد. با این کار، ما می توانیم داده های سنسور را توییت(Tweet) کنیم.

 

 ما می خواهیم یک سیستم ایجاد کنیم که یک پیغام را وقتی که دمای اتاق یا اداره فراتر از یک آستانه می رود(32 درجه سلسیوس یا 90 درجه فارنهایت) توییت کند. برای یادگیری نحوه ی ساختن یک سنسور دما می توانید به مقاله ی افزایش دقت با سنسور دما در آردوینو در فصل 5 مراجعه کنید. سعی کنید این کار را بدون نگاه به مدار مورد نظر انجام دهید. اکنون اسکچ زیر را در آردوینو آپلود(upload) کنید.

#define CELSIUS
const unsigned int TEMP_SENSOR_PIN = 0;
const unsigned int BAUD_RATE = 9600;
const float SUPPLY_VOLTAGE = 5.0; 
void setup() {
  Serial.begin(BAUD_RATE);
}
 
void loop() {
  const int sensor_voltage = analogRead(TEMP_SENSOR_PIN);
  const float voltage = sensor_voltage * SUPPLY_VOLTAGE / 1024;
  const float celsius = (voltage * 1000 - 500) / 10;
#ifdef CELSIUS
  Serial.print(celsius);
  Serial.println(" C");
#else
  Serial.print(9.0 / 5.0 * celsius + 32.0); 
  Serial.println(" F");
#endif
  delay(5000);
}

 این کد تقریبا مشابه با اسکچی است که قبلا آن را ایجاد کردیم. توجه کنید که اگر از یک آردوینو استفاده می کنید که به جای 5 ولت از 3.3 ولت استفاده می کند، ما باید در خط شماره 4، مقدار SUPPLY_VOLTAGE را به 3.3 تنظیم کنیم. ما اکنون از هردوی درجه ی سلسیوس و فارنهایت استفاده می کنیم و می توانیم از یک ثابت(constant) پیش پردازنده(preprocessor) برای کنترل اینکه از کدام واحد(unit) باید استفاده شود. اگر ما در خط اول، مقدار این ثابت(constant) را برابر با  CELSIUS قرار دهیم، اپلیکیشن ما دما را به درجه ی سلسیوس محاسبه می کند.

اگر ما خط اول را حذف کنیم یا آن را به کامنت تبدیل کنیم، اپلیکیشن ما از فارنهایت(Fahrenheit) استفاده می کند. برای تغییر دادن رفتار اپلیکیشن ما از فرمان پیش پردازنده ی #ifdef  استفاده می کنیم. این فرمان بررسی می کند که آیا یک ثابت(preprocessor constant) خاص، تنظیم شده است یا نه، و سپس کدها را به صورت مشروط(conditionally) کامپایل می کند. در مورد برنامه ی ما، تنها اگر ثابت CELSIUS تنظیم نشده باشد، برنامه فرمول تبدیل سلسیوس به فارنهایت را در خط 17 کامپایل می کند.

اسکچ را آپلود کنید و خواهید دید که این برنامه هر 5 ثانیه، یک بار دمای فعلی را در پورت سریال چاپ می کند.  خروجی این برنامه به صورت زیر خواهد بود:

27.15 C
26.66 C
27.15 C

 چیزی که اکنون نیاز داریم، بک برنامه است که بر روی رایانه اجرا شود که این خروجی(output) را بخواند و یک پیغام را به محض اینکه دما بیشتر از 32 درجه ی سلسیوس شود(90 درجه فارنهایت) توییت کند.

ما می توانیم از هر زبان برنامه نویسی که برای خواندن داده ها از یک پورت سریال مناسب است و از توییتر پشتیبانی می کند، استفاده کنیم، اما چون نرم افزار Processing از توییتر و پورت سریال به خوبی پشتیبانی می کند ما در این پروژه از آن استفاده می کنیم.


 آردوینو و اینترنت اشیاء(IoT)

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

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

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

این وب سرویس ها، امروزه حتی توابع بیشتری را ارائه می دهند و تبدیل یک آردوینو به یک عضو تمام عیار اینترنت اشیاء تبدیل می کنند و ما می توانیم برد آردوینوی خود را به ایمیل گوگل، فیس بوک، ایبی و ... متصل کنیم.سرویس های Xivelya و Temboo در این زمینه محبوب هستند. در اصل، همه ی اینها مانند یکدیگر کار می کنند: ابتدا یک اکانت را ثبت می کنیم  و سپس یک کلید API را دریافت خواهیم کرد. سپس ما می توانیم از این کلید برای اعتبار سنجی این سرویس و آپلود داده های سنسور یا دیگر توابع API استفاده کنیم. معمولا این سرویس ها به کتابخانه های خاصی از آردوینو نیاز دارند که به ما کمک می کنند تا اپلیکیشن های خود را بسازیم.

!Donate

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.


تصویر امنیتی
تصویر امنیتی جدید

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال