Arduino UNO Q - Optocoupleur PC817 : Surveiller un Signal d'Entrée DC 12V/24V
Un optocoupleur PC817 permet à l'Arduino UNO Q de surveiller un circuit 12V ou 24V à travers un faisceau de lumière au lieu d'un fil, de sorte que rien du côté haute tension ne peut jamais atteindre la carte. C'est très important sur l'UNO Q, car derrière le MCU STM32 3,3V se trouve un processeur Qualcomm exécutant Debian Linux — une carte que vous ne voulez vraiment pas perdre à cause d'un pic de 24V provenant d'une armoire de machine.
Neuf fois sur dix, la raison de construire ce circuit est une simple question sur un appareil : cette machine fonctionne-t-elle réellement en ce moment ? Branchez un module optocoupleur PC817 aux bornes du voyant de marche 24V d'une machine et la réponse devient une broche numérique — que le STM32 lit, que le côté Linux enregistre et que Telegram annonce.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est un optocoupleur PC817 et pourquoi une entrée numérique isolée protège l'Arduino UNO Q
- Laquelle des trois variantes de module PC817 — 3-5V, 12V ou 24V — correspond au signal que vous voulez surveiller
- Comment câbler un module optocoupleur PC817 à l'Arduino UNO Q, et comment réaliser la même chose à partir de la puce nue à 4 broches
- Comment brancher le module en parallèle aux bornes d'un appareil pour surveiller s'il est allumé ou éteint, sans modifier le circuit de l'appareil
- Comment savoir si votre module est actif-BAS ou actif-HAUT, et la seule constante qui l'inverse dans le code
- Comment exposer l'entrée isolée au côté Linux de l'Arduino UNO Q via Bridge
- Comment recevoir une alerte Telegram à l'instant où une ligne de machine 24V s'active ou se coupe
- Comment utiliser OpenClaw sur Arduino UNO Q avec l'optocoupleur PC817

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Vous avez besoin d'une seule variante de module - la section suivante indique laquelle.
À propos de l'Optocoupleur PC817
À l'intérieur du PC817, une LED infrarouge fait face à un phototransistor de l'autre côté d'un espace isolant. Lorsque le courant traverse la LED, sa lumière active le transistor, de sorte que le signal passe sous forme de lumière plutôt que d'électricité — c'est pourquoi les deux côtés restent électriquement séparés. La fiche technique indique une tenue de 5000 Vrms pendant une minute pour cet espace.
Valeurs clés de la fiche technique Sharp, qui s'appliquent tout autant au PC817 monté sur un module prêt à l'emploi :
| Paramètre | Valeur |
|---|---|
| Tension directe de la LED (Vf) | environ 1,2 V typique, 1,4 V max |
| Courant direct de la LED (If) | 5-20 mA normal, 20 mA continu max |
| Tension collecteur-émetteur (VCEO) | 35 V max |
| Courant de collecteur (IC) | 50 mA max |
| Dissipation de puissance du collecteur | 150 mW |
| Tension d'isolation | 5000 Vrms (1 minute) |
| Rapport de transfert de courant (CTR) | 50% à 600% selon le rang |
| Vitesse de commutation | montée environ 4 us, descente environ 3 us |
| Température de fonctionnement | -30 C à +100 C |
De Quel Module PC817 Ai-je Besoin ?
Un module PC817 prêt à l'emploi arrive avec la résistance série déjà soudée, des borniers à vis pour le côté isolé et généralement une LED d'état. Cette résistance montée est tout le piège : elle est dimensionnée pour une seule tension d'entrée. Les modules sont donc vendus en trois variantes distinctes, et la seule décision d'achat qui compte est de choisir celle qui correspond au signal que vous comptez surveiller.
| Signal que vous voulez surveiller | Variante de module à acheter |
|---|---|
| 24V DC — voyants de marche/défaut de machine, sorties d'automate, armoires industrielles | module 24V |
| 12V DC — pompes, bobines de relais et de contacteurs, circuits de véhicule, centrales d'alarme | module 12V |
| Logique 3,3V ou 5V — une autre carte, une sortie de capteur, une carte de commande basse tension | module 3-5V |
※ Note:
La variante n'est pas une étiquette sur le sachet, c'est la résistance. Mettez une ligne 24V dans un module 12V et environ le double du courant prévu traverse sa LED interne, ce qui l'endommage. Faites l'inverse — une ligne 12V dans un module 24V — et la LED est sous-alimentée, de sorte que la sortie peut commuter en retard, commuter de manière peu fiable, ou ne pas commuter du tout. Avec un module, vous ne calculez jamais rien : choisir la variante *est* le calcul.
Des cartes multicanaux existent aussi — des versions à 2, 4 et 8 canaux du même design — mais chaque canal d'une carte partage la variante de cette carte, donc un module 24V à 4 canaux surveille quatre lignes 24V et rien d'autre.
La variante 3-5V n'est pas là pour compléter la gamme. Un signal logique 5V ou 3,3V mérite d'être isolé chaque fois que les deux circuits fonctionnent sur des alimentations séparées, se trouvent aux extrémités opposées d'un long câble, ou que l'un d'eux partage une carte avec quelque chose de bruyant comme un driver de moteur ou la carte de commande basse tension à l'intérieur d'un appareil alimenté par le secteur — l'isolation consiste à couper le chemin de masse, pas une question de niveau de tension. Il est bon de savoir aussi que l'entrée du PC817 réagit au courant, et non à la quantité de courant que la source est capable de fournir : un rail 5V capable de délivrer 10 A n'est pas plus dur pour la LED du module qu'un rail limité à 50 mA, car la résistance intégrée fixe ce courant dans les deux cas. Ce que l'alimentation plus puissante change vraiment, c'est la gravité des conséquences d'une erreur de câblage ailleurs — un argument de plus pour l'isoler.
Votre Module est-il Actif HAUT ou Actif BAS ?
Commencez par la puce nue, car cette partie relève de la physique établie. La broche numérique de l'Arduino UNO Q est maintenue haute par sa résistance de rappel interne, donc le phototransistor ne peut que la tirer vers le bas :
| Signal externe 12V/24V | LED du PC817 | Phototransistor | La broche de l'Arduino UNO Q lit |
|---|---|---|---|
| PRÉSENT | allumée | conducteur | LOW |
| ABSENT | éteinte | bloqué | HIGH |
Un module est une autre histoire. Certains fabricants sortent directement le phototransistor, qui se comporte exactement comme le tableau ci-dessus ; d'autres ajoutent un étage inverseur sur la carte de sorte que la sortie suit l'entrée à la place. Les deux types sont vendus sous la même photo et la même description, donc la seule façon fiable de savoir lequel se trouve sur votre bureau est de prendre une minute pour le vérifier — une seule fois.
- Câblez le module comme indiqué ci-dessous et exécutez le premier sketch de cette page. Il affiche PRESENT ou ABSENT dans la console App Lab deux fois par seconde.
- Laissez les bornes IN+ / IN- non alimentées et lisez la console. Elle devrait afficher ABSENT.
- Appliquez maintenant le signal sur IN+ / IN-. La console devrait basculer sur PRESENT. Le niveau de broche qui produit cette ligne est le niveau *actif* de votre module.
- Vérifiez avec la LED d'état du module, qui s'allume chaque fois que le côté entrée est alimenté : si la LED est allumée alors que la console affiche toujours ABSENT, la sortie de votre module est inversée par rapport à l'hypothèse du sketch.
- Si les deux sont inversés, modifiez une seule ligne en haut du sketch et rechargez — sans recâblage, sans réécriture :
Les deux sketches MCU de cette page contiennent cette constante et en déduisent chaque lecture, c'est donc une seule modification à un seul endroit. Le côté Linux ne voit jamais de niveau de broche brut — le MCU lui transmet un "present" ou "absent" finalisé via Bridge — donc les fichiers Python restent exactement tels quels, quel que soit le comportement de votre module.
Le Réaliser à Partir de la Puce Nue
Si vous préférez souder le DIP brut à 4 broches sur une breadboard, tout ce qui précède s'applique toujours, sauf que c'est à vous de choisir la résistance. La broche 1 est marquée d'un point ou d'une encoche.

