আগের অংশে আমরা জিএসএম মডেমের AT কমান্ড সম্পর্কে জেনেছি। এই অংশে আমরা দেখব একটি জিএসএম মডেমকে কিভাবে মাইক্রোকন্ট্রোলারের সাথে কানেক্ট করতে হয়। আরও দেখব AT কমান্ড ব্যবহার করে কিভাবে এসএমএস পাঠানো হয়। এই টিউটোরিয়ালটি বুঝতে হলে আপনাকে অবশ্যই আগের টিউটোরিয়াল থেকে AT command সম্পর্কে জানতে হবে। জিএসএম মডেম বিভিন্ন কোম্পানির, বিভিন্ন ধরনের হয়ে থাকে। আমরা আলোচনা করব SIM900A নিয়ে। SIM900A জিএসএম মডেম দিয়ে একটি মডিউল বানানো হয়েছে। এটি SIM900A kit নামে পরিচিত। SIM900A কিটের কেন্দ্রে রয়েছে একটি SIM900A মডেম, একটি সিম কানেক্টর এবং একটি অ্যান্টেনা। সিম সকেটে সিম বসিয়ে ভালোভাবে লক করলেই এটি একটি মোবাইল ফোনের মতো কল,মেসেজ ইত্যাদি আদান-প্রদান করবে। এই মডিউলে দুটি ইন্ডিকেটর এলইডি রয়েছে। মডিউলে পাওয়ার দিলে D5 এলইডি জ্বলবে। D6 হচ্ছে নেটওয়ার্ক ইন্ডিকেটর এলইডি। সিম কানেক্ট করার পর নেটওয়ার্ক ঠিকমতো পেলে প্রতি তিন সেকেন্ড পরপর এই এলইডি জ্বলবে। এটি ক্রমাগত জ্বলা-নেভা করলে বুঝতে হবে নেটওয়ার্ক পাওয়া যাচ্ছে না। মাইক্রোকন্ট্রোলারের সাথে সংযোগঃ SIm900A সিরিয়াল কমিউনিকেশন সাপোর্ট করে। কাজেই, সিরিয়াল কমিউনিকেশনের মাধ্যমেই মাইক্রোকন্ট্রোলার থেকে SIM900A মডিউল কে কমান্ড পাঠাতে হবে। মাইক্রোকন্ট্রোলারের ইউজার্ট পিনগুলোর সাথে মডিউল কানেক্ট করতে হবে। এখানে আমরা AVR Trainer kit ব্যবহার করেছি। আপনারা চাইলে ব্রেডবোর্ডেও কানেকশনটি করতে পারেন। কানেকশনটি হবে নিম্নরূপ।
SIM900A | Microcontroller |
VCC | VCC |
GND | GND |
Tx | Rx |
Rx | Tx |
চিত্রঃ SIM900 kit এর পাওয়ার পিনের সাথে AVR trainer kit এর পাওয়ার পিনের কানেকশন।
চিত্রঃ SIM900 kit এর Tx ও Rx পিনের সাথে AVR trainer kit এর Rx ও Tx পিনের কানেকশন।
এবার প্রোগ্রামিং এর পালাঃ এই প্রজেক্টটিতে আমরা SIM900A এর খুব ছোট্ট একটি প্রয়োগ দেখেছি। পুরো প্রজেক্টটি মূলত একটি পাসওয়ার্ডভিত্তিক ডোরলকের। প্রজেক্টটিতে অ্যাকনলেজমেন্টের জন্য আমরা কানেক্ট করেছি একটি SIM900A। এই প্রজেক্টে SIM900A মডিউলটির কাজ হল, পাসওয়ার্ড দিয়ে যতবার লকটি খোলা হবে ততবার ‘Door is open’ লিখে লকের মালিককে একটি পূর্বনির্ধারিত নাম্বারে এসএমএস পাঠানো। পুরো প্রজেক্টের কোডই প্রজেক্টে দেওয়া হয়েছে। কোডের মধ্যে SIM900A কে কাজ করানোর জন্য ব্যবহৃত হচ্ছে sms() নামক ফাংশনটি। এই এসএমএস নামক ফাংশনটিতেই প্রথমে মাইক্রোকন্ট্রোলারের ইউজার্ট ইনিশিয়ালাইজ করা হয়েছে। এরপর এসএমএস পাঠানোর জন্য প্রয়োজনীয় AT কমান্ড এবং অন্যান্য প্রয়োজনীয় তথ্য যেমন প্রাপকের মোবাইল নাম্বার, মেসেজ ইত্যাদি পাঠানো হয়েছে। এরপর দরজার লক খোলামাত্রই ফাংশনটিকে কল করলে প্রাপকের কাছে মেসেজ চলে যাবে। এতে করে সে বুঝতে পারবে যে দরজার লক কী সে নিজেই খুলেছে নাকি অন্যকেউ তার পাসওয়ার্ড চুরি করে লক খুলে ফেলেছে।void sms() { UART1_Init(9600); // Initialize UART module at 9600 bps UART1_Write_Text("AT"); //AT command mode selected UART_Write(0x0D); //CR UART_Write(0x0A); //LF Delay_ms(1000); UART1_Write_Text("ATE0"); //Echo off UART_Write(0x0D); //CR UART_Write(0x0A); //LF Delay_ms(100); UART1_Write_Text("AT+CMGF=1"); //select text format of message UART_Write(0x0D); //CR UART_Write(0x0A); //LF Delay_ms(100); Delay_ms(1000); UART1_Write_Text("AT+CMGS=\"+88017xxxxxxxx\"");//write your mobile number here UART_Write(0x0D); //CR UART_Write(0x0A); //LF Delay_ms(1000); UART1_Write_Text("Door opened");//write your message here UART_Write(0x1A); UART_Write(0x0D); //CR UART_Write(0x0A); //LF }]]>