Internet das Coisas no Azure
Conheça os serviços de IoT do Azure com exemplos práticos.
InSkillCoach
Internet das Coisas no Azure
Conheça os principais serviços de IoT do Azure com exemplos práticos.
Azure IoT Hub
O Azure IoT Hub é o serviço central para o gerenciamento de dispositivos IoT.
Configuração do IoT Hub
from azure.iot.hub import IoTHubRegistryManager
# Criar o gerenciador de registro
registry_manager = IoTHubRegistryManager("<connection_string>")
# Criar um dispositivo
device = registry_manager.create_device_with_sas(
device_id="mon-appareil",
primary_key="<primary_key>",
secondary_key="<secondary_key>",
status="enabled"
)
# Criar uma política de acesso
policy = registry_manager.create_shared_access_policy(
hub_name="mon-hub",
policy_name="mon-policy",
permissions=["RegistryWrite", "ServiceConnect", "DeviceConnect"]
)
Envio de mensagens
from azure.iot.device import IoTHubDeviceClient
# Criar o cliente
client = IoTHubDeviceClient.create_from_connection_string("<connection_string>")
# Enviar uma mensagem
message = {
"temperature": 25.6,
"humidity": 60,
"timestamp": "2024-03-22T10:00:00Z"
}
client.send_message(str(message))
Azure IoT Edge
O Azure IoT Edge permite o processamento local nos dispositivos IoT.
Configuração de um módulo Edge
from azure.iot.edge import EdgeModuleClient
# Criar o cliente Edge
client = EdgeModuleClient.create_from_environment()
# Definir o callback para as mensagens
async def message_handler(message):
print(f"Message reçu: {message.data}")
# Iniciar o cliente
client.on_message_received = message_handler
await client.connect()
Implantação de um módulo
from azure.iot.hub import IoTHubRegistryManager
# Criar a configuração do módulo
module_config = {
"id": "mon-module",
"image": "mon-image:latest",
"createOptions": {
"HostConfig": {
"PortBindings": {
"8080/tcp": [{"HostPort": "8080"}]
}
}
}
}
# Implantar o módulo
registry_manager.create_module(
device_id="mon-appareil",
module_id="mon-module",
managed_by="iotEdge",
properties=module_config
)
Azure IoT Central
O Azure IoT Central é uma plataforma IoT completa.
Criação de um aplicativo
from azure.iot.central import IoTCentralClient
# Criar o cliente
client = IoTCentralClient(
application_url="<application_url>",
api_token="<api_token>"
)
# Criar um modelo de dispositivo
device_template = {
"name": "Capteur Environnemental",
"capabilities": {
"telemetry": [
{
"name": "temperature",
"schema": "double"
},
{
"name": "humidity",
"schema": "double"
}
]
}
}
# Criar o template
template = client.create_device_template(device_template)
Registro de um dispositivo
# Criar um dispositivo
device = client.create_device(
device_id="mon-capteur",
template_id=template.id,
display_name="Capteur 1"
)
# Obter as informações de conexão
connection_info = client.get_device_connection_info(device.id)
Azure Digital Twins
O Azure Digital Twins permite criar modelos digitais.
Criação de um gêmeo digital
from azure.digitaltwins.core import DigitalTwinsClient
# Criar o cliente
client = DigitalTwinsClient(
endpoint="<endpoint>",
credential=AzureKeyCredential("<key>")
)
# Criar um modelo
model = {
"@id": "dtmi:com:example:Building;1",
"@type": "Interface",
"contents": [
{
"@type": "Property",
"name": "temperature",
"schema": "double"
}
]
}
# Criar o modelo
client.create_models([model])
# Criar um gêmeo
twin = {
"$metadata": {
"$model": "dtmi:com:example:Building;1"
},
"temperature": 22.5
}
# Criar o gêmeo
client.upsert_digital_twin("building-1", twin)
Azure Time Series Insights
O Azure Time Series Insights serve para a análise de dados temporais.
Configuração do ambiente
from azure.mgmt.timeseriesinsights import TimeSeriesInsightsClient
# Criar o cliente
client = TimeSeriesInsightsClient(
credential=AzureKeyCredential("<key>"),
subscription_id="<subscription_id>"
)
# Criar um ambiente
environment = {
"location": "westeurope",
"sku": {
"name": "S1_1",
"capacity": 1
},
"dataRetentionTime": "P30D"
}
# Criar o ambiente
client.environments.create_or_update(
resource_group_name="mon-groupe",
environment_name="mon-env",
parameters=environment
)
Boas Práticas
-
Segurança
- Usar certificados X.509
- Implementar a autenticação
- Proteger as comunicações
-
Desempenho
- Otimizar as mensagens
- Usar o processamento em lote
- Armazenar os dados em cache
-
Monitoramento
- Acompanhar as métricas
- Configurar alertas
- Analisar os logs
-
Escalabilidade
- Planejar o crescimento
- Usar partições
- Otimizar os recursos
Conclusão
Pontos-chave a lembrar:
- Serviços de IoT completos
- Processamento Edge possível
- Boa integração
- Escalabilidade
Recomendações:
- Começar pelo IoT Hub
- Usar o IoT Edge para o processamento local
- Implementar um monitoramento
- Seguir as boas práticas
- Fazer cursos no Microsoft Learn
Sobre InSkillCoach
Especialista em treinamento e tecnologias
Coach especializado em tecnologias avançadas e IA, apoiado pela GNeurone Inc.
Certificações:
- AWS Certified Solutions Architect – Professional
- Certificações Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão