[Test] Arduino Uno, prêt pour de la domotique accessible ?

Il y a quelques temps, on ma confié un Arduino Uno afin que j'en produise un test. Pour les gens qui ne connaissent pas ce type de produit, il s'agit d'une carte électronique capable de recevoir de l'information via divers capteurs et de contrôler plusieurs sorties électroniques. L'objectif d'un tel matériel est de faire ni plus ni moins que de la domotique.

Je ne suis pas du tout électronicien mais j'ai cependant quelques bases suite à ma filière S-SI au lycée. J'ai donc porté un intérêt tout particulier à cette carte et ce qu'elle pouvait fournir. Il n'est pas inutile de rappeler que je suis sur une Debian et que l'ensemble de mon travail devait pouvoir se faire à travers cet environnement. En parcourant la documentation, il s'avère qu'on peut développer sur cette carte qu'on soit sur une distribution Linux, un Windows ou bien sur un Mac OS X. L'installation des logiciels sur mon environnement était très simple. En effet Debian fournit des packages dédiés pour jouer avec les cartes Arduino. Il faut noter que pour les autres grandes distributions, c'est du pareil au même, c'est donc un premier bon point.

J'avais une grande appréhension quant au langage de développement qui allait être utilisé. Des lectures que j'ai pu faire de la domotique, le C est beaucoup utilisé et je n'ai pas spécialement d'affinité avec ce langage (je ne l'utilise pour ainsi dire jamais). Au final, j'ai été une nouvelle fois étonné puisque Arduino a pensé aux gens comme moi qui n'auraient pas eu les compétences requises en C. Arduino fournit en effet un outil de développement dont le langage se rapproche énormément de Processing. Sans aller à les comparer en terme de fonctionnalité, je m'arrêterai simplement sur l'écriture qui s'en rapproche beaucoup. Le langage facilite énormément le développement puisque une fois la carte branchée, il suffit de commencer à développer en ne se posant que des questions fonctionnelles. On déploie le code quasi instantanément et le rendu est direct. La documentation est évidement très complète et permet de développer rapidement des choses sans se prendre la tête. Cependant, pour les allergiques au Java, vous devrez quand même installer une jvm pour pour lancer l'éditeur et je suppose que c'est ce même langage qui est envoyé et exécuté sur la bestiole.

IDE Arduino

Voici un bout de code faire clignoter aléatoirement 3 leds :

// Les 3 sorties de la carte qui identifient les entrées des 3 leds
int leds[] = {11, 12, 13};
int i;

// code exécuté que la carte est réinitialisée 
void setup() {
  for (i = 0; i < 4; i++) {         
    pinMode(leds[i], OUTPUT);
  }
}

// code exécuté à fréquence de temps régulière
void loop() {
  int level = random(3);
  
  // suivant le nombre aléatoire tiré, on aliment ou pas les leds
  for(i = 0; i<4; i++) {
    if(i == level) {
      digitalWrite(leds[i], HIGH);
    }
    else {
      digitalWrite(leds[i], LOW);
    }
  }

  delay(100);
}
// Ce n'est vraiment pas compliqué :)

La carte n'était pas livrée seule, c'est une plaque d'essais et une belle quantité de composants qui l'accompagnaient. On reconnaîtra des fils de connexions, des résistances, des leds, des boutons poussoirs et bien d'autres choses.

Arduino, composants électroniques

C'est à ce moment que ce glisse le vrai problème rencontré. Bien que l'ensemble de ces composants se suffit pour bidouiller et faire plein de choses, sans matériels complémentaires, ça devient compliqué d'assembler les circuits. Ce n'est pas de la faute d'Arduino mais si vous deviez faire l'acquisition d'un tel outil, ne serait-ce que dans un objectif pédagogique, prenez soin de vous munir d'outils en plus.

Les quelques circuits que j'ai pu bricoler étaient des modifications simples des exemples de la documentation. J'envisage de m'acheter la carte Arduino Ethernet : je souhaite effectivement travailler sur un monitoring de mes serveurs. Cette version de carte (Arduino Uno) manque de l'interface réseau pour pouvoir rentrer vraiment dans mes besoins personnels et mes compétences en électronique trouvent vite leurs limites.

C'est un excellent produit et je présume que beaucoup de personnes se sont déjà empressées de jouer avec. Si vous êtes curieux et que le monde de la domotique vous intéresse, je vous recommande fortement cette marque qui a mis toutes les billes du coté du développeur : vous.

Une note supplémentaire qui donnera le sourire aux anglophobes (la doc officielle n'existe pas en français), vous pourrez trouver un tas d'informations et notamment des tutoriels videos sous-titrés sur Arduino de RS Components.

Simon Vieille

Capture, un reverse proxy pour analyser les requêtes de vos applications

Capture, un reverse proxy pour analyser les requêtes de vos applications

Capture est un reverse proxy HTTP qui se place entre votre application cliente et une API. C…

Un modèle pour démarrer un script shell

Un modèle pour démarrer un script shell

J'ai régulièrement le besoin d'écrire des scripts shell un peu évolués. Il y a quelques mois…

Gitea et forgejo v1.19.0 sont dans les bacs 🥳

Gitea et forgejo v1.19.0 sont dans les bacs 🥳

Le 20 mars dernier a été publiée la version v1.19.0 de Gitea ! Forgejo, le soft fork de Gite…


  • Tom23
  • J'ai cherché, il y a quelques mois, un moyen peu couteux, libre et compatible avec linux et les les diverses technologies domotiques du marché. J'avais finit pas me dire qu'une machine sous debian à base d'arm type dockstar sur laquelle j'installerai Domogik (http://www.domogik.org/) couplé à un controleur usb quelconque serait le plus efficace. L'arduino, ça demande plus de boulot si on veut que ça fonctionne avec les technos existantes comme le X10, RFXcom etc
  • Ricard
  • @Tom. Il a raison, la doc officielle n'existe pas en français. On trouve de la doc en français, ça n'en fait pas une doc officielle pour autant.
    Merci pour cet article sympathique en tout cas.
  • guillaume
  • Oulala non ! Si l'éditeur est en java, en revanche la JVM ne tourne pas sur l'Arduino et heureusement. D'ailleurs si c'était le cas on programmerait directement en java et pas dans un langage dédié, mais je n'ose pas penser aux performances... Non, le code est tout simplement cross-compilé en assembleur pour le proc atmel AVR, et cet assembleur est directement exécuté par le microcontroleur.

    A lire https://en.wikipedia.org/wiki/Wiring_%28development_platform%29 il semble que le programme passe par une étape de C++ avant compilation.
  • Morkitu
  • L'objectif d'un tel matériel est de faire ni plus ni moins que de la domotique.
    Attention, les cartes arduino ne sont pas conçu exclusivement pour réaliser des solutions domotique (pour rappel, la domotique c'est l'automatisation des maisons); On peut faire plein d'autres choses avec, comme de la robotique par exemple.
    Attention donc à ne pas utiliser le mot domotique à tous va.

Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler