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

پروژه امنیت زنان با ارسال پیامک و مکان 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 + موقعیت مکانی با آردوینو

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

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

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

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

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

تصویر از محمد رحیمی

محمد رحیمی

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

30 نظر

  1. سلام
    فایل دانلودی بعد از باز کردن از زیپ دوباره یک فایل زیپ دیگر دارد که اون باز نمیشود ؟
    لطفا برررسی کنید ؟

    1. سلام عزیز، با استفاده از نرم افزار WinRAR فایل ها رو باز کنید.

  2. سلام وقت بخیر .
    من پروژه رو اپلود میکنم تو نرم افزار اردیونو به من خطلا میده و میگه Serial port not selected.
    باید چه کار کنم تا خطلا رفع بشه.مممنون

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

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

  4. سلام اقا محمد عزیز .
    اقا این کتابخونهارتباط سریال وTinyGPS که فرمودین درون فایل دانلودی هست این رو چگونه باید به سورس برنامه اضافه کنیم؟
    من کد های درون فایل irenx.ir.txt رو کپی کردم در نرم افزار اردیونو ولی بهم ارور داد که کتابخونه موجود نیست
    باید چه کنم عزیز.؟

  5. سلام .
    وقت بخیر جناب رحیمی.
    ببخشید سورس پروژه رو که در قالب یک فایل زیپ داخل سایت گذاشته اید شامل چندین بخش هست.
    میخواستم بدونم سورس پروژه همونی است که در فایل SRC هست ؟
    اگر میشود اردس دقیق سورس رو محبت کنید ممنون میشم.

    1. سلام عزیز. در فایل دانلودی یک فایل ZIP هست که کتابخانه مورد نیاز پروژه هست. سورس پروژه در فایل irenx.ir.txt قرار داده شده.

  6. سلام جناب رحیمی عزیز .
    جناب شرمنده من بازم پیام میدم ولی کارم توی پروژه گیر کرده
    جناب رحیمی من از اخر برای انکودر و دیکودر HT12C و HT12E چه کار کنم؟
    فرمودین در ایران نیست
    جناب لطفا یک راه حل خودتون بگین تا پروژه تکمیل بشه .به راهنمایییون نیاز دارم .
    لطفا بفرمائید که کار اینانکودر و دیکودر HT12C و HT12E در پروژه چیست ؟ ممنون بابت زحماتتون

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

  7. سلام اقا محمد عزیز
    اقا خییییییلی ممنون بابت راهنمایی های کامل و دقیقتون.
    اقای رحیمی شرمنده فقط در مورد این انکودر و دیکودر HT12C و HT12E لطف میکنید راهنماییم کنید
    من الان میخوام این پروژه رو بسازم فقط سر همین موضوع گیر کردم. لطفا یه توضیحی بدین از سردرگمی بیام بیرون .
    با نهایت سپاس.

    1. سلام. بله این مدل انکودر و دیکودر در ایران موجود نیستند باید از مدل های مشابه استفاده کنید در ذهنم مدلی نیست که مشابه این دو باشه

  8. سلام اقای رحیمی وقتتون بخیر باشه.
    1: اون 12 و 5 ولت dc پاور باید به ترتیب هرکدوم چند آمپر باشند؟
    2:اون بازر باید چند ولتی باشد؟
    3: برای اون انکودر و دیکودر HT12C و HT12E من هرچی گشتم توی بازار و سایت ها پیدا نکردم . لطف میفرمایید یه سایت اینترنتی معرفی کنید که داشته باشه و اگه نبود لطفا یه مورد مشابه براش بفرمایید دیگه مجبورم کد رو متناسب با اون انکودر جدید بنویسم
    4:اگه لطف بفرمایید اعداد اون مقاومت ها در بخش گیرنده و فرستنده رو بگید ممنون میشم.
    جناب لطفا کمکم کنید خیلی به راهنمایی هاتون نیاز دارم.
    ممنون.

    1. سلام عزیز.
      1- در بخش فرستنده 1 آمپر کافی هست برای بخش گیرنده حداقل 2-3 آمپر باشه.
      2- بازر پنج ولتی مناسب هست
      4- برای فهمیدن مقدار مقاومت ها مقاله رنگ مقاومت رو بخونید.

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

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

  10. سلام.
    جناب ببخشید الان مواردی که در تصاویر شماتیک هست همان مواردی هست که در فیلم مشاهده میکنیم؟
    چون فک میکنم مواردی که در فیلم مشاهده میکنیم بیشتر از موارد تصاویر شماتیک هست.
    ایا حدس من درست هست یا اشتباه دارم؟

    1. بله درست میفرمایید اما شما بر طبق شماتیک عمل کنید مشکلی نخواهد بود.

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

    1. سلام جناب، مواردی که در تصویر شماتیک مدار های پروژه مشاهده میکنید رو خریداری کنید کافی هست.

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

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

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

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

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

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

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

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

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

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