آموزش آردوینوپروژه های آردوینو

پروژه امنیت زنان با ارسال پیامک و مکان GPS آردوینو

سلام. پروژه امنیت زنان با ارسال پیامک و مکان GPS آردوینو را آماده کردیم.

ارسال پیامک هشدار و موقعیت مکانی با آردوینو

با وجود فناوری های موجود، ساختن دستگاه ایمنی برای زنان کار سختی نیست که نه تنها زنگ اضطراری ایجاد کند، بلکه پیامی را برای دوستان به همراه موقعیت مکانی بفرستد. ما در اینجا یک مدار کوچک مثل دستبند طراحی میکنیم که توسط زنان یا … پوشیده میشود که در صورت فشردن دکمه روی آن، پیامی حاوی مکان فرد و متن از پیش تنظیم شده به یکی از آشنایان یا پلیس ارسال میشود.در این پروژه آردوینو ما از برد Arduino استفاده می کنیم که می تواند با ماژول های GSM و GPS برای ارسال هشدار پیامکی و گرفتن مختصات موقعیت مکانی در ارتباط باشد. ما همچنین برای ارتباط بی سیم بین دستبند و دستگاه گیرنده با GPS / GSM از ماژول گیرنده RF و گیرنده RF استفاده کرده ایم.

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

فیلم زیر نحوه عملکرد پروژه را نشان میدهد.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

توضیحات ماژول مکان یاب GPS Neo-6M

ماژول مکان یاب GPS Neo-6M

Neo 6M یک ماژول GPS سریال است که جزئیات مکان را از طریق ارتباط سریال ارائه می دهد. این ماژول جی پی اس دارای چهار پین است. توضیحات پین های این ماژول را در جدول زیر مشاهده میکنید.

پین توضیح
Vcc منبع تغذیه 2.7 تا 5 ولت
Gnd GND
TXD ارسال اطلاعات
RXD دریافت اطلاعات

ماژول GPS داده ها را در چند رشته با نرخ 9600 Baud Rate منتقل می کند. اگر از ترمینال UART با نرخ 9600 Baud استفاده کنیم ، می توانیم داده های دریافت شده توسط GPS را ببینیم.

ماژول GPS داده های موقعیت ردیابی را با فرمت NMEA ارسال می کند. فرمت NMEA شامل چند جمله است که در زیر چهار جمله مهم آن آورده شده است.

  • $ GPGGA : داده های ثابت سیستم موقعیت یابی جهانی
  • $ GPGSV : ماهواره های GPS در نمای
  • $ GPGSA : ماهواره های فعال و GPS DOP
  • $ GPRMC : حداقل داده های خاص GPS / Transit ویژه توصیه شده

ماژول GPS داده های مربوط به موقعیت را در به صورت لحظه ای می فرستد، و داده های زیادی را با فرمت NMEA می فرستد (تصویر زیر). فرمت NMEA شامل چند جمله است که ما در آن فقط به یک جمله نیاز داریم. این جمله از $ GPGGA شروع می شود و حاوی مختصات ، زمان و سایر اطلاعات مفید است.

فرمت NMEA

می توانیم با شمارش کاما (,) در رشته ، مختصات را از رشته $ GPGGA استخراج کنیم.

فرمت NMEA چیست ؟

در زیر یک رشته GPGGA $ به همراه توضیحات آن آورده شده است :

$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47
$GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
واحد توضیح
$GPGGA فرمت اطلاعات موقعیت جهانی
HHMMSS.SSS زمان بر حسب ساعت ، دقیقه ، ثانیه و میلی ثانیه
Latitude عرض جغرافیایی
N جهت N= شمال و S= جنوب
Longitude عرض جغرافیایی
E جهت E= شرق و W= غرب
FQ کیفیت اطلاعات
NOS شماره ماهواره های استفاده شده
HDP دقت افقی
Altitude ارتفاع بر حسب متر از سطح دریا
M متر
Height ارتفاع
Checksum چک کردن اطلاعات

ماژول GSM Sim900 چیست و چگونه کار میکند ؟

