Bosch BME280 realtid plotting GUI (2 / 3 steg)
Steg 2: programvara
Programvaran är uppdelad i flera filer på Arduino sida, och de är alla i samma mapp så att du inte behöver importera alla bibliotek till Arduino IDE. Det finns också en mellanliggande I2C-modul som försöker erbjuda en mer standard och abstrakt I2C API än Arduino en.
Biblioteket är portade från äldre projekt, och det är fortfarande ganska C än C++. Det erbjuder bara funktioner, utan klasser, utan detta är bra så länge du inte gränssnitt två BME280 (med olika adresser) sensorer på samma MCU (och troligtvis kommer du inte). Fördelen med detta bibliotek, enligt min åsikt är att det är optimerad för högre hastighet och lägre resursförbrukning. En av förbättringarna är att I2C trafiken minimeras och detta bör göra en skillnad (i implementeringar utan DMA) som I2C är en av de långsammaste gränssnitt.
App bara initierar sensorn och sedan utför en sensor läsa varje 10ms och skickar data på det seriella gränssnittet i detta format: temperatur, utrymme, tryck, utrymme, fuktighet, ny rad.
På PC-sidan har vi en GUI i bearbetning v3 som öppnar en seriell port för att ta emot data från Arduino, och initierar en callback-funktion som delar upp dataströmmen för att utvinna de enskilda parametrarna och skjuter dem intro en buffert. I draw() slingan jag bara rita data och uppdatera det senaste mottagna värdet (de blå etiketterna). Appen fungerar, även om ibland misslyckas att starta på grund av obehandlad undantag i koden och så småningom andra skäl. Om problem uppstår, kan du starta GUI medan du håller återställningsknappen från Arduino och släppa den när GUI har startats. Förhoppningsvis kommer jag fixa detta i framtiden.
Du kan hitta koden för Arduino app och GUI här: https://github.com/cosminp12/BME280-plotting-GUI