21 March 2016

Tutorial 7 - Arduino & GSM Module (SIM900)

ASSALAMUALAIKUM W.B.T & SALAM SEJAHTERA

Hai pembaca setia blog litarprojek2u! Apa khabar semua? Semoga sihat - sihat belaka. Okey, cerita banyak pun tak guna. Untuk post kali ini, saya ingin kongsikan cara - cara menggabungkan Arduino UNO dengan satu lagi alat perhubungan tanpa wayar iaitu GSM Module jenis SIM900. Jika anda baca post sebelum ini, saya ada membuat senarai pendek tentang alat perhubungan tanpa wayar ini. Antaranya ialah RF Transmitter & Receiver, Bluetooth dan GSM. GSM module ni sangat powerful sebab kita boleh kawal litar kita menggunakan SMS atau, lagi power, boleh buat call terus. Oleh kerana dia power, harga dia pun boleh tahan power. Chia chia chia... (ketawa jilake)

Saya ada membuat tinjauan sekitar Jalan Pasar di Pudu, KL (syurga elektronik bagi saya) berkaitan modul GSM ini. Saya dapati harga setiap kedai lebih kurang sama sahaja iaitu dalam lingkungan RM190 ke RM200. Tak termasuk GST tau.. So, dalam RM210++ la jugak.. Jadi, kalau ada pembaca yang ingin membeli module ini, pasti jangan kena tipu pulak ye.. Kalau murah semacam je, hati - hati. Takut kena scam pula.

APA ITU SIM900?

SIM900 GSM / GPRS Shield
SIM900 GSM/GPRS Shield adalah alat yang berfungsi untuk melakukan komunikasi antara telefon bimbit dengan Arduino anda menggunakan rangkaian GSM. Menggunakan alat ini, kita boleh menghantar dan menerima SMS dan panggilan, dengan menggunakan general purpose input/output (GPIO) yang disediakan

SIM900 menggunakan AT Command untuk beroperasi dan menggunakan komunikasi UART (Universal Asynchronous Receiver/Transmitter) dengan Arduino. SIM900 memiliki 12 GPIO, 2 ADC dan 1 PWM.

SIM900 boleh beroperasi secara Quad Band, iaitu rangkaian GSM yang berfrekuensi 850MHz, 900MHz, rangakaian Dual-Band 900/1800MHz dan 1900MHz. Di Malaysia, kita menggunakan jaringan 900/1800MHz. Oleh yang demikian, boleh la kita guna module ini.
 
Ciri - ciri lain SIM900 (saya copy paste dari eBay)
  • Quad-Band 850 / 900/ 1800 / 1900 MHz. 
  • GPRS multi-slot class 10/8
  • GPRS mobile station class B
  • Compliant to GSM phase 2/2+
  • Class 4 (2 W @ 850 / 900 MHz)
  • Class 1 (1 W @ 1800 / 1900MHz)
  • Control via AT commands - Standard Commands: GSM 07.07 & 07.05 | Enhanced Commands: SIMCOM AT Commands.
  • Short Message Service - so that you can send small amounts of data over the network (ASCII or raw hexadecimal).
  • Embedded TCP/UDP stack
  • RTC supported.
  • Selectable serial port.
  • Speaker and Headphone jacks
  • Low power consumption - 1.5mA(sleep mode) 
  • Industrial Temperature Range - -40°C to +85 °C

Library yang perlu ditambah:

Untuk menggunakan module ini, anda perlu menambah library Software Serial ke dalam folder libraries Arduino.

Bekalan Kuasa SIM900

Untuk membolehkan module ini beroperasi dalam keadaan optimum, sila gunakan adapter berkapasiti 5V dengan arus sebanyak 2 Ampere.

Operasi

Untuk kali ini, saya ingin membina satu aturcara bila mana water sensor mengesan air (HIGH), SMS akan dihantar ke telefon bimbit penerima.

Memasang Kad Sim pada SIM900

Pastikan kad sim yang anda hendak pasang pada module ini ada kredit ye. Kalau takde kredit, sampai kiamat la SMS tak kan diterima.
Pasang sim kad pada Modul SIM900
Selepas anda memasang sim kad, gunakan adapter 5V,2A untuk menghidupkan module ini. Terdapat 2 indicator LED iaitu Status dan juga NetLight. Jika module ini menerima voltan yang mencukupi dan minima arus, LED Status akan menyala (tidak berkelip). Anda perlu menekan  softswitch yang terdapat pada module tersebut. Jika Netlight berkelip selang 3 saat, itu menunjukkan yang SIM900 anda sudah bersedia untuk beraksi.

Sambungan

Bagi water sensor, sambungan dia adalah sangat mudah. Terdapat 3 pin iaitu +, - dan S. Jadi:
  • + sambung pada pin Arduino 5V
  • - sambung pada pin Arduino GND
  • S sambung pada pin Arduino A0 (sebenarnya, mana - mana pin Analog Input pun boleh)
Water Sensor
Untuk berkomunikasi dengan Arduino, shield ini menggunakan komunikasi serial UART. Pin yang digunakan adalah port Arduino anda, sama ada ingin gunakan pin Rx/Tx (D0/D1) atau Rx/Tx (D7/D8). Agar tidak menganggu komunikasi antara Arduino dengan PC, pin yang kita gunakan adalah software serial D7/D8. Oleh itu, kita perlu membuat tetapan jumper UART di module SIM900 seperti gambarajah di bawah:
Sambungan UART pada SIM900

 

Aturcara.


#include <SoftwareSerial.h>   
#define rxPin 0  
#define txPin 1  

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);  
char text[150];   
String message="WATER DETECTED";

int Water_Sensor = A0;

int Water_Sensor_State = 0;

int sms_Send = 0;

void setup() {

  mySerial.begin(9600);  

  pinMode (Water_Sensor, INPUT);

}

void loop() {

 Water_Sensor_State = digitalRead (Water_Sensor);

 if ( Water_Sensor_State == HIGH )
  {
    for (sms_Send; sms_Send < 1; sms_Send++)
        {
          delay (30);
          mySerial.print("AT+CMGF=1\r"); 
          delay(1000);  
          mySerial.print("AT+CMGS=\"+601xxxxxxxx\"\r"); // masukkan no. telefon
          delay(1000);  
          mySerial.println(message);  
          mySerial.print("\r");  
          delay(1000);  
          mySerial.println((char)26);  
          mySerial.println();
        }
      
   }

 else
  {

  }