Stap 6: macro's
Het Excel-blad bevat twee macro's: het ene kunt u de
schrijfvlak om het proces te starten. Het ingeroepen door "Control + i" zoals gedefinieerd wanneer deze wordt gemaakt.
De tweede macro automatisch gestart het leesproces doorlopen met een lus. Het aantal punten om te lezen en het interval dat is opgegeven op hetzelfde blad, in de cellen "L1" en "L2" lezen. De maximale leessnelheid is ongeveer één monster per seconde, hoewel ik geen sluitend bewijs en blijkbaar kan bestaan uit 4 of 5 per seconde, maar het hangt af van het milieu.
Het maximum aantal punten om te lezen, wordt beperkt door de bijna 32.000 paren die kunnen worden opgenomen in een grafiek maar in nieuwere versies van Excel dit aantal kan groter. De grafiek is nuttig, wordt mogelijk toe te voegen andere zinvolle berekeningen als maximum en minimum en alles wat is geacht binnen de snelheid. Een dashboard-grafiek kan ook worden geïmplementeerd.
Start de Macro:
' Sneltoets: Ctrl + i
Sub start()
ActiveSheet.Range("D4:E32005"). ClearContents
End Sub
Lezing de Macro:
Sub temper()
' Macro opgenomen 20/06/2016 door c
' waarde van web esp8266 leest
' Sneltoets: Ctrl + t
Rij = 4' eerste gegevensrij Lees
Laatste = ActiveSheet.Range("L2"). Waarde + 3 ' aantal waarden om te lezen
Retardo = ActiveSheet.Range("L1"). Waarde ' approx vertraging tussen leest
L: Range("A1"). Selecteer ' gebied holdiing de query
On Error Resume Next
Selection.QueryTable.Refresh BackgroundQuery: = False
ActiveSheet.Range ("D" & CStr(Row)). Waarde = Worksheets(1). Range("D1"). Waarde
ActiveSheet.Range ("E" & CStr(Row)). Waarde = Worksheets(1). Range("E1"). Waarde
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + Retardo
waitTime = TimeSerial (newHour, newMinute, newSecond)
Application.Wait waitTime
Rij = rij + 1
Als (rij < definitieve) Then GoTo L:
End Sub
Deze macro wordt de "D1: E1" inhoud gekopieerd naar het gebied schrijven.
Het gebruik van verouderde structuur GOTO is huurschijf op het duidelijke feit dat "tijdens" loops communiceert slecht met de "query" werking en kan daardoor "hang" maar ik ben niet zeker. De ON ERROR-component is essentieel, omdat de verbinding tussen computers is niet gegarandeerd. In geval van verlies van connectiviteit, wordt de vorige waarde herhaald. Andere oplossingen zijn mogelijk. In het voorbeeld is gedefinieerd een trendlijn die glad 30 lezingen. Sensorgevoeligheid hier is ongeveer 1/3 graad als gevolg van de ADC-resolutie.