EUR | USD

Schnelle Bereitstellung von Umweltanalytik für das industrielle Internet der Dinge

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Die Fähigkeit zur Messung von Umweltparametern kann als Grundlage zur Integration ausgefeilter Funktionen für Wohlbefinden und Sicherheit in Fabrik- und Industrieanwendungen sowie in intelligente Gebäude, Geräte und persönliche Produkte dienen. Um diese Funktionen jedoch bereitstellen und gesetzliche Anforderungen einhalten zu können, müssen die Entwickler eine Möglichkeit zur effizienten Zusammenführung der Messergebnisse mehrerer Sensoren finden, mit der Platzbedarf, Stromverbrauch und Kosten bei maximaler Genauigkeit, Präzision und Zuverlässigkeit minimiert werden können.

Hierfür können die Entwickler jetzt auf ausgefeilte Algorithmen zur Sensorfusion zurückgreifen, mit denen Informationen zu Luftqualität, Temperatur, Feuchtigkeit und Gesamtkomfort generiert werden können.

Dieser Artikel zeigt, wie dies mit minimalem Aufwand unter Verwendung eines einzelnen Bausteins und Software von Bosch Sensortec erreicht werden kann. Dabei geht es speziell um den BME680 und die zugehörige Hardware und Software.

Bestimmungen treiben Entwicklung von Luftsensoren voran

Gesundheit und Komfort hängen auf eine Art und Weise eng mit Umgebungseinflüssen zusammen, die weit über die bloße Messung grundlegender Parameter hinausgeht. Die Wahrnehmung einer angenehmen Temperatur durch den Menschen hängt nicht nur von der Temperatur selbst, sondern auch vom Feuchtigkeitsgrad ab. Gesundheitsexperten fassen Temperatur und Feuchtigkeit zu einem „Hitzeindex“ zusammen, der bei hohen Werten vor erheblichen Gesundheitsrisiken warnt. Der Hitzeindex prognostiziert, dass Personen, die bei einer bestimmten Umgebungstemperatur arbeiten, bei einer Zunahme der Feuchtigkeit erheblichen Gesundheitsrisiken ausgesetzt sein können (Abbildung 1).

Kurve mit Messwerten von Temperatur und relativer Feuchtigkeit

Abbildung 1: Temperatur und relative Luftfeuchtigkeit haben in Kombination Auswirkungen auf den Menschen. Von daher ist es hilfreicher, beide Werte gleichzeitig zu messen. (Bildquelle: Nationaler Wetterdienst der Vereinigten Staaten von Amerika)

Experten für Humanfaktoren gehen noch weiter und definieren einen subjektiven „Komfortbereich“, der auf einem neuen Parameter basiert, der „effektiven Temperatur“. Dieser Parameter kombiniert Temperatur und Feuchtigkeit in einem Index. Temperatur- oder Feuchtigkeitsänderungen können schnell zu einer Umgebung führen, die sich für eine typische Person nicht mehr angenehm anfühlt (Abbildung 2).

Diagramm des von Schwankungen bei Temperatur und relativer Feuchtigkeit eng begrenzten Komfortbereichs

Abbildung 2: Der Mensch nimmt einen Komfortbereich wahr, der eng begrenzt wird von Schwankungen bei Temperatur und relativer Feuchtigkeit, die im Extremfall zu erheblichen Gesundheitsrisiken führen können, etwa zu einem Hitzschlag. (Bildquelle: US-Bundesbehörde für Luftfahrt)

Wie beim Hitzeindex können dramatische Änderungen von Temperatur, Feuchtigkeit oder beidem außerhalb des Komfortbereichs schnell zu einer Situation führen, die mehr als nur unangenehm ist. Über einem temperaturabhängigen Feuchtigkeitsgrad besteht sogar die Gefahr eines Hitzschlags. Das Konzept eines Komfortbereichs in Arbeitsumgebungen ist von solcher Bedeutung, dass seine Betriebsparamater in Standard 55 der American Society of Heating, Refrigeration and Air Conditioning Engineers (ASHRAE) angegeben sind, der vom American National Standards Institute (ANSI) anerkannt wurde.

