🛠 Connecter le Nicla au WiFi via une carte hôte
Objetivos
Dar acceso a la red al Nicla Sense ME a pesar de la ausencia total de radio WiFi integrada. Antes de cualquier cableado, ten en cuenta: la tarjeta no tiene ESP32-N4, ni ningún tipo de chip WiFi — el manual oficial es categórico, « The Nicla Sense ME does not have built-in Wi-Fi » — y la vía documentada por Arduino es una tarjeta host (MKR WiFi 1010 o Portenta C33) que actúa como pasarela, ya sea mediante BLE, mediante cable ESLOV, o mediante conectividad MKR-shield en I²C. Es la biblioteca Arduino_BHY2Host la que hace de puente: el Nicla sigue siendo el nodo de sensores autónomo, el host recupera los datos y dispone de su propia conectividad.
Material
- Tarjeta Arduino Nicla Sense ME (ABX00050) cargada con el sketch « App » de la biblioteca Arduino_BHY2 (modo periférico)
- Tarjeta host: MKR WiFi 1010 (core ≥ 2.5.2 para el modo shield) o Portenta C33
- Biblioteca Arduino_BHY2Host en el host; cable ESLOV o simple proximidad BLE para la conexión
- >
Código completo
// A televerser sur la CARTE HOTE (MKR WiFi 1010), pas sur le Nicla
#include "Arduino.h"
#include "Arduino_BHY2Host.h"
#include <WiFi101.h>
Sensor tempSensor(SENSOR_ID_TEMP);
const char* ssid = "MON_WIFI";
const char* pass = "MON_MOT_DE_PASSE";
void setup {
Serial.begin(115200);
while (!Serial);
// 2e argument : NICLA_VIA_BLE, NICLA_VIA_ESLOV ou NICLA_AS_SHIELD
BHY2Host.begin(false, NICLA_VIA_BLE);
tempSensor.begin;
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
Serial.println("Connexion WiFi en cours...");
delay(2000);
}
Serial.println("Passerelle connectee");
}
void loop {
static auto printTime = millis;
BHY2Host.update; // pompe les donnees recues du Nicla
if (millis - printTime >= 5000) {
printTime = millis;
Serial.println(String("Temperature (via Nicla) : ") + String(tempSensor.value, 2));
}
}
Verificación esperada
El Nicla cargado en modo « App » es detectado por el host; la consola del host muestra la temperatura del BME688 del Nicla cada 5 segundos, y el WiFi está establecido (dirección IP visible con WiFi.localIP). Una vez validada esta pasarela, cualquier biblioteca de red en el host (HTTP, MQTT, Arduino Cloud) puede explotar los datos del Nicla — ver el tutorial avanzado de MQTT.
Errores frecuentes
- Olvidar cargar el sketch « App » en el Nicla antes de lanzar BHY2Host: el host no ve entonces ningún periférico.
- Confundir las constantes de transporte:
NICLA_VIA_BLE,NICLA_VIA_ESLOVyNICLA_AS_SHIELDcorresponden a tres conexiones diferentes; la elección incorrecta produce un timeout silencioso. - Enganche ESLOV: si no se produce ninguna actividad ESLOV en el primer minuto, el LDO se apaga y el ESLOV muere (diseño de bajo consumo); evitarlo con
BHY2.setLDOTimeout(milisegundos)en el lado del Nicla. - Suspensiones intermitentes del host sobre I²C (bug conocido del control del pin reset del stack BHY2Host): preferir BLE para empezar, y luego probar ESLOV.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_rgb.inoArduinoimu_bhi260.inoArduinorotation_fusion.inoArduinopression_bmp390.inoArduinonose_electronique.inoArduinoboussole_bmm150.inoArduino