Sensores
Este exemplo apresenta a utilização com os sensores.
Vídeo explicativo
Exemplo
/*
Autor: João Vitor Alvares
Versão: 1.0
Objetivo: Sensores
*/
// To neopixel
#include <Adafruit_NeoPixel.h> // Biblioteca Adafruit_NeoPixel-master.zip na pasta ou versão: 1.9.0 por Adafruit
// To BMI270
#include "SparkFun_BMI270_Arduino_Library.h" // Biblioteca BMI270 versão: 1.0.1 por Sparkfun Electronics
// To AHT20
#include <AHTxx.h> // Biblioteca Adafruit_AHTX0 versão: 2.0.3 por Adafruit
// To I2C
#include <Wire.h> // Biblioteca nativa do ESP32
// Hardware mapping
#define pinToLED 2
// To RGB
#define NUMPIXELS 1
#define RED pixels1.Color(255, 0, 0) // Red
#define GREEN pixels1.Color(0, 255, 0) // Green
#define BLUE pixels1.Color(0, 0, 255) // Blue
#define WHITE pixels1.Color(255, 255, 255) // White
#define OFF_COLORS pixels1.Color(0, 0, 0) // OFF
#define MAXCOLORS 5
// To RGB
Adafruit_NeoPixel pixels1(NUMPIXELS, pinToLED, NEO_GRB + NEO_KHZ800);
// To BMI270
BMI270 imu;
// To AHT20
AHTxx aht20(AHTXX_ADDRESS_X38, AHT2x_SENSOR); // Sensor address, sensor type
// To push button
char flagToPushButton = 0x00;
// To RGB
uint32_t cores[MAXCOLORS] = {RED, GREEN, BLUE, WHITE, OFF_COLORS};
// To BMI270
uint8_t i2cAddress = BMI2_I2C_PRIM_ADDR; // 0x68
volatile bool interruptOccurred = false; // Flag to know when interrupts occur
int counter = 0;
// To AHT20
float ahtValue; // To store T/RH result
float ahtValueTemperature;
float ahtValueHumididty;
bool valueCritical = false;
void setup()
{
Serial.begin(115200);
pixels1.begin();
// To general config.
Wire.begin();
if(imu.beginI2C(i2cAddress) != BMI2_OK)
{
for(int i = 0; i < 3; i++)
{
pixels1.clear();
pixels1.setPixelColor(0,cores[0]);
pixels1.show();
delay(500);
pixels1.clear();
pixels1.setPixelColor(0,cores[4]);
pixels1.show();
delay(500);
} // end for
} // end if
// To aht20
if (aht20.begin() != true)
{
for(int i = 0; i < 3; i++)
{
pixels1.clear();
pixels1.setPixelColor(0,cores[0]);
pixels1.show();
delay(500);
pixels1.clear();
pixels1.setPixelColor(0,cores[4]);
pixels1.show();
delay(500);
} // end for
} // end while
} // end setup
void loop()
{
imu.getSensorData();
// Print acceleration data
Serial.print("Acceleration in g's");
Serial.print("\t");
Serial.print("X: ");
Serial.print(imu.data.accelX, 3);
Serial.print("\t");
Serial.print("Y: ");
Serial.print(imu.data.accelY, 3);
Serial.print("\t");
Serial.print("Z: ");
Serial.print(imu.data.accelZ, 3);
Serial.print("\t");
// Print rotation data
Serial.print("Rotation in deg/sec");
Serial.print("\t");
Serial.print("X: ");
Serial.print(imu.data.gyroX, 3);
Serial.print("\t");
Serial.print("Y: ");
Serial.print(imu.data.gyroY, 3);
Serial.print("\t");
Serial.print("Z: ");
Serial.println(imu.data.gyroZ, 3);
ahtValueHumididty = aht20.readHumidity();
if (ahtValueHumididty != AHTXX_ERROR) // AHTXX_ERROR = 255, library returns 255 if error occurs
{
Serial.print(ahtValueHumididty);
Serial.println(F(" +-2%"));
} // end if
else
{
Serial.print(ahtValueHumididty);
Serial.println(F(" +-2%"));
} // end else
ahtValueTemperature = aht20.readTemperature();
if (ahtValueTemperature != AHTXX_ERROR) // AHTXX_ERROR = 255, library returns 255 if error occurs
{
Serial.print(ahtValueTemperature);
Serial.println(F(" +-0.3C"));
} // end if
else
{
Serial.print(ahtValueTemperature);
Serial.println(F(" +-0.3C"));
} // end else
delay(1000);
} // end loop
Last updated