Während weit außerhalb des Komfortbereichs liegende Werte Auswirkungen auf die Gesundheit haben können, können bereits relativ moderate Änderungen der effektiven Temperatur die menschliche Leistungsfähigkeit beeinträchtigen. Im Rahmen experimenteller Studien zu diesem Thema konnten Forscher außerhalb eines relativ kleinen Bereichs der effektiven Temperatur eine konstante Verschlechterung der Arbeitsleistung feststellen (Abbildung 3).

Diagramm von Leistungsabfällen bei einer effektiven Temperatur außerhalb eines relativ kleinen Bereichs

Abbildung 3: Forscher haben festgestellt, dass die Leistung bei einer effektiven Temperatur außerhalb eines relativ kleinen Bereichs konstant abfällt. (Bildquelle: Lawrence Berkeley National Laboratory)

Es sind jedoch keineswegs nur Temperatur und Feuchtigkeit, die sich auf Gesundheit und Wohlbefinden auswirken. Aus verschiedenen natürlichen und künstlichen Quellen stammende flüchtige organische Verbindungen stellen eine besonders tückische Gefahr für die Luftqualität dar. Aufgrund der Bedeutung der Luftqualität für die Gesundheit fassen Organisationen wie die Umweltschutzbehörde der USA die verschiedenen Parameter zur Definition der Luftqualität in einem einzigen Index zusammen (Abbildung 4). Der Luftqualitätsindex, der üblicherweise als Gesundheitsindikator für Städte und größere geografische Regionen angegeben wird, findet direkte Anwendung in Mikroklimata, Gebäuden sowie anderen Bereichen mit hohem Personenaufkommen. Hoch entwickelte Heiz-, Belüftungs- und Klimasysteme in großen Gebäuden sind im Rahmen der Steuerung des Luftstroms in irgendeiner Form auf die Messung der Luftqualität angewiesen.

Bild zum Standard-Luftqualitätsindex von Umweltschutz- und Gesundheitsorganisationen

Abbildung 4: Umweltschutz- und Gesundheitsorganisationen verwenden einen Standard-Luftqualitätsindex, um die lokale Bevölkerung auf Luftbedingungen hinzuweisen, die eine Reihe von Gesundheitsrisiken darstellen können. (Bildquelle: Umweltschutzbehörde der USA)

Für Ingenieure bringen die komplexen Zusammenhänge zwischen grundlegenden Faktoren wie Temperatur, Feuchtigkeit und flüchtigen organischen Verbindungen erhebliche Herausforderungen beim Design von Sensorsystemen zum Erhalt von Gesundheit und Wohlbefinden mit sich. Auf der grundlegendsten Ebene müssen die Designer jeden einzelnen dieser Faktoren exakt messen.

In der Vergangenheit konnten die Entwickler diese Sensorikprobleme durch das Kombinieren von Wandlern mit maßgeschneiderten Signalketten zur Verarbeitung der Rohspannung und des Ausgangsstroms lösen. Mit dem Einzug intelligenter Sensoren konnte die Entwicklung von Erfassungssystemen erheblich vereinfacht werden. Durch die Integration von Wandler, Sensorsignalkette, Analog-Digital-Wandler (ADC) und Steuerungslogik können intelligente Sensoren eine Host-MCU mit exakten temperaturkompensierten digitalen Sensordaten versorgen. Die Entwickler müssen diese Bausteine lediglich über SPI- oder I2C-Schnittstellen mit den MCUs verbinden, die vom integrierten Sensor allgemein unterstützt werden.

Dennoch stellen selbst mehrere einzelne intelligente Sensoren keine effektive Lösung für abgeleitete Analysewerte wie den Komfortbereich und den Luftqualitätsindex dar. Außerdem führt die Verwendung mehrerer Sensoren zu komplexeren Designs, längeren Stücklisten und größerem Platzbedarf Dieser Umstand erschwert es den Entwicklern, dem Wunsch der Kunden nach kleineren und effizienteren Designs nachzukommen.

