Dans mon billet précédent, je vous avais présenté mes premières expérimentations de communication Zigbee avec une carte Raspberry Pi comme serveur domotique grâce au service Zigbee2MQTT. Malgré un catalogue de composants Zigbee déjà bien fourni, il me fallait encore une carte Zigbee prototype avec plusieurs entrées-sorties, réutilisable en fonction des projets menés. C’est là que la carte Zigbee 4 Channel Relay intervient :
Zigbee 4 channel Relay,
Ce billet fait suite au tutoriel Des capteurs connectés pour la maison avec Arduino et Raspberry Pi.
Dans ce tutoriel, j’avais utilisé un module Si7021 comme capteur de température et d’humidité relative relié à une carte Arduino Uno R4 WiFi. La carte communique en WiFi avec le protocole de messagerie MQTT pour envoyer ses données de mesure à une carte Raspberry Pi.
Noeud de capteurs pour la température et humidité relative
Une sonde embarquée dans une chaussure pour tricher aux Échecs
Je reprends ici les travaux de Jack Hollingsworth dans son article sur instructables.com : Von Niemann Probe (Licence CC BY-NC-SA)
Cette talonnette connectée en Bluetooth peut vibrer discrètement dans la chaussure du joueur d'échecs qui est alors informé en direct et à distance du meilleur coup à jouer.
La talonnette embarque
Ce n'est pas la caractéristique la plus amusante des Arduino Uno R4, mais c'est quand même celle qui risque d'endommager votre carte si vous passez à côté...
Une caractéristique importante est le courant maximum que peut conduire une broche d'entrée-sortie numérique (ou DC current per I/O pin) :
Extraits docs. Arduino Uno R3 et R4
Et le moins qu'on puisse dire, c'est que le seuil de tolérance pour une broche numérique est
En Verilog/SystemVerilog, on peut trouver ce genre de code :
Mais que fait ce code ? Il renvoie Vrai si a est inférieur ou égal à b... Non, ce n'est pas ça. Le signe <= est surement un opérateur d'affectation : je mets b dans a... puis a dans b ? C'est pour échanger les valeurs de a et b (swap) ? Mais ça ne peut pas fonctionner, car « normalement » pour faire l'échange, il faut passer par une variable temporaire :
Code SystemVerilog : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 a <= b; b <= a;
Code C : Sélectionner tout - Visualiser dans une fenêtre à part temp = a; a = b; b = temp;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.