۷ اسفند ۱۴۰۲
   
آکادمی

کنترل دمای محیط با ماژول ESP32، سنسور دما و موتورفن | پروژه اینترنت اشیا

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

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

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

 

راه اندازی پروژه

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

 

 

برای راه اندازی این پروژه به قطعات زیر احتیاج دارید:

  • ماژول Nodemcu ESP32
  • سنسور دما و رطوبت DHT11
  • فن 9 ولت 
  • ماژول درایو موتور  L298
  • برد بورد (Breadboard)
  • سیم جامپر نری به نری
  • آداپتور 9 ولت

 

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

 

ماژول Nodemcu ESP32 چیست؟

برای ارسال اطلاعات در بستر اینترنت نیاز است از بوردی استفاده کنید که دارای هسته وای-فای باشد. به همین دلیل است که نمی‌توان از بورد آردوینو اونو (Arduino Uno) در این پروژه استفاده کرد. اما، ESP32 تراشه‌­ای است که قابلیت اتصال به شبکه وای-فای را دارد و می­‌توان از آن برای راه‌اندازی پروژه‌­های اینترنت اشیا استفاده کرد. ماژول NodeMCU ESP32 یک بورد توسعه مخصوص ماژول وای فای ESP32 است. این ماژول شامل تراشه ESP32، پین­‌های ورودی و خروجی دیجیتال، تغذیه، دکمه بوت (Boot) و ریست (Reset) است. ولتاژ کاری این ماژول ۳.۳ ولت می‌باشد.

 

تصویر این ماژول و پایه‌های آن را می‌توانید در زیر مشاهده کنید.

 

 

 

سنسور DHT11 چیست؟

سنسور DHT11 نام سنسور دما و رطوبت است. این سنسور دما را در بازه ۰ تا ۵۰ درجه و رطوبت را بین ۲۰ تا ۸۰ درصد اندازه گیری می‌کند. این سنسور دارای چهار پایه است. دو تا از پایه­‌ها مربوط به تغذیه (۳.۳ ولت و زمین)، یکی از پایه‌­ها مربوط به داده سنسور و پایه دیگر به چیزی متصل نمی­‌شود. 

 

 

 

ماژول درایو موتور L298  چیست؟

قطعه الکترونیکی L298N در دنیای الکترونیک به عنوان درایور (Driver) شناخته می‌شود. درایور، ابزاری الکترونیکی برای کنترل جریان و ولتاژ جهت راه اندازی یک مصرف کننده پرمصرف است. این قطعه الکترونیکی با دریافت فرمان از پردازنده اقدام به روشن کردن مصرف کننده می‌کند. معمولا از این قطعه برای راه اندازی موتور DC استفاده می‌گردد. L298 دارای ویژگی­های زیر است:

 

  • راه اندازی دو موتور DC به صورت جداگانه
  • تغییر جهت راست گرد و چپ گرد هر دو موتور به صورت جداگانه
  • کنترل سرعت موتورها

 

 

برای یادگیری استفاده از درایور باید با پین‌های مختلف آن آشنا شوید.

پین VCC: این پین تغذیه موتور را تامين مي‌کند و مقدار ولتاژ آن می‌تواند بین 5 تا 35 ولت باشد.

پین GND: این پین زمين مشترک است.

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

پین ENA: از این پین برای کنترل سرعت موتور A استفاده می‌شود. موتور A در صورت اعمال منطق High به این پین شروع به کار می‌کند و هنگام برداشتن جامپر متوقف خواهد شد. برای کنترل سرعت موتور A، باید جامپر را برداشته و پین را به ورودی PWM متصل کنیم.

پین‌‌های IN1 و IN2: از این پین‌ها برای کنترل جهت موتور A استفاده می­شود. هنگامی که به یکی از این پین‌‌ها منطق High (5 ولت) و به دیگری منطق Low (صفر ولت) اعمال شود، شافت موتور در یک جهت شروع به چرخش خواهد کرد. اما اگر به هر دوی این پین‌‌ها منطق High و یا به هر دوی آن‌ها منطق Low اعمال کنیم، موتور متوقف خواهد شد.