Möglicherweise noch schlimmer ist, dass bei Designs mit mehreren Sensoren erhebliche Probleme bei den Funktionalitätsanforderungen auftreten. Das gilt auch für Designs mit intelligenten Sensoren. Selbst für das Ableiten eines so grundlegenden Messwerts wie der effektiven Temperatur müssen die Entwickler die zugrunde liegenden Sensormessungen zur Verwendung in den Sensorfusionsalgorithmen synchronisieren. Mit dem Bosch Sensortec BME680 entfallen diese Designbeschränkungen. Dank diesem Sensor können die Entwickler den Ansprüchen bei Anwendungen für Gesundheit und Wohlbefinden mit einem einzigen Baustein und der zugehörigen Sensorfusionsbibliothek rasch nachkommen.

Integrierte intelligente Sensoren

Der BME680 ist ein integrierter Umgebungssensor. Er vereint Temperatur-, Feuchtigkeits-, Druck- und Gassensoren in einem 8-poligen LGA-Gehäuse und misst lediglich 3 x 3 x 1 mm. Insbesondere der Gassensor des Bausteins unterstützt Messungen der Luftqualität basierend auf der Messung einer Vielzahl an Gasen.

Der Sensor erreicht eine hohe Linearität und Genauigkeit. Sein Stromverbrauch bewegt sich dabei im normalen Betrieb lediglich im Mikroampere-Bereich (µA) und beträgt im Ruhemodus nur 0,16 µA. Bei typischen Betriebsbedingungen verbraucht der BME680 bei Temperaturmessungen lediglich 1,0 μA. Bei kombinierten Messungen von Luftfeuchtigkeit, Druck und Temperatur verbraucht der Baustein nur 3,7 μA. Bei Gasmessungen bewegt sich der Stromverbrauch aufgrund der Beschaffenheit des Sensorsubsystems im Bereich zwischen 0,09 Milliampere (mA) und 12 mA, abhängig vom Betriebsmodus.

Der höhere Stromverbrauch bei Gasmessungen ist einem zweistufigen Prozess geschuldet. Beim eigentlichen Gassensor handelt es sich um einen Baustein auf Metalloxidbasis, dessen Widerstand sich bei Kontakt mit einer Vielzahl von flüchtigen organischen Verbindungen oder anderen Verunreinigungen in der Umgebungsluft ändert. Bevor der Sensor jedoch einsatzbereit ist, erhöht eine Heizung im Subsystem des Gassensors die Temperatur auf einen Wert, der für exakte Messungen erforderlich ist. Innerhalb des Subsystems des Gassensors regelt ein Heizungsregelblock über einen Regelkreis den Ausgang eines integrierten Digital-Analog-Wandlers (DAC). Im Gegenzug wird der DAC-Ausgang verwendet, um die in ein resistives Heizelement eingespeiste Strommenge anzupassen, um die Temperatur zu erhöhen.

Der BME680 bietet den Entwicklern verschiedene Methoden zur Regelung des Stromverbrauchs im Zusammenhang mit Gasmessungen. Die Entwickler können drei verschiedene Betriebsmodi verwenden, um die Aktualisierungsrate zugunsten des Stromverbrauchs zu verringern. Für Anwendungen, die maximale Aktualisierungsraten erfordern, kann der Gassensor in einem kontinuierlichen Modus betrieben werden, in dem bei einem Stromverbrauch von 12 mA pro Sekunde eine Aktualisierung erfolgt.

Bei Anwendungen mit geringeren Aktualisierungsraten können die Entwickler zwischen zwei verschiedenen Modi wählen. Im Niedrigleistungsmodus aktualisiert der Gassensor die Werte alle 3 Sekunden und verbraucht dabei 0,9 mA. Bei Anwendungen, bei denen der Stromverbrauch weit wichtiger ist als die Aktualisierungsrate, können die Entwickler den Gassensor im Ultra-Low-Power-Modus betreiben, in dem der Sensor zwar lediglich 0,09 mA verbraucht, aber nur alle 300 Sekunden eine Aktualisierung durchführt.

Neben den Unterschieden bei Aktualisierungsrate und Stromverbrauch weisen diese zwei Modi erhebliche Unterschiede bei der Reaktionszeit des Gassensors auf. Im Niedrigleistungsmodus beträgt die typische Reaktionszeit des Subsystems des Gassensors 1,4 s. Im Ultra-Low-Power-Modus ist die Reaktionszeit mit typischen 92 s erheblich länger.

Eine weitere Möglichkeit für die Entwickler zur Regelung des Stromverbrauchs ist die Regelung des Heizvorgangs. Für das Erreichen der gewünschten Temperatur vor der Gassensormessung benötigt der Baustein typischerweise etwa 30 ms. Indem Sie für die Heizdauer einen Bereich zwischen 1 ms und 4.032 ms programmieren, können die Entwickler die Heizdauer regeln und somit den Stromverbrauch beeinflussen.

Erfassungssequenz

Um einen unnötig hohen Stromverbrauch zu vermeiden, startet der BME680 im Ruhemodus und wartet dann auf einen Messbefehl. In den meisten Fällen betreiben die Entwickler den Baustein im erzwungenen Modus. Das hat zur Folge, dass der Baustein jeden seiner Sensoren automatisch sequenziell abfragt (Abbildung 5).

Bild des Bosch Sensortec BME680 bei Betrieb im erzwungenen Modus

Abbildung 5: Im erzwungenen Modus fragt der Bosch Sensortec BME680 seine Temperatur-, Druck- und Feuchtigkeitssensoren der Reihe nach ab, bevor er den Gassensor vor dem Abfragen aufheizt. (Bildquelle: Bosch Sensortec)

Im erzwungenen Modus führt der Baustein zuerst die Messungen mit den Temperatur-, Druck- und Feuchtigkeitssensoren durch, bevor er den Gassensor aufheizt und mit ihm eine Messung durchführt. Während der Aufheizphase erreicht das Heizelement üblicherweise Zieltemperaturen zwischen 200 °C und 400 °C. Diese Temperatur wird dann für die programmierte Heizdauer beibehalten. Da die Aufheizphase erst nach Durchführung der Messungen mit den anderen Sensoren stattfindet, vermeidet der Baustein direkte Auswirkungen des Heizelements auf diese Sensormessungen. Wenn die Aufheizphase abgeschlossen ist, generiert der ADC des Bausteins den Widerstandswert des Gassensors.

Die Signalkette des BME680 bietet den Entwicklern Methoden zur Optimierung bestimmter Messungen. Um RMS-Rauschen bei den Messungen zu verringern, können die Entwickler den Baustein so programmieren, dass für die Temperatur-, Feuchtigkeits- und Drucksensoren ein Oversampling durchgeführt wird. Außerdem kann ein integrierter Filter mit unendlicher Impulsantwort (IIR-Filter) aktiviert werden, um die Auswirkungen transienter Ereignisse auf Temperatur- und Drucksensormessungen zu verringern. Obwohl der interne IIR-Filter die Bandbreite dieser Messungen verringert, erhöht er ihre Auflösung von 16 Bit auf 20 Bit. Beachten Sie, dass diese Art der Filterung für Feuchtigkeits- und Gassensoren aufgrund ihrer Messmethodik nicht nötig ist.

Neben der Konfiguration des Messverfahrens für die Sensoren können die Designer Messungen mit einzelnen Temperatur-, Feuchtigkeits- und Drucksensoren separat aktivieren oder deaktivieren. Bosch Sensortec empfiehlt den Entwicklern jedoch, die Temperaturmessung immer zu aktivieren, da die zugehörigen Softwarepakete die Temperaturdaten zur Korrektur anderer Sensormessungen verwenden.

Obwohl durch Oversampling und Filterung das Rauschen reduziert und die Auflösung erhöht werden können, handelt es sich bei der Endausgabe des BME680 letztendlich um nicht kompensierte Sensorwerte, die vom internen ADC des Bausteins erzeugt werden. Um exakte Werte zu erhalten, müssen die Entwickler die im Baustein gespeicherten Kalibrierungsparameter anwenden. Glücklicherweise enthalten die Treiber des Bausteins eine Schnittstelle zur Anwendungsprogrammierung (API), die sich hierum kümmert.

Design und Entwicklung mit dem BME680

Zur Beschleunigung von Designs stellt Bosch Sensortec einen Treiber inklusive API zur Verfügung, der die Softwareentwicklung für Designs mit dem BME680 vereinfacht. Für grundlegende Operationen wie etwa einen Datenabgleich müssen die Entwickler lediglich für jeden Sensor separate API-Funktionen aufrufen. So beinhalten die Aufrufparameter der Funktion calc_gas_resistance beispielsweise den ADC-Ausgang des Gassensors und eine BME60-Datenstruktur (Listing 1), die für den Zugriff auf im Baustein gespeicherte Kalibrierungsdaten verwendet wird.

struct bme680_dev {

       /*! Chip-ID */

       uint8_t chip_id;

       /*! Baustein-ID */

       uint8_t dev_idDK;

       /*! SPI/I2C-Schnittstelle */

       enum bme680_intf intf;

       /*! verwendete Speicherseite */

       uint8_t mem_page;

       /*! Umgebungstemperatur in Grad C*/

       int8_t amb_temp;

       /*! Sensorkalibrierungsdaten */

       struct bme680_calib_data calib;

       /*! Sensoreinstellungen */

       struct bme680_tph_sett tph_sett;

       /*! Gas Sensoreinstellungen */

       struct bme680_gas_sett gas_sett;

       /*! Sensormodi */

       uint8_t power_mode;

       /*! Neue Sensorfelder */

       uint8_t new_fields;

       /*! Informationshinweise speichern */

       uint8_t info_msg;

       /*! Burst-Lesestruktur */

       bme680_com_fptr_t read;

       /*! Burst-Schreibstruktur */

       bme680_com_fptr_t write;

       /*! Verzögerung in ms */

       bme680_delay_fptr_t delay_ms;

       /*! Ergebnis Kommunikationsfunktion */

       int8_t com_rslt;

};

Listing 1: Der Open-Source-Treiber des BME680 von Bosch Sensortec bietet die grundlegende Software-Unterstützung zur Interaktion mit dem BME680 und veranschaulicht wichtige Software-Strukturen, die wichtige Konfigurationsparameter enthalten. (Codequelle: Bosch Sensortec)

Basierend auf den im Baustein gespeicherten Parametern gibt die Funktion die korrigierten Ergebnisse der Gassensormessung zurück (Listing 2).

static uint32_t calc_gas_resistance(uint16_t gas_res_adc, uint8_t gas_range, const struct bme680_dev *dev)

{

       int64_t var1;

       uint64_t var2;

       int64_t var3;

       uint32_t calc_gas_res;

 

       var1 = (int64_t) ((1340 + (5 * (int64_t) dev->calib.range_sw_err)) *

              ((int64_t) lookupTable1[gas_range])) >> 16;

       var2 = (((int64_t) ((int64_t) gas_res_adc << 15) - (int64_t) (16777216)) + var1);

       var3 = (((int64_t) lookupTable2[gas_range] * (int64_t) var1) >> 9);

       calc_gas_res = (uint32_t) ((var3 + ((int64_t) var2 >> 1)) / (int64_t) var2);

 

       return calc_gas_res;

}

Listing 2: Der Treiber des BME680 bietet sensorspezifische Routinen wie etwa diese Funktion, die mithilfe von im Baustein gespeicherten Sensorkalibrierungsdaten Rohdaten vom Gassensor in kalibrierte Ergebnisse umwandelt. (Codequelle: Bosch Sensortec)

