SIM900A GSM মডিউলের খুঁটিনাটি ও ফোন কল

মেসেজ পাঠানো কিংবা ফোন কল উভয় কাজই করা যায় SIM900A Kit দিয়ে। ইউনিভার্সিটি লেভেলে যাদের প্রোজেক্ট করতে হয়েছে তাদের মধ্যে অনেকেই এই মডিউল ব্যবহার করে প্রোজেক্ট তৈরি করেছেন। অনেকেই মডিউলটি খুব সহজেই ব্যবহার করতে পেরেছেন । আবার অনেক গ্রুপের ক্ষেত্রে দেখা গিয়েছে দিন-রাত হাড় খাটুনি খেটে তারপর গিয়ে সফলতার মুখ দেখেছেন। অনেকে একাধিক SIM900A Kit ক্রয় করে প্রোজেক্টে সফল হয়েছেন। কি কি সমস্যা সাধারণত হয়ে থাকে, কিভাবে সমাধান করা যায় এই বিষয়ে আজকের টিউটোরিয়াল।

SIM900A GSM with Arduino

পাওয়ার সাপ্লাইঃ

ভোল্টেজ

SIM900A Kit এর জন্য ৫ ভোল্টের ফিক্সড পাওয়ার সাপ্লাই প্রয়োজন। ২ পিনের (J1) কানেক্টরের মাধ্যমে ভোল্টেজ সাপ্লাই দিতে হবে। এর ভিতরে ফিক্সড কোন ভোল্টেজ রেগুলেটর নেই। তাই ৫ এর অধিক ভোল্টেজ সাপ্লাই দেওয়ার কোন সুযোগ নেই। যদি মডিউলটিতে ৫ ভোল্টের বেশি সাপ্লাই দেওয়া হয়, তাহলে SIM900A মডিউলটি ইন্টারনাল ভাবে নস্ট হয়ে যাবে। সাপ্লাই দেওয়া ৫ ভোল্ট একটি ডায়োডের মধ্যে দিয়ে SIM900A মডিউলে প্রবেশ করে। এক্ষেত্রে ডায়োডের জন্য ০.৭ ভোল্টেজ ড্রপ হয়ে, শুধুমাত্র  ৪.৩ ভোল্ট মডিউলটিতে সাপ্লাই হয়।

কারেন্ট

এতক্ষণ ভোল্টেজ বিষয়ে জানলাম, তাহলে কারেন্ট রেটিং কত হবে?

হ্যা, কারেন্ট রেটিং অনেক গুরুত্বপূর্ণ একটি বিষয় এই SIM900A Kit জন্য। কমপক্ষে ১ এম্পিয়ার কারেন্ট ক্যাপাসিটি আছে এমন পাওয়ার সাপ্লাই ব্যবহার করতে হবে। অপারেশন চলার সময় ৩০-৪০ মিলি এম্পিয়ার কারেন্ট প্রবাহিত হয়ে থাকে । কিন্তু যখন মডিউলটি নেটওয়ার্কের সাথে কানেক্ট হয়, তখন এর কারেন্ট রেটিং অনেক বৃদ্ধি পেয়ে থাকে, যা স্থির নয়। J1 কানেক্টরে ফিক্সড ৫ ভোল্ট সাপ্লাইয়ের ক্ষেত্রে ২৬৪-৪৯২ মিলি এম্পিয়ার কারেন্ট প্রবাহের রেকর্ড রয়েছে। কখনো কখনো এটা আবার ৯০-১০০ মিলি এম্পিয়ারের মধ্যেও থাকে। এই ধরণের রেকর্ড থেকে অল্প কারেন্টের পাওয়ার সাপ্লাই ব্যবহার করাটা উচিৎ হবে না।

এডাপ্টার/ব্যাটারী/পাওয়ার ব্যাংক

প্রশ্ন হলো, কি ধরণের পাওয়ার সাপ্লাই ব্যবহার করতে হবে?

যেহেতু অনেকেই আমরা এডাপটারের সাথে পরিচিত। তাই ৫ ভোল্ট, ১ এম্পিয়ারের পাওয়ার সাপ্লাই ব্যবহার করতে হবে। অনেক এডাপটারের বডিতে যে মানের কথা বলা থাকে, সে অনুযায়ী আউটপুট ভোল্টেজ কারেন্ট পাওয়া যায়না। তাই সঠিক যাচাইয়ের মাধ্যমে পাওয়ার সাপ্লাইটি (এডাপ্টার) সংগ্রহ করা।

