Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Comunicação GSM com o Módulo SIM800 e Arduino

O módulo SIM800 é uma solução GSM/GPRS popular para adicionar funcionalidades de comunicação móvel a projetos de eletrônica. Este módulo permite que o Arduino envie e receba mensagens SMS, realize chamadas telefônicas e conecte-se à internet via GPRS. A integração do SIM800 com o Arduino é uma habilidade valiosa para projetos de IoT (Internet das Coisas), onde a comunicação remota é essencial.

Neste artigo, abordaremos como configurar e utilizar o módulo SIM800 com o Arduino, incluindo ajustes necessários para garantir a compatibilidade e funcionalidade. Vamos criar um projeto prático que envia uma mensagem SMS quando um botão é pressionado.

Project: Envio de SMS com Arduino e Módulo SIM800

Objetivo: Criar um sistema que envie uma mensagem SMS para um número de telefone específico quando um botão é pressionado.

Funcionalidades:

  1. Detectar o pressionamento de um botão.
  2. Enviar uma mensagem SMS usando o módulo SIM800.
  3. Indicar o status da operação com um LED.

Components List:

  1. Arduino Uno - 1 unidade
  2. Módulo SIM800 - 1 unidade
  3. Botão Push-Button - 1 unidade
  4. LED - 1 unidade
  5. Resistor de 220Ω - 1 unidade (para o LED)
  6. Resistor de 10kΩ - 1 unidade (para o botão)
  7. Protoboard - 1 unidade
  8. Jumpers - vários

Examples:

// Inclui a biblioteca de SoftwareSerial para comunicação serial com o SIM800
#include <SoftwareSerial.h>

// Define os pinos RX e TX para o módulo SIM800
SoftwareSerial sim800(7, 8);

// Define o pino do botão e do LED
const int buttonPin = 2;
const int ledPin = 13;

// Variável para armazenar o estado do botão
int buttonState = 0;

void setup() {
  // Inicializa a comunicação serial com o computador
  Serial.begin(9600);
  // Inicializa a comunicação serial com o SIM800
  sim800.begin(9600);

  // Define os pinos do botão e do LED como entrada e saída, respectivamente
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);

  // Configura o módulo SIM800
  setupSIM800();
}

void loop() {
  // Lê o estado do botão
  buttonState = digitalRead(buttonPin);

  // Se o botão for pressionado, envia uma mensagem SMS
  if (buttonState == HIGH) {
    // Acende o LED para indicar que o botão foi pressionado
    digitalWrite(ledPin, HIGH);
    sendSMS("Número de telefone", "Mensagem de teste do Arduino!");
    // Apaga o LED após enviar a mensagem
    digitalWrite(ledPin, LOW);
    // Aguarda um tempo para evitar múltiplos envios
    delay(5000);
  }
}

// Função para configurar o módulo SIM800
void setupSIM800() {
  // Envia o comando AT para verificar a comunicação
  sim800.println("AT");
  delay(1000);
  // Configura o modo de texto para SMS
  sim800.println("AT+CMGF=1");
  delay(1000);
}

// Função para enviar uma mensagem SMS
void sendSMS(String number, String text) {
  // Envia o comando AT para iniciar o envio de SMS
  sim800.println("AT+CMGS=\"" + number + "\"");
  delay(1000);
  // Envia o texto da mensagem
  sim800.println(text);
  delay(1000);
  // Envia o caractere Ctrl+Z para finalizar o envio
  sim800.write(26);
  delay(1000);
}

Comentários sobre o código:

  1. A biblioteca SoftwareSerial é usada para criar uma porta serial adicional para comunicação com o SIM800.
  2. Os pinos 7 e 8 do Arduino são configurados como RX e TX para o SIM800.
  3. O pino 2 é configurado como entrada para o botão, e o pino 13 como saída para o LED.
  4. A função setupSIM800 configura o módulo SIM800 para o modo de texto SMS.
  5. A função sendSMS envia uma mensagem SMS para o número especificado.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.