Como empezar con Arduino Nano 33

Publicado por Loli Diéguez en

En esta guía de introducción a Arduino Nano BLE 33 Sense, aprenderás cómo instalar y configurar el entorno de desarrollo integrado (IDE) de Arduino para desarrollar aplicaciones que se ejecuten en la placa y aprender a programar el Nano para muestrear la temperatura y la humedad ambientales y que transmita las lecturas a un teléfono móvil utilizando el estándar BLE.

El Nano 33 Sense tiene a en la propia placa sensores de temperatura y humedad, presión atmosférica, luz y gestos y una IMU de 3 ejes, micrófono, BLE y conectividad Bluetooth.

 

El Arduino Nano 33 Sense funciona a 3.3V. La conexión de señales de voltaje más alto, como los 5V que se usan comúnmente con las otras placas Arduino, dañará esta placa asi que ten cuidado cuanto aplicas. 

Material necesario:

  • Nano Ble Sense con encabezados
  • Cable micro USB

Descarga Arduino iDE

  • Una vez descargado, instala el paquete. Abriéndolo y siguiendo las instrucciones.
  • Después de la instalación, se te presentará una ventana que contiene un "boceto" o "sketch" en blanco que es un programa Arduino.
Ventana con un boceto en blanco del programa Arduino

Configurar IDE

Antes de comenzar a programar, deberás configurar el IDE para que funcione con tu modelo específico de Arduino.

  • En el menú principal de Arduino IDE, vete a  Herramientas> Tableros > Administrador de tableros.
  • Introduce  nano 33 ble  en la ventana de búsqueda e instala las  placas Arduino nRF528x (Mbed OS)
  • El proceso de instalación tardará un poco, una vez finalizado, haz clic en  cerrar.
  • Conecta el Arduino a tu ordenador host usando el cable USB. El sistema debe cargar el controlador de dispositivo correcto. Acepta las advertencias de seguridad.
Croquis de conexión del Arduino al ordenador
El LED verde de encendido del Arduino se encenderá y el LED naranja parpadeará, lo que indica que la placa está encendida y ejecutando el boceto Blink predeterminado que viene preinstalado.
  • Vete a  Herramientas> Placa  y selecciona  Arduino 33 BLE  en el menú
Pantallazo de Herramientas, Placa Arduino 33 BLE
  • Desde  Herramientas> Puerto , selecciona  COM (Arduino NANO 33 BLE) , en una Mac aparecerá como  dev / cu.usbmodem14101 (Arduino Nano 33 BLE)
El número de puerto COM o del módem variará dependiendo de tu ordenador host.
Pantalla Herramienta Puerto COM (Arduino NANO 33 BLE)

Programa el Arduino

  • Vete a  Sketch> Incluir biblioteca> Administrar bibliotecas   e instala  ArduinoBLE
Pantalla para instalar ArduinoBLE
  • Vete a  Sketch> Incluir biblioteca> Administrar bibliotecas   e instale  Arduino_HTS221
Pantalla Instalacion Arduino HTS221
  • Copia el ejemplo de código a continuación en la ventana IDE

 

/*
Nano 33 BLE Sense Getting Started
A BLE peripheral broadcasting temperatature and humidity readings that can be viewed
on a mobile phone. On-board LED indicates a BLE connection.
Adapted from Arduino BatteryMonitor example by Peter Milne
*/

#include <ArduinoBLE.h>
#include <Arduino_HTS221.h>

const int UPDATE_FREQUENCY = 2000; // Update frequency in ms
const float CALIBRATION_FACTOR = -4.0; // Temperature calibration factor (celcius)

int previousTemperature = 0;
unsigned int previousHumidity = 0;
long previousMillis = 0; // last time readings were checked, in ms

BLEService environmentService("181A"); // Standard Environmental Sensing service

BLEIntCharacteristic tempCharacteristic("2A6E", // Standard 16-bit Temperature characteristic
BLERead | BLENotify); // Remote clients can read and get updates

BLEUnsignedIntCharacteristic humidCharacteristic("2A6F", // Unsigned 16-bit Humidity characteristic
BLERead | BLENotify);

void setup() {
Serial.begin(9600); // Initialize serial communication
while (!Serial);

if (!HTS.begin()) { // Initialize HTS22 sensor
Serial.println("Failed to initialize humidity temperature sensor!");
while (1);
}

pinMode(LED_BUILTIN, OUTPUT); // Initialize the built-in LED pin

if (!BLE.begin()) { // Initialize BLE
Serial.println("starting BLE failed!");
while (1);
}

BLE.setLocalName("Nano33BLESENSE"); // Set name for connection
BLE.setAdvertisedService(environmentService); // Advertise environment service
environmentService.addCharacteristic(tempCharacteristic); // Add temperature characteristic
environmentService.addCharacteristic(humidCharacteristic); // Add humidity chararacteristic
BLE.addService(environmentService); // Add environment service
tempCharacteristic.setValue(0); // Set initial temperature value
humidCharacteristic.setValue(0); // Set initial humidity value

BLE.advertise(); // Start advertising
Serial.print("Peripheral device MAC: ");
Serial.println(BLE.address());
Serial.println("Waiting for connections...");
}

void loop() {
BLEDevice central = BLE.central(); // Wait for a BLE central to connect

// If central is connected to peripheral
if (central) {
Serial.print("Connected to central MAC: ");
Serial.println(central.address()); // Central's BT address:
// Turn on the LED to indicate the connection:
digitalWrite(LED_BUILTIN, HIGH);

while (central.connected()) {
long currentMillis = millis();
// After UPDATE_FREQUENCY ms have passed, check temperature & humidity
if (currentMillis - previousMillis >= UPDATE_FREQUENCY) {
previousMillis = currentMillis;
updateReadings();
}
}

// When the central disconnects, turn off the LED
digitalWrite(LED_BUILTIN, LOW);
Serial.print("Disconnected from central MAC: ");
Serial.println(central.address());
}
}

int getTemperature(float calibration) {
// Get calibrated temperature as signed 16-bit int for BLE characteristic
return (int) (HTS.readTemperature() * 100) + (int) (calibration * 100);
}

unsigned int getHumidity() {
// Get humidity as unsigned 16-bit int for BLE characteristic
return (unsigned int) (HTS.readHumidity() * 100);
}

void updateReadings() {
// Read the HTS22 temperature and humidity
int temperature = getTemperature(CALIBRATION_FACTOR);
unsigned int humidity = getHumidity();

if (temperature != previousTemperature) { // If reading has changed
Serial.print("Temperature: ");
Serial.println(temperature);
tempCharacteristic.writeValue(temperature); // Update characteristic
previousTemperature = temperature; // Save value
}

if (humidity != previousHumidity) {
Serial.print("Humidity: ");
Serial.println(humidity);
humidCharacteristic.writeValue(humidity);
previousHumidity = humidity;
}
}

  • Carga el código en Arduino yendo a  Sketch> Cargar  o haciendo clic en la flecha que apunta hacia el lado derecho en la ventana IDE
  • El panel inferior del IDE mostrará la compilación del código, luego los LED TX y RX en el Arduino parpadearán durante unos segundos mientras se carga el código. Una vez hecho esto, se ejecutará automáticamente en Arduino.

La lectura de temperatura debe ajustarse para dar un valor más preciso debido a los efectos de calentamiento del microprocesador cercano.

 

Aplicación móvil BLE

  • En tu móvil, instala la aplicación  Nordic Semiconductors nRF Connect . Hay versiones de Android e IOS.
  • En el IDE de Arduino, abre  Serial Monitor  haciendo clic en el icono de la lupa en la parte superior derecha.
El Nano comenzará a enviar paquetes publicitarios BLE y esperará a que se conecte una Central (teléfono móvil).
  • En la  aplicación nRF  de tu dispositivo móvil, selecciona  Escanear  y deberías ver  Nano33BLESENSE  como un dispositivo al que puede conectarse.
Los periféricos BLE solo pueden conectarse a un dispositivo a la vez; si el Nano33BLE SENSE ya está conectado no podras enlazarlo con tu aplciacion.
Pantalla móvil con el escaneo a los dispositivos que te puedes conectar
  • Conéctate al  Nano33BLESENSE  y selecciona el  servicio Environmental Sensing  .
Pantalla móvil con los resultados de los sensores
  • Toca las múltiples  flechas hacia abajo  junto a las características de  Temperatura  y  Humedad  y la pantalla se actualizará cada vez que cambien los valores de temperatura o humedad, ya que están configurados para notificar. 

 

En resumen, ya has configurado el IDE de Arduino para usarlo con tu placa NANO 33 BLE SENSE, la placa tiene varios otros sensores que se pueden utilizar sobre BLE. Puede explorar muchos más ejemplos disponibles desde el IDE abriéndolos desde Archivo> Ejemplos. Estos pueden darte un punto de partida para modificar y adaptar el código a tus propios proyectos.

SI TE HA GUSTADO PUEDES LEER MAS AQUI


Compartir esta publicación



← Publicación más antigua Publicación más reciente →