پین‌‌های IN3 و IN4: از این پین‌ها برای کنترل جهت موتور B استفاده مي‌ شود. هنگامی که به یکی از این پین‌‌ها منطق High (5 ولت) و به دیگری منطق Low (صفر ولت) اعمال شود، شافت موتور B در یک جهت شروع به چرخش خواهد کرد. اما اگر به هر دوی این پین‌‌ها منطق High و یا به هر دوی آن‌ها منطق Low اعمال کنیم، موتور متوقف خواهد شد.

پین ENB: از این پین برای کنترل سرعت موتورB استفاده می‌شود. اعمال منطق High به این پین باعث می‌شود که موتور B شروع به کار کند و برای متوقف کردن آن باید جامپر برداشته شود. برای کنترل سرعت موتور B باید جامپر را برداشته یا این پین را به ورودی PWM متصل کنیم.

پین‌‌های خروجی OUT1 و OUT2: این پین‌ها به موتور A متصل می‌شوند.

پین‌‌های خروجی OUT3 و OUT4: این پین‌ها به موتور B متصل می‌شوند.

 

 

بستن مدار و اتصال به ماژول NodeMCU ESP32

ماژول ESP32 دارای پین هدرهایی است که می­تواند روی بردبورد قرار بگیرد. پس با استفاده از فضای خالی وسط برد بورد، ماژول را روی بردبورد قرار داده و سنسور دما و رطوبت DHT11 را نیز روی بردبورد قرار دهید. پایه GND سنسور به پین زمین ماژول ESP32، پایه VCC سنسور به پین V3.3 ماژول و پایه خروجی سنسور به پین شماره 5  ماژول  ESP32 وصل می‌شود.

 

حال به سراغ اتصالات درایو L298 می­رویم. از خروجی Out1 و Out2 برای اتصال به فن موتور استفاده می‌کنیم. سپس قسمت تغذیه درایو را به باتری و یا آداپتور متصل می­کنیم. برای هم پتانسیل کردن زمین­های مدار، پین منفی تغذیه درایو را به پین زمین ماژولESP32  متصل می­کنیم. پین­های IN1 و IN2،  پین­­های کنترل دور موتور هستند که به پین 2 و پین 4 ماژول ESP32 متصل می­شوند. نحوه اتصالات در تصویر زیر قابل مشاهده است:

 

 

 

برنامه نویسی در محیط آردوینو IDE

ابتدا وارد نرم‌افزار Arduino IDE شوید. می‌توانید این نرم افزار را از وبسایت آردوینو دانلود و نصب کنید.

برای برنامه نویسی بوردهای ESP32 باید خانواده این بوردها را به نرم افزار آردوینو اضافه کنید. برای این کار از منوی File روی گزینه Preferences کلیک کنید. در پنجره باز شده، در قسمت Additional boards manager URLs، لینک زیر را کپی کنید و پنجره را ببندید.

https://dl.espressif.com/dl/package_esp32_index.json

سپس از منوی tools به قسمت Board رفته و روی Boards manager  کلیک کنید. در این قسمت ESP32  را سرچ کرده  و آن را نصب کنید. پس از نصب، هسته‌­های مربوط به خانواده ESP32 برای شما نشان داده خواهند شد و حالا می‌توانید بورد خود را از قسمت Board انتخاب کنید. در این پروژه از ESP32 Dev Module استفاده شده است.

هم‌اکنون، کتابخانه‌های مورد نیاز این پروژه را نصب کنید:

  • کتابخانه WiFi: این کتابخانه برای اتصال به شبکه وای فای و اسکن شبکه‌های وای-فای می‌باشد. این کتابخانه هنگام نصب افزونه‌ ESP32 به طور خودکار برای شما نصب می‌شود.
  • کتابخانه Thingspod: از این کتابخانه برای سادگی کار با پلتفرم تینگزپاد استفاده می‌شود. برای نصب این کتابخانه به گیت‌هاب تینگزپاد مراجعه کرده و کتابخانه را دانلود کنید. سپس از منوی Sketch در قسمت Include library بر روی Add Zip Library کلیک کرده و فایل زیپ تینگزپاد را انتخاب کنید. سپس این کتابخانه برای شما نصب خواهد شد. 
  • کتابخانه PubSubClient: این کتابخانه برای پشتیبانی از پروتکل MQTT بر روی بوردهای ESP استفاده می‌شود. از  منوی tools به قسمت manage libraries رفته و عبارت  PubSubClient را جست و جو کنید. سپس، این کتابخانه را نصب کنید.
  • کتابخانه Arduinojson: برای آسان­‌تر شدن دریافت و ارسال داده می­‌توان از این کتابخانه استفاده کرد تا بتوان داده­‌ها را به فرمت جیسون (JSON) نوشت. از  منوی tools به قسمت manage libraries رفته و عبارت  Arduinojson را جست و جو و  این کتابخانه را نصب کنید. توجه داشته باشید که حتما از ورژن 6.19.4 آردوینو جیسون استفاده کنید.

برای اطلاعات بیشتر در رابطه با  ArduinoJson می­توانید به مستندات آن در سایت arduinojson مراجعه کنید.

(می‌توانید تمامی کدهای پروژه را از گیت‌هاب تینگزپاد دانلود کنید.)

در ابتدا کتابخانه­‌ها را فراخوانی می­‌کنیم. 

توجه: کتابخانه AruinoJson  و PubSubClient در کتابخانه تینگزپاد فراخوانی شده‌اند، به همین دلیل شما آن‌ها را در این قسمت مشاهده نمی‌کنید. در صورت نصب نبودن این دو کتابخانه، کد با ارور مواجه خواهد شد. 

نام و رمز شبکه وای فای مورد نظر را می‌نویسیم.

در پلتفرم اینترنت اشیا تینگزپاد، هر دستگاه توکن (Access Token) مربوط به خودش را دارد که از آن به عنوان یک شناسه برای ارتباط بین پلتفرم و دستگاه استفاده می­‌شود. این توکن را در این قسمت از کد وارد می‌­کنیم (راهنمای ایجاد دستگاه و کپی کردن توکن). سپس، سرور تینگزپاد و پورت MQTT آن را نیز تعریف می­‌کنیم. 

یک object از کتابخانه WiFiClient  به نام wifiClient برای استفاده از تابع‌­های آن ایجاد می‌­کنیم. همچنین، برای ایجاد شی MQTT از کتابخانه  PubSubClient استفاده کرده و Object  وای-فای  را برای ارتباط با اینترنت به آن پاس می­‌دهیم. سپس، یک object از تینگزپاد با نام  thingspod ایجاد کرده و object وای فای و MQTT را به آن پاس می‌­دهیم.

در ادامه، پین شماره پنج ESP32 را به متغیر DHTPIN اختصاص داده و نوع DHT را DHT11 قرار می­‌دهیم.

یک  object  از کتابخانه DHT ایجاد کرده و پین و نوع DHT را به این تابع اختصاص می‌دهیم.

متغیرهای پروژه را تعریف می­کنیم و پین شماره 2 و 4 ماژول ESP32 را به fanPin1 و  fanPin2 اختصاص می­دهیم. همچنین، یک متغیر Boolean مربوط به وضعیت فن و یک متغیر Boolean مربوط به حالت اتوماتیک یا دستی تعریف می‌کنیم.

