News - Internet das Coisas

Sistema IoT com ESP32 | GSM para notificação e Sensor Distância

Neste artigo, vamos explorar a criação de um sistema IoT utilizando o ESP32 e o módulo GSM Sim800L para a detecção de presença utilizando um

Categoria: Internet das Coisas

Neste artigo, vamos explorar a criação de um sistema IoT utilizando o ESP32 e o módulo GSM Sim800L para a detecção de presença utilizando um sensor de movimento e envio de notificações. Este projeto é particularmente útil em ambientes como recepções de hotéis, onde a presença de visitantes pode ser detectada e os recepcionistas notificados via SMS.

Esperamos com esse projeto conseguir melhorar o primeiro protótipo criado, o Presence Pulse, caso tenha interesse em patrocinar esse projeto em andamento e ajudar o desenvolvedor, sinta-se a vontade para realizar doação do valor que achar melhor, agradecemos quaisquer ajuda para que possamos disponibilizar mais tempo para estudo e prototipagem.

Descrição do Projeto

o Primeiro protótipo foi batizado de “Presence Pulse”, e foi resultado de um estudo universitário. Se trata de um sistema inovador que combina módulos de sensor de distância, um módulo GSM e o microcontrolador ESP32 para notificar recepcionistas sobre a presença de visitantes, otimizando o atendimento ao cliente.

 

Funcionalidades

  1. Detecção de Presença: Utiliza sensores de proximidade para identificar a presença de visitantes na recepção.
  2. Notificação de Recepcionistas: Envia notificações via SMS ou chamadas através de um módulo GSM para o celular do recepcionista.
  3. Programação Flexível: Programado em MicroPython, o sistema oferece fácil adaptação e modificação para diversos cenários.

Estrutura do Código

Arquivo boot.py

from main_semaforo import execute
#from main_gsm import execute # Para testar apenas o envio do SMS, execute o main_gsm
from machine import Pin
import time

def main():
    resposta = execute()    

if __name__ == "__main__":
    main()
 

Explicação do Código

  1. Importação de Módulos:
    1. main_semaforo: Importa a função execute que contém a lógica principal do sistema.
    2. machine.Pin: Importa a classe Pin da biblioteca machine, essencial para controlar pinos GPIO do ESP32.
    3. time: Importa a biblioteca time para gerenciar atrasos e intervalos no código.
  2. Função main():
    1. Chama a função execute(), que executa a lógica do semáforo IoT, incluindo a detecção de presença e envio de notificações.
  3. Ponto de Entrada:
    1. Verifica se o script está sendo executado diretamente (__name__ == "__main__"), e se sim, chama main().

Estrutura de arquivos e pastas

Arquivo main_gsm.py

from gsm_functions import GsmSim800lMsg
import time

def execute():
    gsm = GsmSim800lMsg()
    resposta = gsm.send()
    print("Resposta final:", resposta)
    return resposta

Explicação do Código

  1. Importação de Módulos:
    1. gsm_functions: Importa a classe GsmSim800lMsg que contém métodos para interagir com o módulo GSM Sim800L.
    2. time: Importa a biblioteca time para gerenciar atrasos e intervalos no código.
  2. Função execute():
    1. Instancia a classe GsmSim800lMsg criando um objeto gsm.
    2. Chama o método send() do objeto gsm, que envia a notificação via SMS.
    3. Imprime a resposta recebida (print("Resposta final:", resposta)) e a retorna.

Estrutuda e arquitetura implementada

Classe GsmSim800lMsg

class GsmSim800lMsg:
    def __init__(self):
        # Inicialização do módulo GSM
        pass
    
    def send(self):
        # Lógica para enviar SMS
        pass

Explicação do Código

  1. Método __init__():
    1. Inicializa o módulo GSM, configurando os parâmetros necessários para a comunicação.
  2. Método send():
    1. Contém a lógica para enviar um SMS, incluindo comandos AT para comunicação com o módulo Sim800L.

Componentes Utilizados

  1. ESP32 WRoom Devkit v1
  2. Sensor Ultrassônico HC-SR04
  3. Display OLED 0.91 – I2C 128×32
  4. Semáforo RGY LED
  5. GSM Sim800L
  6. Fonte Ajustável Protoboard 3.3v / 5v
  7. Regulador de Tensão Step-Down LM2596 DC-DC

Processo de Execução

  1. Inicialização do Protótipo: Ao ligar, o ESP32 carrega os dados em memória.
  2. Execução do Boot.py: Inicia automaticamente com boot.py, estabelecendo __main__ como ponto de entrada.
  3. Carregamento do Sistema: main() carrega o sistema e seus módulos.
  4. Loop Principal: Um loop while True em execute() mantém o sistema operacional.
    1. Classe Core: Instanciação da SemafaroIoT, gerenciando os módulos, incluindo GSMSim800lMsg.
    2. Medição de Distância: Cálculo da distância via sensor ultrassônico.
    3. Verificação de Presença: Se a distância for ≤ 200 cm, ativa o modo de notificação.
  5. Ativação da Notificação: Com a presença detectada, GSMSim800lMsg envia notificações ao recepcionista.
  6. Registro no Firebase: Dados de presença registrados no Firebase usando ufirebase.
  7. Retorno ao Loop: Após a notificação e registro dos dados, o sistema retorna ao início do loop para novo monitoramento.

 

Montagem e Esquema

Os detalhes sobre a montagem do protótipo e o esquemático serão disponibilizados em breve.

 

Requisitos

  1. MicroPython v1.20.0 para ESP32: Download Micropython
  2. IDE Thonny: Download IDE Thonny
  3. Biblioteca ssd1306: Download SSD1306 
  4. Biblioteca ufirebase: Download Ufirebase

Contribuição

Colaboração com Francisco e suporte do Profº Alan, Unimetrocamp. Sugestões e contribuições são bem-vindas. Para doações acesse nosso Link de pagamento para Doação

 

Imagens do Protótipo

  1. Presence Pulse Protótipo Final v1.0.1:

    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
  2. Presence Pulse mostrando o OLED Display envio ao Firebase:

    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
  3. Presence Pulse Conector para alimentação de 12V – 1.5ma:

    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
  4. Presence Pulse mensagens SMS recebidas enviadas por GSM com SIM800L + Chip da TIM

    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
  5. Presence Pulse Realtime database no-sql Firebase estrutura json enviado pela ESP32 para armazenar as informações:

    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
  6. Presence Pulse Protótipo aberto visto ligado e funcionando todos os modulos

    Sistema IoT com ESP32 e GSM para notificação com sensor de distância
    Sistema IoT com ESP32 e GSM para notificação com sensor de distância

Presence Pulse video demostrativo