Arduino UNO Q - Capteur de Lumière

Ce tutoriel vous montre comment utiliser un capteur de lumière LDR avec l'Arduino UNO Q. En détail, vous apprendrez :

Capteur de lumière Arduino UNO Q

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur de lumière
1×10 kΩ Resistor
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Le capteur de lumière LDR est très abordable, mais il nécessite une résistance pour le câblage, ce qui peut rendre la configuration plus complexe. Pour simplifier le câblage, vous pouvez utiliser un module capteur de lumière LDR comme alternative.

À propos du Capteur de Lumière

Ce tutoriel utilise un capteur de lumière connu sous le nom de photorésistance, également appelé LDR (Light-Dependent Resistor) ou photocellule. Il est utilisé pour détecter et mesurer la luminosité de l'environnement.

Brochage

Une photorésistance a deux broches. Comme c'est un type de résistance, il n'est pas nécessaire de les identifier séparément. Elles sont identiques.

Brochage du Capteur de Lumière

Fonctionnement

Une photorésistance est un type spécial de résistance dont la résistance varie en fonction de la quantité de lumière détectée. En présence de beaucoup de lumière, la résistance devient très faible. En présence de peu ou pas de lumière, la résistance devient très élevée. En mesurant la résistance de la photorésistance, on peut déterminer si l'environnement est lumineux ou sombre.

Fonctionnement du Capteur de Lumière

WARNING

La valeur du capteur de lumière donne une idée approximative de la luminosité, mais elle ne fournit pas la quantité exacte de lumière. Ne l'utilisez que dans des situations où vous n'avez pas besoin de mesures très précises.

Arduino UNO Q - Capteur de Lumière

Le MCU STM32 de l'Arduino UNO Q possède un ADC 12 bits avec une référence de 3,3 V. Les broches d'entrée analogique A0–A5 convertissent la tension (0 V à 3,3 V) en valeurs comprises entre 0 et 4095.

En connectant une broche de la photorésistance à une broche d'entrée analogique de l'Arduino UNO Q, on peut lire la valeur analogique à l'aide de la fonction analogRead() pour déterminer les niveaux de lumière relatifs.

※ Note:

L'Arduino UNO Q utilise un ADC 12 bits (0–4095) avec une référence de 3,3 V — contrairement à l'Arduino UNO R4 qui utilise un ADC 14 bits, ou aux cartes Uno traditionnelles qui utilisent 10 bits (0–1023). Ajustez toujours vos seuils en conséquence.

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Capteur de Lumière

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code MCU

L'Arduino UNO Q dispose de deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.

