এই আলোচনার উদ্দেশ্য হল একটি এমবেডেড ওয়্যারলেস ডিভাইস তৈরী করা যা একটি জিএসএম মডেম তথা একটি মোবাইল সিমের সাথে সংযুক্ত থাকবে। এই উদ্দেশ্যে আমরা মাইক্রোকন্ট্রোলারকে একটি জিএসএম মডেমের সাথে কানেক্ট করব। মোডেমকে সাথে কানেক্ট করব একটি মোবাইল সিমের সাথে। মোবাইল সিম কানেক্ট করলে পুরো সিস্টেমটি একটি মোবাইল ফোনের মতো কাজ করবে। অর্থ্যাত আমরা আমাদের সিস্টেম থেকে মেসেজ এবং কল আদান-প্রদান করতে পারব। আমাদের পক্ষে তখন মেসেজ বা কলের মাধ্যমে কোনো ডিভাইসকে নিয়ন্ত্রন করা এবং ডিভাইসের অবস্থা সম্পর্কে জানা সম্ভব হবে। এই ক্ষেত্রে যে ডিভাইসটিকে আমরা নিয়ন্ত্রন করতে চাই সেটির সাথে যোগাযোগ স্থাপনের কয়েকটি মাধ্যম আছে।
১)এসএমএস ভিত্তিক কমিউনিকেশনঃ
যেমনঃ এস এম এসের মাধ্যমে কমান্ড পাঠিয়ে লোড অন/অফ করা। বাসায় আগুন লাগলে বা চোর আসলে বাসার মালিককে এসএমএস পাঠিয়ে জানানো এবং মালিক কর্তৃক পাঠানো এসএমএসের মাধ্যমে অ্যালার্ম বাজানো।
২)কলভিত্তিক কমিউনিকেশনঃ
যেমনঃ বাসায় আগুন লাগলে স্বয়ংক্রিয়ভাবে নিকটস্থ পুলিশ স্টেশনে কল করা এবং আগে থেকেই রেকর্ড করা একটি ভয়েস মেসেজের মাধ্যমে ইমার্জেন্সি সম্পর্কে পুলিশকে জানানো।
৩)ইন্টারনেটভিত্তিক কমিউনিকেশনঃ
আপনার ভিভাইসকে আপনি পৃথিবীর যেকোনো জায়গা থেকে ইন্টারনেটের মাধ্যমে নিয়ন্ত্রন করতে পারবেন।
এই পদ্ধতিতে ভেহিকল ট্র্যাকিং সিস্টেম বা ভিটিএস তৈরী করা যায়। ডিভাইসটি জিপিএস ডেটা পাঠাবে এবং ব্যবহারকারী তার গাড়িকে ইন্টারনেটের মাধ্যমে বিশ্বের যেকোনো স্থান থেকে মনিটর করতে পারবেন।
আমরা আমাদের এই টিউটোরিয়ালে এসএমএসভিত্তিক কমিউনিকেশনের কিছু উদাহরণ দেখব।
জিএসএম মডেমঃ
জিএসএম মডেম হচ্ছে একটি ওয়্যারলেস মডেম যা একটি ওয়্যারলেস নেটওয়ার্কে সংযুক্ত থেকে কাজ করে। ওয়্যারলেস মডেম অনেকটা ডায়াল আপ মডেমের মতই কাজ করে। ডায়াল আপ মডেমের সাথে এর পার্থক্য হল, ডায়াল আপ মডেম ল্যান্ড ফোনের সাথে যুক্ত থাকে আর জিএসএম মডেম যুক্ত সাথে মোবাইল সিমের সাথে। নিচে বিভিন্ন ধরনের মডেমের ছবি দেওয়া হল। মডেম সিলেকশনের আগে আমাদের এটি কমান্ড সম্পর্কে জানতে হবে।
AT কমান্ড কী? এটি কমান্ড হল মডেম নিয়ন্ত্রনের জন্য কিছু ইন্সট্রাকশন। AT এর পূর্নরুপ হচ্ছে Attention. প্রতিটি কমান্ড লাইন শুরু হয় AT দিয়ে এবং শেষ হয় ক্যারেজ রিটার্ন দিয়ে(কম্পিউটারের Enter বাটন)। এইজন্যই মডেম কমান্ডগুলোকে এটি কমান্ড বলা হয়। এটি কমান্ডের সিনট্যাক্স বেশ সহজ। সিনট্যাক্সের নিয়মগুলো নিচে দেওয়া হল। নিয়ম ১: এটি কমান্ড শুরু হয় AT দিয়ে এবং শেষ হয় ক্যারেজ রিটার্ন অর্থাৎ ‘Enter’ দিয়ে ক্যারেজ রিটার্নের ASCI ভ্যালু হল 0x0D এবং স্ট্রিং ভ্যালু হল “\r”. নিয়ম ২: স্ট্রিংকে একটি ডাবল কোটেশনের ভেতরে রাখতে হবে। উদাহরনঃ যেমন, মেসেজ স্টোরেজের সবগুলো মেসেজ যদি টেক্সট মোডে( টেক্সট মোড কী সেই সম্পর্কে পরে আলোচনা করা হবে।) দেখতে চান তাহলে “ALL” নামক স্ট্রিংকে এটি কমান্ডের সাথে যুক্ত করতে হবে।যেমনঃ AT+CMGL=”ALL” নিয়ম ৩: ইনফর্মেশন রেসপন্স এবং রেজাল্ট কোড সবসময় ক্যারেজ রিটার্ন দিয়ে শুরু হয় এবং লাইন ফিড(ASCII = 0x0A; Decimal = 10; string = ‘\n’) দিয়ে শেষ হয়। উদাহরনঃ এটি কমান্ড লাইন “AT+CGMI ” মোবাইল ডিভাইসে পাঠানোর পর মোবাইল ডিভাইসটি নিচের রেসপন্সের মতো একটি রেসপন্স পাঠাবে। LF CR Nokia LF CR LF CR OK LF CR প্রথম লাইনটি হল এটি কমান্ডের ইনফর্মেশন রেসপন্স, দ্বিতীয়টি হচ্ছে ফাইনাল রেজাল্ট কোড। ফাইনাল রেজাল্ট কোডের শেষে ‘OK’ লেখাটি রেসপন্সের শেষ নির্দেশ করে। এটি দ্বারা বোঝায় এর পরে মোবাইল থেকে পিসিতে আর কোনো তথ্য প্রেরণ করা হবে না। যখন কোনো টার্মিনাল প্রোগ্রাম যেমন হাইপারটার্মিনাল অথবা মাইক্রোসফট উইন্ডোজ ক্যারেজ রিটার্ন ক্যারেক্টার দেখতে পায়, সেটি বর্তমান লাইনের শুরুতে কার্সার সরিয়ে দেয়। যখন লাইনফিড দেখতে পায় তখন একই পজিশনে পরবর্তী লাইনে কার্সার সরায়। এটি কমান্ডের কেস সেন্সিটিভিটিঃ এসএমএসের সাথে সংশ্লিষ্ট সকল এটি কমান্ড ইংরেজি বড় হাতের অক্ষরে লেখা হয়। তবে কিছু কিছু জিএসএম/জিপিআরএস মডেম এবং মোবাইল ছোট হাতের এবং বড় হাতের অক্ষর উভয়ই সাপোর্ট করে। উদাহরণস্বরুপ নোকিয়া ৬০২১ এ এটি কমান্ড ছোট হাত বড় হাত দুই মোডেই এটি কমান্ড লেখা যায়। এক্ষেত্রে, AT+CMGL এবং at+cmgl দুটি লাইনই একই অর্থ বহন করে। এটি কমান্ডের পুরো লিস্ট এইখানে পাওয়া যাবে। আমাদের এক্সপেরিমেন্টে শুধু এসএমএসের সাথে সংশ্লিষ্ট এটি কমান্ডগুলো ব্যবহৃত হবে। তাই এসএমএসের সাথে সংশ্লিষ্ট এটি কমান্ডগুলো নিচে বর্ণনা করা হলঃ 1) ATE0 – Turn off echo এই কমান্ডটি দিয়ে নির্ধারণ করা হয় যে মডেমটি মাইক্রোকন্ট্রোলার কর্তৃক পাঠানো কমান্ডের ইকো পাঠাবে কিনা। যেমন ইকো অফ করে আপনি যদি ‘AT’ কমান্ডটি পাঠান তাহলে মডেম উত্তরে শুধুমাত্র ‘OK’ পাঠাবে। কিন্তু ইকো যদি অন করা থাকে তাহলে মডেমের উত্তর হবে এরকমঃLF CR AT LF CR LF CR OK LF CR
মানে প্রথমে মডেমকে যে কমান্ড পাঠানো হয়েছিল সে সেই কমান্ডটিই পাঠাবে। তারপর তার রেসপন্স পাঠাবে। বাই ডিফল্ট ইকো অন থাকে। ট্রাফিক কমানোর জন্য ইকো অফ করে নেওয়া ভালো। 2) AT+CNMI – New message indication এই কমান্ডটি নির্দেশ করে কোনো নতুন মেসেজ আসলে মডেম কী করবে। যদি আমরা কমান্ডটি (AT+CNMI=2,1,0,0) এই কনফিগারেশনে লিখি তাহলে মডেমটি নতুন মেসেজ রিসিভ করলে নিচের স্ট্রিংটি পাঠাবে। CMTI: “SM”,1 এর মানে হল, নতুন রিসিভ হওয়া মেসেজ SM অর্থাৎ সিম মেমোরিতে সেভ হবে। মেসেজের ইনডেক্স নাম্বার হবে 1. 3) AT+CPMS – Preferred Message Storage এই কমান্ডটি নির্ধারণ করে কোথায় মেসেজ সেভ হবে। আপনি যদি জানতে চান আপনার মডেম কী ধরনের স্টোরেজ সাপোর্ট করে তাহলে লিখুন, AT+CPMS = ? আপনি যদি জানতে চান আপনার মডেমের ডিফল্ট স্টোরেজ কোনটি তাহলে লিখুন AT+CPMS? আমরা সিম মেমোরি ব্যবহার করব । তাই আমরা লিখব AT+CPMS = “SM” আরও যেসব লোকেশন ব্যবহার করা যাবে সেগুলো হচ্ছেঃ “SM”: SMS message storage in SIM (default) “BM”: CBM message storage (in volatile memory). “SR”: Status Report message storage 4) AT+CMGF – Text Mode এই কমান্ডটি নির্ধারন করে আপনি কোন মোডে মেসেজ হ্যান্ডেল করবেন। মেসেজ দুই মোডে হ্যান্ডেল করা যায়। টেক্সট মোড এবং পিডিইউ মোড। আমরা টেক্সট মোডে কাজ করব। টেক্সট মোড সিলেকশনের জন্য লিখতে হবে “AT+CMGF=1” 5) AT+CMGR – Read Message এই কমান্ডটি দিয়ে সিমের কোনো নির্দিষ্ট লোকেশনে সেভ হওয়া মেসেজ পড়া যাবে। 6) AT+CMGD – Delete Message এই কমান্ডটি দিয়ে সিমের কোনো এক বা একাদিক লোকেশনের মেসেজ ডিলিট করা যাবে। 7) AT+CMGS – Send Message এই কমান্ডটি দিয়ে যেকোনো নাম্বারে এসএমএস পাঠানো যাবে। উদাহরনঃ AT+CMGS=”+8801————–” (আপনার কাঙ্খিত মোবাইল নাম্বার) ৮) AT+IPR – Baud Rate প্রথমে আপনাকে দেখে নিতে হবে আপনার মাইক্রোকন্ট্রোলার এবং মডেম সর্বোচ্চ কত বড রেট সাপোর্ট করে। যদি আপনি বড রেট ৯৬০০ সিলেক্ট করতে চান তাহলে লিখতে হবে AT+IPR = 9600 মাইক্রোকন্ট্রোলারের সাথে জিএসএম মডেমকে কানেক্ট করার আগে আপনাকে এই কমান্ডগুলো ম্যানুয়ালি চেক করে দেখতে হবে। কোনো টার্মিনাল সফটওয়্যার ব্যবহার করে আপনাকে পিসি থেকে মডেমে কমান্ড পাঠিয়ে দেখতে হবে। এরকম দুটি সফওটওয়ার হল Doclite এবং Hyperterminal. এছাড়াও ‘MikroC Pro For AVR‘ কম্পাইলারের ‘MikroC’s USART Terminal‘ ব্যবহার করেও কাজটি করা যাবে। ]]>