Apa Itu SIM900A ?
SIM900A adalah GSM/GPRS module u/ uC / Arduino / Raspberry Pi. Dapat digunakan u/ mengirim sms, calling, transfer data melalui GPRS & fungsi DTMF. Module GSM – GPRS dengan chip Sim900A dari simcomm yg sudah dilengkapi dengan antenna.
- Power supply : 5V
- Tx/Rx level : support 3,3V / 5V / RS232, jadi kompatibel dgn Raspberry pi, Arduino, uC, PC.
- Ukuran : 4,9cm x 4,7cm
- Control: via AT commands
Berikut ini gambar dari module SIM900A :
Berikut penjelasan masing-masing pin header sesuai angka :
1. Konektor untuk power supply 5V, rekomendasi 2A. Hati-hati jangan sampai kebalik 5V dan GND
2. Pin header untuk koneksi serial 3,3V dan TTL 5V seperti penjelasan pada gambar dibawah :
- VCC MCU (VBATT) : power supply pada IC SIM900A, biarkan tidak terkoneksi
- GND
- 5V Tx : pin Tx untuk TTL 5V
- 5V Rx : pin Rx untuk TTL 5V
- 3,3V Tx : pin Tx untuk level 3,3V
- 3,3V Rx : pin Rx untuk level 3,3V
3. Pin header untuk koneksi serial RS232 level, seperti penjelasan pada gambar dibawah :
- GND
- DB9-3 : Tx RS232 level
- DB9-2 : Rx RS232 level
Langkah-langkahnya adalah sebagai berikut :
- Pasang Simcard dan antenna pada module SIM900A, simcard harus dalam kondisi sudah diregistrasi / diaktifkan ke jaringan GSM / operator.
- Koneksikan antara module SIM900A dengan Arduino UNO, sesuai pin berikut :
- GND <—-> GND
- 5V Tx <—-> D10
- 5V Rx <—-> D11
- Pasang power supply 5V ke konektor power supply SIM900A, tunggu beberapa saat ( 2 – 5 detik ). Jika tidak punya eksternal power supply 5V.
- Amati module SIM900A, jika nyala lampu LED berkedip pelan berarti SIM900A sudah ready, jika berkedip cepat berarti masih ada masalah.
- Upload Sketch untuk tes kirim sms berikut :
#include <SoftwareSerial.h>SoftwareSerial sim900(10,11); // 10=RX, 11=TX;
String response,st;
String phone_no=”081335667160″;
String sms_msg=”Tes SMS : Arduino”;
//String sms_msg;
char msg_end[1];
unsigned char Is_sim900_Ready=0;
int delayInit_sim900=10000;void setup() {
// put your setup code here, to run once:
msg_end[0]=0x1a;
Serial.begin(9600);
Serial.println(“Goodnight moon!”);
sim900.begin(9600);
//delay(delayInit_sim900);
if (sim900_init()==1){
Serial.println(“Initialitation : OK”);
}else{
Serial.println(“Initialitation : ERROR”);
}if (sim900_initNetwork()==1){
Is_sim900_Ready=1;
Serial.println(“Registering to Network : OK”);
delay(2000);
SendSMS(phone_no,sms_msg);
}else{
Serial.println(“Registering to Network : ERROR”);
}
}void loop() {
// put your main code here, to run repeatedly:
if (sim900.available()){
Serial.write(sim900.read());
}
}void sim900_flush(){
while(sim900.available() > 0) sim900.read(); // Clean the input buffer
}int sim900_sendATCmd(String ATcommand, String expected_answer1, String expected_answer2, unsigned int timeout){
unsigned long prevtime;
int answer=0;sim900_flush();
for (int i=0;i<ATcommand.length();i++){
sim900.write(ATcommand[i]);
}
sim900.write(“\r”);
response=” “;
prevtime=millis();
do{
if (sim900.available()){
st=sim900.readString();
response +=st;
Serial.print(st);
// check if the desired answer 1 is in the response
if (response.indexOf(expected_answer1) > 0){
answer = 1;
}
// check if the desired answer 2 is in the response
else if (response.indexOf(expected_answer2) > 0){
answer = 2;
}
}
}while((answer==0) && ((millis()-prevtime)<timeout));
//Serial.println(“Respon : “+response);
return answer;
}int sim900_init(){
int cresp=0;
if (sim900_sendATCmd(“ATE0\r”, “OK”, “ERROR”, 3000)==1){
cresp=sim900_sendATCmd(“AT+CMGF=1\r”, “OK”, “ERROR”, 3000);
}
return cresp;
}int sim900_initNetwork(){
return sim900_sendATCmd(“AT+CREG?”, “+CREG: 0,1”, “+CREG: 0,5”, 3000);
}int SendSMS(String no, String msg)
{
sim900_flush();
Serial.print(“AT+CMGS=\””+no+”\”\r”);
sim900_sendATCmd(“AT+CMGS=\””+no+”\”\r”, “>”, “ERROR”, 500);
Serial.print(msg+msg_end[0]);
return sim900_sendATCmd(msg+msg_end[0], “OK”, “ERROR”, 500);
} - Ganti phone_no=”0813xxxxxxxx” sesuai no hp yang ingin dikirim sms.
- Ganti sms_msg=”Tes SMS : Arduino” dengan pesan sms yang ingin dikirimkan.
- Jika semua lancar, beberapa saat setelah sketch sukses diupload & program dijalankan, Arduino UNO akan mengirim sms dengan modul SIM900A ke no hp yang disetting pada variabel phone_no dengan isi pesan sesuai variabel sms_msg.
Demikian langkah-langkah untuk interfacing atau testing module SIM900A dengan Arduino UNO.
+++ Semoga Bermanfaat +++
Kak. Sim 900a saya berkedip cepat, masalahny di mana ya kak?
U/ saat ini modul gsm kena aturan blokir IMEI dari kemenkominfo