সমস্যা হলো, ৫ ভোল্টের এডাপ্টারগুলো মার্কেটে সচারচর পর্যাপ্ত থাকে না। অন্যদিকে ব্যাটারীর ভোল্টেজ ৬ ভোল্ট অথবা ১২ ভোল্টেরও হয়ে থাকে। এই সকল ক্ষেত্রে পরামর্শ থাকবে, একটি বাক মডিউল ব্যবহার করা। যেখানে ইনপুট ৬ ভোল্ট, ১২ ভোল্ট যাই হোক, আউটপুটে ফিক্সড ৫ ভোল্ট নিশ্চিত সেট করে নেওয়া যাবে।

DC-DC Buck Converter (LM2596) with Display এ ইনপুটে ১২ ভোল্ট সাপ্লাই দিয়ে আউটপুটে ফিক্সড ৫ ভোল্ট সেট করে নেওয়া যাবে। এর জন্য নীল রঙের ভেরিয়েবল রেজিস্টর ঘুড়িয়ে এডজাস্ট করতে হবে। বাক মডিউলটির স্পেসিফিকেশন নিম্নরূপ।

  • Input Voltage: 3.2V – 40VDC
  • Output Voltage: 1.25V – 35VDC
  • Max. Output Current: 3A

পাওয়ার ব্যাংক থেকে ফিক্সড ৫ ভোল্ট আউটপুট পাওয়া যায়। পর্যাপ্ত কারেন্টও রয়েছে। ফলে নিশ্চিন্তে ব্যবহার করা যাবে। যেহেতু পাওয়ার ব্যাংক ওজনে বেশি, তাই হয়তো একে সব সময় ব্যবহার করা সম্ভব হবে না।

পিন ডায়াগ্রামঃ

SIM900A Kit টি ব্যবহারের পূর্বে পিন বৃত্তান্ত যেনে নেওয়া যাক।

SIM900A GSM Module Pinout

Network LED: 

মডিউলটিতে D6 LED নেটওয়ার্ক Status বুঝিয়ে থাকে। পাওয়ার অন করার সাথে সাথে এই LED ব্লিংকিং করতে শুরু করবে। প্রতি ১০০ মিলি সেকেন্ড পর অন/অফ হবে। SIM যদি নেটওয়ার্কের সাথে কানেক্ট হয়, তাহলে ব্লিংকিং Status পরিবর্তন হয়ে যাবে। যা দেখে খুব সহজেই বুঝতে পারবো। এই ব্লিংকিং হবে প্রতি ৩ সেকেন্ট পর পর।

Work LED:

D5 LED কেই মূলত Work LED বলা হচ্ছে। পাওয়ার দেওয়ার পর থেকেই এটি জ্বলে থাকে। যখন ফোন কল আসবে তখনই এই D5 LED অফ হয়ে যাবে।

পাওয়ার ক্যাবলঃ

ক্যাবলের রং দেখে কখনো ভোল্টেজ সাপ্লাই দেওয়া যাবে না। J1 কানেক্টরের সাথে লাল-কালো উলটো কানেকশনও থাকতে পারে। সুতরাং ক্যাবলের রঙ দেখে ভোল্টেজ সাপ্লাই দিলে, মডিউল নস্ট হওয়ার সম্ভাবনা রয়েছে। কানেক্টরের দুই পাশে VCC GND লেখা দেখে ভোল্টেজ সাপ্লাই করতে হবে।

দৈর্ঘ্য-প্রস্থ্যঃ 

৪৮/৫০ মি.মি.

প্রয়োজনীয় কম্পোনেন্টঃ

এক্সপেরিমেন্ট করার সময়, কিছু কম্পোনেন্ট প্রয়োজন হবে। যার তালিকা প্রদান করা হলো।

ক্রমিক নং  কম্পোনেন্টের নাম মডেল পরিমাণ লিংক
SIM900A Kit GGG-00033 ১টি কম্পোনেন্ট লিংক
Arduino Nano ARD-00089 ১টি কম্পোনেন্ট লিংক
Silicone Jumper Wire (Male to Female) C&C-00246 প্রয়োজনমত কম্পোনেন্ট লিংক
Silicone Jumper Wire (Male to Female) C&C-00246 প্রয়োজনমত কম্পোনেন্ট লিংক
Breadboard (830 Point) MIS-00002 ১টি কম্পোনেন্ট লিংক

সার্কিট কানেকশনঃ

AT Command

