اینترنت اشیا IOT برد Nodemcu پلتفرم uBeac

پروژه افراد شمار با سنسور مادون قرمز Nodemcu و پلتفرم اینترنت اشیا uBeac

Counting-people-with-esp8266-and-iot-cloud-platform-ubeac-digispark
نوشته شده توسط پریسا پوربلورچیان

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

پروژه افراد شمار اینترنت اشیا با پلتفرم uBeac - دیجی اسپارک

 


 سنسور مادون قرمز E18-D80NK


سنسور فاصله سنج E18-D80NK از ماهیت فتوالکترویک استفاده کرده و بخشی از خانواده سنسورهای مادون قرمز به شمار می‌آید. سنسور فاصله سنج E18-80DNK فاصله شی تا سنسور را توسط پرتو الکترومغناطیسی شناسایی کرده و از پرتو نور جهت شناسایی مانع استفاده می‌کند. در این حالت از خاصیت بازتاباننده استفاده شده است به این معنی که سنسور دارای بازتاب کننده نور است و نور را از سنسور فرستنده دریافت کرده و به سنسور گیرنده بازتاب می‌کند. به همین منظور در پروژه افراد شمار از آن استفاده می‌کنیم. سپس اگر مانع بین سنسور فرستنده و بازتاب کننده نور وجود داشته باشد، به سنسور ارسال می‌کند. سنسور E18-D80NK در فاصله ۳ تا ۸۰ سانتی متر مانع را شناسایی کرده و توسط یک مولتی ترن قابلیت تنظیم شدت نور دریافتی را دارد. سنسور E18 از یک ال ای دی اینفرارد و گیرنده جهت تشخیص شی در فاصله خاص استفاده می‌کند. سنسور از یک سیگنال دیجیتال ساده استفاده می‌کند و خروجی سنسور به صورت پیشفرض High است و با قرار گرفتن شی در مجاورت سنسور LOW می‌شود. فاصله تشخیص ۳ تا ۸۰ سانتی متری توسط مولتی ترن قابل تنظیم است و در پشت سنسور یک ال ای دی LED تعبیه شده است که پس از شناسایی مانع به صورت چشمک زن عمل می‌کند. این سنسور دارای سه پایه VCC, GND و OUT است که در سه رنگ آبی، قهوه ای و مشکی در بازار موجود است. همچنین سه رنگ قرمز، سبز و زرد هم از این سنسور وجود دارد. سنسور E18 طبق اطلاعات گفته شده در ابتدا در خط تولید جهت تشخیص اشیا در حال حرکت مصرف داشته و به مرور زمان به دلیل دقت اندازه گیری بالا در مصارف دیگر مانند تشخیص مانع و سیستم های امنیتی هم استفاده شده است. با چرخش مولتی ترن در جهت ساعتگرد CW دامنه شناسایی افزایش یافته و با چرخش در جهت پادساعتگرد دامنه شناسایی کاهش می‌باید. در صورتیکه مولتی ترن تا آخرین حالت پادساعتگرد چرخانده شود، سنسور دیگر هیچ تشخیصی انجام نمیدهد تا دوباره توسط مولتی ترن به حالت ساعتگرد بازگردد و همچنین این اتفاق برعکس هم رخ میدهد. همچنین این سنسور فقط قابلیت تشخیص مانع را دارد و برای اندازه گیری فاصله تا شی مناسب نمی‌باشد.

سنسور مادون قرمز E18D80NK - دیجی اسپارک

 


میکروکنترلر وای فای ESP8266


