UКак получить SMS с помощью GSM-модема на Arduino
В этом проекте мы обсудим, как получать SMS через последовательный монитор IDE arduino. Мы не только собираемся получать SMS, но и отправлять текстовое сообщение, нажимая разные клавиши. На мгновение нажатие «s» отправит предварительное ввод текстового сообщения, нажатие «r» будет получать SMS в режиме реального времени.
Вот прототип автора:
Схема приема SMS с использованием модема GSM очень проста, вам просто нужны 3 штыря для штырей для мужчин. TX GSM-модем подключен к выводу № 9 arduino, а RX GSM-модема соединен с выводом № 8 ардуино, а между GSM и arduino также установлено соединение с землей и землей.
Всегда используйте внешний источник питания для GSM-модема, не подключайте 5Vcc от arduino к GSM-модему, так как есть хорошая вероятность перегрузки регулятора напряжения arduino. Не забудьте применить SMS-резак или что-то подобное на вашей SMS-подписке для уменьшения расходов на SMS-рассылку. В противном случае вы потеряете пустой баланс аккаунта после отправки нескольких SMS-сообщений, поскольку после каждого отправленного SMS-сообщения не будет подтверждения со стороны вашего сотового оператора, поскольку SIM-карта находится в GSM-модемом. Единственное подтверждение, которое вы получаете, это предупреждение SMS, касающееся вашей пустой учетной записи, поэтому будьте осторожны с вашими расходами. Теперь перейдем к кодированию части этого проекта.
Программа:
//-----------------Program developed by R.Girish-------------//
#include <SoftwareSerial.h>
SoftwareSerial gsm(9,8);
void setup()
{
gsm.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
delay(100);
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's':
Send();
break;
case 'r':
Recieve();
break;
case 'S':
Send();
break;
case 'R':
Recieve();
break;
}
if (gsm.available()>0)
Serial.write(gsm.read());
}
void Send()
{
gsm.println("AT+CMGF=1");
delay(1000);
gsm.println("AT+CMGS="+91xxxxxxxxxx"r"); // Replace x with mobile number
delay(1000);
gsm.println("Hello I am GSM modem!!!");// The SMS text you want to send
delay(100);
gsm.println((char)26); // ASCII code of CTRL+Z
delay(1000);
}
void Recieve()
{
gsm.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
delay(1000);
}
//-----------------Program developed by R.Girish-------------//