Stap 2: De plotten schets
Plotten met behulp van de pfodApp vereist twee dingen:-
a) een stroom van gegevens (in CSV-formaat) en
b) een opdracht van de plot van de pfodDevice (Arduino)
De schets, SimpleDataPlotting.ino, slechts doet twee dingen.
Eerst leest het de analoge ingang van A0 eenmaal een seconde en stuurt de huidige seconden en de graven in CSV-indeling
Tweede als de pfodApp verbindt en het hoofdmenu verzoekt, reageert de schets met het plotten commando om te beginnen met het uitzetten van de metingen.
Hier is de code die wordt uitgevoerd zodra een sec lezen de analoge ingang van A0 en schrijven van de huidige seconden, telt uit naar de bluetooth-verbinding.
Lees A0 eenmaal een sec
int val = analogRead(0); A0
de uitgang van de huidige tijd en de lezing in CSV-indeling
parser.Print(thisMillis/1000); eerste veld is tijd in seconden
parser.Print(","); door komma's gescheiden velden
parser.println(val); nieuwe regel eindigt gegevensrecord
Hier is de code die op het verzoek van de pfodApp om de pfodDevice (Arduino Uno) hoofdmenu reageert.
byte cmd = parser.parse();
Als (cmd! = 0) {/ / hebben ontleed een volledige msg {aan}
Als ('. ' == cmd) {/ / pfodApp heeft gevraagd voor hoofdmenu
terug te sturen "plotten scherm openen"
parser.Print (F ("{= analoog A0 Plot| Tijd (sec) | Telt} ")); Dit is het hoofdmenu
} else if ('! ' == cmd) {}
CloseConnection opdracht
closeConnection(parser.getPfodAppStream());
} else {}
onbekende opdracht
parser.Print(F("{}")); altijd terugsturen een msg pfod anders pfodApp kan worden verbroken.
}
}
Wanneer uw mobiele pfodApp verbindt automatisch vraagt om het hoofdmenu (door het signaal {.} ), de parser in de sketch (Zie de code aan de onderkant van de schets) ontleedt de {.} en geeft als resultaat de opdracht '.'. De schets stuurt terug een perceel opdracht
{= Analoge A0 Plot| Tijd (sec) | A0 graven}
Die opdracht wordt de pfodApp plot van de tijd tegen de graven te openen een scherm genaamd "Analoge A0 Plot". De pfodApp dan scant de onbewerkte gegevens komen in en zoekt naar lijnen met twee velden en neemt het eerste veld als de x-waarde en de tweede als de y-waarde en voegt dat punt aan de plot.
Wanneer een plotten scherm (of een ruwe data scherm) wordt geopend, begint de pfodApp alle van de ruwe gegevens opslaan op een lokaal bestand op uw mobiele telefoon. De pfodApp blijft de gegevens worden opgeslagen voordat u de pfodApp hebt afgesloten. U kunt dit bestand downloaden naar uw computer voor verdere verwerking (zie een van de latere stappen).
Er is een aantal andere opties om de plot commando waarmee u sommige velden negeren, plot schaal instellen, uitzetten van meerdere percelen op één grafiek enz. Zie de pfodSpecification voor details en voorbeelden.
De pfodApp kan doen veel meer dan gewoon uitzetten, dezevoorbeelden.
De plot hierboven is een voorbeeld van twee grafieken waarvan twee percelen daarop heeft. Dit perceel is vanaf ArduMower-Do het jezelf robot maaier! die de zelfde pfodApp gebruikt voor het beheren van een robot maaier. De zelfde pfodApp wordt gebruikt om te bepalen van alle pfodDevices. Het is de pfodDevices die volledig bepalen welke schermen worden weergegeven aan de gebruikers.