در پروژه افراد شمار اینترنت اشیا IOT، ارتباط بیسیم به صورت وای فای از اهمیت ویژه ای برخوردار است. تراشه ESP8266 نیاز بسیاری از کاربران را در این مورد برطرف کرده است. بردهای متنوعی از تراشه داخلی ESP8266 بهره می‌برند، که در این بین برد Nodemcu طرفداران خاص خودش را دارد. اما اجرای این پروژه با تمامی بردهای وای فای از خانواده ESP8266 امکان پذیر است.  تراشه ESP8266 قابلیت اتصال به مودم‌ ، اتصال به شبکه اینترنت، قابلیت تبدیل به نقطه دسترسی Access Point، قرار گیری در مد سرور Server Mode داشته و بدون نیاز به برد کمکی قابلیت برنامه ریزی و اجرا بر روی Arduino IDE دارد. پس از آن دسترسی به شبکه اینترنت با ماژول ESP8266 فراهم شده و ارتباط با دنیای اینترنت اشیا آغاز می‌شود. برد Nodemcu ار تراشه داخلی وای فای ESP8266 طراحی شده است و در پروژه های DIY اینترنت اشیا بسیار کاربردی است. مدل های مختلفی برای Nodemcu با سری های متفاوت عرضه شده است که هر کدام ویژگی های منحصر به فرد خود را دارد. ولتاژ کاری برد Nodemcu CP2102 برابر با ۳٫۳ ولت است و همچنین از پین Vin بهره می‌برد.

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

 


اتصال سنسور به Nodemcu


سنسور E18-D80NK از سه پایه VCC, GND و OUT تشکیل شده است که به ترتیب رنگ آبی، قهوه ای و مشکی می‌باشد.

  • پایه VCC کابل قهوه ای  BROWN می‌باشد.
  • پایه GND کابل آبی  BLUE می‌باشد.
  • پایه OUT کابل مشکی BLACK می‌باشد.

اتصالات سنسور مادون قرمز در پروژه افراد شمار IoT - دیجی اسپارک

 


نیاز به جی سان برای شمارش افراد


در پروژه افراد شمار IoT از جیسون Json استفاده میکنیم. Json در برنامه نویسی بهترین روش برای اشتراک گذاری داده ها است. جیسون داده ها را تفکیک کرده و به اجزای کوچک تر تبدیل می‌کند. به عنوان مثال می‌توانیم اطلاعات من را به صورت جیسون در برنامه نویسی به صورت زیر تفکیک کنیم. جیسون Json به صورت آرایه Array قابل نوشتن است و به همینD دلیل سبب آسان تر شدن ارسال و دریافت دیتا خواهد شد. در جیسون هر خط از برنامه با نمایش ویژگی ها آغاز شده و در ادامه آن جزییات آن ویژگی نوشته می‌شود. در این پروژه سنسور مادون قرمز E18-D80NK افراد را تشخیص و سپس در هر بار تشخیص به مقدار قبلی یک عدد اضافه می‌کند. برای تعریف این بخش و ارسال دیتای کانتر سمت پلتفرم نیاز به تعریف یک داکیومنت دارد. نام داکیومنت را به دلخواه نام خودم و برای نمایش کانتر محاسبه شده از نام متغیر که در کدنویسی برنامه است، استفاده می‌کنیم.

doc["Name"] = "ladypi";
  doc["count"] = counter;

در Json سرعت انتقال داده بسیار زیاد است و برای برنامه نویس ها مدت زمان پاسخگویی به درخواست از سمت سرور مهم بوده و با استفاده از جایگزینی Json روند ارسال دیتا با سرعت بیشتری انجام شده و مدت زمان پاسخگویی کاهش چشم گیری داشته است. نوع داده Json از تمامی مرورگرهای وب پشتیبانی می‌کند. جیسون Json عملکری مشابه آبجکت در زبان برنامه نویسی جاوا اسکریپت دارد و برای ذخیره و ارسال دیتا استفاده می‌شود. در این پروژه به کمک داده جیسون Json می‌توانیم دیتای اندازه گیری شده توسط سنسور GY-30 را به پلتفرم ارسال کنیم.