در تابع ()setup، تابع راه انداز وای فای را می‌نویسیم. این تابع را بعد از تابع ()setup به گونه‌ای تعریف می‌کنیم که تا زمان اتصال موفق به وای فای، عبارت «.» در سریال مانیتور پرینت شود. سپس با استفاده از دستور mqttClient.setServer سرور را راه‌اندازی می­کنیم. چون قرار است در این پروژه فن را از راه دور و از طریق پلتفرم تینگزپاد روشن و خاموش (کنترل) کنیم، باید از روش RPC استفاده کنیم. (روش RPC همان فراخوانی رویه از راه دور  است). وقتی درخواست RPC از سمت سرور به دستگاه ارسال می­شود، تابع mqttCallback  که در دستور mqttClient.setCallback(mqttCallback) استفاده شده است، فراخوانی می‌شود. در ادامه راجع به تابع فراخوانی MQTT توضیح خواهیم داد. حال سنسور dht را فعال کرده و پین‌­های موتور را نیز به صورت خروجی تعریف می‌کنیم. 

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

در این تابع، درخواست­های MQTT دریافت شده توسط دستگاه را به کتابخانه تینگزپاد ارجاع می­دهیم. ورودی­های این تابع عبارتند از:

  • topic: نام تاپیک MQTT که سرور بر روی آن داده ارسال می­کند.
  • payload: داده ارسال شده توسط سرور
  • length: طول داده ارسال شده توسط سرور

در ادامه، تابع‌­های فراخوانی RPC را داریم. بدنه درخواست RPC نیاز به دو مقدار دارد: 

  1. Method: نامی برای تشخیص فراخوانی­های RPC
  2. Params: پارامترهای مورد استفاده برای پردازش درخواست.

در اینجا 4 تابع فراخوانی RPC داریم. 2 تابع مربوط به کلید اتوماتیک و دستی. یکی از آن­ها برای ارسال مقادیر دریافتی به روی سخت افزار و دیگری برای خواندن مقادیر دریافتی از سرور می­باشد. 2 تابع دیگر هم برای روش و خاموش کردن دستی موتور فن است. یکی از آن­ها برای ارسال مقادیر به سخت افزار و دیگری برای خواندن مقادیر از سرور می­باشد.

به سراغ اولین تابع از کلید دستی یا اتوماتیک می­رویم. ورودی شی  setAutoStateکه برابر با  رشته"setAutoState"  است به عنوان Method  درخواست RPC برای تغییر حالت اتومات به دستی و بر عکس در نظر گرفته می‌­شود که باید با رشته قرار داده شده در داشبورد تینگزپاد برابر باشد. وقتی درخواست RPC با این Method صورت گیرد، تابع setAutoStateCallback با مقادیر Params که به عنوان شی RPCData تعریف شده است، فراخوانی می­‌شود .در اینجا چون مقادیر Params به صورت Boolean مقداردهی می‌شوند، شی RPCData مقدار  true یا false را به خود می­‌گیرد. همچنین این مقدار  را با نام Automatic Status در Attributes  ذخیره می­کنیم. چون این تابع برای تغییر حالت اتوماتیک و دستی می­باشد، باید درون این تابع دستوری تعریف کرد که اگر کلید دستی فعال شد، فن خاموش شود و مقدار fanState در مشخصه پلتفرم آپدیت شود. 

برای فراخوانی قسمت get مانند قسمت set عمل می­‌کنیم، با این تفاوت که بدنه تابع خالی است و method فراخوانیRPC،  getAutoState می‌­باشد. 

حالا به سراغ فراخوانی حالت دستی کنترل فن می­‌پردازیم. ورودی شی  setFanStateکه برابر با  رشته"setFanState"  است به عنوان Method  درخواست RPC برای خاموش و روشن کردن فن در نظر گرفته می­شود که باید با رشته قرار داده شده در داشبورد تینگزپاد برابر باشد. وقتی درخواست RPC با این Method صورت گیرد، تابع setFanStateCallback با مقادیر Params که به عنوان شی RPCData تعریف شده است، فراخوانی می­شود .در اینجا چون مقادیر Params به صورت Boolean مقداردهی می­شود، شی RPCData مقدار  true یا false را به خود می­گیرد. همچنین این مقدار  را با نام fanState در  Attributes  ذخیره می­کنیم. در صورتی که حالت کنترل اتوماتیک false  بود و روی حالت دستی بودیم، این تغییرات انجام می­شوند: اگر fanState، true بود فن روشن و اگر false بود، فن خاموش می­شود و تمامی این وضعیت‌ها در Attribute پلتفرم آپدیت می­شوند.

