Envio de SMS através do HIscada Pro utilizando modem GPRS MG100

Introdução

Este guia tem por objetivo descrever os procedimentos necessários para integrar o HIscada Pro com um modem GPRS. Nesta página, é disponibilizado um projeto de exemplo do HIscada Pro demonstrando como efetuar um envio de mensagem através de um modem GPRS.

Montagem do Ambiente

Para executar este exemplo é necessário:

  • Ter instalado/instalar a versão 1.4.00 ou superior do HIscada Pro. O pacote HIscada Pro, bem como a sua documentação podem ser obtidos gratuitamente em sua página HIscada Pro.

Testando a comunicação do Modem GPRS

  • Baixe o HyperTerminal disponível para download aqui.

  • Abrir o HyperTerminal.

  • Configurar um nome para a conexão e depois clicar em OK.

../_images/img_sms_01.png

Nome para conexão

  • Configurando uma COM para o modem:

../_images/img_sms_02.png

Configuração da COM

obs

Observação: A COM configurada deve ser a mesma COM do PC.

  • Configurar os parâmetros da COM escolhida e clicar em OK:

../_images/img_sms_03.png

Parâmetros da COM

  • HyperTerminal Conectado com o modem:

../_images/img_sms_04.png

HyperTerminal Conectado com o modem

  • Se o Modem for o MG100 modelo TG executar este comando para habilitar comandos AT:

    • Digitar o comando: ATCMD

      ../_images/img_sms_05.png

      Habilitar comandos ATCMD

obs

  • Este comando ATCMD só é preciso se o modelo do modem for o MG100 - TG, pois o modelo MG100 - G não é preciso utilizar este comando.

  • Desligar e ligar o Modem e executar o comando ATCMD antes de 10 segundos.

  • Enviando um comando AT para o modem:

    • Digitar o comando: AT

    • A resposta que retornará será OK

      ../_images/img_sms_06.png

      Comando AT

  • Fechar o HyperTerminal.

Instalação do projeto de exemplo do HIscada Pro

Para instalar o exemplo deste guia no HIscada Pro, siga os seguintes passos:

  • Baixe o projeto de exemplo do HIscada Pro clicando aqui

  • Abra a IDE do HIscada Pro e acesse o menu Arquivo->Importa Projeto… e selecione o arquivo Envio_SMS.H7G na pasta onde o projeto foi baixado.

    ../_images/img_sms_07.png

    Importa Projeto do HIscada Pro

Descrição sobre o exemplo

Neste projeto de exemplo do HIscada Pro, foi criado uma tela com as configurações do modem e com as configurações do celular que ira receber a mensagem e o script com a montagem do SMS e o envio para a o modem GPRS - Modelo MG100 TG.

../_images/img_sms_08.png

Exemplo de tela com objetos para envio de SMS via modem GPRS MG100

Exemplo de scripts utilizados no projeto anexado

Exemplo de Script para o envio do comando ATCMD e o comando AT+IPR para o Modem GPRS

--[[- - - - - - - - - - - - - - - - - - - - - - - - - -

        Ambiente: HIscada_Pro
         Projeto:
         Empresa:
          Versão: 1.0.00
 Responsável:
                Data:

 \b Descrição:  \brief
   ... Cria os comandos ATCMD e o AT+IPR e envia para o modem GPRS

- - - - - - - - - - - - - - - - - - - - - - - - - - - -]]

local Com            = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_COM")
local Baud_Rate      = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_BaudRate")
local BaudRateModem  = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_BaudRateModem")


if Baud_Rate.Value == 0 then
  BaudRateModem.Value = "AT+IPR=300"
elseif (Baud_Rate.Value == 1) then
  BaudRateModem.Value = "AT+IPR=600"
elseif (Baud_Rate.Value == 2) then
  BaudRateModem.Value = "AT+IPR=1200"
elseif (Baud_Rate.Value == 3) then
  BaudRateModem.Value = "AT+IPR=2400"
elseif (Baud_Rate.Value == 4) then
  BaudRateModem.Value = "AT+IPR=4800"
elseif (Baud_Rate.Value == 5) then
  BaudRateModem.Value = "AT+IPR=9600"
elseif (Baud_Rate.Value == 6) then
  BaudRateModem.Value= "AT+IPR=19200"
elseif (Baud_Rate.Value == 7) then
  BaudRateModem.Value = "AT+IPR=38400"
elseif (Baud_Rate.Value == 8) then
  BaudRateModem.Value = "AT+IPR=57600"
elseif (Baud_Rate.Value == 9) then
  BaudRateModem.Value = "AT+IPR=115200"
elseif (Baud_Rate.Value == 10) then
  BaudRateModem.Value = "AT+IPR=230400"
elseif (Baud_Rate.Value == 11) then
  BaudRateModem = "AT+IPR=460800"
end

--------------------------------------------------------------------------------------------------------
-- Cria Arquivo ATCMD
--------------------------------------------------------------------------------------------------------
-- Apaga arquivo existente
os.remove(ProjectsFolder .. "\\" .. ProjectName .. "\\atcmd" .. ".txt")

-- Criar/Abre arquivo em modo Append
file = io.open(ProjectsFolder .. "\\" .. ProjectName .. "\\atcmd" .. ".txt", "a")

-- seta o arquivo  teste.prn como default de saida
io.output(file)

Comando = "ATCMD"
io.write(Comando .. "\n")

-- Fecha o arquivo
io.close(file)

