Index <= Page index / Phase => Phase 1 – Slice radio (non sécu)
État : prérequis en place (endpoints, stockage simple, sketch ESP32 à finaliser).
cd backend/obambu_node uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Vérification rapide :
curl http://localhost:8000/health
curl -X POST http://localhost:8000/api/v1/device/hello \
-H "Content-Type: application/json" \
-d '{"device_id":"DEV-001","fw_version":"0.0.1","station_type":"S"}'
curl "http://localhost:8000/api/v1/device/config?device_id=DEV-001"
curl -X POST http://localhost:8000/api/v1/device/content_index
Remplir WIFI_SSID, WIFI_PASS et API_BASE puis flasher :
// ESP32 Station S – Sketch minimal de test (Wi-Fi + /health)
// Renseigner WIFI_SSID, WIFI_PASS et API_BASE avant flash.
#include <WiFi.h>
#include <HTTPClient.h>
const char* WIFI_SSID = "YOUR_WIFI_SSID";
const char* WIFI_PASS = "YOUR_WIFI_PASSWORD";
const char* API_BASE = "http://192.168.1.10:8000"; // IP du nœud FastAPI
const int LED_PIN = 2; // LED intégrée ESP32 DevKit
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
connectWiFi();
pingHealth();
}
void loop() {
delay(5000);
pingHealth();
}
void connectWiFi() {
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASS);
Serial.print("WiFi...");
int retries = 0;
while (WiFi.status() != WL_CONNECTED && retries < 30) {
delay(500);
Serial.print(".");
retries++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println(" OK");
Serial.print("SSID: "); Serial.println(WiFi.SSID());
Serial.print("IP: "); Serial.println(WiFi.localIP());
digitalWrite(LED_PIN, HIGH);
} else {
Serial.println(" FAIL");
}
}
void pingHealth() {
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi non connecté");
return;
}
HTTPClient http;
String url = String(API_BASE) + "/health";
http.begin(url);
int code = http.GET();
Serial.printf("/health -> %d\n", code);
if (code > 0) {
String body = http.getString();
Serial.println(body);
}
http.end();
}
Source complète disponible dans plan-details/details-blockchain-security_code-per-device/esp32_station_s_min.ino/esp32_station_s_min.ino.

THIS IS NOT GOOD : "Heath - 1" commectoin o, mais requête échouée..s
/api/v1/device/hello, /api/v1/device/config, /api/v1/device/content_index, /api/v1/device/content.devices.json pour la liste des devices (hello/config).docs/ pour les fichiers et méta simples.