برای فراخوانی قسمت get هم مانند قسمت set عمل می­‌کنیم، با این تفاوت که در بدنه، حالت پین 2 ماژول ESP32 را می‌­خوانیم. method فراخوانی RPC نیز getFanState می­‌باشد. 

در تابع حلقه به این صورت عمل می­‌کنیم که اگر برنامه به وای فای وصل نشد، تابع reconnectWifi  را اجرا کند (در آخر کد برنامه، این تابع تعریف شده است.). در این تابع، اگر برنامه به اینترنت وصل نشد، برای اتصال مجدد آن به وای‌-فای تلاش می‌کنیم.

در ادامه تابع حلقه زمانی که برنامه به اینترنت وصل شد، باید ببینیم که به پلتفرم تینگزپاد هم وصل می­‌شود یا خیر. اگر به تینگزپاد وصل نشد، برنامه عبارت Failed to connect را در سریال مانیتور پرینت می‌کند و در صورت اتصال موفقیت آمیز، تابع mqttClientLoop از کتابخانه تینگزپاد فراخوانی می­‌شود. این تابع، دریافت داده از طریق پروتکل MQTT  را بررسی می‌­کند.  

همچنین برای دریافت درخواست RPC تعریف شده در ابتدا، تابع  RPCSubscribe  از کتابخانه تینگزپاد را با مقدار شی‌­های setAutoState، getAutoState، setFanState و getFanState فراخوانی می‌­کنیم. 

در ادامه، می­‌خواهیم داده­‌های دما و رطوبت را هر دو ثانیه یکبار اندازه‌گیری کنیم و در سریال مانیتور نمایش دهیم. در صورت بروز خطا در خواندن دما و رطوبت، عبارت Failed to read from DHTsensor در سریال مانیتور پرینت می‌شود.

سپس می‌­خواهیم برای نظارت از راه دور اینترنتی، داده دما را به پلتفرم تینگزپاد نیز ارسال کنیم. بنابراین، یک بافر جیسون (JSON) با سایز 1 ایجاد می­‌کنیم (زیرا قرار است فقط مقدار دما را ارسال کنیم). سپس این مقادیر را به فرمت جیسون تبدیل می­‌کنیم. 

 

داده­‌ها را به صورت تله­‌متری بر روی پلتفرم تینگزپاد ارسال می­‌کنیم. 

در نهایت، این شرط را برای قسمت اتوماتیک قرار می‌دهیم که اگر autoState برابر با True بود، وارد حلقه اتوماتیک شود. در تابع حلقه کد اتوماتیک نیز دستوری را می‌نویسیم که اگر دما از 26 بیشتر شد، فن را روشن کرده و تا زمانی که دما به زیر 26 برسد، روشن بماند و سپس خاموش شود.

برای جزییات بیشتر این تابع‌­ها می­‌توانید کتابخانه تینگزپاد را مطالعه کنید. 

تابع reconnectWifi() به این صورت است.

کد با موفقیت کامپایل شد. حالا برنامه را روی بورد ESP32 آپلود می­‌کنیم. 

کد کامل برنامه را می‌­توانید در اینجا مشاهده کنید.

 

نمایش اطلاعات  و کنترل دما در پلتفرم اینترنت اشیا تینگزپاد

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

 

برای این کار ابتدا وارد وبسایت تینگزپاد شوید و اگر حساب کاربری ندارید، می‌توانید یک حساب کاربری رایگان بسازید که از 5 دستگاه پشتیبانی می‌کند. سپس، وارد حساب کاربری خود شوید.