Nützlichere Größen wie effektive Temperatur, Komfortgrad und Luftqualität werden jedoch wie bereits erwähnt mit Hilfe von Algorithmen aus den Rohdaten der Temperatur-, Feuchtigkeits- und Gassensoren abgeleitet. So ist beispielsweise die Luftqualität nicht nur von den Messwerten des Gassensors zu den flüchtigen organischen Verbindungen abhängig, sondern auch von der effektiven Temperatur, die wiederum von den Temperatur- und Feuchtigkeitswerten abhängt, die von diesen Sensoren gemessen werden. Zu diesen komplexen Algorithmen hinzu kommt außerdem die natürliche Sensordrift, die eine regelmäßige Kalibrierung erforderlich macht, um weiterhin exakte Messwerte zu erhalten. Das Softwarepaket Bosch Software Environmental Cluster (BSEC) nimmt sich dieser Probleme an und ermöglicht den Entwicklern das einfache Generieren der komplexen Informationen, die für Anwendungen für Gesundheit und Wohlbefinden erforderlich sind.

Bei dem auf einem Open-Source-Treibersatz für den BME680 aufbauenden BSEC handelt es sich um ein binäres Closed-Source-Paket, das die zur Sensorfusion benötigten Algorithmen implementiert. Beispielsweise generieren die BSEC-Algorithmen unter Verwendung der Messwerte des BME680-Sensors eine Metrik für die Luftqualität in Innenräumen, die den in Abbildung 4 gezeigten Standard-Luftqualitätsindex widerspiegelt.

Bosch Sensortec stellt das BSEC als binäre Distribution für bedeutende Befehlssatzarchitekturen wie ARM® Cortex®-M, Espressif Systems ESP8266 und Renesas RL78-MCUs zur Verfügung. Die BESC-Distribution beinhaltet außerdem C-Header-Dateien für die BESC-API sowie Softwarebeispiele, die die Verwendung der BSEC-API zur Sensorfusion verdeutlichen. Eine Hauptroutine zur Datenabfrage (Listing 3) etwa demonstriert ein vollständiges Sensorprogramm mit nur zwei Funktionen zur Initialisierung des Bausteins und zur regelmäßigen Abfrage der BME680-Sensoren.

int main()

{

    /* Aufrufen der Funktion zur Initialisierung der BSEC-Bibliothek

     * Aktivieren des Niedrigleistungsmodus und keine Angabe einer Offset-Temperatur */

    bsec_iot_init(BSEC_SAMPLE_RATE_LP, 0.0f, bus_write, bus_read, sleep);

   

    /* Aufrufen der Endlosschleifenfunktion, die Daten basierend auf Sensoreinstellungen liest und verarbeitet */

    bsec_iot_loop(sleep, get_timestamp_us, output_ready);

   

    return 0;

}

Listing 3: Die Softwaredistribution Bosch Software Environmental Cluster (BSEC) enthält Softwarebeispiele wie etwa diese Hauptroutine, die die Initialisierung des Bausteins und die Sensorabfrage veranschaulicht. (Codequelle: Bosch Sensortec)

Entwickler verwenden die Funktion bsec_iot_init zum Angeben der Abtastrate, einer Offset-Temperatur und der Dauer des Ruhemodus zwischen den Abfragen. Die zwei zusätzlichen Parameter bus_write und bus_read gestatten den Entwicklern das Wechseln zwischen verschiedenen Buszugriffsmethoden zum Lesen und Schreiben von BME680-Registern.

Im Rahmen der Systemkonfiguration können die Entwickler eigene Softwareroutinen für das Lesen und Schreiben von Busdaten angeben. Beispielsweise können sie die Treiber oder das BESC-Paket problemlos auf einer Arduino-Plattform ausführen, indem sie die Bibliothek „Wire“ von Arduino für den Bus-E/A verwenden (Listing 4). Sowohl Treiber als auch BESC nutzen eine Bausteinstruktur, die Zeiger auf diese kundenspezifischen E/A-Routinen enthält. Während der Programmausführung führt der Arbeitscode Busvorgänge aus, indem er die von diesen Zeigern in der Bausteinstruktur referenzierten Software-E/A-Routinen verwendet.

#include <Wire.h>

 

int8_t bus_write(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data_ptr, uint8_t data_len)

{

    Wire.beginTransmission(dev_addr);

    Wire.write(reg_addr);    /* Set register address to start writing to */

    /* Write the data */

    for (int index = 0; index < data_len; index++) {

        Wire.write(reg_data_ptr[index]);

}

    return (int8_t)Wire.endTransmission();

}

