- Excel kan sende kommandoer HTTP eller MQTT ved bruk av makroer i VBA
- Med Azure IoT Hub og Mosquitto gjør det mulig å etablere direkte kommunikasjon med enheter
- Komplette flyter kan opprettes i Excel for å sende og motta sensordata.
- Miljøet krever konfigurasjon av biblioteker, SDK-er og skript for effektiv integrering

Har du noen gang lurt på om det er mulig å kontrollere enheter smart direkte fra ExcelTakket være Excel-makroer og protokoller som HTTP eller MQTT, kan dette regnearket bli en autentisk kontrollkonsoll for hjemmeautomatiseringDenne kombinasjonen er ideell for automatisering av små hjem eller bedrifter. uten behov for å utvikle ytterligere grensesnitt eller programvare.
Excel, utover beregninger og pivottabeller, kan fungere som et kontrollpunkt for å sende kommandoer til tilkoblede enheter. via Internett. Bruk av VBA-makroer (Visual Basic for Applications) og avhengig av MQTT-biblioteker eller HTTP-klienter, det er mulig å etablere kommunikasjon med IoT-enheter, enten det er for slå på lys, regulere temperaturen eller administrere sensorer.
Forutsetninger og grunnleggende miljøoppsett
Før vi begynner å skrive en funksjonell makro, er det viktig å ha arbeidsmiljøet klart. Avhengig av om du jobber på Windows o Linux, trinnene kan variere noe, selv om du i begge tilfeller trenger noen spesifikke verktøy.

Først må du sørge for at du har tilgang til Visual Studio og CMake installert hvis du bruker Windows.Det er viktig at C++-utviklingsalternativet er aktivt, siden du vil sette sammen noen eksemplerDet er også viktig å installere Mosquitto i x64-versjonen, da den vil være grunnlaget for MQTT-protokollen.
For Linux-brukere, kjør bare noen få kommandoer i terminal Slik installerer du Mosquitto-byggeverktøyene og klientbiblioteket:
sudo apt install cmake g++
sudo apt install libmosquitto-dev
I begge miljøene anbefales det å ha en aktiv Azure-konto hvis du skal integrere en IoT Hub som et mellomledd mellom Excel og enhetene dine.
Konfigurering av IoT Hub og enheter i Azure
Neste trinn er å forberede skyen din til å motta og sende meldinger til og fra enheter. Azure IoT Hub tilbyr en komplett og gratis infrastruktur i liten skala å utføre disse testene.
Ved hjelp av Azure-kommandolinjegrensesnittet kan du opprette en ressursgruppe og et knutepunkt med følgende kommandoer:
az group create --name mqtt-sample-rg --location eastus
az iot hub create --name my-hub --resource-group mqtt-sample-rg --sku F1
Når infrastrukturen er opprettet, må du registrere en virtuell enhet som skal fungere som mottaker eller sender av kommandoene..
az iot hub device-identity create --hub-name my-hub --device-id mqtt-dev-01
For at kommunikasjon skal autoriseres, må et SAS-token genereres:
az iot hub generate-sas-token --device-id mqtt-dev-01 --hub-name my-hub --du 7200

Laster ned depotet og klargjør koden
Azure tilbyr et kodelager med bruksklare eksempler i C eller PythonDu kan klone den fra GitHub:
git clone https://github.com/Azure-Samples/IoTMQTTSample.git
Når den er klonet, finn filen mosquitto/src/config.h og legg til variablene med dataene dine der: hub-navn, enhetskode og SAS-tokenet ditt. Disse dataene er viktige for å autentisere forbindelsen.
#define IOTHUBNAME "my-hub"
#define DEVICEID "mqtt-dev-01"
#define SAS_TOKEN "SharedAccessSignature sr=my-hub.azure-devices.net..."
Kompiler eksemplene og test forbindelsen
Når du har alt klart, er det på tide å kompilere eksemplene og bekrefte kommunikasjonen. Kjør følgende fra prosjektkatalogen:
cd mosquitto
cmake -Bbuild
cmake --build build
Binærfiler vil bli generert i ./bygge på Linux eller på ./bygg/feilsøking på Windows. Derfra kan du begynne å kjøre de forskjellige eksemplene.
Sende meldinger fra enheten til skyen
Det binære mygg_telemetri lar deg sende meldinger til IoT Hub. Før det kan du åpne en hendelsesmonitor med:
az iot hub monitor-events --hub-name my-hub
Kjør deretter binærfilen:
./build/mosquitto_telemetry
Kodefunksjonene bruker MQTT-emner som «devices/mqtt-dev-01/messages/events/» for å sende data., som simulerer en reell situasjon med datainnsamling av en sensor.
Motta meldinger fra skyen til enheten
Du kan også gjøre det motsatte: sende instruksjoner fra skyen og lagre dem på enheten. Kjør:
./build/mosquitto_subscribe
Send deretter en melding fra CLI-en:
az iot device c2d-message send --hub-name my-hub --device-id mqtt-dev-01 --data "hello world"
Systemet lytter på DEVICEMESSAGE-emnet ("devices/mqtt-dev-01/messages/#") og viser den mottatte meldingen..
Enhets-tvillingoppdatering
En «enhetstvilling» fungerer som enhetens digitale identitet. Du kan bruke den til å rapportere statuser eller motta konfigurasjoner. Eksemplet mygg_enhet_tvilling lar deg angi egenskaper som «temperatur»:
{"temperature": 32}
Etter at du har lagt dem ut, kan du også hente dem fra skyen med en annen melding.Det er nyttig for å opprettholde et synkronisert syn på den fysiske situasjonen.
Integrasjon med makroer i Excel
Så langt har vi sett hvordan enheter kommuniserer med Azure ved hjelp av MQTT. Men hvordan kobles dette til Excel? Nøkkelen er å bruke makroer med VBA som foretar HTTP-kall eller kjører eksterne skript. (som Python) som kommuniserer via MQTT.
Et enkelt eksempel på sending av data fra Excel ved hjelp av HTTP ville være dette:
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
Et annet alternativ er at Excel skal påkalle en script Python med paho-mqtt for å sende MQTT-meldinger i bakgrunnen, som er svært fleksibel og enkel å implementere.
Beste praksis, ressursopprydding og neste trinn
Når testingen er ferdig, anbefales det å stenge tjenestene for å unngå unødvendige kostnader. Du kan slette ressursgruppen din fullstendig med:
az group delete --name mqtt-sample-rg
Eller bare slett den registrerte enheten hvis du foretrekker det:
az iot hub device-identity delete --hub-name my-hub --device-id mqtt-dev-01
Du kan også slette huben og beholde gruppen:
az iot hub delete --name my-hub
Programmering av makroer i Excel for å sende kommandoer til smartenheter Det er en praktisk og innovativ strategi for å integrere hverdagsverktøy med IoTTakket være protokoller som MQTT og plattformer som Azure, kan et enkelt regneark gjøres om til et ekte dashbord for enhetene dine; og med gratis biblioteker som Mosquitto og verktøy som Visual Studio eller Python-skript, er mulighetene praktisk talt uendelige uten at det kreves avansert kunnskap om programmering.
Lidenskapelig forfatter om verden av bytes og teknologi generelt. Jeg elsker å dele kunnskapen min gjennom å skrive, og det er det jeg skal gjøre i denne bloggen, vise deg alle de mest interessante tingene om dingser, programvare, maskinvare, teknologiske trender og mer. Målet mitt er å hjelpe deg med å navigere i den digitale verden på en enkel og underholdende måte.