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:
- Controle de Sensores via MQTT: Agora, é possível ativar e desativar sensores remotamente usando mensagens MQTT.
- Desconexão e Reconexão Automática: Os sensores reconectam automaticamente ao broker em caso de falha de conexão.
- Exemplo de Adição de Múltiplos Sensores: Um exemplo foi adicionado para demonstrar a inclusão de múltiplos sensores ao mesmo gerenciador.
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96945dedf1ec904bf2386a831430073330737db909bc34cf0eef2ba771650418
|
|
| MD5 |
e9ccdd60f84fdf08d17822dae13d1b28
|
|
| BLAKE2b-256 |
f2d6b0054ace4be27931faab9f4ce68da248a8018826b1dd8775e1f6c5ec86f5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a652571902c5b9dc111fa0727ca75e2dff72084f28574e2ad70fdac8cf513904
|
|
| MD5 |
e35c72de56a15282f3b595cd39225f78
|
|
| BLAKE2b-256 |
7bea10a4dc9869e3b4c9d877e7886ad81b12f380bd8597fc342eb76be65051ee
|