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
#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 NoneStvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šesterobojni način rada, pa konstruktor ne prima argument načina rada.
ReturnsKonstruktor; nema povratne vrijednosti.
BME680()returns NoneSoldered biblioteka BME680: stvara objekt senzora. Pozvan bez argumenata koristi I2C, što je upravo Qwiic veza.
ReturnsKonstruktor; nema povratne vrijednosti.
bme680.begin()returns boolSoldered 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 floatSoldered biblioteka BME680: očitava temperaturu. Skica dodaje temperatureOffset (0,0) i ispisuje je iza čega slijedi *C.
ReturnsOčitana temperatura.
bme680.readHumidity()returns floatSoldered 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 floatSoldered 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 voidInicijalizira biblioteku, periferiju i međuspremnik slike. Pozovite je jednom u setup().
ReturnsNišta.
inkplate.clearDisplay()returns voidIspunjava međuspremnik slike bijelom bojom. Ne mijenja zaslon.
ReturnsNišta.
inkplate.setTextSize(uint8_t s)returns voidPostavlja povećanje teksta: 5 za temperaturu i vlažnost, 4 za tlak.
ReturnsNišta.
inkplate.setTextColor(uint16_t c)returns voidPostavlja boju teksta, ovdje INKPLATE_BLACK.
ReturnsNišta.
inkplate.setCursor(int16_t x, int16_t y)returns voidPostavlja mjesto na kojem počinje sljedeći ispisani tekst.
ReturnsNišta.
inkplate.print(value)returns size_tIspisuje tekst ili broj u međuspremnik slike, kao Serial.print().
ReturnsBroj ispisanih bajtova.
inkplate.println(text)returns size_tIspisuje 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 voidCrta 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 voidFunkcija jezgre Arduina: pokreće serijski port na 115200 baud. Skica ništa ne ispisuje na njemu.
ReturnsNišta.
delay(ms)returns voidFunkcija 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