Le code suivant lit la valeur ADC de la photocellule toutes les 500 ms :

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor */ void setup() { // nothing to set up } void loop() { // Read ADC value from pin A0 (12-bit: 0-4095 on Arduino UNO Q, 3.3V reference) int value = analogRead(A0); // Qualitative light level thresholds (scaled for 12-bit ADC) // Dark: 0-39, Dim: 40-799, Light: 800-1999, Bright: 2000-3199, Very bright: 3200-4095 // TO DO: use the value in your logic here // Example: if (value < 800) { /* dim or dark */ } delay(500); }

※ Note:

Le MCU de l'Arduino UNO Q utilise un ADC 12 bits (valeurs 0–4095). Les seuils de niveau de lumière sont dimensionnés en conséquence : Sombre < 40, Faible < 800, Lumière < 2000, Lumineux < 3200, Très lumineux ≥ 3200.

Étapes Rapides

  • Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Câbler les composants : Connectez la photorésistance et la résistance de 10 kΩ en diviseur de tension à la broche A0 comme indiqué dans le schéma.
  • Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_LightSensor
  • Cliquez sur Créer pour confirmer.
  • Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans le fichier sketch. Conservez les autres fichiers par défaut.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
    • Tester : Éclairez le capteur ou couvrez-le avec votre main, puis utilisez la section Bridge ci-dessous pour lire les valeurs via le Moniteur.

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC à l'aide de la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • Le capteur de lumière est connecté au MCU (STM32) — le diviseur de tension de la photorésistance alimente la broche analogique A0 du STM32.
    • Le MPU ne peut pas lire A0 directement — il doit appeler une fonction sur le MCU via Bridge.call() pour demander la lecture du capteur.
    • Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et envoyer les lectures du capteur à distance.
    • Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide() côté MCU (la lecture analogique est sûre — aucune écriture GPIO matérielle n'est nécessaire)
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement

    En résumé : MPU demande la lecture → MCU lit l'ADC → MCU affiche le résultat dans le Moniteur.

    Sketch MCU — lecture du capteur de lumière avec Bridge et sortie Moniteur :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor */ #include "Arduino_RouterBridge.h" String get_light_level(int value) { if (value < 40) return "Dark"; if (value < 800) return "Dim"; if (value < 2000) return "Light"; if (value < 3200) return "Bright"; return "Very bright"; } void read_light() { int value = analogRead(A0); String level = get_light_level(value); Monitor.print("Analog reading: "); Monitor.print(value); Monitor.print(" - "); Monitor.println(level); } void setup() { Bridge.begin(); Monitor.begin(); Bridge.provide("read_light", read_light); Monitor.println("Light Sensor Bridge ready"); } void loop() {}

    Script Python (Arduino App Lab) — demander des lectures depuis Linux toutes les secondes :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor */ from arduino.app_utils import * import time def loop(): Bridge.call("read_light") time.sleep(1) App.run(user_loop=loop)
    • Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ni n'utilisez Serial1 (sur MCU) dans votre code — ceux-ci sont réservés par l'Arduino Router et y accéder cassera le Bridge.

    Étapes Rapides

    • Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge dans sketch/sketch.ino, installez la bibliothèque Arduino_RouterBridge, puis cliquez sur Exécuter.
    • Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécuter l'application : Cliquez sur Exécuter — Python demande une lecture de lumière chaque seconde.
    • Éclairer / couvrir le capteur : Observez les valeurs changer dans le Moniteur MCU.
    • Vérifier la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU pour voir les lectures analogiques.

    Sortie Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Light Sensor Bridge ready Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 3890 - Very bright Analog reading: 3920 - Very bright Analog reading: 41 - Dark

    Intégration Telegram

    Lisez le capteur de lumière à distance depuis n'importe où via Telegram.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour la lecture du capteur de lumière :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/read": reading = Bridge.call("read_light") send_message(chat_id, reading) else: send_message(chat_id, "Commands:\n/read — read light sensor value and level") time.sleep(1) App.run(user_loop=loop)
    • Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
    • Envoyez /read pour demander la lecture actuelle du capteur de lumière.
    • La lecture apparaîtra dans le Moniteur MCU (onglet Console → Moniteur MCU).

    Étapes Rapides

    • Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord si ce n'est pas déjà fait).
    • Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécuter l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
    • Tester : Envoyez /read — le bot répond avec la valeur ADC du capteur et le niveau de lumière.

    Sortie Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /read [2026-04-29 12:00:01] Analog reading: 1234 - Light [2026-04-29 12:02:10] Telegram: /read [2026-04-29 12:02:10] Analog reading: 120 - Dim
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /read
    10:15 AM ✓✓
    Analog reading: 1234 - Light
    10:16 AM
    /read
    10:17 AM ✓✓
    Analog reading: 120 - Dim
    10:18 AM

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées d'Applications/Projets

    • Veilleuse automatique : Lire le niveau de lumière sur le MPU et allumer un ruban LED via Telegram/Bridge lorsqu'il fait sombre
    • Contrôleur de rideau intelligent : Utiliser le niveau de lumière pour ouvrir ou fermer automatiquement des rideaux via un servomoteur
    • Moniteur de lumière pour plantes : Vérifier périodiquement le niveau de lumière et envoyer une alerte Telegram lorsque les plantes ont besoin de plus de lumière
    • Éclairage de sécurité : Déclencher une alarme ou un enregistrement de caméra lorsque les lumières s'éteignent de façon inattendue
    • Enregistrement de données : Enregistrer les niveaux de lumière toutes les minutes dans un fichier CSV sur le MPU Linux pour analyse

    Challengez-vous

    • Facile : Envoyez un message Telegram avec la valeur ADC réelle et la chaîne de niveau de lumière (par exemple, "ADC : 3200 — Très lumineux")
    • Intermédiaire : Envoyez automatiquement une alerte Telegram lorsque le niveau de lumière tombe en dessous d'un seuil (par exemple, les lumières s'éteignent)
    • Avancé : Enregistrez les lectures de lumière dans un fichier sur le MPU Linux toutes les minutes et envoyez un résumé quotidien via Telegram

    Références des Fonctions

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !