Miguel Montiel Vega
Published

Integrating RAK12027 for Electronics Laboratory

Smart IoT lab monitor: tracks air quality, particles, and seismic activity—real-time alerts via LoRaWAN to the cloud.

IntermediateWork in progress5 hours31
Integrating RAK12027 for Electronics Laboratory

Things used in this project

Hardware components

LOFI Robot rak12027
×1

Software apps and online services

Arduino IDE
Arduino IDE
The Things Stack
The Things Industries The Things Stack

Hand tools and fabrication machines

Multitool, Screwdriver
Multitool, Screwdriver

Story

Read more

Code

Environmental Monitoring System for Electronics Laboratory

C/C++
#include <Arduino.h>
#include <Wire.h>
#include <SparkFun_IIM42652.h>
#include <Adafruit_BME680.h>

// Objetos de sensores
Adafruit_BME680 bme;       // Sensor ambiental RAK1906 (BME680)
IIM42652 imu;              // Sensor IMU RAK12033 (IIM-42652)

// Variables para IMU
float ax, ay, az;

void setup() {
  Serial.begin(115200);
  delay(100);

  Wire.begin();

  // Inicializar BME680
  if (!bme.begin()) {
    Serial.println("No se detecta el sensor BME680");
    while (1);
  }

  // Configurar BME680
  bme.setTemperatureOversampling(BME680_OS_8X);
  bme.setHumidityOversampling(BME680_OS_2X);
  bme.setPressureOversampling(BME680_OS_4X);
  bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
  bme.setGasHeater(320, 150); // 320°C durante 150 ms

  // Inicializar IMU
  if (!imu.begin()) {
    Serial.println("No se detecta el sensor IMU IIM-42652");
    while (1);
  }

  imu.setAccelRange(IIM42652::RANGE_4G); // Rango de aceleración ±4G
}

void loop() {
  // === Lectura del sensor ambiental BME680 ===
  if (bme.performReading()) {
    Serial.print("Temperatura: ");
    Serial.print(bme.temperature);
    Serial.print(" °C | Humedad: ");
    Serial.print(bme.humidity);
    Serial.print(" % | Presión: ");
    Serial.print(bme.pressure / 100.0);
    Serial.print(" hPa | Calidad aire (Gas): ");
    Serial.print(bme.gas_resistance);
    Serial.println(" Ohms");
  } else {
    Serial.println("Error al leer el BME680");
  }

  // === Lectura del IMU IIM-42652 ===
  imu.getAccelerations(&ax, &ay, &az);
  float vibMag = sqrt(ax * ax + ay * ay + az * az);

  Serial.print("Aceleración: X=");
  Serial.print(ax);
  Serial.print(" Y=");
  Serial.print(ay);
  Serial.print(" Z=");
  Serial.print(az);
  Serial.print(" | Magnitud de vibración: ");
  Serial.println(vibMag);

  Serial.println("-----");
  delay(5000); // Esperar 5 segundos entre lecturas
}

Credits

Miguel Montiel Vega
11 projects • 8 followers
Teacher at Maude Studio & Erasmus+ project member: "Developing Solutions to Sustainability Using IoT" (2022-1-PT01-KA220-VET-000090202)

Comments