Skip to main content

Biblioteca para simulação de sensores e publicação via MQTT

Project description

🌐 PySensorMQTT - Simulação de Sensores com MQTT

Bem-vindo à PySensorMQTT! 🎉 Esta biblioteca Python foi projetada para facilitar a simulação e publicação de dados de sensores usando o protocolo MQTT. Ideal para projetos de IoT, automação e monitoramento em tempo real, a biblioteca oferece uma interface simples para a criação de diferentes tipos de sensores e a publicação de dados via um broker MQTT. 🚀

📦 Instalação

Você pode instalar a biblioteca diretamente do PyPi com o comando abaixo:

pip install PySensorMqtt

🛠️ Funcionalidades

  • 🌡️ Simulação de Sensores de Temperatura, Umidade do Ar, Umidade do Solo, Luminosidade, Movimento e Módulo Relé
  • 🔄 Publicação de dados em tempo real via MQTT
  • 🧑‍💻 Fácil integração com sistemas de monitoramento e automação
  • 📊 Suporte para diferentes tipos de sensores personalizáveis
  • 🛡️ Validação de integridade dos dados e robustez na conexão com o broker MQTT
  • 🚦 Controle de ativação e desativação dos sensores via tópicos MQTT
  • 🔄 Reconexão automática ao broker MQTT em caso de desconexão

🚀 Como Usar

Aqui está um exemplo de como configurar e iniciar a biblioteca:

1. Crie um Gerenciador de Sensores

from PySensorMQTT import SensorManager

manager = SensorManager()

2. Configure os Parâmetros do Sensor

Cada sensor precisa de um conjunto de parâmetros para funcionar corretamente. Exemplo de configuração de um sensor de temperatura:

params = {
    'sensor_name': 'sensor_1',
    'broker': 'localhost',  # Endereço do broker MQTT
    'port': 1883,           # Porta do broker MQTT
    'topic': 'sensor/temperature',  # Tópico MQTT para publicação
    'update_interval': 5,    # Intervalo de atualização em segundos
    'sensor_type': 'temperature',  # Tipo do sensor
    'device_id': 'TEMP001'   # Identificador único do dispositivo
}

3. Adicione o Sensor ao Gerenciador

Agora, basta adicionar o sensor ao gerenciador e começar a publicação:

manager.add_sensor(params)
manager.start()

✨ E pronto! Seus dados de sensor estão sendo simulados e publicados automaticamente no tópico MQTT especificado. 🚀

📚 Exemplos de Tipos de Sensores

Aqui estão os tipos de sensores que você pode adicionar à biblioteca:

  • 🌡️ Temperature Sensor ('temperature')
  • 💧 Humidity Air Sensor ('humidity_air')
  • 🌱 Humidity Soil Sensor ('humidity_soil')
  • 💡 Light Sensor ('light')
  • 🕵️ Motion Sensor ('motion')
  • 🔌 Módulo Relé ('modulo_rele')

Exemplo de Adição de Múltiplos Sensores

from PySensorMQTT import SensorManager

manager = SensorManager()

# Adiciona um sensor de temperatura
manager.add_sensor({
    'sensor_name': 'temp_sensor',
    'broker': 'broker.mqtt.cool',
    'port': 1883,
    'topic': 'sensor/temperature',
    'update_interval': 5,
    'sensor_type': 'temperature',
    'device_id': 'TEMP001'
})

# Adiciona um sensor de umidade do ar
manager.add_sensor({
    'sensor_name': 'humidity_sensor',
    'broker': 'broker.mqtt.cool',
    'port': 1883,
    'topic': 'sensor/humidity_air',
    'update_interval': 10,
    'sensor_type': 'humidity_air',
    'device_id': 'HUMID001'
})

manager.start()

Controle de Sensores via MQTT

Agora é possível ativar ou desativar sensores remotamente via mensagens MQTT. Para desativar um sensor, envie uma mensagem para o tópico action/{sensor_type} com o payload abaixo:

{
  "device_id": "TEMP001",
  "action": "deactivate"
}

Para reativar o sensor:

{
  "device_id": "TEMP001",
  "action": "activate"
}

🛡️ Segurança e Confiabilidade

  • Todos os dados gerados são validados para garantir sua integridade.
  • Conexão com o broker MQTT é automaticamente gerenciada, com retentativas em caso de falha.
  • Suporte para desconexão e reconexão automática dos sensores ao broker MQTT.

🧪 Testes

Para garantir que sua implementação funcione corretamente, utilize os testes pré-configurados na biblioteca:

pytest tests/

🤝 Contribuições

Contribuições são bem-vindas! Se você tiver sugestões de melhorias, novas funcionalidades ou encontrar algum bug, sinta-se à vontade para abrir uma issue ou enviar um pull request.

📄 Licença

Esta biblioteca é licenciada sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.

Melhorias Adicionadas:

  1. Controle de Sensores via MQTT: Agora, é possível ativar e desativar sensores remotamente usando mensagens MQTT.
  2. Desconexão e Reconexão Automática: Os sensores reconectam automaticamente ao broker em caso de falha de conexão.
  3. Exemplo de Adição de Múltiplos Sensores: Um exemplo foi adicionado para demonstrar a inclusão de múltiplos sensores ao mesmo gerenciador.
  4. Teste e Validação: Instruções para rodar testes automatizados usando o pytest.

Se precisar de mais alguma coisa, estarei por aqui!

Feita com 💙 por Raunick Vileforte - Raunickbhdesign@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysensor_mqtt-0.3.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PySensor_MQTT-0.3.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file pysensor_mqtt-0.3.0.tar.gz.

File metadata

  • Download URL: pysensor_mqtt-0.3.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pysensor_mqtt-0.3.0.tar.gz
Algorithm Hash digest
SHA256 96945dedf1ec904bf2386a831430073330737db909bc34cf0eef2ba771650418
MD5 e9ccdd60f84fdf08d17822dae13d1b28
BLAKE2b-256 f2d6b0054ace4be27931faab9f4ce68da248a8018826b1dd8775e1f6c5ec86f5

See more details on using hashes here.

File details

Details for the file PySensor_MQTT-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: PySensor_MQTT-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for PySensor_MQTT-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a652571902c5b9dc111fa0727ca75e2dff72084f28574e2ad70fdac8cf513904
MD5 e35c72de56a15282f3b595cd39225f78
BLAKE2b-256 7bea10a4dc9869e3b4c9d877e7886ad81b12f380bd8597fc342eb76be65051ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page