جیسون Json از سه مولفه ی اصلی تشکیل شده است.

  • استفاده از آرایه که با علامت [ نمایش داده می‌شود.
  • استفاده از آبجکت که با علامت { نمایش داده می‌شود.
  • استفاده از کلید که برای نمایش آبجکت Json استفاده می‌شود.
  • استفاده از ارزش یا Value که برای نمایش مقدار کلید استفاده می‌شود.

 


کد آردوینو Arduino


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

#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <ArduinoJson.h>

#define url "http://digispark.hub.ubeac.io/Ladypi"



int pirsensor = D3;
int counter = 0;
int Object = false;




void setup() {
 
WiFiManager wifiManager;
wifiManager.autoConnect("Irancell-TD-GP2101PLUS-4794", "lGaU2w97");
wifiManager.autoConnect("AutoConnectAP");
Serial.println("connected!");
  
  
  Serial.begin(115200);
  pinMode(pirsensor,INPUT);
  
}

void loop() {
 
 StaticJsonDocument<300> doc;
 
 
 int val = digitalRead(pirsensor);

   if( (val == 0) && (Object == false) ){
        counter++;
        Object = true;
        Serial.print("Counter = ");
        Serial.println( counter);
   }else if( (val ==1) && (Object == true) ) {
        Object = false;
   }
   
   
   
   
   doc["Name"] = "ladypi";
  doc["count"] = counter;
   
  serializeJson(doc, Serial);
  Serial.println();


  
   
   char JSONmessageBuffer[300];
  serializeJsonPretty(doc, JSONmessageBuffer);
  
  HTTPClient http;
  http.begin(url);
  http.addHeader("Content-Type", "application/json");
  int httpCode = http.POST(JSONmessageBuffer);
  String payload = http.getString();
  Serial.println(httpCode);
  Serial.println(payload);
  http.end();

  delay(10);
   
    }

 

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

 


تحلیل کد آردوینو


با توجه به اینکه تراشه اصلی پروژه افراد شمار برد ESP8266 است، برای ارتباط با این برد نیاز به نصب پکیج کامل ESP8266 خواهیم داشت. در آموزش راه اندازی برد Nodemcu روش نصب پکیج ESP8266 توضیح داده شده است. تا به امروز که در تاریخ ۱۰ ژانویه ۲۰۲۱ هستیم ورژن های متعدد و توسعه یافته ای برای برد ESP8266 معرفی شده است. جهت ارتباط با دنیای شبکه و وای فای چندین کتابخانه توسعه یافته است که به ترتیب زیر در کدهای برنامه به آن نیاز داریم.

  •  کتابخانه ESP8266HTTPClient
  • کتابخانه ESP8266WiFi
  • کتابخانه ESP8266WebServer
  • کتابخانه WiFiManager

 همچنین برای تبدیل فرمت دیتا به Json از کتابخانه Json استفاده می‌کنیم.

  • کتابخانه ArduinoJson

 با توجه به اینکه سنسور مورد استفاده در پروژه افراد شمار E18D80NK است کتابخانه ای با همین نام برای آن در لیست کتابخانه های پیش فرض Arduino IDE توسعه یافته و در دسترس قرار دارد.

 

مهم ترین بخش در کدنویسی پروژه افراد شمار IoT دریافت و خواندن دیتا از سنسور و تبدیل دیتا به یک پارامتر قابل فهم برای ارسال به پلتفرم است. برای تبدیل دیتا از Json استفاده می‌کنیم. توابع مورد نیاز برای Json بر اساس پارامترهای مورد نیاز از سنسور نوشته می‌شود. همانطور که گفته شد Json دارای سه مولفه اساسی برای تعریف متغیرها است. در این کد از آرایه با علامت اختصاری [] کروشه استفاده می‌کنیم. توسط آرایه Array یک ارزش و مقدار را دریافت و یا جایگزین می‌کنیم. از staticjsonDocument برای تعیین و تخصیص حافظه استفاده می‌شود. عدد ۲۰۰ یا ۳۰۰ بر حسب بیت است.

 StaticJsonDocument<300> doc;


 doc["Name"] = "ladypi";
  doc["count"] = counter;
   
  serializeJson(doc, Serial);
  Serial.println();


  
   
   char JSONmessageBuffer[300];
  serializeJsonPretty(doc, JSONmessageBuffer);

 

 


شمارش افراد با مادون قرمز


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

int val = digitalRead(pirsensor);

   if( (val == 0) && (Object == false) ){
        counter++;
        Object = true;
        Serial.print("Counter = ");
        Serial.println( counter);
   }else if( (val ==1) && (Object == true) ) {
        Object = false;
   }

در کد برنامه از متغیر Counter برای نمایش تعداد بار تشخیص استفاده شده است و در سریال مانیتور IDE Arduino به صورت جداگانه برای ما نمایش داده می‌شود.

 


نصب کتابخانه های پکیج ESP8266


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

از کتابخانه ESP8266WebServer برای مدیریت درخواست های HTTP مانند POST و GET استفاده میشود و فقط همزمان از یک کلاینت پشتیبانی می‌کند. از این کتابخانه برای ساختن کلاس از ESP8266webserver استفاده می‌شود که شامل IP Address هاست و پورت هاست Host port است که به صورت پیش فرض پورت عدد ۸۰ است.

#define url "http://digispark.hub.ubeac.io/............"

از کتابخانه ESP8266HTTPClient جهت دسترسی به دستورات توابع Http برای ارتباط با سرورهای دیگر از طریق پروتکل Http استفاده می‌شود که به صورت زیر در برنامه تعریف شده است. از http برای مشخص شدن فرمت دیتا و ارسال دیتا در شبکه استفاده می‌شود. همچنین مفهوم Request که در فارسی همان درخواست به سرور است در پروتکل http از پارامترهای مهم است . به این شکل که سنسور  یک Request را از طریق url ساخته شده به وب سرور می‌فرستد. در این مرحله پردازش بر روی Request انجام می‌شود.  از متد Post برای ارسال داده در پروتکل http استفاده می‌شود. از متد Post برای ارسال حجم بیشتری از اطلاعات استفاده می‌شود و از مزیت های آن عدم نمایش دیتا در URL است که بیشتر مورد استفاده قرار می‌گیرد.  در واقع در متد post دیتا به صورت مستقیم از کلاینت Client به سرور Server ارسال می‌شود. امنیت این متد نسبت به سایر متدها بسیار بالاتر است و دیتاها در url نمایش داده می‌شود. از مهم ترین ویژگی های متد Post ارسال داده های متنی و باینری است که در این پروژه این اتفاق رقم خورده است.

 HTTPClient http;
  http.begin(url);
  http.addHeader("Content-Type", "application/json");
  int httpCode = http.POST(JSONmessageBuffer);
  String payload = http.getString();
  Serial.println(httpCode);
  Serial.println(payload);
  http.end();

در hhtp نوع دیتا را توسط hhtp.addheader مشخص می‌کنیم که دیتای ما به صورت متنی Type و از نوع Json است.

 http.addHeader("Content-Type", "application/json");

با ورود به سریال مانیتور در نرم افزار آردوینو Arduino می‌توانید دیتا را در لحظه رصد کنید. اما مهمترین قسمت در این آموزش ارسال دیتا بر روی پلتفرم است. مهم ترین بخش در تحلیل کد مربوط به آدرس URL است که در این بخش آدرس URL از پلتفرم اینترنت اشیا uBeac دریافت می‌شود. دیتا در ابتدا از سنسور دریافت شده و سپس توسط وای فای و با استفاده از کتابخانه ESP8266HTTPClient از طریق متد Post با آدرس URL ساخته شده به پلتفرم uBeac ارسال می‌شود. روش دریافت آدرس Gateway URL در آموزش معرفی uBeac کامل توضیح داده شده است.

از کتابخانه wifimanager برای مدیریت تنظیمات وای فای با تنظیمات پرتال وب استفاده می‌شود. توسط این کتابخانه یک اکسس پوینت ساخته و به صورت اتوماتیک به اکسس پوینت اتصال می‌یابد. از توابع wifimanager برای معرفی یوزرنیم Username و پسورد وای فای Wifi Password استفاده می‌کنیم. در این بخش اطلاعات نوشته شده مربوط به وای فای شخصی من است که بایستی کدها اطلاعات اینترنت خود را وارد کنید.

  HTTPClient http;
  http.begin(url);
  http.addHeader("Content-Type", "application/json");
  int httpCode = http.POST(JSONmessageBuffer);
  String payload = http.getString();
  Serial.println(httpCode);
  Serial.println(payload);
  http.end();

در hhtp نوع دیتا را توسط hhtp.addheader مشخص می‌کنیم که دیتای ما به صورت متنی Type و از نوع Json است.

 http.addHeader("Content-Type", "application/json");

با ورود به سریال مانیتور در نرم افزار آردوینو Arduino می‌توانید دیتا را در لحظه رصد کنید. اما مهمترین قسمت در این آموزش ارسال دیتا بر روی پلتفرم است. مهم ترین بخش در تحلیل کد مربوط به آدرس URL است که در این بخش آدرس URL از پلتفرم اینترنت اشیا uBeac دریافت می‌شود. دیتا در ابتدا از سنسور دریافت شده و سپس توسط وای فای و با استفاده از کتابخانه ESP8266HTTPClient از طریق متد Post با آدرس URL ساخته شده به پلتفرم uBeac ارسال می‌شود. روش دریافت آدرس Gateway URL در آموزش معرفی uBeac کامل توضیح داده شده است.

از کتابخانه wifimanager برای مدیریت تنظیمات وای فای با تنظیمات پرتال وب استفاده می‌شود. توسط این کتابخانه یک اکسس پوینت ساخته و به صورت اتوماتیک به اکسس پوینت اتصال می‌یابد. از توابع wifimanager برای معرفی یوزرنیم Username و پسورد وای فای Wifi Password استفاده می‌کنیم. در این بخش اطلاعات نوشته شده مربوط به وای فای شخصی من است که بایستی کدها اطلاعات اینترنت خود را وارد کنید.

#include <WiFiManager.h>

 WiFiManager wifiManager;
  
wifiManager.autoConnect("Irancell-Z6000", "YcQLPscpSe");
  wifiManager.autoConnect("AutoConnectAP");
  Serial.println("connected!");

 

 

 

جهت دانلود کتابخانه های پکیج ESP8266 از فایل گیت هاب که لینک شده است، می‌توانید استفاده کنید.

پروژه افراد شمار IoT با برد Noedmcu و پلتفرم اینترنت اشیا - دیجی اسپارک

 


ارسال دیتا به پلتفرم اینترنت اشیا uBeac


uBeac یک پلتفرم اینترنت اشیا IOT است که به دلیل محیط ساده و جذاب ارتباط با دنیای دیتا را برای ما فراهم کرده است. پلتفرم uBeac از پروتکل HTTP و پروتکل MQTT برای ارتباط با میلیون ها دیوایس استفاده می‌کند. پلتفرم uBeac قابلیت تعریف کردن بی نهایت Device و دسته بندی دیتاها بر اساس نوع و کاربرد و حتی اطلاعات جزیی تر مانند واحد سنسورهای مورد استفاده را در اختیار ما قرار داده و از طریق پروتکل های http mqtt ارتباط بین دیوایس های سخت افزاری مانند nodemcu , RaspberryPi را با یکدیگر فراهم می‌کند. از ویژگی های بی نظیر پلتفرم uBeac ساخت دشبورد به صورت لایو و زنده برای مدیریت دیتا دارد. همچنین امکان گزارش گیری از دیتاها با امکان تعریف بازه ی زمانی و تاریخی بر اساس ساعت هفته و ماه را فراهم کرده و در دو فرمت Json و CSV خروجی می‌دهد. در این پروزه شمارش توسط سنسور مادون قرمز اینفراد E18-D80NK انجام شده و سپس دیتا را توسط برد Nodemcu به واسطه تراشه وای فای ESP8266 به پلتفرم Ubeac ارسال می‌کند.

https://app.ubeac.io

پس از ثبت نام و ساخت حساب کاربری در پلتفرم uBeac با تعریف یک Gatway ارتباط با دنیای اینترنت اشیا IOT را شروع خواهیم کرد.

 

 


ساخت پلتفرم uBeac


گیت وی Gateway در یوبیک از دو بخش سخت افزار Hardware و نرم افزار Software تشکیل شده است که از چند بخش پشتیبانی می‌کند.  به عنوان مثال در بخش سخت افزار از آردوینو، رزبری پای و در بخش نرم افزار از Android applications و uBeac Generic Gateways پشتیبانی می‌کند. در این آموزش از برد ESP8266 استفاده شده است و شامل پشتیبانی است. از منو سمت راست پلتفرم بر روی Gateway کلیک کنید. در صفحه باز شده بر روی Setting کلیک کنید. در این بخش می‌توانید یک Gateway دلخواه Add Gateway بسازید. Firmware را بر روی uBeac Multiple انتخاب کنید. در Gateway ساخته شده آدرس URL که از پلتفرم دریافت شده است را به کد آردوینو برنامه انتقال می‌دهیم.

 روش ساخت Gateway و تعریف دیوایس در آموزش زیر کامل توضیح داده شده است. در ابتدا در صورتیکه از قبل گیت وی ساخته اید، نیازی به تعریف مجدد نیست و کافیست با توجه به نامی که برای سنسور نور E18-D80NK و کد json انتخاب کرده اید، دیوایس جدید تعریف کنید تا دیتا را به صورت جداگانه رصد کنید.

 پس از ساخت دیوایس در پلتفرم uBeac وارد Gateway شده و ریکوئست ارسال می‌شود. به محض دریافت ریکوئست پروتکل Http فعال شده و نمایش داده می‌شود.

 


دریافت گزارش از پلتفرم uBeac


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

  •  Sensor Data
  • Sensor Chart
  • Gateway Data

 


جمع بندی لیدی پای


پروژه افراد شمار یکی از ایده هایی بود که برای تشخیص تعداد رفت و آمد در محل کار به ذهنم رسید. در مرحله اول از سنسور تشخیص حرکت PIR استفاده کردم. اما با رعایت تمامی قوانین برنامه نویسی و استفاده از توابعی مانند millis عملکرد سنسور ضعیف و نویز پذیری از محیط بسیار شایع بود. لذا با بررسی بیشتر سنسور مادون قرمز اینفرارد E18-D80NK با روکش و کابل ۱ متری انتخاب شد. سنسوری دقیق با فاصله ی تشخیص تا ۸۰ سانتی متر است و به دلیل ماهیت ساخت سنسور قابلیت نصب در محل های مختلفی دارد. از برد وای فای ESP8266 برای ارتباط وای فای و برقراری ارتباط با شبکه وای فای و ارسال دیتا از طریق پروتکل HTTP  استفاده شده است. از پروتکل HTTP متد Post برای ارسال دیتا استفاده شده و کافیست کتابخانه سنسور را فراخوانی کنیم. سپس در پلتفرم یک آدرس URL ساخته و در کد آردوینو برنامه تعریف کردیم. دیتا سنسور دریافت و در پلتفرم با مدت زمان Delay مشخصی نمایش داده می‌شود. در نهایت توسط گزینه Report میتوانید در دو فرمت مختلف دیتا را دانلود کنید.

 

 


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


برد Nodemcu ESP8266

سنسور مادون قرمز E18-D80NK

کابل فلت

برد بورد Breadboard

 

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

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۱ دیدگاه