ble_stream.ino

Arduino Nicla Sense ME · Archivo : ble_stream.ino · Lenguaje : Arduino · Uso : Diffuser les capteurs en Bluetooth LE

Sin Wi-Fi en el Sense ME: el nRF52832 solo habla BLE. Este sketch emite la aceleración X por notify vía ArduinoBLE (funcional tras nicla::begin, confirmado en docs-db); nRF Connect traza la curva en el teléfono.

Hardware

Una Arduino Nicla Sense ME (nRF52832, solo BLE) con hub Bosch BHI260AP, BMM150, BMP390, BME688, LED RGB en driver I2C y cargador LiPo. La placa sola + un teléfono con nRF Connect (o una app Web Bluetooth). La antena es interna, alcance ~10 m.

Cableado

Sin cableado. Alimentación a LiPo para medida móvil; el conector ACH de 3 hilos acepta una célula de 3,7 V.

Funcionamiento

BHY2 alimenta los sensores, BLE.poll mueve la pila radio; writeValue en una característica notify envía notificaciones a los suscriptores. La codificación en centésimas de g cabe en un int16.

Ejecución

Programación desde Arduino IDE (core ArduinoCore-mbed); librerías Arduino_BHY2 y Nicla_System; USB por puente serie.

Variantes

Añadir los 9 ejes + presión + IAQ al servicio, agrupar muestras para la alcance, o conectar el teléfono como central para un registrador autónomo.

ble_stream.ino

// Le Sense ME n'a QUE du BLE (pas de Wi-Fi) : la télémétrie
// passe par une caractéristique notify, lue par le téléphone.
// Après nicla::begin, l'ArduinoBLE standard fonctionne (docs-db).

#include "Arduino_BHY2.h"
#include "Nicla_System.h"
#include <ArduinoBLE.h>

SensorAccel accel(0);
BLEService telemetry("F0F0");
BLEShortCharacteristic accX("F0F1", BLENotify);

void setup() {
  Serial.begin(115200);
  nicla::begin();
  BHY2.begin();
  accel.begin();
  BHY2.update();

  BLE.begin();
  BLE.setLocalName("SenseME");
  BLE.setAdvertisedService(telemetry);
  telemetry.addCharacteristic(accX);
  BLE.addService(telemetry);
  BLE.advertise();
}

void loop() {
  BHY2.update();
  BLE.poll();

  if (accel.checkNewData()) {
    // ax en g -> centièmes de g dans un int16
    accX.writeValue((int16_t)(accel.x() * 100));
  }
  delay(20);
}

← Volver a la ficha