Une clé iButton est le plus simple des badges d’accès : une pastille d’acier inoxydable de 16 mm, sans pile, sans électronique visible, qui contient un numéro unique pour toute sa durée de vie. Le RW1990 est la version réinscriptible de cette pastille : le lecteur peut lire son code, mais aussi le réécrire, ce qui en a fait la référence des serruriers et des lecteurs de clés d’immeuble.
Nous livrons la clé avec son support porte-clés : la pastille est sertie dans une poignée en plastique percée pour recevoir un anneau. La couleur du support dépend du stock (noir, rouge, jaune, vert ou bleu selon les lots).
À quoi sert un iButton ?
Le principe repose sur le contact direct : on pose la pastille sur un lecteur, la lecture dure moins de cinq millisecondes, et rien d’autre ne se passe — pas de radio, pas de pile, pas d’usure.
- Contrôle d’accès — badge d’immeuble, porte de local technique, vestiaire, pointeuse.
- Identification unique — chaque pastille porte un code gravé en usine : deux clés ne peuvent pas porter le même.
- Réattribution — un code se réécrit sur la même clé quand un locataire change : une seule référence pour tout le parc.
- Robustesse — le boîtier en acier résiste à la poussière, aux projections d’eau, aux chocs et à l’usure d’un usage quotidien.
- Arduino et microcontrôleurs — la lecture se fait sur une seule broche, avec une résistance de tirage et deux fils.
Caractéristiques techniques
| Référence | RW1990 — iButton réinscriptible, boîtier F5 MicroCan |
|---|---|
| Compatibilité | DS1990A et TM1990A-F5 : même protocole, même brochage, même boîtier. Un lecteur qui accepte un DS1990A accepte un RW1990. |
| Mémoire | 64 bits : 8 bits de code famille (généralement 0x01, comme le DS1990A), 48 bits de numéro de série, 8 bits de CRC de contrôle |
| Protocole | Dallas 1-Wire, un seul fil de données plus la masse |
| Alimentation | 2,8 à 6 V prélevés sur la ligne de données — aucune pile, aucun entretien |
| Lecture | Commande 0x33 (Read ROM), réponse en moins de 5 ms |
| Écriture | Commande 0xD5, propre au RW1990 : le code 64 bits peut être remplacé (voir la variante plus bas) |
| Boîtier de la pastille | Acier inoxydable, diamètre 16 mm (17,35 mm au maximum au niveau du col) |
| Support | Poignée plastique percée pour un anneau porte-clés ; coloris selon stock |
| Température de service | −40 °C à +85 °C (valeurs de la famille iButton / DS1990A) |
| Contenu du sachet | Une clé iButton RW1990 et son support porte-clés |
Deux contacts, un seul fil pour communiquer
Une pastille iButton n’a pas de broches : ses deux contacts sont sa propre mécanique. Le couvercle en acier (la face gravée) porte la donnée, et le rebord du boîtier porte la masse. Le lecteur n’a donc qu’à plaquer deux pièces métalliques sur ces deux zones pour dialoguer avec la clé.
| Couvercle gravé | Donnée du bus 1-Wire DQ. À relier au microcontrôleur, avec la résistance de tirage. |
|---|---|
| Rebord du boîtier | Masse GND. C’est la référence commune du montage. |
| Résistance de tirage | 4,7 kΩ entre DQ et le +5 V. Une 10 kΩ convient aussi pour un câblage court de quelques dizaines de centimètres. |
Le contact doit être franc mais bref : on appuie, on lit, on retire. Un lecteur propre et des contacts secs suffisent — une pastille rayée, sale ou mouillée se nettoie et se relit sans problème.
RW1990 ou DS1990A : quelle différence ?
Les deux pastilles se ressemblent au point d’être interchangeables, et c’est la source d’une bonne part des malentendus :
| DS1990A | Code gravé au laser en usine, définitivement figé. La lecture seule est son unique fonction. Un lecteur d’immeuble ne peut rien y changer. |
|---|---|
| RW1990 | Même protocole et même lecture, mais le code est réinscriptible : une commande d’écriture dédiée remplace les 64 bits. C’est la pastille utilisée pour dupliquer une clé d’accès ou pour recycler un lot de badges. |
Conséquence pratique : si vous comptez réécrire le code, vérifiez la sérigraphie de la pastille. Une face gravée RW1990 accepte l’écriture ; une face gravée DS1990A est verrouillée en usine, et aucun programme ne la modifiera. Pour une clé que le client veut simplement faire reconnaître par un lecteur de clés Dallas, les deux références conviennent.
Mini-projet : un lecteur de clé qui commande une serrure
Le montage complet tient en une quinzaine de minutes : l’Arduino lit le code de la clé posée sur les contacts d’essai, le compare à un code autorisé et colle un relais trois secondes — l’équivalent d’une gâche électrique.
Ce qu’il faut
| La clé | L’iButton RW1990 de cette page, avec son support |
|---|---|
| Le cerveau | Uno R3 + câble USB |
| Les contacts d’essai | Deux fils rigides (les câbles Dupont font l’affaire) : l’un appuie sur le couvercle gravé, l’autre sur le rebord du boîtier |
| Le tirage du bus | Résistance 1/4 W 10 kΩ entre la donnée et le +5 V |
| La serrure | Module 1 relais 5 V |
| La plaque d’essai | Plaque d’essai 830 points |
La pastille se tient à la main contre les deux contacts pendant la lecture : c’est suffisant pour mettre le programme au point. Pour un lecteur définitif, soudez deux languettes de laiton espacées qui forment un berceau, ou montez la pastille dans un support lecteur du commerce.
Le câblage
| Clé — couvercle gravé | → Arduino D2, et résistance de 10 kΩ vers le 5V |
|---|---|
| Clé — rebord du boîtier | → Arduino GND |
Relais IN | → Arduino D7 |
Relais VCC | → Arduino 5V |
Relais GND | → Arduino GND |
Relais COM et NO | → en série avec l’alimentation de la gâche ou de la serrure |
Le programme
Installez la bibliothèque OneWire depuis le gestionnaire de bibliothèques de l’IDE Arduino, puis téléversez :
/*
* Lecteur de cle iButton RW1990 - commande de serrure
* Carte : Arduino Uno R3
* Bibliotheque requise : OneWire
* Montage : pastille 1-Wire sur les contacts d'essai, module relais sur D7
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "OneWire.h"
const byte PIN_BUS = 2; // ligne de donnees 1-Wire
const byte PIN_RELAIS = 7; // entree IN du module relais
OneWire bus(PIN_BUS);
// Code 64 bits de la cle autorisee, releve une fois dans le moniteur serie
byte cleAutorisee[8] = {0x01, 0x2F, 0x1F, 0x9F, 0x0B, 0x00, 0x00, 0x5A};
void afficherCode(byte *code) {
Serial.print("Code lu :");
for (byte i = 0; i != 8; i++) {
Serial.print(" ");
Serial.print(code[i], HEX);
}
Serial.println();
}
void setup() {
pinMode(PIN_RELAIS, OUTPUT);
// La plupart des modules relais se collent sur un niveau BAS :
// on force donc l'etat relache au demarrage, serrure fermee.
digitalWrite(PIN_RELAIS, HIGH);
Serial.begin(9600);
Serial.println("Presentez la cle sur les contacts");
}
void loop() {
byte lue[8];
bus.reset(); // impulsion de remise a zero du bus 1-Wire
bus.skip(); // une seule cle sur le bus : on saute la selection
bus.write(0x33); // 0x33 = commande Read ROM
for (byte i = 0; i != 8; i++) {
lue[i] = bus.read();
}
if (lue[0] != 0xFF) { // 0xFF partout : aucune cle posee sur les contacts
afficherCode(lue);
if (memcmp(lue, cleAutorisee, 8)) {
Serial.println("Cle inconnue - acces refuse");
} else {
Serial.println("Cle autorisee - ouverture");
digitalWrite(PIN_RELAIS, LOW); // colle le relais : la serrure s'ouvre
delay(3000);
digitalWrite(PIN_RELAIS, HIGH); // relache le relais : la serrure se referme
Serial.println("Serrure refermee");
}
}
delay(300);
}Comment ça marche
bus.reset()envoie l’impulsion de remise à zéro : si une pastille est posée sur les contacts, elle répond par une brève mise à la masse. C’est le seul signe de présence, et il n’y a rien à interroger sans lui.bus.write(0x33)est la commande Read ROM. Une seule clé étant sur le bus, il est inutile de l’identifier avant : la commandeskip()adresse directement la pastille présente.- Les huit octets lus constituent le code complet : code famille, numéro de série et CRC. C’est ce que le moniteur série affiche, et c’est cette suite de valeurs qu’il faut recopier dans
cleAutoriseeaprès un premier relevé. memcmpcompare les huit octets d’un coup et renvoie zéro quand les codes sont identiques. Remplacer cette comparaison par une liste de trois ou quatre codes autorisés ne demande que quelques lignes de plus.- La pastille se nourrit du bus : aucun fil d’alimentation ne va vers la clé, tout passe par la broche de données et la masse.
Si votre serrure fait l’inverse de ce que vous attendez, c’est le relais qui est en cause : de nombreux modules se déclenchent sur un niveau haut et non sur un niveau bas. Inversez LOW et HIGH dans le programme, aucun composant n’est en défaut.
Pour aller plus loin
- Plusieurs clés autorisées — un tableau de codes, comparé en boucle, remplace la clé unique.
- Un signal visuel — une LED rouge sur une sortie libre indique le refus, une verte l’ouverture.
- Un retour sonore — un buzzer actif bipe à chaque lecture réussie.
- Une serrure connectée — la même lecture fonctionne sur une carte ESP32 ou un NodeMCU ESP8266, avec l’historique des passages envoyé sur le réseau.
Variante : changer le code de la clé
Le RW1990 sait faire une chose que le DS1990A ne fera jamais : accepter un nouveau code. Cela se fait par la commande 0xD5, et cette écriture ne ressemble pas à un simple envoi de données.
- La commande vient après une lecture complète du code existant : la pastille exige d’avoir été lue juste avant d’accepter une écriture.
- Chaque bit est suivi d’un maintien du bus au niveau haut pendant environ 10 ms : c’est le temps d’écriture de la mémoire interne.
- Les bits sont envoyés inversés par rapport à la lecture — un zéro logique s’écrit comme un niveau bas très court, un un comme un niveau bas immédiat.
- La bibliothèque OneWire ne couvre pas cette commande : il faut écrire la séquence soi-même, ou utiliser une bibliothèque dédiée au RW1990, puis relire la clé pour vérifier le nouveau code.
En pratique, la manœuvre la plus utile reste de lire une clé d’origine et d’écrire son code sur une pastille RW1990 vierge : la copie se comporte alors comme l’originale sur tous les lecteurs compatibles Dallas. Faites-le uniquement sur des clés qui vous appartiennent ou pour lesquelles vous avez l’accord du propriétaire du système d’accès.
Questions fréquentes
Faut-il une pile dans la clé ?
Non, et c’est tout l’intérêt du format. La pastille tire son énergie du bus au moment du contact : sans lecteur, elle ne consomme rien. Une clé iButton ne tombe donc jamais en panne de pile, même après des années dans une poche.
Puis-je l’utiliser sur l’interphone de mon immeuble ?
Si votre interphone lit les clés Dallas 1-Wire, oui : le RW1990 est fait pour cela et se comporte comme la pastille d’origine. En revanche, un lecteur de badge à radiofréquence (13,56 MHz ou 125 kHz) ne verra jamais cette clé : ce sont deux technologies sans rapport, qui ne communiquent ni par les mêmes ondes ni par les mêmes protocoles.
Comment lire le code sans rien souder ?
Deux fils suffisent : l’un maintenu sur le couvercle gravé, l’autre sur le rebord du boîtier, et une résistance de tirage vers le +5 V. C’est le montage du mini-projet ci-dessus, et c’est aussi la façon dont procèdent les kits de lecture 1-Wire vendus dans le commerce — sous forme d’un berceau métallique dans lequel on pose la clé.
Le numéro gravé est-il vraiment unique ?
Oui. Le numéro de série occupe 48 bits, soit environ 281 000 milliards de combinaisons, et l’octet de CRC permet au lecteur de détecter une lecture corrompue. Deux pastilles ne peuvent pas porter le même code, ce qui permet de s’en servir comme identifiant fiable sans base de données centrale.
La clé fonctionne-t-elle mouillée ou sale ?
Oui, tant que les deux surfaces de contact sont conductrices. Le boîtier en acier est fait pour l’extérieur : poussière, pluie et chocs ne l’atteignent pas. Un nettoyage au chiffon sec suffit si la lecture devient capricieuse — c’est presque toujours un problème de contact et non de mémoire.
Le support est-il démontable ?
La pastille est sertie dans la poignée plastique et n’a pas à en sortir pour être lue : le couvercle gravé reste accessible de face. Le trou à l’extrémité reçoit un anneau ou un mousqueton pour l’accrocher au trousseau.
À combiner avec
Pour le mini-projet sans rien chercher d’autre, le KIT Starter contient déjà la carte Uno, la plaque d’essai, les fils et les résistances : il ne manque que la clé et un module relais pour avoir une serrure complète. Pour élargir la base, le Kit Arduino Uno maroc couvre davantage de montages, et une carte Nano convient parfaitement si le lecteur doit tenir dans un boîtier mural étroit. Si votre projet démarre plutôt côté badges sans contact, comparez avec le module RFID RC522 : il lit des cartes à 13,56 MHz, là où l’iButton se lit par contact.










Avis
Il n’y a pas encore d’avis.