Skip to main content

Qwiic BME680 sensor

Što ovaj primjer prikazuje​

Očitajte temperaturu, vlažnost zraka i tlak zraka s BME680 senzora preko Qwiic konektora te prikažite sve tri vrijednosti, svaku s ikonom, i Soldered logotip na zaslonu. Vrijednosti se osvježavaju jednom u minuti.

Potrebna vam je BME680 pločica s Qwiic konektorom i Qwiic kabel kojim je spajate na Inkplate. Komentari u skici navode da senzor odgovara na I2C adresi 0x76 i da je skica ne mora navoditi.

Ovaj primjer koristi i Soldered biblioteku BME680 (Soldered-BME280-BME680-Gas-Sensor-Arduino-Library), koja nije dio biblioteke Inkplate. Instalirajte je prije kompajliranja. Ikone i logotip su bitmap nizovi u datoteci icons.h, u istoj mapi primjera.

Kôd primjera​

Select Board
Inkplate7SPECTRA_Qwiic.ino
#include <BME680-SOLDERED.h> // Soldered library for BME680 Sensor
#include "Inkplate.h" // Include Inkplate library to the sketch
#include "icons.h"

Inkplate inkplate; // Create an object on Inkplate library
BME680 bme680; // Create an object on Soldered BME680 library (with no arguments sent to constructor, that means we are
// using I2C or Qwiic communication for BME680 sensor)

// Add temperature offset to calibrate the sensor
const float temperatureOffset = 0.0;

void setup()
{
Serial.begin(115200);
inkplate.begin(); // Init Inkplate library (you should call this function ONLY ONCE)
inkplate.clearDisplay(); // Clear frame buffer of display
inkplate.setTextSize(1); // Set text scaling to one (normal size)
inkplate.setTextColor(INKPLATE_BLACK);
inkplate.setCursor(0, 0);

// Init. BME680 library. Soldered BME680 sensor board uses 0x76 I2C address for the sensor but doesn't need to
// specify it
if (!bme680.begin())
{
inkplate.println("Sensor init failed!");
inkplate.println("Check sensor wiring/connection!");
inkplate.display();
while (1)
;
}
}

void loop()
{
// Clear frame buffer of the display
inkplate.clearDisplay();

// Set text size to print big numbers for temperature and humidity
inkplate.setTextSize(5);

// Display the temperature icon and measured value
inkplate.setCursor(200, 45);
inkplate.print(bme680.readTemperature() + temperatureOffset);
inkplate.print(" *C");
inkplate.drawBitmap(50, 5, temperature_icon, temperature_icon_w, temperature_icon_h, INKPLATE_RED); // Arguments are: start X, start Y, array variable name, size X, size Y, color


// Display humidity icon and measured value
inkplate.setCursor(200, 180);
inkplate.print(bme680.readHumidity() / 10);
inkplate.print(" %");
inkplate.drawBitmap(43, 140, humidity_icon, humidity_icon_w, humidity_icon_h, INKPLATE_GREEN); // Arguments are: start X, start Y, array variable name, size X, size Y, color


// Display the pressure icon and measured value
inkplate.setTextSize(4);
inkplate.setCursor(200, 315);
inkplate.print(bme680.readPressure() * 10);
inkplate.print(" hPa");
inkplate.drawBitmap(50, 270, pressure_icon, pressure_icon_w, pressure_icon_h, INKPLATE_BLUE); // Arguments are: start X, start Y, array variable name, size X, size Y, color

// Display Soldered logo
inkplate.drawBitmap(425, 401, logo, logo_w, logo_h, INKPLATE_YELLOW); // Arguments are: start X, start Y, array variable name, size X, size Y, color

// This line actually drawing on the Inkplate screen, previous lines just drawing into the frame buffer
inkplate.display();

// Wait a minute bit between readings due to slow refresh rate
delay(60000);

// If you want to save energy, instead of the delay function, you can use deep sleep as we used in DeepSleep
// examples
}