ایجاد دستگاه: اول باید یک دستگاه ایجاد کنیم. منظور از دستگاه همان سنسور دما و موتور فن است. برای این کار، وارد صفحه Device Groups شوید، یک گروه برای دستگاه­‌های این پروژه ایجاد کرده و سپس، در این گروه یک دستگاه به نام  temperatureControlبسازید. در تینگزپاد، هر دستگاه توکن (Access Token) مربوط به خودش را دارد که به عنوان یک شناسه برای ارتباط بین پلتفرم و دستگاه استفاده می‌شود. روی اسم دستگاه یا temperatureControl کلیک کرده و از منوی باز شده روی گزینه Copy access token کلیک کنید. همانطور که در بالا گفته شد، از این توکن در نرم افزار آردوینو استفاده می‌­کنیم. 

ایجاد داشبورد: برای ایجاد داشبورد در پلتفرم تینگزپاد، وارد صفحه گروه داشبوردها (Device Groups)  می‌شویم، یک گروه داشبورد برای این پروژه ایجاد کرده و داخل آن یک داشبورد می‌سازیم. سپس، وارد صفحه این داشبورد می‌­شویم و ویجت Switch Control را  برای انتخاب حالت اتوماتیک یا دستی انتخاب می­‌کنیم. یک مستعار (Alliance) برای دستگاه انتخاب کرده و این نام مستعار را به ویجت اضافه می­‌کنیم. سپس در تب Advanced ویجت عنوان کلید را به auto Switch تغییر داده، سپس گزینه don’t retrieve را انتخاب کرده و در قسمت   setValueو getValue  هم همان متدی که در نرم افزار آردوینو وارد کرده بودیم را قرار می­‌دهیم. 

حال برای کنترل فن به روش دستی به یک کلید دیگر نیاز است. ویجت Round   Switch را  برای روشن و خاموش کردن فن در  حالت دستی انتخاب می­‌کنیم. یک مستعار (Alliance) برای دستگاه انتخاب کرده و این نام مستعار را به ویجت اضافه می­‌کنیم. سپس در تب Advanced  ویجت عنوان کلید را به Fan Switch تغییر داده، سپس گزینه don’t retrieve را انتخاب کرده و در قسمت   setValue و getValue  هم همان متدی که در نرم افزار آردوینو وارد کرده بودیم را قرار می­‌دهیم. 

اما شما می­‌توانید ویجتی را در پلتفرم تینگزپاد اضافه کنید که روشن و خاموش بودن فن و اتوماتیک یا دستی بودن پروژه روی آن ویجت هم قابل نمایش باشد. به این منظور از قسمت ویجت­های کنترلی  LEDindicator  را انتخاب کرده و نام مستعار را در ویجت قرار بدید. سپس در تب  Advanced  تیک گزینه  perform rpc device status check را بردارید و در قسمت Value هم نام مشخصه‌­ای که در آردوینو وارد کرده بودید را وارد کنید. در اینجا fanState و autoState  هستند. 

در آخر نیز می‌خواهیم مقدار دما را روی نمودار هم مشاهده کنیم. برای اینکار از ویجت‌های نموداری، نمودار سری زمانی را انتخاب  می­کنیم و تغییرات دما را روی آن  نشان می­دهیم. می‌توانید در قسمت setting ویجت نام نمودار را تغییر بدهید. اگه نمی‌خواهید منحنی به شکل شکسته نمایش داده شود، کافی است در قسمت Advanced ویجت، گزینه display smooth رو فعال کنید.

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

 

 

کاربردهای پروژه در دنیای واقعی

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

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

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

 

بعد از این پروژه چکار کنم؟

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

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

راجع به این موضوع بیشتر می‌دانید؟ محتوای خود را برای ما ارسال کنید تا آن را با نام خودتان منتشر کنیم.