در این پروژه ، یک نمونه سنسور حرکتی ساده متصل به اینترنت 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> به عنوان مثال اگه ایمیل شما test@yazdkit.com و رمز عبور API شما Y@zdkit باشه شما باید با کد بندی base64 عبارتtest@yazdkit.com:Y@zdkit رو کد کنید که برای این کار میتونید از این سایت کمک بگیرید یا اگه برنامه نویس هستین از دستورات زبان برنامه نویسی خود استفاده کنید به عنوان مثال کد ایمیل و رمز عبور مثال ما میشه “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 – 0 بار دانلود شده است – 70 KB
م