Capteur de sommeil micro:bit
| Projet | Durée | Difficulté | Âge |
|---|---|---|---|
| SteamCity | 1-2 heures | Intermédiaire | 11-15 ans |
Matériel
- 1 carte Micro:bit V2 (capteurs lumière, son, température, accéléromètre intégrés)
- 1 câble micro-USB
- 1 batterie externe (optionnelle)
- Ordinateur ou tablette + MakeCode
De quoi parle-t-on ?
Cette fiche technique accompagne la ressource ZZZ. Elle décrit deux montages avec la Micro:bit V2 : un programme de mesure multi-capteurs (lumière, bruit, température) pour étudier l'environnement de sommeil, et un programme dédié à la détection des mouvements nocturnes via l'accéléromètre.
Objectifs d'apprentissage
- Utiliser plusieurs capteurs internes de la Micro:bit V2
- Configurer l'extension Datalogger
- Programmer la collecte conditionnelle (seulement en cas de mouvement)
- Préparer la carte pour un enregistrement nocturne autonome
Fiche 1 : Mesurer les données environnementales
Matériel
- Carte Micro:bit V2 avec capteurs lumière (écran LED), son et température (~19 EUR)
- Câble micro-USB
- Batterie externe (optionnelle) : ~2,20 EUR
- Ordinateur ou tablette + éditeur MakeCode
Recommandation : programmer 3 à 6 cartes pour les partager entre élèves.
Étape 1 : Programmer la carte
Branchez la carte via le câble micro-USB ; elle apparaît comme un lecteur « MICROBIT ». Ouvrez MakeCode, créez un nouveau projet, puis ajoutez l'extension Datalogger via EXTENSIONS.
Copiez-collez le code ci-dessous (ou organisez les blocs) puis testez dans le simulateur. Cliquez sur Télécharger pour générer le .hex et copiez-le sur le lecteur MICROBIT.

Étape 2 : Placer la Micro:bit et démarrer l'enregistrement
Placez la carte près du lit, dans une zone dégagée. Alimentez-la par ordinateur ou batterie externe. Positionnez-la chaque nuit au même endroit pour obtenir des données comparables. Avant de vous coucher, appuyez sur A.
Étape 3 : Récupérer les données
Débranchez la carte le matin, connectez-la à l'ordinateur et copiez le fichier MY_DATA.HTM. Renommez-le avec la date (ex. BOARD1_NAME_YYYY-MM-DD.HTM) puis supprimez l'original de la carte.

Code
input.onButtonPressed(Button.A, function () {
basic.showIcon(IconNames.Yes)
basic.pause(200)
basic.clearScreen()
while (true) {
datalogger.log(
datalogger.createCV("temperature", input.temperature()),
datalogger.createCV("luminosite", input.lightLevel()),
datalogger.createCV("niveau sonore", input.soundLevel())
)
basic.pause(60000)
}
})
basic.showIcon(IconNames.No)
datalogger.includeTimestamp(FlashLogTimeStampFormat.Minutes)

Comment cela fonctionne ?
Le programme mesure toutes les minutes la température, la luminosité et le niveau sonore, et compile les informations dans un datalogger.
- Bouton A : déclenche la fonction. Icône « Yes » pendant 200 ms, puis écran nettoyé.
- Boucle infinie : enregistre
input.temperature()(°C),input.lightLevel()(0-255),input.soundLevel()(0-255) à chaque itération. - Pause de 60 000 ms entre chaque mesure (modifiable).
- Horodatage en minutes via
datalogger.includeTimestamp. - Icône « No » : affichée avant l'appui, pour indiquer l'attente.
Les valeurs de lumière et son sont relatives (0 = silence / obscurité totale, 255 = maximum). La température est en °C.
Un fichier .csv se lit dans Excel ou LibreOffice Calc via l'assistant d'importation.
Fiche 2 : Mesurer les mouvements (accéléromètre)
Étape 1 : Programmer la carte
Identique à la Fiche 1 : connexion via micro-USB, ajout de l'extension Datalogger dans MakeCode, copier-coller du code ci-dessous, puis téléchargement du .hex sur le lecteur MICROBIT. Seul le programme change — on remplace les capteurs environnementaux par l'accéléromètre intégré.

Étape 2 : Placer la Micro:bit et démarrer l'enregistrement
Placez la carte près du lit ou directement sur le brassard (voir bonus ci-dessous). Avant de vous coucher, appuyez sur A.
Étape 3 : Récupérer les données
Débranchez la carte au matin, copiez le fichier MY_DATA.HTM sur l'ordinateur, renommez-le et supprimez l'original sur la carte pour libérer l'espace.

Code
input.onButtonPressed(Button.A, function () {
basic.showIcon(IconNames.Yes)
basic.pause(500)
while (true) {
if (input.acceleration(Dimension.X) != 0 || input.acceleration(Dimension.Y) != 0 || input.acceleration(Dimension.Z) != 0) {
datalogger.log(
datalogger.createCV("x", input.acceleration(Dimension.X)),
datalogger.createCV("y", input.acceleration(Dimension.Y)),
datalogger.createCV("z", input.acceleration(Dimension.Z))
)
}
basic.pause(500)
}
})
datalogger.includeTimestamp(FlashLogTimeStampFormat.Seconds)
basic.showIcon(IconNames.No)

Comment cela fonctionne ?
Le programme mesure l'accélération sur les axes X, Y, Z toutes les 500 ms. Si au moins un axe est différent de 0, les valeurs sont enregistrées dans le datalogger.
- Bouton A : déclenche l'enregistrement (évite de démarrer dès la connexion).
- Condition
if: vérifie si la carte bouge avant d'enregistrer. - Horodatage en secondes via
datalogger.includeTimestamp(FlashLogTimeStampFormat.Seconds).
L'accéléromètre renvoie des valeurs en milli-g (1000 milli-g = 1G = 9,81 m/s²).
Bonus : Rajouter un brassard
Plusieurs ressources permettent de fixer la Micro:bit à un brassard pour que les élèves la portent pendant la nuit :
- Smart Coding Watch Kit pour micro:bit
- Duct Tape Watch (tutoriel low-cost)
- BBC micro:bit wrist holder (mattoppenheim)
- Yahboom Wrist:bit wearable watch kit
- CHARGE for micro:bit
Cette fiche fait partie du projet SteamCity, financé par le programme Erasmus+. Contenu sous licence CC BY-SA 4.0.