Korištene funkcije​

Inkplate()returns None

Stvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šesterobojni način rada, pa konstruktor ne prima argument načina rada.

ReturnsKonstruktor; nema povratne vrijednosti.

BME680()returns None

Soldered biblioteka BME680: stvara objekt senzora. Pozvan bez argumenata koristi I2C, što je upravo Qwiic veza.

ReturnsKonstruktor; nema povratne vrijednosti.

bme680.begin()returns bool

Soldered biblioteka BME680: pokreće senzor. Skica na zaslonu prikazuje Sensor init failed! i zaustavlja se kada vrati false.

Returnstrue ako je senzor pokrenut.

bme680.readTemperature()returns float

Soldered biblioteka BME680: očitava temperaturu. Skica dodaje temperatureOffset (0,0) i ispisuje je iza čega slijedi *C.

ReturnsOčitana temperatura.

bme680.readHumidity()returns float

Soldered biblioteka BME680: očitava vlažnost zraka. Skica je dijeli s 10 i ispisuje iza čega slijedi %.

ReturnsOčitana vlažnost zraka.

bme680.readPressure()returns float

Soldered biblioteka BME680: očitava tlak zraka. Skica ga množi s 10 i ispisuje iza čega slijedi hPa.

ReturnsOčitani tlak zraka.

inkplate.begin()returns void

Inicijalizira biblioteku, periferiju i međuspremnik slike. Pozovite je jednom u setup().

ReturnsNišta.

inkplate.clearDisplay()returns void

Ispunjava međuspremnik slike bijelom bojom. Ne mijenja zaslon.

ReturnsNišta.

inkplate.setTextSize(uint8_t s)returns void

Postavlja povećanje teksta: 5 za temperaturu i vlažnost, 4 za tlak.

ReturnsNišta.

inkplate.setTextColor(uint16_t c)returns void

Postavlja boju teksta, ovdje INKPLATE_BLACK.

ReturnsNišta.

inkplate.setCursor(int16_t x, int16_t y)returns void

Postavlja mjesto na kojem počinje sljedeći ispisani tekst.

ReturnsNišta.

inkplate.print(value)returns size_t

Ispisuje tekst ili broj u međuspremnik slike, kao Serial.print().

ReturnsBroj ispisanih bajtova.

inkplate.println(text)returns size_t

Ispisuje tekst u međuspremnik slike i prelazi u sljedeći redak. Skica ga koristi za dva retka s pogreškom.

ReturnsBroj ispisanih bajtova.

inkplate.drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color)returns void

Crta jednobojni bitmap s gornjim lijevim kutom u točki (x, y) u zadanoj boji. Skica crta ikonu temperature crveno, ikonu vlažnosti zeleno, ikonu tlaka plavo, a logotip žuto.

ReturnsNišta.

inkplate.display(bool _leaveOn = 0)returns void

Šalje cijeli međuspremnik slike na zaslon i osvježava ga.

ReturnsNišta.

Serial.begin(115200)returns void

Funkcija jezgre Arduina: pokreće serijski port na 115200 baud. Skica ništa ne ispisuje na njemu.

ReturnsNišta.

delay(ms)returns void

Funkcija jezgre Arduina: čeka zadani broj milisekundi, ovdje 60000.

ReturnsNišta.

Što očekivati​

Zaslon prikazuje temperaturu s oznakom *C pokraj crvene ikone, vlažnost zraka s oznakom % pokraj zelene ikone, tlak zraka s oznakom hPa pokraj plave ikone te žuti Soldered logotip dolje desno. Osvježava se jednom u minuti. Skica ništa ne ispisuje u Serial Monitor.

Ako senzor nije pronađen, na zaslonu se prikazuju poruke Sensor init failed! i Check sensor wiring/connection!, a skica se zaustavlja.

🔗Otvorite cijeli primjer

examples/Inkplate7SPECTRA/Advanced/Communications/Inkplate7SPECTRA_Qwiic

→