Slik programmerer du makroer i Excel som sender kommandoer til smartenheter

Siste oppdatering: 07/08/2025
Forfatter: Isaac
  • 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

Excel-makroer for hjemmeautomasjon

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.

Konfigurasjon av Excel MQTT-miljø

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.

  iPhone-kontakter synkroniseres ikke med iCloud

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

Azure IoT med Excel og MQTT

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..

  Slik identifiserer og administrerer du kodekene som kreves for filer i Windows

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.