- O Excel pode enviar comandos HTTP ou MQTT usando macros em VBA
- Com o Azure Internet das coisas Hub e Mosquitto permitem estabelecer comunicação direta com dispositivos
- Fluxos completos podem ser criados no Excel para enviar e receber dados de sensores.
- O ambiente requer configuração de bibliotecas, SDKs e scripts para integração eficaz
Você já se perguntou se é possível controlar dispositivos inteligente diretamente do ExcelGraças ao macros do excel e protocolos como HTTP ou MQTT, esta planilha pode se tornar uma console de controle de automação residencial autênticoEsta combinação é ideal para pequenas automações residenciais ou comerciais. sem a necessidade de desenvolver interfaces ou softwares adicionais.
O Excel, além de cálculos e tabelas dinâmicas, pode atuar como um ponto de controle para enviar comandos aos dispositivos conectados. via Internet. Utilizando macros VBA (Visual Basic for Applications) e contando com bibliotecas MQTT ou clientes HTTP, é possível estabelecer comunicação com dispositivos IoT, seja para Ligue as luzes, regular a temperatura ou gerenciar sensores.
Pré-requisitos e configuração básica do ambiente
Antes de começarmos a escrever uma macro funcional, é importante ter o ambiente de trabalho pronto. Dependendo se você trabalha em Windows o Linux, os passos podem variar ligeiramente, embora em ambos os casos você precise de algumas ferramentas específicas.
Primeiro, certifique-se de ter acesso ao Visual Studio e ao CMake instalado se estiver no Windows. É essencial que a opção de desenvolvimento C++ esteja ativa, pois você compilará alguns exemplosTambém é importante instalar o Mosquitto em sua versão x64, pois ele será a base para o protocolo MQTT.
Para usuários do Linux, basta executar alguns comandos no terminal Para instalar as ferramentas de construção e a biblioteca cliente do Mosquitto:
sudo apt install cmake g++
sudo apt install libmosquitto-dev
Em ambos os ambientes, é recomendável ter uma conta ativa do Azure se você for integrar um IoT Hub como intermediário entre o Excel e seus dispositivos.
Configurando o IoT Hub e dispositivos no Azure
O próximo passo é preparar sua nuvem para receber e enviar mensagens de e para dispositivos. O Azure IoT Hub fornece uma infraestrutura completa e gratuita em pequena escala para realizar esses testes.
Usando a interface de linha de comando do Azure, você pode criar um grupo de recursos e um hub com os seguintes comandos:
az group create --name mqtt-sample-rg --location eastus
az iot hub create --name my-hub --resource-group mqtt-sample-rg --sku F1
Uma vez criada a infraestrutura, você deve registrar um dispositivo virtual que atuará como receptor ou transmissor dos comandos..
az iot hub device-identity create --hub-name my-hub --device-id mqtt-dev-01
Para que a comunicação seja autorizada, um token SAS deve ser gerado:
az iot hub generate-sas-token --device-id mqtt-dev-01 --hub-name my-hub --du 7200
Baixando o repositório e preparando o código
O Azure fornece um repositório de código com exemplos prontos para uso em C ou PythonVocê pode cloná-lo do GitHub:
git clone https://github.com/Azure-Samples/IoTMQTTSample.git
Uma vez clonado, encontre o arquivo mosquito/src/config.h e adicione as variáveis com seus dados: nome do hub, código do dispositivo e seu token SAS. Esses dados são essenciais para autenticar a conexão.
#define IOTHUBNAME "my-hub"
#define DEVICEID "mqtt-dev-01"
#define SAS_TOKEN "SharedAccessSignature sr=my-hub.azure-devices.net..."
Compile os exemplos e teste a conexão
Depois de preparar tudo, é hora de compilar os exemplos e verificar as comunicações. No diretório do projeto, execute:
cd mosquitto
cmake -Bbuild
cmake --build build
Os binários serão gerados em ./construir no Linux ou em ./construir/Depurar no Windows. A partir daí, você pode começar a executar os diferentes exemplos.
Enviando mensagens do dispositivo para a nuvem
O binário telemetria_mosquito permite enviar mensagens para o Hub IoT. Antes disso, você pode abrir um monitor de eventos com:
az iot hub monitor-events --hub-name my-hub
Em seguida, execute o binário:
./build/mosquitto_telemetry
As funções de código usam tópicos MQTT como "devices/mqtt-dev-01/messages/events/" para enviar dados, simulando uma situação real de coleta de dados por um sensor.
Recebendo mensagens da nuvem para o dispositivo
Você também pode fazer o oposto: enviar instruções da nuvem e capturá-las no dispositivo. Execute:
./build/mosquitto_subscribe
Então, a partir da CLI, envie uma mensagem:
az iot device c2d-message send --hub-name my-hub --device-id mqtt-dev-01 --data "hello world"
O sistema escuta no tópico DEVICEMESSAGE ("devices/mqtt-dev-01/messages/#") e exibe a mensagem recebida.
Atualização do dispositivo gêmeo
Um "dispositivo gêmeo" funciona como a identidade digital do seu dispositivo. Você pode usá-lo para relatar status ou receber configurações. O exemplo dispositivo_mosquito_gêmeo permite que você defina propriedades como “temperatura”:
{"temperature": 32}
Depois de publicá-las, você também pode recuperá-las da nuvem com outra mensagem.É útil para manter uma visão sincronizada da situação física.
Integração com macros no Excel
Até agora, vimos como os dispositivos se comunicam com o Azure usando MQTT. Mas como isso se conecta ao Excel? O segredo é usar macros com VBA que façam chamadas HTTP ou executem scripts externos. (como Python) que se comunicam via MQTT.
Um exemplo simples para enviar dados do Excel usando HTTP seria este:
Sub EnviarComando()
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", "https://miapi/mqtt", False
http.setRequestHeader "Content-Type", "application/json"
http.Send "{\"mensaje\":\"Encender luz\"}"
End Sub
Outra alternativa é o Excel invocar um escrita Python com paho-mqtt para enviar mensagens MQTT em segundo plano, que é muito flexível e fácil de implementar.
Melhores práticas, limpeza de recursos e próximas etapas
Ao final do teste, é recomendável encerrar os serviços para evitar cobranças desnecessárias. Você pode excluir completamente o seu grupo de recursos com:
az group delete --name mqtt-sample-rg
Ou simplesmente exclua o dispositivo registrado, se preferir:
az iot hub device-identity delete --hub-name my-hub --device-id mqtt-dev-01
Você também pode excluir o hub e manter o grupo:
az iot hub delete --name my-hub
Programar macros no Excel para enviar comandos para dispositivos inteligentes É uma estratégia prática e inovadora para integrar ferramentas do dia a dia com a IoTGraças a protocolos como MQTT e plataformas como Azure, uma planilha simples pode ser transformada em um painel real para seus dispositivos; e com bibliotecas gratuitas como Mosquitto e ferramentas como Visual Studio ou scripts Python, as possibilidades são praticamente infinitas sem exigir conhecimento avançado de programação.
Escritor apaixonado pelo mundo dos bytes e da tecnologia em geral. Adoro compartilhar meu conhecimento por meio da escrita, e é isso que farei neste blog, mostrar a vocês tudo o que há de mais interessante sobre gadgets, software, hardware, tendências tecnológicas e muito mais. Meu objetivo é ajudá-lo a navegar no mundo digital de uma forma simples e divertida.