--------------------------------------------------------------------------------------------------------
-- Cria Arquivo configuração BAUD RATE
--------------------------------------------------------------------------------------------------------
-- Apaga arquivo existente
os.remove(ProjectsFolder .. "\\" .. ProjectName .. "\\baudrate" .. ".txt")

-- Criar/Abre arquivo em modo Append
file = io.open(ProjectsFolder .. "\\" .. ProjectName .. "\\baudrate" .. ".txt", "a")

-- seta o arquivo  teste.prn como default de saida
io.output(file)

io.write(BaudRateModem.Value .. '\n')

-- Fecha o arquivo
io.close(file)

--------------------------------------------------------------------------------------------------------
-- Encontra o Caminho onde o arquivo foi criado e envia para o Modem
--------------------------------------------------------------------------------------------------------

local Serial = "COM" .. Com.Value + 1

local ATCMD     = 'type "' .. ProjectsFolder .. "\\" .. ProjectName .. "\\atcmd" .. ".txt" .. '" > ' .. Serial
local BAUDRATE  = 'type "' .. ProjectsFolder .. "\\" .. ProjectName .. "\\baudrate" .. ".txt" .. '" > ' .. Serial


-- Envia o arquivo gerado para o modem configurado na COM  selecioanda
os.execute(ATCMD)

os.execute(BAUDRATE)

Exemplo de Script para envio de SMS via Modem GPRS

--[[- - - - - - - - - - - - - - - - - - - - - - - - - -

        Ambiente: HIscada_Pro
         Projeto:
         Empresa:
          Versão: 1.0.00
 Responsável:
                Data:

 \b Descrição:  \brief
   ... Cria um arquivo de texto e envia para o modem GPRS

- - - - - - - - - - - - - - - - - - - - - - - - - - - -]]

local Operadora      = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_Operadora")
local Com            = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_COM")
local FreqOper       = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_FerqOperadora")
local exist          = 0

local DDD            = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_DDD")
local Celular        = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_Celular")
local Mensagem       = Tags.Get("Kernel.Tags.Local.TagLocalGroup_SMS.TagLocal_Mensagem")


if(Operadora.Value == 2)then
  if(FreqOper.Value == "AT+CBAND = GSM850_PCS_MODE")then
  exist = 1
  else
   FreqOper.Value = "AT+CBAND = GSM850_PCS_MODE"
   FreqOper:WriteValue()
  end

elseif(Operadora.Value == 0 or Operadora.Value == 1 or Operadora.Value == 3) then

  if(FreqOper.Value == "AT+CBAND = EGSM_DCS_MODE")then
  exist = 1
  else
        FreqOper.Value = "AT+CBAND = EGSM_DCS_MODE"
        FreqOper:WriteValue()
  end
end


--------------------------------------------------------------------------------------------------------
-- Cria Arquivo com o comando AT+CMGS="+55DDDXXXXXXXXX"
--------------------------------------------------------------------------------------------------------
-- Apaga arquivo existente
os.remove(ProjectsFolder .. "\\" .. ProjectName .. "\\numero" .. ".txt")

-- Criar/Abre arquivo em modo Append
file = io.open(ProjectsFolder .. "\\" .. ProjectName .. "\\numero" .. ".txt", "a")

-- seta o arquivo  teste.prn como default de saida
io.output(file)

-- escreve no arquivo no TXT criado para enviar ao modem
if(exist == 0)then
  io.write(FreqOper.Value .. "\n")
end

io.write('AT+CMGS='.. '"' .. '+55' .. DDD.Value .. Celular.Value .. '"' .. "\n")

-- Fecha o arquivo
io.close(file)

--------------------------------------------------------------------------------------------------------
-- Cria Arquivo control+Z
--------------------------------------------------------------------------------------------------------
-- Apaga arquivo existente
os.remove(ProjectsFolder .. "\\" .. ProjectName .. "\\crtlz" .. ".txt")

-- Criar/Abre arquivo em modo Append
file = io.open(ProjectsFolder .. "\\" .. ProjectName .. "\\crtlz" .. ".txt", "a")

-- seta o arquivo  teste.prn como default de saida
io.output(file)

-- escreve no arquivo no TXT criado para enviar ao modem
if(exist == 0)then
  io.write(FreqOper.Value .. "\n")
end

io.write(Mensagem.Value .. '\x1A')

-- Fecha o arquivo
io.close(file)

--------------------------------------------------------------------------------------------------------
-- Encontra o Caminho onde o arquivo foi criado e envia para o Modem
--------------------------------------------------------------------------------------------------------

local Serial = "COM" .. Com.Value + 1

local ATCMGS  = 'type "' .. ProjectsFolder .. "\\" .. ProjectName .. "\\numero" .. ".txt" .. '" > ' .. Serial
local CTRLZ   = 'type "' .. ProjectsFolder .. "\\" .. ProjectName .. "\\crtlz" .. ".txt" .. '" > ' .. Serial

-- Envia o arquivo gerado para o modem configurado na COM  selecioanda

os.execute(ATCMGS)
os.execute(CTRLZ)

Para executar e utilizar o exemplo deste guia, siga os seguintes passos:

  • Com o projeto aberto na IDE do HIscada Pro clique no botão Ativa aplicação “Kernel e Viewer” em modo de depuração

../_images/img_sms_09.png

Fig. Executando a aplicação do HIscada Pro

  • Assim a aplicação estará em execução conforme a figura abaixo:

../_images/img_sms_10.png

Fig. Projeto em execução

  • Pressionar o botão habilita comando AT, para que seja possível enviar comandos At para o Modem MG100 (Modelo TG).

  • Ao Pressionar o botão Enviar será enviada a mensagem para o celular configurado.