ارسال جهت جغرافیایی از طریق بلوتوث به موبایل

در این آموزش می خواهیم توسط اردوینو از ماژول قطب نما مدل QMC5883 اطلاعات را دریافت و سپس توسط ماژول بلوتوث مدل HC05 اطلاعات را به موبایل بفرستیم.

ماژول بلوتوث HC05  :

HC05

ماژول از ارتباط سریال پشتیبانی می کند و بادریت پیش فرض ان روی 38400 تنظیم شده است.

در ادامه پایه های ماژول را بررسی می کنیم:

ماژول قطب نما :

QMC5883

QMC5883  يك قطب نماي 3 محوره ديجيتال می باشد و از رابط I2C پشتیبانی می کند.در ادامه پایه های ان را بررسی می کنیم:

 

بررسی برنامه :

#include "compass.h"
#include <Wire.h>

فراخوانی کتابخانه راه انداز ماژول قطب نما و کتابخانه I2C

String compass_direction = "";

این متغییر برای نگه داری جهت خوانده شده از ماژول می باشد.

void setup() {

  Serial.begin(38400);

تنظیم بادریت سریال تا برای ارسال اطلاعات اماده شود.

Serial.println("Compass Test ...");

}



void loop() {

  delay(500);

  read_compass();

خواندن از قطب نما هر 0.5 ثانیه

  Serial.println("Degree is : " + compass_direction);

و ارسال اطلاعات به ماژول بلوتوث

}

ماژول اطلاعات را بصورت درجه به ما می دهد که توسط تابع زیر ان را به جهت جغرافیایی تبدیل می کنیم.

void read_compass() {

  Wire.begin();
  compass_x_offset = 122.17;
  compass_y_offset = 230.08;
  compass_z_offset = 389.85;
  compass_x_gainError = 1.12;
  compass_y_gainError = 1.13;
  compass_z_gainError = 1.03;

  compass_init(2);
  //compass_offset_calibration(3);

  compass_scalled_reading();

  compass_heading();

  int degree = bearing;


  if ( degree >= 0 && degree <= 30 ) {
    compass_direction  = "N ";
  }
  else if ( degree > 30 && degree <= 60 ) {
    compass_direction  = "NE";
  }
  else if ( degree >= 60 && degree < 90 ) {
    compass_direction  = "E ";
  }
  else if ( degree >= 90 && degree < 120 ) {
    compass_direction  = "E ";
  }
  else if ( degree >= 120 && degree < 160 ) {
    compass_direction  = "SE";
  }
  else if ( degree >= 160 && degree < 200 ) {
    compass_direction  = "S ";
  }
  else if ( degree >= 200 && degree < 245 ) {
    compass_direction = "SW";
  }
  else if ( degree >= 245 && degree < 290 ) {
    compass_direction  = "W ";
  }
  else if ( degree >= 290 && degree < 335 ) {
    compass_direction  = "NW";
  }
  else if ( degree >= 335 && degree <= 360 ) {
    compass_direction  = "N ";
  }

}

در سمت موبایل ما برای دریافت و نمایش اطلاعات ارسال شده نیاز به برنامه Serial Bluetooth Terminal داریم که باید این برنامه را روی موبایل خود نصب کنید و سپس بلوتوث موبایل را روشن کرده و منتظر می مانیم تا ماژول HC05 شناسایی شود و بعد از کانکت شدن رمز پیش فرض 1234 را وارد می کنیم.

در ادامه تصویر محیط نرم افزار را مشاهده می کنید:

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

 

فایل های برنامه را از لینک زیر دانلود کنید

دانلود فایل

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

گیل الکترونیک
سبد خرید
empty basket

هیچ محصولی در سبد خرید نیست.