http-post.ino
Telemetría local de la MKR WiFi 1010: cada minuto una lectura analógica sale como POST JSON hacia una API de tu red (Flask, Node, InfluxDB...). La plantilla exacta que esperan las bases de series temporales, comprobable con diez líneas de servidor Python.
Hardware
Una Arduino MKR WiFi 1010 (microcontrolador SAMD21, módulo Wi-Fi WINC1500, sin Bluetooth, alimentación USB o LiPo en J6). MKR WiFi 1010 en la LAN, máquina de escucha con servidor HTTP que acepte POST (IP fija recomendada).
Cableado
Sin cableado; fija la IP del servidor con un lease DHCP estático para evitar sorpresas.
Funcionamiento
El cuerpo JSON se construye con String, Content-Length calculado automáticamente. La respuesta del servidor se lee y se descarta para liberar el socket limpiamente antes del siguiente ciclo.
Ejecución
Instala Arduino SAMD Boards y la librería WiFi101, selecciona la placa y carga. El Wi-Fi funciona solo en 2,4 GHz: comprueba que tu punto de acceso no sea solo de 5 GHz.
Variantes
Añade una cabecera de autenticación (Bearer), pasa a HTTPS con WiFiSSLClient o acumula medidas en RAM para un POST agrupado económico.
http-post.ino
// POST JSON periodique MKR WiFi 1010 vers une API locale (Flask/Node).
#include <SPI.h>
#include <WiFi101.h>
const char SSID[] = "MonReseau";
const char PASS[] = "motdepassewifi";
const char SERVEUR[] = "192.168.1.50"; // machine d'ecoute
const int PORT = 5000;
WiFiClient client;
unsigned long dernier = 0;
void setup() {
Serial.begin(9600);
WiFi.begin(WPA_PASS_PHRASE, SSID, PASS);
while (WiFi.status() != WL_CONNECTED) delay(100);
Serial.println(WiFi.localIP());
}
void loop() {
if (millis() - dernier < 60000) return; // 1/min
dernier = millis();
String json = "{\"capteur\":\"salon\",\"valeur\":" +
String(analogRead(A1)) + "}";
if (client.connect(SERVEUR, PORT)) {
client.print(String("POST /mesures HTTP/1.1\r\nHost: ") + SERVEUR +
"\r\nContent-Type: application/json\r\nContent-Length: " +
json.length() + "\r\n\r\n" + json);
delay(500);
while (client.available()) client.read(); // vide la reponse
client.stop();
Serial.println("POST " + json);
} else Serial.println(F("serveur KO"));
}