জিএসএম সিম 808 মডিউল। এই GSM SIM808 মডিউল দিয়ে বিভিন্ন প্রজেক্ট করা সম্ভব। এই জিএসএম সিম 808 মডিউল এবং আরডুইনোর মধ্যে সংযোগ করে, এসএমএস পাঠানো, এসএমএস গ্রহণ, কলিং এবং মোবাইল নম্বর ট্রেস সম্পর্কিত বিভিন্ন প্রকল্প করা সম্ভব। GPS লোকেশন ট্র্যাকার/ট্রেস মোবাইল নম্বর প্রকল্পটি এই GSM SIM 808 মডিউল এবং Arduino এর মধ্যে ইন্টারফেস করেও করা যেতে পারে। এই জিপিএস লোকেশন ট্র্যাকার প্রকল্পের সাহায্যে, আপনি যদি এই ডিভাইসটি আপনার গাড়িতে রাখেন এবং যদি এই গাড়িটি চোর চুরি করে। তারপর আপনি আপনার ফোনের ফোন মেসেজের মাধ্যমে আপনার গাড়ির অবস্থান ট্র্যাক করতে পারবেন। আজ আমি আপনাদের দেখাবো এবং শিখাবো কিভাবে এই সিস্টেমটি তৈরি করতে হয়। চলুন জেনে নেই এই প্রজেক্টটি করতে বা এই ডিভাইসটি তৈরি করতে কী কী উপাদান ও ডিভাইস লাগবে।
- Arduino Uno R3 Board.
- GSM Sim808 Module.
- Jumper wire.
- 5v 2Amp Power supply.
- SIM.
- Mobile Phone.
- GPS Antenna.
- GSM Antenna.
নিচে একটি পিন ডায়াগ্রাম দেখানো হয়েছে যে কিভাবে এই প্রযুক্তিটি করতে GSM SIM 808 মডিউল এবং Arduino এর মধ্যে ইন্টারফেস করতে হয়।
Coding Part:
এখন আমি কোডিং অংশ দেখাবো। উপরে জিএসএম দিয়ে প্রজেক্ট করার জন্য দেখুন আমি পিন ডায়াগ্রাম বা সংযোগ চিত্রটি দেখিয়েছি। আপনি এই ডায়াগ্রাম অনুযায়ী সংযোগ তৈরি করবেন। এখন কোডিংয়ের জন্য আপনাকে অবশ্যই Arduino IDE সফটওয়্যারে দুটি লাইব্রেরি ফাইল যোগ করতে হবে। আপনি নীচে থেকে এই দুটি লাইব্রেরি ফাইল নিয়ে নিতে পারেন.
Code:
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
#include <Wire.h>
//#define PHONE_NUMBER "01743175953"
#define MESSAGE_LENGTH 160
char message[MESSAGE_LENGTH];
int messageIndex = 0;
//char MESSAGE[300];
float la;
float lo;
//float speedd;
float wspeed;
String data;
#define MESSAGE"data"
char gprsBuffer[64];
char *s = NULL;
char phone[16];
char datetime[24];
#define PIN_TX 7
#define PIN_RX 8
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,
char b[100];
void getGPS();
String rmsg;
String asish = String("gps");
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
//******** Initialize sim808 module *************
while(!sim808.init())
{
Serial.print("Sim808 init error\r\n");
delay(1000);
}
delay(3000);
Serial.println("SIM Init success");
Serial.println("Init Success, please send SMS message to me!");
}
void loop()
{
getGPS();
delay(200);
readSMS();
}
void readSMS()
{
//*********** Detecting unread SMS ************************
messageIndex = sim808.isSMSunread();
Serial.print("messageIndex: ");
Serial.println(messageIndex);
//*********** At least, there is one UNREAD SMS ***********
if (messageIndex > 0) {
sim808.readSMS(messageIndex, message, MESSAGE_LENGTH, phone, datetime);
delay(200);
rmsg=String(message);
if(asish == message)
{
sim808.sendSMS(phone,b);
}
//***********In order not to full SIM Memory, is better to delete it**********
sim808.deleteSMS(messageIndex);
Serial.print("From number: ");
Serial.println(phone);
Serial.print("Datetime: ");
Serial.println(datetime);
Serial.print("Recieved Message: ");
Serial.println(message);
}
}
void getGPS()
{
while(!sim808.attachGPS())
{
Serial.println("Open the GPS power failure");
delay(1000);
}
delay(1000);
Serial.println("Open the GPS power success");
while(!sim808.getGPS())
{
}
Serial.print(sim808.GPSdata.year);
Serial.print("/");
Serial.print(sim808.GPSdata.month);
Serial.print("/");
Serial.print(sim808.GPSdata.day);
Serial.print(" ");
Serial.print(sim808.GPSdata.hour);
Serial.print(":");
Serial.print(sim808.GPSdata.minute);
Serial.print(":");
Serial.print(sim808.GPSdata.second);
Serial.print(":");
Serial.println(sim808.GPSdata.centisecond);
Serial.print("latitude :");
Serial.println(sim808.GPSdata.lat);
Serial.print("longitude :");
Serial.println(sim808.GPSdata.lon);
Serial.print("speed_kph :");
Serial.println(sim808.GPSdata.speed_kph);
Serial.print("heading :");
Serial.println(sim808.GPSdata.heading);
Serial.println();
// speedd = sim808.GPSdata.speed_kph;
la = sim808.GPSdata.lat;
lo = sim808.GPSdata.lon;
wspeed = sim808.GPSdata.speed_kph;
// data = ("latitude: " + String(la) + "*C " + " longitude: " + String(lo) + "%" );
data = ("latitude: " + String(la) + " longitude: " + String(lo) + "speed_kph :" + String(wspeed) );
data.toCharArray(b,100);
Serial.println(b);
Serial.println(b);
Serial.println(data);
delay(400);
}
উপরে আমি কোডিং দেখিয়েছি। উপরে দেখানো কানেকশন ডায়াগ্রাম অনুযায়ী কানেকশন করে আপনি এই কোডিংটি Arduino বোর্ডে আপলোড করবেন। তারপর এই ডিভাইসটি তৈরি করা হবে। এখন আমি বলব এই ডিভাইসটি কিভাবে কাজ করবে। এই ডিভাইসটি তৈরি করার পরে, আপনি এটি আপনার গাড়ি বা বাইক বা যে কোনও জায়গায় রাখতে পারেন।
এখন আপনি ডিভাইসে থাকা সিম কার্ডে একটি বার্তা পাঠাবেন। আমি কোডিং এ একটি বার্তা হিসাবে GPS লিখেছি। আপনি কোডিং সম্পাদনা এবং কিছু লিখতে পারেন. এখন জিপিএস আপনার মোবাইল থেকে সেই ডিভাইসের সিম কার্ডে একটি বার্তা পাঠাবে। সাথে সাথে আপনার ফোনে একটি ব্যাক মেসেজ আসবে। এই বার্তায় আপনি এই ডিভাইসের অক্ষাংশ এবং দ্রাঘিমাংশ পাবেন।
এখন আপনাকে একটি ওয়েবসাইটে যেতে হবে www.whatsmygps.com
এই ওয়েবসাইটে যান এবং এই ওয়েবসাইটে আপনার ফোন বার্তা থেকে অক্ষাংশ-দ্রাঘিমাংশ রাখুন। অক্ষাংশ-দ্রাঘিমাংশ এই ওয়েবসাইটটি স্থাপন করার পরে, আপনি Google ম্যাপে সেই ডিভাইসটির অবস্থান দেখতে পারেন। এ ছাড়া কোনো গাড়ির সঙ্গে ডিভাইসটি সংযুক্ত থাকলে গাড়ির গতিও কিন্তু গুগল ম্যাপে দেখতে পারবেন।
good