Listing 4: Mit dem Treiber für den BME680 von Bosch Sensortec und dem BESC-Paket können Entwickler auf ihre plattformspezifischen Softwareroutinen für den Bus-E/A wie beispielsweise diese Schreibroutine zurückgreifen, die die Bibliothek „Wire“ von Arduino für Vorgänge auf Arduino-kompatiblen Hardwareplattformen verwendet. (Codequelle: Bosch Sensortec)

Für die Entwicklungsplattform selbst können Benutzer die mit Arduino kompatiblen Evaluierungskarten sowie alle Karten von Bosch Sensortec verwenden. Die BME680-Shuttle-Karte verfügt über VDD-Analogversorgung und -Erde, VDDIO-Digitalversorgung und -Erde sowie eine serielle Schnittstelle (Chipwahl, serieller Dateneingang, serieller Datenausgang, serieller Takteingang). Entwickler können die Shuttle-Karte für ihre eigenen MCU-basierten Designs verwenden oder sie einfach mit der Anwendungskarte von Bosch Sensortec verbinden.

Für Arduino-Entwickler stellt das MikroElektronika MIKROE-2467 MikroBUS-Click-Board eine einfache Option zum Anschluss an kompatible Entwicklungskarten dar. Zusammen mit dem BME680 fügt das Click-Board eine USB-Schnittstelle sowie Versorgungsspannungsregler hinzu. Entwickler können nur das Click-Board verwenden oder es mit MikroBUS-kompatibler Hardware wie beispielsweise der MIKROE-2340-Entwicklungskarte von MikroElektronika verbinden (Abbildung 6).

Bild der MIKROE-2340-Entwicklungskarte von MikroElektronika

Abbildung 6: Entwickler können im Handumdrehen mit der Entwicklung BME680-basierter Anwendungen beginnen, indem sie das MikroElektronika MIKROE-2467 MikroBUS-Click-Board mit der MIKROE-2340-Entwicklungskarte von MikroElektronika verbinden, die auf der einen Seite über MikroBUS-Anschlüsse verfügt und auf der anderen über Arduino-Anschlüsse. (Bildquelle: MikroElektronika)

Die Karte umfasst eine Microchip Technology PIC32MZ2048EFH100-MCU mit 32 Bit, die einen leistungsstarken Prozessorkern der Klasse MIPS32 M, einen Gleitkommaprozessor, 2 MB Flash, 512 KB SRAM, eine Vielzahl analoger Peripheriegeräte sowie digitale Standardschnittstellen bietet. Zusätzlich zu den Standardanschlüssen verfügt die MIKROE-2340-Karte über Entwicklungs-Ports und LEDs zur einfachen Benachrichtigung des Benutzers.

Ein einzigartiges Merkmal der Karte ist das Vorhandensein sowohl von MikroBUS- als auch von Arduino-Anschlüssen auf den gegenüberliegenden Seiten dieser doppelseitigen Karte. Für die Softwareentwicklung unterstützt die Karte chipKIT, eine integrierte, mit Arduino kompatible Open-Source-Entwicklungsumgebung. Indem sie mit der vertrauten Arduino-Umgebung arbeiten, können die Designer das umfassende Arduino-Ökosystem nutzen, um Systeme zur Umgebungserfassung schnell zu implementieren.

Fazit

In Kombination mit dem Bosch Software Environmental Cluster und dem entsprechenden Treiber trägt der Bosch Sensortec BME680 zu einer erheblichen Verringerung von Komplexität, Kosten und Platzbedarf des Hardware- und Softwaredesigns zur Umwelterfassung bei.

Diese Kombination ermöglicht eine numerische Bewertung von Luftqualität, effektiver Temperatur und Komfort. Dadurch können die Entwickler anspruchsvollere Designs erstellen, die den Anforderungen in Bezug auf Gesundheit, Wohlbefinden und Sicherheit in industriellen, städtischen und häuslichen Anwendungen gerecht werden.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key