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

Range Finder IoT – فاصله سنج IOT

در این پروژه فاصله سنج که وابسته به سایت ic2cloud  هست  شما با استفاده از سنسور آلتراسونیک DS18B20 قادر به سنجش فاصله هستید . در مطالب قبلی درمورد نحوه کار با این سایت ( + و +) اشاره کردیم .سخت افزار استفاده شده در این پروژه عبارت است از Arduino Uno و Arduino Ethernet Shield و سنسور Ultrasonic DS18B20

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

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

 

Ultrasonic Sensor
Pin Description
GND Ground
Echo Receive the Echo pulse
Trig Trigger the ultrasonic pulse
Vcc ۵V

همونطور که در عکس بالا مشاهده میکنید این ماژول دارای ۴ پایه هست ، که ۲ پایه مربوط به تغذیه و ۲ پایه مربوط به سنسور های آلتراسونیک هست . شما زمانی که میخواهید به کمک آلتراسونیک فاصله تا مانع رو پیدا کنید ابتدا یه پالس به پایه trig   ( دومی از سمت چپ ) میدین و پالس التراسونیک ارسال میشه و با تایمر زمان رو محاسبه میکنید و به محض دریافت پالس برگشتی از پایه Echo  تایمر رو استپ کرده و زمان رفت و برگشت پالس رو بدست میارین .

حالا طبق سرعت صوت در محیط که  در هوای خشک و در دمای ۲۰ درجه سانتی‌گراد (۶۸ درجه فارنهایت)، سرعت صوت ۳۴۳٫۲ متر بر ثانیه میتونید زمان رفت و برگشت صوت رو بر اساس تایمر بدست بیارین و فاصله پیموده شده توسط صوت را بدست بیارین. البته باید نتیجه نهایی رو تقسیم بر ۲ کنید چون این زمان مربوط به ارسال صوت به مانع و بازگشت آن از مانع به سنسور شماست . البته اگر میخواین دقت فاصله بدست آمده شما در هر دمایی بدون خطا باشه لازمه تا دمای محیط رو به کمک سنسور دما بدست بیارین و در فرمول زیر جایگذاری کنید تا سرعت صوت در دمای محیط فعلی رو بدست بیارین

فرمول سرعت صوت در دماهای مختلف :

V = V0 + 0.6TC

در این فرمول V0 سرعت صوت در دمای صفر درجه که برابر با ۳۳۱٫۲ است و TC برابر است با دمای مورد نظر[۱]

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

همونطور که میدونید این پروژه بر اساس برد آردوینو برنامه نویسی شده است و برنامه لازم جهت راه اندازی این برد در ادامه آورده شده است و لازمه مقادیر مربوط به device id  و  auth  رو طبق مطلب قبلی (+) در برنامه جایگذاری کنید.

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

#define echoPin ۸      // Echo Pin
#define triggerPin ۹   // Trigger Pin

// 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"

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

  // start network communication
  Ethernet.begin(mac);
  delay(1000);
  
  Serial.println("Start...");
}

void loop() {
  long duration, distance;
  
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);

  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(triggerPin, LOW);
  duration = pulseIn(echoPin, HIGH);

  // Calculate the distance (in cm) based on the speed of sound.
  // distance = duration * speed of sound / 2
  // We divided by two because the sound travels to destination and 
  // comes back which is twice the distance we measure
  distance = duration * ۰.۰۳۴ / ۲;
  if(distance > 0 && distance < 1000)
    sendRange(String(distance));
  delay(1000);
}

void sendRange(String range) {
  Serial.println(range);
  if (eth.connect(server, port)) {  // connect to server
    eth.println("GET http://" + String(server) + ":" + String(port) + "/Wire/connector/set?id=" + devId + "&RANGE=" + range + " HTTP/1.1");  // send range to server
    eth.println("Authorization: Basic " + auth);
    eth.println("Connection: close");
    eth.println();
    eth.stop();
  }
  else {
    Serial.println("Connection Error");
  }
}

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

Download “Range-Finder-IoT.zip” Range-Finder-IoT.zip – 2 بار دانلود شده است – 68 KB

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

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

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

LPS22HB ماژول اندازه گیری فشار هوا (بارومتر الکترونیکی)

ماژول (LPS22HB (LPS22HBTR یک سنسور بارومتر ( فشار هوا) بسیار کوچیک میباشد که بر اساس …

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