دوشنبه , ۲ مهر ۱۳۹۷
سرخط خبرها
خانه » آردوینو » Motion IoT سنسور حرکت IOT
حمایت مالی از یزد کیت

Motion IoT سنسور حرکت IOT

در این پروژه ، یک نمونه سنسور حرکتی ساده متصل به اینترنت IOT با کمک آردوینو و سایت ic2cloud  رو برای شما آماده کردیم . این پروژه در سه بخش کد آردوینو ، برنامه اندروید موبایل و کد سمت کلود اجرا میشه. برای اجرا و راه اندازی این پروژه نیاز به پیشنیاز جهت نحوه کار با آردوینو ، سایت ic2cloud و سایت app invertor دارید.

 

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

 

کارکرد این پروژه به صورت زیر خلاصه میشه

  • قابلیت تشخیص حرکت در محدوده سنسور
  • در صورت تشخیص حرکت ، ایمیل ارسال میکنه
  • از طریق موبایل میتونید سیستم را روشن و خاموش کنید
  • اطلاع از روشن یا خاموش بودن سیستم ، اطلاع از تحرک در موبایل

 

 

 

قطعات سخت افزاری ان پروژه عبارت است از Arduino Uno,Arduino Ethernet Shield,و سنسور تشخیص حرکت Motion Detector Sensor -PIR هست  البته این پروژه صرفا برایراه اندازی اولیه هست و شما میتونید بسته به سخت افزار خودتون و پروزه اصلی خودتون اونو تغییر بدین و با استفاده از سمپل اطلاعات رو به سرور اصلی ارسال کنید.

 

نحوه کار با سنسور pir  هم بسیار ساده هست و کافیه شما خروجی ماژول سنسور رو به مدار خودتون وصل کنید و با تنظیمات مربوط به فاصله و زمان تاخیر و مود فعالیت نحوه کار کرد سنسور تشخیص حرکت PIR  رو تنظیم کنید و در صورت تشخیص حرکت ، خروجی سنسور شما فعال میشود.

برای شناسایی هر سیستم توسط سایت نیاز به یک device_id  دارید که شامل حروف و اعداد هست و باید این حروف و اعداد یکتا باشه که میتونید از GUID  استفاده کنید و با کمک این سایت  کد GUID  خودتون رو بسازید اگر برنامه نویس هستین معمولا در زبان ها دستورات لازم برای ایجاد کد GUID  هست.بعد از ایجاد کد منحصر بفرد GUID  که برای شناسایی سیستم شما هست اونو در برنامه خود وارد کنید .مثلا  “b5ebf7a7-e63a-4660-8f83-cf1e5d39cf5b”

برای امنیت در ارسال اطلاعات لازمه تا با ترکیب ایمیلی که در سایت ic2cloud  ثبت نام کردین و با استفاده از پسورد api  کد شناسایی رو با کدبندی base64 ارسال کنید. البته لازمه دقت کنید که API Password  با رمز عبور اکانت شما در سایت IC2CLOUD  متفاوت هست . لازمه فرمت اطلاعات به صورت باشه <email_address>:<API_Password> به عنوان مثال اگه ایمیل شما [email protected] و رمز عبور API شما [email protected] باشه شما باید با کد بندی base64  عبارت [email protected]:[email protected]  رو کد کنید که برای این کار میتونید از این سایت کمک بگیرید یا اگه برنامه نویس هستین از دستورات زبان برنامه نویسی خود استفاده کنید به عنوان مثال کد ایمیل و رمز عبور مثال ما میشه “dGVzdEB5YXpka2l0LmNvbTpZQHpka2l0”

درصورتی که سنسور رو به صورت زیر به برد خودتون متصل کنید با نمونه سمپل کد زیر و جایگذاری device id  و  auth  کد میتونید مدار خودتون رو راه اندازی کنید

 

#include <SPI.h>
#include <Ethernet.h>


// Network settings
byte mac[]     = { 0xDE, 0xED, 0xDD, 0xDD, 0xFE, 0xED };
EthernetClient eth;

char server[]  = "www.ic2pro.com";       // Wiring Cloud host name
int port       = 80;
String devId   = "111-222-333";          // Device ID. CREATE YOUR OWN GUID; Use this http://www.guidgenerator.com/
String auth    = "dXNlcjpwYXNzd29yZA=="; // Authentication credentials Create a string from <email_address>:<API_Password> and encode it base64
                                         // The sample here "dXNlcjpwYXNzd29yZA==" is the encoding for "user:password"

int motionStatus;    // cache current motion state
int motionPin = 8;   // pin used to read the PIR sensor

void setup() {
  // start serial monitoring
  Serial.begin(115200);
  
  // set-up pins
  pinMode(motionPin, INPUT);

  // start network communication
  Ethernet.begin(mac);
  delay(1000);
  
  // intialize status to "NO MOTION"
  motionStatus = ۰;
  Serial.println("Start...");
}

void loop() {
  int newStatus = digitalRead(motionPin);
  // send the data to server only if the motion state changes
  if(newStatus != motionStatus) {
    Serial.println("Status changed...");
    motionStatus = newStatus;  // cache new value for motion state
    Serial.println(motionStatus);
    sendEvent();
    readResponse();
  }
}

void sendEvent() {
  if(motionStatus == 1) {
    if (eth.connect(server, port)) {  // connect to server
      Serial.println("Connected...");
      eth.println("GET http://" + String(server) + ":" + String(port) + "/Wire/connector/set?id=" + devId + "&MOTION=YES HTTP/1.1");  // send state to server
      eth.println("Authorization: Basic " + auth);
      eth.println("Connection: close");
      eth.println();
      Serial.println("Event Sent...");
      eth.stop();
    }
    else {
      Serial.println("Connection Error");
    }
  }
}

String readResponse()
{
  while (eth.connected() && !eth.available()) delay(1);          // wait for data

  String buff = "";                                              // read data in the variable buff
  while (eth.connected() || eth.available()) {
    char c = eth.read();
    buff += c;
    Serial.print(c);
  }
  eth.stop();
  Serial.println();
  return buff;
}

 

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

Download “Motion-IoT.zip” Motion-IoT.zip – 1 بار دانلود شده است – 70 KB

منبع : فروشگاه آترین الکترونیک

 

 

حمایت مالی از یزد کیت

همچنین ببینید

جمع آوری داده های سیستم IOT به کمک سایت thingspeak.com

همونطور که میدونید IOT  مخفف Internet of thing  که در فارسی به اینترنت اشیا یا …

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