SIM900A Kit মডিউলটি পাওয়ার দেওয়ার পর প্রথম কাজ AT Command দিয়ে চেক করা। AT এর পূর্ণ রুপ ATtention. অর্থাৎ যখন AT সেন্ড করা হবে এবং OK মেসেজ রিপ্লাই আসবে তখন বুঝবো মডিউলটি রেসপন্স করছে। এটি মাত্র শুরুর একটি ধাপ। এরপর প্রয়োজনীয় আরও অনেক AT Command রয়েছে, যার দ্বারা SIM900A মডিউলের অবস্থা বুঝা যাবে। উদাহরণ স্বরূপ বলা যায়, মডিউলটি কোন কোম্পানি তৈরি করছে? এর ভার্শন কত? সিগন্যাল কোয়ালিটি কেমন? এমন সকল উত্তর পাওয়া যাবে AT Command এর মাধ্যমে।

 

To Check the Modem

AT

OK

To Make a Voice Call

ATD+ +88Phone Number

To Hang up Or Disconnect a Call

ATH

To Receive Incoming Call

ATA

To Change SMS Sending Mode

AT+CMGF=1

OK

To Send New SMS

AT+CMGS=\”+88PhoneNumber\””);

To Check Signal Quality

AT+CSQ

+CSQ: 29,0

OK

To Check Network Registration

AT+CREG?

+CREG:0,1

OK

Product Identification Information

AT+GSV

SIMCOM_Ltd
SIMCOM_SIM900A
Revision:1137B10SIM900A32

Operator Check

AT+COPS?

+COPS: 0,0,”grameenphone”

OK

আরও AT Command সম্পর্কে জানতে SIM900 AT Command Manual ফাইলটি দেখুন।

ডেমো কোডঃ

AT Command

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM900A
SoftwareSerial mySerial(2, 3); //2=Rx connect to SIM900A 5VT, 3=Tx connect to SIM900A 5VR

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
  Serial.println("Initializing...");
  delay(1000);
  
  mySerial.println("AT"); //Handshaking with SIM900A
  updateSerial();
  mySerial.println("AT+CSQ");   //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println("AT+CCID");  //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println("AT+CREG?"); //Check whether it has registered in the network
  updateSerial();
  mySerial.println("AT+GSV");   //Check version
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read()); //Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read()); //Forward what Software Serial received to Serial Port
  }
}

To make a Voice Call

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM900A
SoftwareSerial mySerial(2, 3); //2=Rx connect to SIM900A 5VT, 3=Tx connect to SIM900A 5VR

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Handshaking with SIM900A
  updateSerial();
  
  mySerial.println("ATD+ +8801913076078;"); 
  updateSerial();
  delay(20000); // wait for 20 seconds...
  mySerial.println("ATH"); //hang up
  updateSerial();
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

SMS Send

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM900A
SoftwareSerial mySerial(2, 3); //2=Rx connect to SIM900A 5VT, 3=Tx connect to SIM900A 5VR

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Handshaking with SIM900A
  updateSerial();
  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CMGS=\"+8801913076078\"");
  updateSerial();
  mySerial.print("Message from SIM900A Kit"); //text content
  updateSerial();
  mySerial.write(26);
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

ভিডিওঃ

AVR মাইক্রোকন্ট্রোলারের সাথে SIM900A Module এর ব্যবহার দেখতে এই পেজটি দেখতে পারেন।

কোথায় কোথায় ব্যবহার হয়?

  • সেলুলার কমিউনিকেশন
  • হোম অটোমেশন
  • সিকিউরিটি বেসড প্রোজেক্ট
  • সেন্সর মনিটরিং
  • রোবটিক্স প্রোজেক্ট

সতর্কতাঃ

১। পাওয়ার ক্যাবলের রঙ দেখে ভোল্টেজ সাপ্লাই দেওয়া যাবে না।

২। SIM900A Kit এ সাপ্লাই ভোল্টেজ ৫ ভোল্টের বেশি দেওয়া যাবে না।

৩। SIM স্লটে সঠিক ভাবে সিম কার্ড বসাতে হবে।

৪। উভয় সোর্সের গ্রাউন্ড কমন করতে হবে।

Rate this post
Share with your friends
Default image
Nur Mohammad
Senior Research Engineer | Techshop Bangladesh | E-mail: nur@techshopbd.com
Articles: 38

4 Comments

    • প্রিয় গ্রাহক, আসলে এটার সরাসরি কোন সলুশন নেই! ফার্মওয়ার আপডেট করে দেখতে পারেন কাজ করতেও পারে আর গুগল ও ইউটিউবে এই বিষয়ে রিসার্চ করে দেখতে পারেন হয়তো আরও কোন সমাধান পাওয়া যেতে পারে।

    • First, you have to convert the modem into Unicode format. The GSM network does not automatically convert SMS messages to Unicode. Unicode messages are typically longer than GSM messages. Not all Modems and carriers support Unicode.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.