- Broche 1 — Anode (A) : + du signal isolé, arrivant à travers la résistance série
- Broche 2 — Cathode (K) : masse du circuit 12V/24V, pas la GND de l'Arduino UNO Q
- Broche 3 — Émetteur (E) : GND de l'Arduino UNO Q
- Broche 4 — Collecteur (C) : broche d'entrée numérique de l'Arduino UNO Q
Dimensionnez la résistance pour environ 10 mA de courant de LED :
$$R = \frac{V_{in} - 1.2}{0.01}$$
- 3,3V → 220 ohms (environ 9,5 mA)
- 5V → 390 ohms (environ 9,7 mA)
- 12V → 1 kohm (environ 10,8 mA)
- 24V → 2,2 kohms (environ 10,4 mA, utilisez un composant de 1/2 W)
Déplacez le même circuit d'une ligne 12V vers une ligne 24V et cette résistance doit changer avec lui — précisément l'erreur que les trois variantes de module existent pour vous éviter.
La Règle d'Isolation
La masse du circuit 12V/24V ne doit pas être reliée à la GND de l'Arduino UNO Q. Garder les deux masses séparées est tout l'intérêt — c'est cette séparation, et non la puce elle-même, qui protège la carte. Reliez-les et le PC817 commute toujours sans problème, mais l'isolation disparaît et vous revenez à un fil direct entre la machine et votre processeur Linux.
Schéma de Câblage
Le MCU STM32 de l'Arduino UNO Q est un composant 3,3V, donc le côté sortie de l'optocoupleur est tiré à 3,3V et jamais plus haut. Que le côté isolé fonctionne en 12V ou en 24V ne change rien pour la broche — le transistor la court-circuite à GND ou la laisse telle quelle.
Câblage du Module Optocoupleur PC817

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Cinq bornes, et la séparation entre elles est la barrière d'isolation elle-même — IN+ et IN- appartiennent à la machine, VCC/GND/OUT appartiennent à l'Arduino UNO Q, et aucun fil ne passe entre les deux groupes.
| Borne du module | Connecter à |
|---|---|
| IN+ (côté entrée) | + du signal 12V/24V |
| IN- (côté entrée) | masse du circuit 12V/24V (gardez-la séparée de la GND de la carte) |
| VCC (côté sortie) | 3,3V de l'Arduino UNO Q |
| GND (côté sortie) | GND de l'Arduino UNO Q |
| OUT / DO (côté sortie) | broche 2 de l'Arduino UNO Q |
※ Note:
Alimentez le VCC du module depuis la broche 3,3V, pas depuis le 5V. La broche de sortie du module suit ce que vous mettez sur VCC, et l'entrée STM32 de l'Arduino UNO Q attend du 3,3V. Et rappelez-vous que le module que vous installez doit être la variante correspondant à ce signal 12V ou 24V — une erreur de variante n'est pas quelque chose que le code peut corriger.
Câblage de la Puce PC817 Nue
| Broche du PC817 | Connecter à |
|---|---|
| Broche 1 - Anode (A) | résistance série, puis le + du signal 12V/24V (1 kohm pour 12V, 2,2 kohms pour 24V) |
| Broche 2 - Cathode (K) | masse du circuit 12V/24V (gardez-la séparée de la GND de la carte) |
| Broche 3 - Émetteur (E) | GND de l'Arduino UNO Q |
| Broche 4 - Collecteur (C) | broche 2 de l'Arduino UNO Q, en utilisant INPUT_PULLUP |
La résistance de rappel interne est l'option la plus simple et elle relie la broche au rail 3,3V propre du MCU. Si vous préférez en utiliser une externe, placez une résistance de 10 kohms entre la broche 2 et la broche 3,3V de l'Arduino UNO Q — pas le 5V, pour lequel les entrées du STM32 ne sont pas conçues.
Câblage du PC817 en Parallèle aux Bornes de la Charge
Les deux schémas ci-dessus supposent implicitement que la ligne 12V/24V est à vous de câbler de zéro. Sur une vraie machine, ce n'est pas le cas : la ligne alimente déjà quelque chose, et ce quelque chose est précisément ce que vous voulez surveiller. L'optocoupleur se place donc aux bornes de l'appareil existant — en parallèle avec lui, branché sur les deux mêmes bornes que celles sur lesquelles l'appareil est déjà connecté.
Prenez la ligne du voyant de marche/défaut d'une machine industrielle 24V, la même ligne que la section Telegram plus bas transforme en "Conveyor 3 started". Le voyant est câblé entre le 24V commuté de l'armoire et son retour 0V, et un module 24V s'y raccorde simplement :
| Prise depuis | Va vers |
|---|---|
| Borne + commutée du voyant 24V | IN+ du module |
| Borne de retour 0V du voyant 24V | IN- du module |
Il n'y a pas de résistance à ajouter sur la prise : le module 24V contient déjà la bonne, ce qui est toute la raison d'acheter la variante correspondant à la ligne. (Avec la puce nue, c'est ici que se place la résistance de 2,2 kohms, en série avec la broche 1.)
Rien dans l'armoire n'est coupé, débranché ou redirigé. La prise consomme quelques milliampères, ce qui n'est rien à côté de ce que consomment déjà un voyant, une bobine de contacteur, une électrovanne ou un moteur, donc la machine continue de se comporter exactement comme avant — une mesure en lecture seule ajoutée à côté du circuit plutôt qu'insérée dedans.
※ Note:
Ne placez jamais l'optocoupleur en série avec l'appareil. Câblé en ligne, tout le courant de charge de ce voyant, de cette bobine ou de ce moteur est forcé à travers la LED interne, et le PC817 est détruit dès que le circuit se met sous tension — la résistance intégrée d'un module ne fait rien pour le sauver. Son côté entrée est une LED prévue pour quelques dizaines de milliampères et rien de plus. Toujours aux bornes de l'appareil.
Quatre détails déterminent si la prise fonctionne du premier coup :
- La polarité n'est pas optionnelle. IN+ et IN- sont les deux extrémités d'une LED, donc le courant ne passe que dans un sens. Inversez-les et l'optocoupleur ne s'allume jamais — aucun dommage, aucune lecture, et aucun indice sur la cause. Vérifiez laquelle des deux bornes est la positive avant de dénuder un fil.
- Protégez une charge inductive avec une diode. Une bobine de contacteur, un relais, une électrovanne ou un moteur génère un fort pic inverse au moment où il se coupe, et la LED d'entrée du PC817 ne supporte que 6 V en inverse. Placez une diode ordinaire en antiparallèle directement aux bornes d'entrée du module — cathode de la diode sur IN+, anode de la diode sur IN- (broches 1 et 2 sur la puce nue). En fonctionnement normal, elle est polarisée en inverse et ne fait rien du tout ; lors d'un pic, elle conduit et maintient la tension inverse bien en dessous d'un volt. Une 1N4148 convient pour les petites prises, une 1N4007 pour les plus lourdes.
- Ajoutez une résistance de décharge si la lecture ne revient jamais à zéro. Les sorties à transistor d'automate, les sorties à triac et les drivers de lampes LED laissent souvent fuir un milliampère environ lorsqu'ils sont coupés. Ce filet de courant suffit à allumer partiellement la LED d'entrée, et l'Arduino UNO Q signale alors la machine comme en marche alors que l'armoire est éteinte — l'indice est une lecture qui ne revient jamais à ABSENT, et la LED d'état du module qui brille faiblement. Une résistance de 4,7 kohms à 10 kohms placée aux bornes d'entrée offre à la fuite un chemin plus facile que la LED, et la lecture se stabilise.
- Lignes DC uniquement. Avec une seule LED en entrée, le PC817 ne répond qu'à une polarité, c'est donc le mauvais composant pour détecter une ligne AC — cela nécessite un optocoupleur dont l'étage d'entrée comporte deux LED tête-bêche.
Surveiller si la Machine est Allumée ou Éteinte
Placée aux bornes de l'appareil plutôt qu'en amont, la broche suit l'état électrique réel de la machine plutôt que vos intentions à son égard. Un opérateur appuyant sur le bouton de démarrage physique, un automate alimentant la ligne selon un planning, une minuterie ailleurs dans l'armoire fermant un contact — l'Arduino UNO Q voit chacun d'eux. Tout aussi précieux, il voit le cas où un démarrage est commandé et la ligne reste morte. C'est ce qui fait passer le circuit d'un simple détecteur de signal à un compteur d'heures de fonctionnement, un journal des temps d'arrêt, une surveillance de voyant de défaut et une vérification "a-t-elle vraiment démarré ?".
C'est sur ce dernier point que la moitié Linux de l'Arduino UNO Q se rentabilise : la section Bridge ci-dessous transmet chaque transition à Python, et la section Telegram qui suit transforme la transition en message en moins d'une seconde — ainsi, une commande de démarrage qui ne produit pas de 24V devient une alerte sur votre téléphone au lieu d'une découverte faite des heures plus tard.
※ Note:
Une limite honnête : le PC817 vous indique que l'appareil est alimenté, pas qu'il fait son travail. Un moteur grippé, une résistance chauffante grillée ou un convoyeur bloqué consomment toujours du courant sur la ligne et sont toujours lus comme PRESENT. Pour savoir si la machine fonctionne réellement, surveillez le courant, la température ou le mouvement en complément de ce signal.
Comment Programmer pour le PC817
- Choisissez la broche à laquelle va la borne OUT du module :
- Déclarez la polarité de votre module à un seul endroit, pour qu'une mauvaise supposition se corrige en une ligne plutôt qu'en fouillant tout le sketch :
- Activez la résistance de rappel interne pour que la broche reste à 3,3V lorsque la ligne isolée est morte :
- Lisez le niveau brut de la broche, puis interprétez-le via la constante au lieu de coder LOW en dur quelque part :
- Agissez selon le résultat :
- Pour détecter le moment où la ligne change plutôt que son niveau, mémorisez la lecture précédente et comparez :
Aucune bibliothèque n'est nécessaire pour tout cela — un PC817 se lit avec un simple digitalRead(), exactement comme un Arduino UNO Q - Bouton ou un Arduino UNO Q - Interrupteur de Fin de Course, seulement avec 24 volts maintenus en toute sécurité de l'autre côté de l'espace isolant.
Code Arduino UNO Q
L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble :
- Le MCU STM32 gère la broche d'entrée isolée et la lit toutes les 500 ms
- Le MPU Qualcomm exécute Debian Linux avec le Wi-Fi — il reste inactif dans cette première section, et une section ultérieure le fait intervenir via Bridge
Étapes Rapides
Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.
- Choisissez d'abord la bonne variante de module : le module 24V pour une ligne 24V, le module 12V pour une ligne 12V, le module 3-5V pour les signaux de niveau logique. C'est le seul choix que le code ne peut pas rattraper.
- Câbler le module : Suivez le schéma de câblage ci-dessus, et vérifiez bien que la masse 12V/24V n'est nulle part à proximité de la GND de l'Arduino UNO Q.
- Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec le 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.

- Donnez un nom à l'application, par exemple : PC817IsolatedInput
- Cliquez sur Créer pour confirmer.

- Coller le sketch : Copiez le code MCU ci-dessus dans sketch/sketch.ino. Conservez les autres fichiers par défaut.
- Aucune bibliothèque requise — le PC817 se lit avec la fonction intégrée digitalRead().
- Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.

- Activez et désactivez le signal isolé 12V/24V tout en observant le Moniteur Série — cela sert aussi de test de polarité décrit plus haut.
Sortie Console App Lab
※ Note:
Vous voyez PRESENT quand la machine est éteinte, et ABSENT quand elle est allumée ? Votre module inverse le signal sur la carte — réglez MODULE_ACTIVE_LOW sur false et relancez, sans toucher au câblage. Si au contraire la broche ne change jamais, la cause habituelle est une erreur de variante : un module 24V alimenté par une ligne 12V allume à peine sa LED. Comparez la LED d'état du module avec la console avant de toucher à quoi que ce soit d'autre.
Bridge : Linux + MCU
Cette section relie les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse voir l'entrée isolée :
- La sortie du PC817 est sur une broche du MCU — le MCU la surveille dans loop(), applique un anti-rebond, l'interprète via MODULE_ACTIVE_LOW, et mémorise chaque changement comme un événement
- Le MPU ne peut pas toucher cette broche — il demande via RPC avec Bridge.call("get_line") pour l'état et Bridge.call("get_event") pour un changement en attente. Il reçoit un "present" / "absent" finalisé, jamais un niveau de broche brut, donc la polarité du module est réglée une fois sur le MCU et plus jamais ensuite. Le MCU ne fait que répondre ; rien du côté Linux ne peut piloter l'entrée isolée
- Le MPU dispose du Wi-Fi — Debian Linux complet, il peut donc enregistrer chaque transition dans un fichier ou envoyer un message Telegram moins d'une seconde après le démarrage de la machine
- Arduino_RouterBridge fournit le lien RPC entre les deux processeurs
- ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur
En résumé : la ligne 24V change → le MCU enregistre l'événement → le MPU l'interroge via Bridge → Linux l'enregistre ou le transmet. Si vous voulez une vue complète de la façon dont les deux processeurs communiquent, consultez Arduino UNO Q - Communication entre Linux et le MCU.
Code MCU (Bridge)
Code Python (Bridge)
Étapes Rapides
- Connecter : Conservez le même câblage — l'optocoupleur reste du côté MCU.
- Ouvrez Arduino App Lab et créez une nouvelle application nommée PC817Bridge.
- Collez le sketch MCU dans sketch/sketch.ino.
- Collez le code Python dans le fichier Python de l'application.
- Si vous avez dû régler MODULE_ACTIVE_LOW sur false dans le premier sketch, réglez-le de la même façon ici — c'est la seule ligne qui doit concorder entre les deux.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Téléverser : Cliquez sur le bouton Exécuter.

- Basculez le signal isolé 12V/24V et observez les deux consoles réagir.
- ⚠️ Avertissement : N'ouvrez pas /dev/ttyHS1 sous Linux et n'utilisez pas Serial1 sur le MCU — l'Arduino Router les possède, et y toucher casse le Bridge.
Sortie Console App Lab
Telegram
Une ligne 12V ou 24V n'a pas de valeur à comparer — elle est présente ou elle ne l'est pas. L'alerte utile ici est donc une alerte de changement d'état : le bot vous envoie un message au moment où la ligne isolée s'active et de nouveau lorsqu'elle se coupe, ce qui sur une armoire de machine se lit comme "démarrée" et "arrêtée".
Si vous n'avez pas encore de bot, consultez d'abord Arduino UNO Q - Bot Telegram.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.
Code Python (Telegram)
Étapes Rapides
- Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre token de bot de BotFather.
- Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
- Changez MACHINE_NAME pour le nom réel de l'équipement auquel appartient la ligne 24V.
- Collez ce code Python dans le fichier Python de votre application, en conservant le même sketch MCU.
- Rien dans ce fichier ne connaît ni ne se soucie de la polarité du module — le MCU l'a déjà résolue, il n'y a donc pas de second réglage à synchroniser.
- Cliquez sur le bouton Exécuter, puis activez et désactivez la ligne isolée — une alerte devrait arriver dans Telegram en moins d'une seconde.
- Envoyez /line à tout moment pour demander si le signal 24V est présent en ce moment.
Sortie Console App Lab
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino UNO Q - OpenClaw Tutorial
Idées de Projets
L'entrée isolée devient bien plus intéressante une fois que le côté Linux entre en jeu :
- Enregistreur de temps de fonctionnement de machine 24V : Amenez la ligne du voyant "en marche" 24V d'une machine sur un module 24V — Python horodate chaque démarrage et arrêt dans un CSV sur le système de fichiers Linux et envoie chaque soir un résumé Telegram avec la durée totale de fonctionnement et le nombre de cycles
- Compteur d'heures de fonctionnement et journal des temps d'arrêt : Utilisez l'entrée isolée uniquement comme moniteur marche/arrêt pour un appareil — Python tient un total cumulé du nombre d'heures pendant lesquelles la machine a été alimentée, du temps passé à l'arrêt entre les tâches et du nombre de démarrages, puis répond à une commande Telegram /hours avec les chiffres de la journée
- Surveillance du voyant de défaut : Placez un second module 24V sur le circuit du voyant de défaut et exposez-le comme sa propre fonction Bridge — Linux vous alerte à l'instant où la ligne de défaut s'allume, et reste silencieux tant qu'elle est éteinte
- Tableau de bord de pompe 12V : Surveillez l'alimentation de la bobine d'une pompe 12V avec un module 12V et servez l'état en direct depuis le côté Linux sous forme d'une petite Arduino UNO Q - Serveur Web, pour que n'importe qui sur le réseau puisse voir si la pompe fonctionne
- Suivi du contact de véhicule : Surveillez un circuit 12V de contact ou de phares — le côté Linux enregistre combien de temps le circuit est resté actif par trajet et envoie le total sur Telegram lorsqu'il se coupe
- Miroir de sortie d'automate : Lisez une sortie d'automate 24V avec l'optocoupleur et reproduisez-la sur un Arduino UNO Q - Relais piloté par une autre broche du MCU, permettant à l'UNO Q de servir de pont sûr entre une armoire industrielle et votre propre matériel basse tension
Relevez le Défi
Prêt à pousser le PC817 plus loin sur Arduino UNO Q ? Essayez ceci :
- Facile : Allumez la LED intégrée chaque fois que la ligne isolée est présente, et remplacez les libellés affichés PRESENT/ABSENT par des termes adaptés à votre propre machine.
- Moyen : Ajoutez une fonction Bridge get_on_count qui compte combien de fois la ligne 24V s'est activée depuis le démarrage, ainsi qu'une fonction get_on_seconds renvoyant depuis combien de temps elle est active dans ce cycle — puis rapportez les deux avec une commande Telegram /stats.
- Avancé : Câblez un module 24V à 4 canaux sur quatre broches du MCU, exposez les quatre états dans un seul appel Bridge, et faites envoyer par Python un seul message Telegram indiquant exactement quel canal a changé — le début d'un petit moniteur d'E/S isolées pour toute une armoire.