SIM900 یک ماژول چهار باند GSM / GPRS کامل است که به راحتی قابل پیکربندی است. SIM900 قابلیت انتقال صدا ، پیام کوتاه ، داده های اینترنت را دارد. این ماژول به فراوانی در بازار موجود است و قیمت مناسبی دارد. SIM900 با استفاده از پردازنده  AMR926EJ-S طراحی شده است. این ماژول محبوب دارای چهار باند ماژول GSM / GPRS در اندازه ای کوچک است.

مدار پروژه امنیت زنان با آردوینو

پروژه سیستم امنیتی زنان با آردوینو را به دو قسمت فرستنده و گیرنده تقسیم میکنیم.

بخش فرستنده

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

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

فرستنده RF برای دستگاه ایمنی زنان

بخش گیرنده

در بخش گیرنده RF ، داده ها از باند مچ (قسمت فرستنده) توسط گیرنده RF 433 مگاهرتز دریافت می شود. گیرنده RF این اطلاعات را از طریق پین دیجیتال به آردوینو ارسال می کند. سپس آردوینو نانو سیگنال را دریافت می کند و آن را با استفاده از برنامه ای که درون آن قرار دارد پردازش می کند. هنگامی که قربانی دکمه SOS را در قسمت فرستنده فشار می دهد ، یک سیگنال تولید می شود و به طرف Arduino منتقل می شود ، و سپس آردوینو سیگنال را به ماژول GSM SIM900 می فرستد. سپس پیامکی حاوی متن از پیش تعیین شده به شماره از پیش تعیین شده همراه با موقعیت مکانی ارسال میشود.

گیرنده RF برای دستگاه ایمنی زنان

قطعات مورد نیاز

  1. برد آردوینو نانو
  2. مودم SIM900
  3. ماژول GPS NEO6M
  4. فرستنده و گیرنده رادیویی RF 433 MHZ
  5. انکودر و دیکودر HT12C و HT12E
  6. دکمه

برنامه نویسی آردوینو برای دستگاه امنیت زنان

پس از انجام اتصالات، باید برنامه را در آردوینو بارگذاری کنید. کد کامل پروژه در انتهای صفحه قرار گرفته است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.

در ابتدا کتابخانه ارتباط سریال و TinyGPS برای ماژول GPS NEO6 را فراخوانی میکنیم.

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

در اینجا کتابخانه TinyGPS++.h برای گرفتن مختصات GPS با استفاده از ماژول گیرنده GPS استفاده می شود. این کتابخانه در فایل دانلودی قرار داده شده است.

static const int RXPin = 2, TXPin = 3;
static const uint32_t gps_baudrate = 9600;

اکنون پین های ماژول GPS و میزان baud پیش فرض را اعلام میکنیم که در اینجا 9600 است. همچنین ، پین های ارتباط سریالی ماژول GPS را تعریف

static const int RXPin = 2, TXPin = 3;
static const uint32_t gps_baudrate = 9600;

در داخل Setup() ، تمام پین های ورودی و پین های خروجی را معرفی میکنیم. سپس ، Software Serial را با نرخ 9600 پیکربندی میکنیم.

void setup()
{
  pinMode(12,INPUT); // Input from RF module
  pinMode(4, OUTPUT); // Output for Buzzer
  Serial.begin(19200);
  soft.begin(gps_baudrate);
}

در داخل loop() وضعیت ورودی دیجیتال پین 12 در یک متغیر خوانده شده و ذخیره می شود. هنگامی که وضعیت این پین HIGH باشد ، نشان می دهد ، سوئیچ در سمت فرستنده فشرده شده است ، از این رو آردوینو Buzzer را روشن می کند و همچنین تابع  sendsms() را برای ارسال پیامک با توجه به داده های موقعیت مکانی ارسال می کند.

void loop()
{
  int key = digitalRead(12);
  if(key==1)
  {
    digitalWrite(4,HIGH); // Switch ON the Buzzer
    sendsms();
    digitalWrite(4,LOW); // Switch OFF the Buzzer
  }
 else;

برای دریافت مختصات GPS ، کد طوری نوشته شده است که بطور مداوم مقدار موقعیت مکانی را از ماژول جی پی اس دریافت کند و در دو متغیر جداگانه با عنوان طول و عرض جغرافیایی ذخیره میشود.

while (soft.available() > 0)
  {
    gps.encode(soft.read());
    if (gps.location.isUpdated())
    {
      Lat = gps.location.lat();
      Lon = gps.location.lng();
    }
    else;
  }
}

سرانجام ،ماژول SIM900 GSM با استفاده از دستور AT + CMGF روی حالت پیامک تنظیم می شود. سپس شماره گیرنده تعریف می شود. میتوانید متن و شماره را تغییر دهید.

void sendsms()
{
    Serial.print("AT+CMGF=1\r");
    delay(100);
    Serial.println("AT+CMGS =\"+9891XXXXXXX\””); // تغیر شماره
    delay(100);
    Serial.println(“I want Help !!!Location:” + String(“Lat: “) +String(Lat) + “ “+String(“Lon: “) + String(Lon)); // تغییر پیام
    delay(100);
    Serial.println((char)26);
    delay(100);
    Serial.println();
    delay(5000);
}

ارسال پیامک کوتاه SMS + موقعیت مکانی با آردوینو

به این ترتیب شما یک سیستم امنیت زنان / کودکان میسازید که با فشردن دکمه، شروع به بوق زدن میکند و یک اس ام اس به شماره از پیش تعیین شده همراه با موقعیت مکانی میفرستد. تصویر بالا پیام ارسالی را نشان میدهد.

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

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

8 نظر

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

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

  2. سلام خسته نباشید وقت بخیر چند تا سوال داشتم از خدمتتون جناب
    1:جناب برای برد آردیونو نانو و ماژول GPS NEO6M و ماژول sim800l( توی بازار سیم 900 نتونستم پیدا کنم) که پین های اون ها ازشون جدا هست همه رو باید لحیم کنم؟ یا کار دیگه ای هم میشه انجام داد برای اتصال پین به وسایلش .
    2:انکودر و دیکودر HT12C و HT12E در بازار نیست اصلا هر چی دنبالش رفتم نتونستم پیدا کنم. قطعه جایگزین برای این مورد میفرمایید.
    3:شما در قطعات مورد نیاز فرمودین دکمه ولی در فیلم دکمه ها رو یک برد سوار شده است میخواستم بدونم اسم اون برد چیه؟ اماده هست و ما باید از بازار اونو بگیریم؟یک توضیح مختصر بدید مممنون میشم.
    با تشکر از شما

    1. سلام جناب، هم میتونید لحیم کنید و هم میتونید از برد بورد استفاده کنید.
      اگر از قطعات ذکر شده استفاده کنید بهتر هست ممکنه تغییری در برنامه نویسی بوجود بیاد.
      میتونید از برد های سوراخدار معمولی برای ایجاد برد استفاده کنید یا میتونید pcb بسازید.

  3. سلام اگر بخواهیم برای آردیونو یک مقدار را وارد کنیم از بیرون ولی همیشه از آن به بعد این مقدار ذخیره شود و با قطع برق ازبین نرود یعنی مثل وارد کردن مقدار درخود برنامه اصلی باشد وبعدا درصورت نیاز دوباره بخواهیم مقدار را عوض کنیم از طریق همان کلید های بیرونی بتوانیم و باز هم باقطع برق از بین نرود دستور ذخیره چیست؟

    1. سلام. متوجه سوالتون نشدم دقیقا. این مقداری که میفرمایید در کد وارد میکنید یا از طریق دکمه یا … تعیین میشه ؟

    2. بله از طریق دکمه مثلا در یک متغیر وارد میشه وبعد عملیاتی روش انجام میشه اما باقطع برق از بین میره میخوام از بین نره

    3. باید از حافظه EEPROM استفاده کنید. ما متاسفانه در این زمینه آموزشی نداریم. شما میتونید با سرچ “نوشتن اطلاعات در حافظه EEPROM آردوینو” به جواب برسید.

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

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