Voice Call Arduino

Salam Programmer!!  Nama saya Nathanael Davin , Kali ini saya akan memberikan tutorial tentang voice call menggunakan arduino.

 

Berikut langkah – langkah yang harus di siapkan  :

  1. Siapkan bahan – bahannya : Arduino UNO, GSM Module, SIM CARD.

foto1    foto2

2. Buat Rangkaian seperti ini :14161   keterangan :

  • kabel warna merah (Arduino pin  02  —->GSM Module 5VT  )
  • kabel warna putih (Arduino pin 03 ——>GSM Module  5VR )
  • kabel warna hijau (Arduino GND —–>GSM Module GND )
  • kabel warna hitam  (Arduino 5V ——> GSM Module  VCC5  )

 

3. Buka Software arduino, klik file > examples > GSM> MakeVoiceCall .

Untitled

4. Setelah itu, Upload.

upload

5. klik serial monitor seperti gambar di bawah ini

serial monitor

6. Tuliskan nomor telepon yang ingin anda tujukan pada serial monitor.

5

7. Hasilnya nomor yang dituju akan menerima panggilan seperti gambar dibawah ini :

S__64897029

 

Dibawah ini kode dari arduino :

 

// libraries
#include <GSM.h>

// PIN Number
#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSMVoiceCall vcs;

String remoteNumber = ""; // the number you will call
char charbuffer[20];

void setup() {

// initialize serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}

Serial.println("Make Voice Call");

// connection state
boolean notConnected = true;

// Start GSM shield
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while (notConnected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
notConnected = false;
} else {
Serial.println("Not connected");
delay(1000);
}
}

Serial.println("GSM initialized.");
Serial.println("Enter phone number to call.");

}

void loop() {

// add any incoming characters to the String:
while (Serial.available() > 0) {
char inChar = Serial.read();
// if it's a newline, that means you should make the call:
if (inChar == '\n') {
// make sure the phone number is not too long:
if (remoteNumber.length() < 20) {
// let the user know you're calling:
Serial.print("Calling to : ");
Serial.println(remoteNumber);
Serial.println();

// Call the remote number
remoteNumber.toCharArray(charbuffer, 20);
// Check if the receiving end has picked up the call
if (vcs.voiceCall(charbuffer)) {
Serial.println("Call Established. Enter line to end");
// Wait for some input from the line
while (Serial.read() != '\n' && (vcs.getvoiceCallStatus() == TALKING));
// And hang up
vcs.hangCall();
}
Serial.println("Call Finished");
remoteNumber = "";
Serial.println("Enter phone number to call.");
} else {
Serial.println("That's too long for a phone number. I'm forgetting it");
remoteNumber = "";
}
} else {
// add the latest character to the message to send:
if (inChar != '\r') {
remoteNumber += inChar;
}
}
}
}

 

Thanks! You've already liked this