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 PySensor-Mqtt

🛠️ 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.1.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.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pysensor_mqtt-0.3.1.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.1.tar.gz
Algorithm Hash digest
SHA256 fb6c4850f2d1beb38f597b9768cceca23c3f64142dcad2f91354f812ccca74c8
MD5 64a1ece7dcc9d01ca0c7e4a872dbdd85
BLAKE2b-256 d0b59cb57a8bcd1a6ccaf1bba094f79ae181f2ffb5944afd9095b478eeb850cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: PySensor_MQTT-0.3.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa09909e7bdd3204d20343f99f249aec858fd4e303b2c021fca3ce99cffb5d51
MD5 d7df26d4d92328cc5a48e28b46bba410
BLAKE2b-256 13137dcfd7a52023673a7877a52882977b0fa52ea02705506f7a85c41e5b5802

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