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": "off"
}

Para reativar o sensor:

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pysensor_mqtt-0.3.5.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.5.tar.gz
Algorithm Hash digest
SHA256 227df9bc0cdcd922905b8078185974343285d70eac4a99528ded1dad89eeefac
MD5 a942aaed1124a5012f33ed4236d1053b
BLAKE2b-256 984a9a2a912d8ee2236bbbae50c932fe5c5b06285fb05d6a33b4ab1b0355accf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: PySensor_MQTT-0.3.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e3ab349347a0975e8f49e31b2ffc429c281f559cbec5b92324f17694393f179f
MD5 fab4ddb40934507ec825a9e508f42685
BLAKE2b-256 7cd6f0328598682fb474764ec0b740f12293f978e499830dfc6e6a66bbb88cb0

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