🛠 Publier des données en MQTT/HTTP via le Wi-Fi du GIGA R1

Arduino GIGA R1 · intermediaire · Schéma : IMG-giga-r1-i3-1-mqtt-wifi.svg — Le module Wi-Fi Murata 1DX embarqué du GIGA R1 relié sans fil à un routeur, puis à un courtier MQTT et un serveur HTTP sur Internet.

Objetivos

Conectar el GIGA R1 a Internet mediante su módulo Wi-Fi + Bluetooth LE integrado (Murata LBEE5KL1DX-883, antena externa). Implementará una solicitud HTTP robusta aplicando la solución documentada para el bloqueo TCP (error #937: leer todo el cuerpo de la respuesta, de lo contrario una de cada cinco conexiones falla con el error -3005) y evitará el bloqueo relacionado con un objeto WiFiClient global (error #753).

Material

Código completo

// GIGA R1 WiFi — HTTP GET robuste (contournement du blocage TCP, bogue #937)
#include <Arduino.h>
#include <WiFi.h>
#include <ArduinoHttpClient.h>

const char* SSID = "votre-ssid";
const char* PASS = "votre-pass";

void connexionWifi {
  WiFi.begin(SSID, PASS);
  unsigned long debut = millis;
  while (WiFi.status != WL_CONNECTED && millis - debut < 20000) delay(200);
  if (WiFi.status == WL_CONNECTED) Serial.println(WiFi.localIP);
}

void setup {
  Serial.begin(115200);
  connexionWifi;
}

void loop {
  // Client en variable locale : un objet global a provoque un crash de l'OS (bogue #753)
  WiFiClient wifi;
  HttpClient client(wifi, "example.com", 80);
  client.get("/");
  // Vider entierement le corps de reponse, sinon ~1 connexion sur 5 echoue (-3005)
  while (client.available) Serial.write(client.read);
  client.stop;
  Serial.println("\n--- requete terminee ---");
  delay(10000);
}

Para MQTT, reemplace la capa HttpClient por la biblioteca PubSubClient: client.connect("giga", "user", "pass") y luego client.publish("maison/temp", "21.5") hacia el puerto 1883 de su broker.

Verificación esperada

El Monitor serie muestra la dirección IP obtenida por DHCP, seguido del contenido HTML de la página recuperada cada 10 segundos, sin bloqueos de 30 segundos. En MQTT, el broker recibe el mensaje publicado en el tema elegido.

Errores frecuentes

> NO VERIFICADO: la sensibilidad y las bandas exactas del módulo 1DX en el GIGA (la ficha técnica de Murata no se ha desplegado en esta revisión); pruebe con su router.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales