Kita Lebih Berwawasan

Thursday, August 15, 2019

SMS Gateway Dengan Gboard Arduino ATMega328P dan Modul SIM900

SMS Gateway Dengan Gboard Arduino ATMega328P dan Modul SIM900 

Dengan Sartika - Gboard adalah papan Arduino unik yang dilengkapi modul SIM900 GSM / GPRS, soket XBee, antarmuka modul nRF24L01 + dan pengontrol ATMega328P. Papan ini akan menambahkan kontrol XBee / nRF24L01 + nirkabel serta konektivitas GSM / GPRS ke proyek Anda. Ini bagus untuk apa pun mulai dari otomatisasi rumah hingga kontrol robot. Kemungkinannya tidak terbatas!
Gboard dapat digunakan sebagai transfer data GSM / GPRS atau platform pengembangan proyek komunikasi nirkabel. Gboard mendukung berbagai catu daya dan Micro SD untuk penyimpanan massal. Ada beberapa bata elektronik 3pin / sensor antarmuka antarmuka bata di papan, itu menawarkan cara mudah untuk prototyping cepat. Papan memerlukan papan dasar FTDI untuk mengunggah sketsa, Anda dapat menggunakan papan Foca kami untuk melakukannya. Gboard dapat ditenagai oleh mini USB, power Jack.


#include <SoftwareSerial.h>
int onModulePin = 6;
int ledFlag = 21;
int buttonPin = A0;
int ledPin = A1;
int buttonState = 0;
int8_t answer;
SoftwareSerial SIM900(2, 3);
char aux_string[30];
char hape[] = "+628++"; //Nomor Hp
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(onModulePin, OUTPUT);
pinMode(ledFlag, OUTPUT);
Serial.begin(9600);
SIM900.begin(9600);
powerOn();
delay(1000);
while ((sendATcommand("AT+CREG?", "+CREG: 0,1", 500) || sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0);
sendATcommand("AT+CMGF=1", "OK", 500);
}
void loop() {
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
if (buttonState == HIGH)
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
sendSms("Presure Steam Dibawah 8,5 bar !!!");
}
}
void powerOn() {
uint8_t answer = 0;
answer = sendATcommand("AT", "OK", 500);
if (answer == 0) {
digitalWrite(onModulePin, HIGH);
delay(1000);
digitalWrite(onModulePin, LOW);
while (answer == 0) {
answer = sendATcommand("AT", "OK", 500);
}
}
}
void sendSms(char* textSMS) {
sprintf(aux_string, "AT+CMGS=\"%s\"", hape);
answer = sendATcommand(aux_string, ">", 2000); // send the SMS number
if (answer == 1) {
SIM900.println(textSMS);
SIM900.write(0x1A);
answer = sendATcommand("", "OK", 6000);
if (answer == 1) { // Sent
digitalWrite(ledFlag, LOW);
}
else { // Error
digitalWrite(ledFlag, HIGH);
}
}
else { // Error
digitalWrite(ledFlag, HIGH);
}
}
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout) {
uint8_t x = 0, answer = 0;
char response[100];
unsigned long previous;
memset(response, '\0', 100);
delay(100);
while (SIM900.available() > 0) {
char a = SIM900.read();
}
SIM900.println(ATcommand);
x = 0;
previous = millis();
do {
if (SIM900.available() != 0) {
response[x] = SIM900.read();
x++;
if (strstr(response, expected_answer) != NULL) {
answer = 1;
}
}
}
while ((answer == 0) && ((millis() - previous) < timeout));
return answer;
}
Share:

0 komentar:

Post a Comment