Retour au coursTélécharger le Markdown

Guide pas à pas du cours

Public : développeurs et opérateurs qui branchent des capteurs du monde physique sur GAIA / ATLAS avant de facturer des SKU Hub.
Langues : COURSE_LANG=en|ru|es|fr|zh · chaînes UI dans i18n/ · ce guide en français. English · Русский · Español · 中文


Vérification dans l’écosystème actuel

Exécutez d’abord l’atelier reproductible, puis comparez ses contrôles de source et de fraîcheur au guide ATLAS. Le code actuel couvre trois puits pilotes USGS via gaia.groundwater.read@v1. La profondeur est exprimée en mètres sous la surface locale, positive vers le bas. Les mesures de plus de 24 heures sont écartées. USGS Real-Time Flood Impacts rapproche des seuils de site et des mesures récentes de stations. Un résultat vide se limite aux sites couverts et aux observations admissibles. Conservez la source, l’heure et la couverture dans l’export.


Pourquoi ce cours

GAIA expose des lectures IoT attestées comme capacités (gaia.weather.read@v1, gaia.fleet.status@v1, …). ATLAS transforme la même flotte en carte opérateur (atlas.nearest.read@v1). La difficulté n’est pas HTTP : c’est l’honnêteté (Open-Meteo ≠ station in-situ ; SIM ≠ LIVE) et la licence (seulement CC0 / CC BY / OGL / NLOD / U.S. PD / Copernicus CC BY sur le rail commercial). Ce cours enseigne les deux via des labs sur le sandbox live :

Service URL
GAIA https://iot.modelmarket.dev
ATLAS https://atlas.modelmarket.dev

Les labs appellent les API live si le réseau est disponible ; hors ligne ils affichent [offline] et n’inventent jamais de lectures.

Docs canoniques : LIVE-RELAYS.md · add-gaia-atlas-sensor.md


Table des matières

  1. Choisir sa piste
  2. Installation (10 minutes)
  3. Module M1 — Qu’est-ce qu’un relais LIVE
  4. Module M2 — Licence et rail commercial
  5. Module M3 — Flotte et honnêteté des pins
  6. Module M4 — Carte opérateur ATLAS
  7. Module M5 — Capstone : ajouter un capteur
  8. Exercices et certificat
  9. Auto-contrôle
  10. Dépannage

Choisir sa piste

Piste Modules Durée Réseau
Basique M1 → M2 → M3 → M4 ~2 h Optionnel
Avancée Basique + M5 +30 min Comptage live optionnel
Pont ops Après M5 +30 min GAIA + ATLAS + Recipe A

Installation (10 minutes)

Étape 1 — Cloner et installer

git clone https://github.com/alexar76/aimarket-courses.git
cd aimarket-courses/gaia-atlas-sensors-course
pip install -e ".[dev]"

Depuis le monorepo aicom :

cd courses/gaia-atlas-sensors-course
pip install -e ".[dev]"

Étape 2 — Vérifier les tests

pytest -q

Attendu : parité i18n (5 langues), tests licence/honesty, solutions d’exercices, smoke d’imports. Les tests réseau sont ignorés si GAIA est injoignable ou COURSE_SKIP_NETWORK=1.

Étape 3 — Langue (optionnel)

export COURSE_LANG=fr
python labs/lab01_live_vs_sim.py

Étape 4 — Endpoints live

export COURSE_GAIA_URL=https://iot.modelmarket.dev
export COURSE_ATLAS_URL=https://atlas.modelmarket.dev
export COURSE_HUB_URL=https://modelmarket.dev

Les lectures payantes de GAIA (gaia.weather.read@v1, 0,001 $) passent par l’essai gratuit (sandbox) du hub COURSE_HUB_URL : 5 appels par visitor id et par heure, sans portefeuille ni compte. Avec son price gate actif, GAIA répond 402 à un appel direct d’une capacité payante et nomme le hub ; gaia.fleet.status@v1 est gratuit et se lit directement sur GAIA.


Module M1 — Qu’est-ce qu’un relais LIVE

Concept : allowlist HTTPS, offline en cas d’échec, ne jamais inventer de lectures.
Lab : labs/lab01_live_vs_sim.py · Durée : ~20 min

Étapes

  1. Lire la docstring — paire om-wx-01 (LIVE) vs ws-01 (SIM).
  2. Lancer python labs/lab01_live_vs_sim.py.
  3. Confirmer que classify_mode passe hors ligne.
  4. En ligne : inspecter /health et l’invoke weather.
  5. Parcourir courselib/sensors.py.

Auto-contrôle


Module M2 — Licence et rail commercial

Concept : CC0 / CC BY / OGL / PD uniquement.
Lab : labs/lab02_licence_gate.py · Durée : ~20 min

Étapes

  1. Lancer le lab et lire le tableau pass/fail.
  2. Pass : OpenAQ, USGS/NWS PD, Safecast CC0, FIRMS, UK OGL.
  3. Fail : AirNow (assent requis), OpenSky, ADSBx, PurpleAir, BY-NC.

Auto-contrôle


Module M3 — Flotte et honnêteté des pins

Concept : Open-Meteo ≠ station ; AIS public ≠ edge propre.
Lab : labs/lab03_honesty_claims.py · Durée : ~20 min

Auto-contrôle


Module M4 — Carte opérateur ATLAS

Concept : nearest, distance, mode/source.
Lab : labs/lab04_atlas_map_read.py · Durée : ~20 min

Étapes

  1. Assert hors ligne sur la forme du payload.
  2. En ligne : atlas.nearest.read@v1 près de Berlin (52.52, 13.41).
  3. Vérifier stations sur /health.

Module M5 — Capstone : ajouter un capteur

Concept : Recipe A — licence → kind → YAML → redeploy GAIA→ATLAS → honesty.
Lab : labs/lab05_add_sensor_capstone.py · Durée : ~25 min

Auto-contrôle


Exercices et certificat

Stubs : courselib/exercises.py (# YOUR CODE HERE).
Solutions : courselib/exercise_solutions.py.

python labs/run_exercises.py
python labs/run_exercises.py --certificate "Camille Dupont" --lang fr

Les cases du navigateur n’émettent pas de certificat.


Auto-contrôle


Dépannage

Symptôme Action
[offline] … unreachable Réseau ou continuez hors ligne — la partie unitaire enseigne quand même
SensorsError: HTTP … Vérifier capability_id et device_id
HTTP 429 … trial_quota_exhausted L’essai gratuit du hub (5 appels par heure) est épuisé ; il se renouvelle l’heure suivante, rien n’a été facturé
pytest network skip Normal hors ligne ; retirer COURSE_SKIP_NETWORK pour le live
Tous les exercises échouent Remplir les stubs — c’est voulu
Mauvaise langue COURSE_LANG ∈ en,ru,es,fr,zh

Variables : COURSE_GAIA_URL, COURSE_ATLAS_URL, COURSE_HUB_URL, COURSE_SANDBOX_VISITOR, COURSE_LANG, COURSE_SKIP_NETWORK=1.