Demande.tn

🔒
❌
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 22 septembre 2017Projets DIY

Plus que 3 jours de promos chez Amazon et Sonoff sur les équipements domotiques

Par christophe

Il ne reste plus que quelques jours pour profiter des grosses promos de la rentrée proposées par Amazon et Sonoff sur sa boutique AliExpress ! Trop tard pour profiter du Raspberry Pi 3 en promo à 29,17€ chez Gearbest mais il est toujours au prix très raisonnable de 37,70€ chez Amazon.

Il reste encore quelques offres intéressantes chez Amazon

Il y a encore de grosses remises (de 10 à 40%) sur de nombreux produits Sonoff sur la boutique AliExpress d’Itead :

  • Le module de commande WiFi 4 relais Sonoff 4CH et 4CH Pro (alimentation 5-24VDC, commande radio RF) présenté ici
  • La prise connectée Sonoff S20 hackée pour installer le firmware ESP Easy dans ce tutoriel

La promo se termine dans trois jours

La plupart des produits Sonoff sont certifiés FC/CE (à l’exception des anciens modèles. Basic, S20…). Tous les produits Sonoff WiFi utilisent un SoC ESP8285 sur lequel il est très facile d’installer un autre firmware Open Source. Le plus connu ESP Easy, mais également Tasmota ou Espurna. De nouveaux tutoriels arrivent pour expliquer comment faire… En attendant, bon shopping !

Cet article Plus que 3 jours de promos chez Amazon et Sonoff sur les équipements domotiques est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Programmer l’ESP8266 avec l’IDE Arduino : librairies, GPIO, Web Serveur, Client Web

Par christophe

Les modules WiFi ESP8266 peuvent remplacer dans beaucoup d’applications l’Arduino en ajoutant à moindre coût la connectivité Wi-Fi. Au lancement des modules ESP8266 (en 2014), la langage de programmation de prédilection était de Lua (on peut d’ailleurs toujours programmer dans ce langage !). Rapidement, la grande majorité des librairies Arduino ont été adaptées pour fonctionner sur l’ESP8266. Aujourd’hui il est aussi simple de programmer un module ESP8266 qu’un Arduino en C++. Nous allons découvrir dans ce tutoriel comment installer les librairies nécessaires sur l’IDE Arduino, et découvrir au travers d’exemples simples les bases de la programmations de l’ESP8266.

Installer les cartes et les librairies pour les modules ESP8266 sur l’IDE Arduino

Lancez l’IDE Arduino et ouvrez les préférences depuis le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences… Cliquez sur l’icône indiquée par la flèche rouge sur la photo ci-dessous.

ide arduino esp8266 preference

Dans le champ de saisie, collez l’adresse internet suivante puis validez

http://arduino.esp8266.com/staging/package_esp8266com_index.json

ide arduino libraire url esp8266

Cela permet d’indiquer à l’IDE Arduino qu’il doit aller sur le site arduino.esp8266.com afin d’aller y récupérer d’autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de Cartes et enfin Gestionnaire de carte

 ide arduino gestionnaire carte

Dans le champ de recherche, saisissez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n’apparaissent pas, vérifiez dans les préférences que l’URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer.

ide arduino install esp8266 board

L’installation ne dure que quelques minutes. L’installation terminée, fermez le gestionnaire de carte et ouvrez de nouveau le menu Outils. Dans le sous-menu Type de Carte, vous avez maintenant une nouvelle section appelée ESP8266 Modules.

ide arduino esp8266 board list

Les principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) se trouvent dans le menu. Pour les autres modules, choisissez simplement Generic ESP8266 Module.

Pour afficher le exemples installés avec les cartes ESP826, if suffit de choisir dans la liste puis d’aller dans le Fichier -> Exemples.

Avant d’aller plus loin, remarque sur l’ESP-01

esp8266 esp-01 module WifiL’ESP-01 est une version plus limitée de l’ESP8266. Il ne dispose que de 2 GPIO. Le module dispose d’une mémoire flash plus petite (de 512Ko à 1MB). La programmation est identique mais “plus pénible” car il faut mettre le module dans un mode particulier avant de pouvoir téléverser le programme (Bootload mode). Ce n’est pas un module adapté pour l’apprentissage et débuter avec l’ESP8266. Si toutefois vous avez besoin d’infos, vous trouverez plusieurs tutoriels sur le blog en faisant une recherche avec le mot clé ESP-01 dans le champ de recherche situé dans le coin supérieur droit de la page.

Différences entre Arduino et ESP8266, repérage des broches

L’ESP8266 dispose de 9 E/S numériques au lieu de 14 pour l’Arduino Uno. Alors que sur l’Arduino Uno il n’y a que 6 sorties qui supportent le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l’ESP8266 peuvent générer un signal PWM.

En résumé

Arduino / Genuino 101 ESP8266 (ESP-12x)
Micro-contrôleur Arduio Uno et la plupart des cartes compatibles : ATmel ATmega328p

Le nouveau Genuino 101 : Intel Curie

Tensilica Xtensa LX106
WiFi
Bluetooth LE
Adressage 8…32bits 32bits
Fréquence d’horloge 16 MHz 80 MHz
Mémoire flash 32ko 512…4Mo (1)
Nombre d’E/S x14 x11 (D0…D8 + RX/TX)
Nombre de sorties PWM Arduino Uno et clones : x6 (3, 5, 6, 9, 10, 11)

Arduino 101 : x4

Toutes les sorties sont PWM
Nombre d’entrées analogiques x6 (A0..A5), 10bits, 5V max. x1 (A0), 10 bits, 1V max. (2) 
UART (port série) x1 x1 (3)
I2C x1 x1
SPI x1 x1
Documentation technique Arduino Uno R3

Genuino 101

version 5.4

Le repérage des broches est légèrement différent sur l’ESP8266. Chaque sortie est précédée d’un D (pour Digital probablement). Dans un programme Arduino, on peut directement utiliser le repère indiqué sur la carte D1 ou l’équivalent Arduino 5.

(1) Mémoire externe. Aujourd’hui, presque tous les modèles disposent de 4Mo de mémoire flash. La totalité n’est pas exploitable toutefois. Une partie est réservée au stockage de données (stockage de données utilisateur, interface HTML et code javascript de l’interface…). C’est la zone SPIFFS présentée dans cet article.

(2) L’ESP8266 accepte 1V maximum sur la broche analogique. Certains modules de intègrent un pont diviseur de tension qui permet de monter la tension. Par exemple la Wemos d1 mini accepte 3,3V max. 

(3) Un seul port série utilisable. L’autre broche TX est utilisée durant l’écriture de la mémoire flash

Attention. Chaque fabricant est libre d’attribuer les broches. C’est notamment le cas des broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui récapitule les broches des principales cartes en vente
Broches ESP8266 Remarque Equivalent Arduino / Genuino 101 Autre utilisation
TX 1 CS1, TXD0
RX 3 RXD0
D0 PWM (1) 16 WAKE
D1 PWM 5
D2 PWM 4
D3 PWM 0 CS2
D4 PWM 2 TXD1
D5 PWM 14 CLK
D6 PWM 12 MISO
D7 PWM 13 MOSI, RXD2, CTS0
D8 PWM 15 CS, TXD2, RTS0
RST RST
A0 3.3V max. A0
3V3 3V
5V 800 mA maxi.
G GND (x3)

(1) Relié à la broche GND à la mise sous tension pour mettre l’ESP en bootload mode. Ce mode permet de ré-installer le firmware d’origine ou charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de carte. Cette opération est donc inutile, le téléversement est transparent.

Généralement, les fabricants publient un schéma des broches (pinout) qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d’une WeMos d1 mini. Ce schéma de branchement est valable pour toutes les cartes à base de module ESP-12x.

Correspondance Pins GPIO WeMos D1 mini

Si vous voulez vous lancer dans la programmation en Lua, le numéro de broche à utiliser dans le code est également indiqué.

Attention au GPIO qui fonctionne à une tension de 3.3V

Particularité de l’ESP8266 par rapport à l’Arduino Uno (ce n’est plus le cas pour le Genuino 101 et les nouvelles cartes à base d’Intel Curie), le GPIO fonctionne sous une tension de 3,3V. Il faudra donc dans certain cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V vers 3.3V) ou l’inverse (3.3V vers 5V).

Comment programmer l’ESP8266 avec l’IDE Arduino ?

Matériel et circuit de test

Voici un petit montage à réaliser avec un ESP8266 (ici une WeMos d1 mini) et une Led qui vous permettra de tester les différents codes proposés dans ce tutoriel.

Pour mémoire, voici un tableau récapitulatif de la tension d’alimentation typique en fonction de la couleur et du diamètre de la Led.

Couleur Longueur d’onde (nm) Tension (V) pour diamètre  3mm Tension(V) pour diamètre  5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc  460-470 3,0-3,2 1,9-2,1

La programmation classique

La première chose à savoir lorsqu’on débute avec un module ESP8266, c’est qu’on peut le programmer exactement comme un Arduino. Contrairement aux micro-contrôleurs ATTiny, moins puissants, le SoC de l’ESP8266 est capable d’exécuter toutes les commandes C++ du code Arduino. La seule condition à respecter est d’utiliser la librairie adaptée pour ce dernier dès qu’on veut utiliser le WiFi (paragraphe suivant).

Ouvrez l’IDE Arduino et collez ce code dans un nouveau projet avant de le téléverser.

Que fait ce programme ?

  • Une variable de type entier (int) permet d’indiquer sur quelle sortie la Led est branchée
  • Dans la boucle setup(), on indique que la broche (ici 16) est une sortie (OUTPUT)
  • La boucle loop() s’execute à l’infini. A chaque passage
    • On met la sortie (16) au niveau bas (LOW), c’est à dire que la tension de sortie est nulle (pas de courant)
    • On attend 1 seconde. Le délais (Delay) est indiqué en millisecondes (1000ms = 1s)
    • On met la sortie (16) au niveau haut (HIGH), c’est à dire que la tension de sortie est de 5V (le courant passe)
    • On attend 2 secondes
    • Et ainsi de suite
int led = 16;

void setup() {
  pinMode(led, OUTPUT);     // Initialise la broche "led" comme une sortie - Initialize the "LED" pin as an output
}

// Cette boucle s'exécute à l'infini
// the loop function runs over and over again forever
void loop() {
  digitalWrite(led, LOW);   // Eteint la Led - Turn the LED OFF 
  delay(1000);              // Attendre 1 seconde - Wait for a second
  digitalWrite(led, HIGH);  // Allume la Led - Turn the LED off by making the voltage HIGH
  delay(2000);              // Pause de 2 secondes - Wait 2 secondes
}

Maintenant, remplacez dans la sortie 16 par le repérage équivalent de l’ESP8266, à savoir D0, ce qui donne 

int led = D0;

Comme vous pouvez le constater, le programme fonctionne à l’identique.

Remarque. Même si la variable est de type int (integer), on écrit une chaine de caractère dans le code. C’est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la librairie ESP8266.

Programmation Web Serveur : connecter l’ESP8266 au réseau WiFi

La programmation Web Serveur permet d’ajouter une interface Web (écrite dans le langage HTML et javascript) à un projet ESP8266. C’est également possible avec un Arduino mais cela prend tout son sens avec un ESP8266 qui nativement dispose d’une connexion WiFi.

Reprenons le code précédent et ajoutons les deux librairies nécessaires

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

On va créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui va contenir le serveur Web (objet C++)

const char* ssid = "xxxx";           // Identifiant WiFi
const char* password = "xxxxxxxxx";  // Mot de passe WiFi
ESP8266WebServer server(80);         // On instancie un serveur qui ecoute sur le port 80

Le code de la fonction setup fait les opérations suivantes

  • Serial.begin(115200)
      on ouvre le port série à 115200 bauds
  • WiFi.begin(ssid, password)
      l’ESP8266 se connecte au réseau WiFi
  • La boucle while écrit un point sur le port série toute les 500ms jusqu’à ce que l’ESP8266 soit connecté au WiFi
    WiFi.status() != WL_CONNECTED
     (très mauvaise idée lorsqu’on fonctionne sur batterie d’ailleurs, mais c’est juste pour comprendre le fonctionnement)
  • Serial.println(WiFi.localIP())
     écrit sur le port série l’adresse IP attribuée par la box internet ou le routeur à l’ESP8266
  • server.on("/", [](){
      server.send(200, "text/plain", "Page d'accueil");   // Ajoute un point d'entree, une page web 
    });
    On ajoute un point d’entrée, c’est à dire une adresse internet (URL) sur laquelle on affichera pour le moment un simple texte
  • server.on("/parametres", [](){
      server.send(200, "text/plain", "Une page de parametres");
    });
    Une seconde page qui pourrait être une page de paramètres
  • server.begin()
     enfin, on démarre le serveur web

Il ne reste plus qu’à demander à l’ESP8266 d’écouter les demandes et d’afficher les pages correspondantes. Pour cela on ajoute la commande 

server.handleClient()
 dans la fonction loop().

Collez le code complet dans un nouveau projet et téléversez le sur la WeMos.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "XXXX";           // Identifiant WiFi
const char* password = "XXXXXXXXX";  // Mot de passe WiFi
ESP8266WebServer server(80);         // On instancie un serveur qui ecoute sur le port 80

int led = D0;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");
  // on attend d'etre connecte au WiFi avant de continuer
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // on affiche l'adresse IP attribuee pour le serveur DSN
  Serial.println("");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  
  // on definit les points d'entree (les URL a saisir dans le navigateur web) et on affiche un simple texte 
  server.on("/", [](){
    server.send(200, "text/plain", "Page d'accueil");
  });
  server.on("/parametres", [](){
    server.send(200, "text/plain", "Une page de parametres");
  });
  // on demarre le serveur web 
  server.begin();
  pinMode(led, OUTPUT);     // Initialise la broche "led" comme une sortie - Initialize the "LED" pin as an output
}

// Cette boucle s'exécute à l'infini - the loop function runs over and over again forever
void loop() {
  // a chaque iteration, la fonction handleClient traite les requetes 
  server.handleClient();
  
  digitalWrite(led, LOW);   // Eteint la Led - Turn the LED OFF 
  delay(1000);              // Attendre 1 seconde - Wait for a second
  digitalWrite(led, HIGH);  // Allume la Led - Turn the LED off by making the voltage HIGH
  delay(1000);              // Pause de 2 secondes - Wait 2 secondes
}

Ouvrez le moniteur série pour récupérer l’adresse IP de l’ESP8266 sur le réseau local.

Ouvrez maintenant un navigateur internet er saisissez l’adresse IP ou IP_ESP8266/parametres.

Et voilà, en quelques lignes de code, vous venez de connecter l’ESP8266 au réseau local (et internet par la même occasion). Vous pouvez accéder à une interface WEB depuis n’importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box internet ou routeur, vous pouvez même accéder à l’interface hors de chez vous avec une connexion 3G/4G.

Attention. La connexion n’est pas chiffrée. Elle n’est pas protégée. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)

Programmation Web Serveur : piloter le GPIO depuis internet !

Nous allons maintenant voir comment ajouter des commandes pour piloter le GPIO depuis une interface. Il existe plusieurs méthodes pour générer le code HTML de l’interface qui sera envoyée au navigateur internet. Ici, on va simplement créer une chaine (String) qui va contenir le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce qu’il faut retenir :

  • Le code HTML est construit en assemblant des chaines de caractères
  • Il est possible d’intégrer le contenu de variable. Ici l’état de la sortie D0contenu dans la chaine etatD0.
  • Chaque changement d’état est envoyé au serveur web qui tourne sur l’ESP8266 à l’aide d’un formulaire sous la forme d’une requête HTTP de type POST.
  • Ici, l’actualisation est déclenchée manuellement en appuyant sur un bouton (submit)
String getPage(){
  String page = "<html lang=fr-FR><head><meta http-equiv='refresh' content='10'/>";
  page += "<title>ESP8266 Web Server Demo - www.projetsdiy.fr</title>";
  page += "<style> body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }</style>";
  page += "</head><body><h1>ESP8266 Web Server Demo</h1>";
  page += "<h3>GPIO</h3>";
  page += "<form action='/' method='POST'>";
  page += "<ul><li>D0 (etat: ";
  page += etatD0;
  page += ") ";
  page += "<INPUT type='radio' name='D0' value='1'>ON";
  page += "<INPUT type='radio' name='D0' value='0'>OFF</li></ul>";
  page += "<INPUT type='submit' value='Actualiser'>";
  page += "<br><br><p><a hrf='https://www.projetsdiy.fr'>www.projetsdiy.fr</p>";
  page += "</body></html>";
  return page;
}

Maintenant, on modifie dans le setup le point d’entrée vers la page d’accueil. On branche le point d’entrée “/” vers la fonction handleRoot.

server.on ( "/", handleRoot );

Lorsqu’on affiche la page principale (“/”) ou que le serveur web reçoit une requête POST (actualisation du GPIO), la fonction handleRoot est appelée. La fonction server.hasArg permet brancher des actions. Ici, si la requête contient l’argument (hasArg), alors c’est qu’on doit changer l’état du GPIO. On exécute la fonction handleSubmit, sinon on actualise la page.

void handleRoot(){ 
  if ( server.hasArg("D0") ) {
    handleSubmit();
  } else {
    server.send ( 200, "text/html", getPage() );
  }  
}

La fonction handleSubmit récupère la valeur de l’argument “D0” avec la fonction server.arg puis il suffit de tester la valeur de celle-ci pour réaliser le bon traitement. Attention, c’est une chaine de caractère. Il faut donc tester comme ceci == “1” et non pas == 1. On en profite pour stocker l’état de la sortie dans la variable etatD0.

void handleSubmit() {
  // Actualise le GPIO / Update GPIO 
  String LEDValue;
  LEDValue = server.arg("D0");
  Serial.print("Set GPIO to "); Serial.println(LEDValue);
  if ( LEDValue == "1" ) {
    digitalWrite(D0, 1);
    etatD0 = "On";
    server.send ( 200, "text/html", getPage() );
  } else if ( LEDValue == "0" ) {
    digitalWrite(D0, 0);
    etatD0 = "Off";
    server.send ( 200, "text/html", getPage() );
  } else {
    Serial.println("Err Led Value");
  }
}

Collez le code complet suivant en modifiant identifiant et mot de passe WiFi.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "XXXX";          // Identifiant WiFi
const char* password = "XXXXXXXX";  // Mot de passe WiFi
ESP8266WebServer server(80);        // On instancie un serveur qui ecoute sur le port 80

int led = D0;
String  etatD0 = "Off";

String getPage(){
  String page = "<html lang=fr-FR><head><meta http-equiv='refresh' content='10'/>";   // C'est du code HTML, la page s'auto-actualise    
  page += "<title>ESP8266 Web Server Demo - www.projetsdiy.fr</title>";               // Titre de la barre du navigateur
  page += "<style> body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }</style>"; // style de la page
  page += "</head><body><h1>ESP8266 Web Server Demo</h1>";  // Titre de la page (H1)
  page += "<h3>GPIO</h3>";                                  // Sous-titre (H3)
  page += "<form action='/' method='POST'>";                // Le formulaire sera envoye avec une requete de type POST 
  page += "<ul><li>D0 (etat: ";                             // Premiere ligne de la liste (ul) avec D0
  page += etatD0;                                           // on concatene la chaine contenant l'etat de la sortie
  page += ") ";
  page += "<INPUT type='radio' name='D0' value='1'>ON";     // Bouton pour activer D0
  page += "<INPUT type='radio' name='D0' value='0'>OFF</li></ul>"; // et le desactiver
  page += "<INPUT type='submit' value='Actualiser'>";       // Bouton d'actualisation
  page += "<br><br><p><a hrf='https://www.projetsdiy.fr'>www.projetsdiy.fr</p>";
  page += "</body></html>";
  return page;
}
void handleRoot(){ 
  if ( server.hasArg("D0") ) {
    handleSubmit();
  } else {
    server.send ( 200, "text/html", getPage() );
  }  
}

void handleSubmit() {
  // Actualise le GPIO / Update GPIO 
  String LEDValue;
  LEDValue = server.arg("D0");
  Serial.print("Set GPIO to "); Serial.println(LEDValue);
  if ( LEDValue == "1" ) {
    digitalWrite(D0, 1);
    etatD0 = "On";
    server.send ( 200, "text/html", getPage() );
  } else if ( LEDValue == "0" ) {
    digitalWrite(D0, 0);
    etatD0 = "Off";
    server.send ( 200, "text/html", getPage() );
  } else {
    Serial.println("Err Led Value");
  }
}

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");
  // on attend d'etre connecte au WiFi avant de continuer
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // on affiche l'adresse IP qui nous a ete attribuee
  Serial.println("");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  // on definit les points d'entree (les URL a saisir dans le navigateur web) et on affiche un simple texte
  server.on ( "/", handleRoot );

  // on demarre le serveur web
  server.begin();
  pinMode(led, OUTPUT);     // Initialise la broche "led" comme une sortie - Initialize the "LED" pin as an output
}

// Cette boucle s'exécute à l'infini - the loop function runs over and over again forever
void loop() {
    // a chaque iteration, on appelle handleClient pour que les requetes soient traitees
  server.handleClient();
}

Voici l’interface obtenue

Maintenant que c’est plus clair, vous pouvez aller encore un peu plus loin dans les détails de la programmation Web Serveur de l’ESP8266 en lisant cet article. Vous pourrez réaliser ce type d’interface en suivant ce projet de station météo en 5 étapes.

esp8266 web server spiffs bootstrap dht22 bmp180 google charts

Tous les tutoriels sur la programmation Web Server des ESP8266

Serveur Web (Interface)

Programmation Client Web :

La programmation Client Web permet de faire communiquer un module ESP8266 avec un autre serveur, un autre ESP8266, une application mobile… Voici quelques exemples d’application :

  • Transmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit…)
  • Transmettre des états (détecteur d’ouverture de porte ou fenêtre, contacteur…)

Voici plusieurs articles sur le sujet avec des exemples d’application pour faire communiquer l’ESP8266 avec Jeedom ou Domoticz (affichage déporté)

Client Web (communication)

Questions courantes (FAQ)

Sur quelles plateformes l’IDE Arduino est-il disponible ?

L’IDE Arduino est disponible sur tous les systèmes d’exploitation (Windows, macOS, Linux, Linux ARM). Quelque soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l’IDE Arduino. Allez sur le site de la fonction Arduino pour récupérer l’installeur qui convient à votre ordinateur ou mini-PC.

Peut-on programmer un ESP8266 sur un Mac ?

Oui, l’IDE Arduino est disponible sur macOS également. Le kit de développement (SDK) d’Espressif étant écrit en python, il est possible de programmer les modules ESP8266 comme sur un PC Windows.

Peut-on programmer l’ESP8266 depuis Linux ARM ?

Oui, si vous possédez un Raspberry Pi ou un mini-PC équivalent fonctionnant sous Linux ARM (un Orange Pi par exemple), il est tout à fait possible d’utiliser l’IDE Arduino.

Comment développer sans programmation avec le Firmware ESP Easy

Si vous débutez avec les micro-contrôleurs et que tout ce que vous avez lu précédemment vous a un peu effrayé, pas de problème. Le projet ESP Easy est fait pour vous ! ESP Easy est une interface qui permet de développer des sondes ou des actionneurs par simple configuration. L’interface est en anglais mais tout est expliqué dans ces tutoriels en français.

Quel modèle d’ESP8266 choisir  pour débuter ?

Les cartes de développement à base d’ESP-12x (WeMos d1 Mini, Geekcreit…) sont les mieux pour débuter. Le téléversement est géré de façon totalement transparente par le SDK ESP8266 depuis l’IDE Arduino. Vous pouvez utiliser le comparateur de prix pour trouver la meilleure offre sur Internet.

Peut-on utiliser des cartes NodeMCU ou micropython ?

Oui absolument. Ce sont d’autres firmwares. NodeMCU permet d’exécuter du code Lua. Dès le premier téléversement, le firmware sera remplacé par le code Arduino. Vous pourrez ré-installer le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython ultérieurement.

C’est quoi le modèle ESP-WROOM-32 ?

LoLin32 Lite de Wemos.cc

Le module ESP-WROOM-32 est le nom de code du successeur de l’ESP8266, l’ESP32. Il est plus puissant, moins gourmand, plus sécurisé, plus pro (bus CAN), il apporte également le support du Bluetooth en plus du WiFi. Le prix des cartes de développement ESP32 à fortement chuté ces derniers mois. Elles sont maintenant quasiment au même prix. Pour en savoir plus, rendez-vous sur la catégorie ESP32 de Projets DIY. Ici, la Lolin32 Lite de Wemos.cc

Quelques livres pour débuter en C/C++

La programmation Arduino fait appel à des notions de programmation objet du C/C++. Il existe de très bons livres d’initiation ainsi que des tutoriels sur le Web pour aller plus loin que les notions abordées ici

Cet article Programmer l’ESP8266 avec l’IDE Arduino : librairies, GPIO, Web Serveur, Client Web est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

À partir d’avant-hierProjets DIY

Semaine de la maison connectée sur Amazon. C’est le moment de vous lancer en domotique !

Par christophe

C’est la semaine de la Maison Connectée sur Amazon. C’est peut être l’occasion de vous lancer dans l’aventure de la domotique ! Vous pouvez commercer par cet article qui explique comment débuter et créer sa première box domotique 100% à base de Raspberry Pi 3. Le Raspberry Pi 3 est également en promo pour quelques jours encore chez Gearbest à 29,17€.

Amazon propose des ventes flash chaque jour et de grosses remises sur une sélection de produits dans plusieurs catégories

Voici une petite sélection. Vous l’avez compris le mieux est de vous rendre régulièrement sur Amazon (ou encore mieux, ici !)

Cet article Semaine de la maison connectée sur Amazon. C’est le moment de vous lancer en domotique ! est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Comment fabriquer une box domotique 100% DIY à base de Raspberry Pi 3 ?

Par christophe

Le mini-PC Raspberry Pi 3 a entrainé une véritable révolution dans le monde des box domotiques DIY. Ce petit ordinateur carte qui coûte moins de 40€ est suffisamment puissant pour faire fonctionner la plupart des logiciels domotiques Open Source. Le GPIO (connecteurs d’entrée/sortie) a permis le développement d’interfaces domotiques et de brancher des capteurs supplémentaires. Si vous avez l’intention de vous lancer dans l’aventure de la domotique à faire soi-même, voici quelques conseils pour bien débuter. Nous allons voir quel modèle choisir, les accessoires indispensables pour compléter le Pi, comment protéger ses données, comment l’installer dans une armoire électrique sur Rail DIN et quel logiciel domotique installer.

Quel modèle de Raspberry Pi choisir pour une box domotique DIY ?

Trois principaux modèles de Raspberry Pi sont en vente actuellement. Le Raspberry Pi 2 modèle B, le Raspberry Pi 3 et le Raspberry Pi Zero W. On trouve encore des traces de premiers modèles de Raspberry Pi. Pour quelques euros de plus, optez directement pour le Raspberry Pi 3. Il est plus puissant et surtout il intègre le WiFi et le Bluetooth. Vous ferrez des économies, inutile d’acheter un dongle WiFi ou Bluetooth.

Source : element14

C’est la même chose pour le Raspberry Pi Zero. La version 1 commercialisée avec le MagPi à 5€ n’intégrait pas le WiFi, le Bluetooth et de connecteur Caméra. La version 1.3 a été lancé quelques mois après. La version 1.3 ajoute un connecteur caméra CSI (plus petit que celui du Raspberry Pi !). On peut considérer ces deux modèles comme obsolètes du Raspberry Pi Zero W, la troisième version la plus aboutie. Le Pi Zero W en plus du connecteur caméra apporte le support du Bluetooth et du WiFi.

En terme de puissance brute, c’est le Raspberry Pi 3 qui est le mieux adapté pour fabriquer une box domotique comme le montre ce benchmark réalisé avec le SysBecnh par le site f4bi. On réservera le Raspberry Pi Zero W pour la réalisation de caméra de surveillance. Beaucoup plus compact et assez puissant, il est très bien adapté pour ce type de projet.

raspberry-pi-3-vs-pi-2-vs-pi-zero-vs-a-vs-b-benchmark-sysbench
Le plus petit est le meilleur (en secondes)

Si toutefois vous pensez manquer de puissance ou que vous avez vraiment beaucoup de scénarios, vous pouvez également recycler un vieux PC en serveur domotique.

Compléter le Raspberry Pi 3 : carte SD, boitier de protection

Pour proposer un mini-PC à ce prix, tout ce qui a été jugé superflu par les concepteurs a été retiré du Raspberry Pi 3. Il reste juste une carte avec des connecteurs et même pas un bouton de mise sous tension. Il démarre dès qu’on branche l’alimentation 5V sur le connecteur micro-USB OTG (On-The-Go). Pour l’arrêter, il faudra passer par l’interface du logiciel domotique ou exécuter la commande Linux

sudo halt
  (ou une équivalente) depuis une connexion SSH.

Une alimentation 5V de qualité

Le Raspberry PI consomme peu mais il est préférable de disposer d’une alimentation pouvant délivrer 2,5A au minimum. Le mieux est une alimentation 5V/3A (3000mA) si vous devez utiliser le GPIO ou le module caméra. Si le Raspberry Pi 3 s’arrête ou re-démarre sans raison, c’est probablement à cause d’une alimentation trop faible. C’est souvent le cas lorsqu’on recycle un ancien chargeur de téléphone. Le connecteur est de type micro-USB.

Deux cartes SD

C’est la première chose à acheter. Une carte SD de 8GB est largement suffisante. Par contre, achetez une carte de grande marque portant la mention class 10 au minimum. Choisir une carte SD de qualité est un point crucial. D’une part pour que le système soit rapide et d’autre part pour éviter les pannes. Les cartes SD n’ont pas été conçues pour un usage aussi intensif (pas comme les disques SSD à mémoire flash).

Mais ce n’est pas suffisant. Achetez une seconde carte SD et clonez régulièrement la carte SD principale (après chaque mise à jour, tous les mois). En cas de panne, vous pourrez relancer votre serveur en quelques minutes sans avoir à tout réinstaller. Certains logiciels domotiques (Jeedom notamment) nécessitent de ré-inclure les périphériques après une restauration. Il est donc beaucoup plus simple de relancer le Raspberry Pi avec un clone du système. Suivez ce tutoriel pour apprendre comment sauvegarde une carte SD.

Boitier de protection ou montage en Rail DIN

Autre accessoire utile, un petit boitier de protection. On en trouve pour quelques euros (ici sur le comparateur de prix). On trouve des packs comprenant le boitier, des dissipateurs thermiques (le Pi chauffe très peu) et une alimentation 5V/3A.

L’autre solution consiste à installer le Raspberry Pi directement dans l’armoire électrique à l’aide d’un boitier avec un système de fixation pour Rail DIN. C’est un montage plus pro.L’avantage, c’est que le Raspberry PI sera installé au plus prêt de l’installation électrique. Dans ce cas, une connexion SSH devient quasi obligatoire pour les mises à jours.

 

Un onduleur pour protéger le Raspberry Pi 3 et la carte SD

Un achat qui va rapidement faire grimper la note de votre équipement mais qui va vous apporter une certaine tranquillité d’esprit. Le talon d’Achille du système réside dans la carte SD. Une coupure de courant durant une phase d’écriture et la carte SD risque d’être endommagée. Un onduleur pourra protéger efficacement le système. Un petit onduleur de 400VA est suffisant. Si votre box domotique est à proximité de votre ordinateur, c’est peut être l’occasion de protéger tout ce petit monde des coupures de courant et des surtensions.

Un onduleur va apporter plusieurs protections au votre serveur domotique :

  • Protéger le Raspberry Pi et les accessoires (passerelle RFX Com…) des surtensions électriques
  • Protéger la carte SD et toutes les données, scripts et scénarios. Cela ne doit pas vous dispenser de faire un clone régulièrement.
  • Assurer une continuité de fonctionnement. Le serveur pourra continuer à récupérer des informations des capteurs fonctionnant sur piles. C’est le cas par exemple des détecteurs d’ouvertures de portes et fenêtres, la centrale et la sirène d’alarme… Dès que le courant sera rétabli, le serveur pourra de nouveau piloter les appareils alimentés sur le secteur.
  • En ajoutant une clé 3G (comment faire sur le blog domo-attitude), le serveur pourra vous avertir par SMS d’une coupure de courant et de son rétablissement. Idéal lorsque vous partez en vacances pour demander à un amis d’aller vérifier la maison (et vider le congélateur !).

Faut-il acheter le Raspberry Pi 3 seul ou en kit ?

Si vous avez du matériel à “recycler”, clavier, souris, écran, carte SD, vous pouvez acheter votre Raspberry Pi 3 seul. Un serveur domotique n’a pas besoin d’accessoires. Vous aurez besoin d’un clavier, souris, écran dans la phase d’installation. Ensuite, la plupart des logiciels domotiques proposent une interface de configuration accessible depuis n’importe quel ordinateur du réseau local. Au pire, vous pourrez accéder au Raspberry Pi 3 à l’aide d’une connexion SSH.  On trouve très souvent des promos sur les kits

Ajouter une passerelle pour communiquer avec des appareils domotiques

Les appareils domotiques utilisent des protocoles pour communiquer avec un serveur ou une box domotique. En fonction de la technologie employée par vos appareils vous aurez besoin d’ajouter une passerelle pour pouvoir communiquer avec eux (mesure de température, détecteur d’ouverture de porte ou fenêtre, inondation…), ou les commander (éclairage, déclencher la sirène d’alarme, ouvrir les volets, allumer le chauffage…).

Clé Z-Wave+ ou RaZberry

Z-Wave et Z-Wave+ est un protocole domotique propriétaire développé par Sigma Designs. Chaque fabricants qui veut rendre son matériel doit intégrer une puce dédiée (payant évidemment). C’est pourquoi les appareils Z-Wave sont souvent plus chers. Le Z-Wave plus augmente la portée de 50% (en théorie) avec une consommation moindre (67% annoncé). C’est important car les appareils fonctionnent très souvent sur piles.

Compatibilité ZWave / Zwave+. Comme toujours en informatique, la compatibilité est descendante. Vous pourrez communiquer avec des appareils ZWave avec un dongle ZWave+ mais pas l’inverse.

Comme c’est un protocole propriétaire et fermé, pour communiquer avec des appareils Z-Wave depuis une box domotique DIY, il faudra utiliser un projet Open Source compatible. C’est le projet OpenZWave qui s’en charge. La liste des appareils supportés est ici. Rassurez vous, en général, c’est le logiciel domotique qui s’occupe de tout installer. Il faudra juste acheter le matériel compatible (l’antenne émettrice / réceptrice).

La carte d’extension RazBerry qui est la plus connue. C’est une carte d’extension à brancher sur le GPIO du Raspberry PI (Hat). Elle date presque du premier Raspberry Pi ! La tendance actuelle va plutôt vers l’abandon du Razberry au profit des clés Z-Wave USB moins couteuses. Le choix va surtout dépendre du logiciel domotique choisi. Les clés Z-Wave+ Everspring ou Z-Wave.Me sont très bien prises en charge par Jeedom et Domoticz ou Home Assistant.

RXFCom 433MHz ou RFLink

RFXCom est une passerelle domotique qui permet de communiquer avec des appareils Radio à la fréquence de 433MHz. Elle permet d’intercepter les trames radios échangées entre les appareils et de les décoder. On pourra par exemple récupérer les mesures d’une station Météo Oregon Scientific. RFXCom est également capable de mimer les trames radio pour piloter les appareils. Cela va permettre de fermer les volets ou des stores Somfy, piloter des prises commandées Chacon…  Voici une liste (non exhaustive) des appareils supportés :

  • Alecto WS1200
  • ANSLUT
  • A-OK roller blind motor
  • ATI Remote Wonder, ATI Remote Wonder II, ATI Remote Wonder Plus
  • Atlantic
  • Blyss (Lighting)
  • Brennenstuhl
  • ByeByeStandBy
  • Byron SX chime
  • cent-a-meter, Electrisave
  • Chacon
  • COCO
  • Sonde météo Cresta (TX2/3/4/7/17,WS2300)
  • DI.O
  • Digimax
  • Digimax RTS10 / RFS10 / TLX1206
  • DomiaLite
  • Düwi
  • ebode – XDOM
  • ELRO AB400, ELRO AB600
  • Ematronic roller blind motor
  • Energenie ENER010
  • Harrison curtain
  • Hasta motor
  • Hideki, TFA weather sensors
  • HomeEasy, HomeEasy EU, HomeEasy EU HE300, HomeEasy EU HE800
  • Ikea Koppla
  • Impuls
  • Intertechno
  • KD101 (Avidsen, Chacon, NEXA, Flamingo, Blyss, Proove)
  • KlikAanKlikUit
  • La Crosse weather sensors
  • Lexibook (SM883)
  • LightwaveRF, Siemens (lumière et prises)
  • Media mount projection screen
  • Meiantech
  • Mertik Maxitrol (G6R-H4T1, G6R-H4TB)
  • NEXA
  • Nexus design IW008T
  • Oregon Scientific BWR101/BWR102, GR101
  • Oregon weather sensors (protocoles 1.0,2.1,3.0)
  • OWL CM113, OWL CM119, OWL CM160, OWL CM180
  • OWL Intuition CM180i
  • PC Remote
  • Phenix
  • Philips SBCSP370/375
  • Proove
  • PT2262 (récepteur uniquement)
  • Raex
  • RFXMeter
  • RFXSensor
  • Rising Sun
  • RollerTrol blinds
  • RUBiCSON (48659,48695)
  • Sartano
  • Somfy RTS
  • Techno line TX95-TH
  • UPM/Esic Clas Ohlson (portée très limitée)
  • Viking, FineOffset (02035,02038, 02811)
  • Visonic PowerCode
  • Waveman
  • X10 lighting, X10 security, X10 Ninja/Robocam, X10 remotes

Une box domotique prend tout son sens avec cette passerelle. En mettant en place des scénarios simples, vous pourrez par exemple ouvrir les volets dès le lever du soleil (et inversement), simuler votre présence en allumant des lampes lorsque vous partez en vacances, allumer le chauffage 1h avant votre retour du travail…

La passerelle RFX Com est assez chère. Comptez environ 100€.

Rfxcom USB Transceiver (Transmitter/Receiver 433?Mhz) with Somfy Stand by Rfxcom, Rfxcom

Price: 97,00
as of 19 September 2017  
Buy This Item
amazon.fr
Wait For A Price Drop
You will receive a notification when the price drops.

Price History

Statistics

Current Price 97,00€ 19 September 2017
Highest Price 97,00€ 19 September 2017
Lowest Price 97,00€ 19 September 2017
Since 19 September 2017

Last price changes

97,00€ 19 September 2017

Ce nouveau module de RFXCom propose les nombreuses fonctionnalités déjà présentes dans le RFXCom de base, mais ajoute le support de Somfy RTS !. Le RFX14103 (également répertorié comme RFXTRX433E) est un appareil émetteur/récepteur, qui se branche en USB à un ordinateur, une microcarte type...

Si vous préférez rester dans l’esprit DIY, vous pouvez fabriquer votre passerelle domotique radio à l’aide du projet Open Source RFLink. C’est un travail de titan qui est réalisé par Stuntteam depuis plusieurs années maintenant. De nouveaux produits sont constamment ajoutés. Vous pouvez vérifier la compatibilité de votre appareil domotique ici. La liste est actualisée à chaque mise à jour du firmware. Suivez ce tutoriel pour fabriquer votre passerelle RFLink. La liste du matériel nécessaire se trouve ici.

Vous pouvez soutenir le projet (qui permet d’acheter les nouveaux équipements domotiques) en faisant un don sur le blog du projet.

montage rflink rfxcom arduino mega 2560 superheterodyne domoticz
RFLink à base d’Arduino Mega 2560 et d’un module radio Super Heterodyne.

Homebridge

Avec ce projet Open Source, vous pourrez piloter n’importe quel accessoire domotique depuis votre iPhone ou iPad. Aucun matériel supplémentaire n’est nécessaire. Tous les articles qui traitent d’Homebridge sont ici.

Quel logiciel domotique Open Source installer

Vous aurez l’embarra du choix là aussi. La plupart des logiciels ont été adaptés au processeur ARM du Raspberry Pi ou ils ont été directement développés pour lui. Vous pourrez choisir en fonction de votre niveau de connaissance et du temps que vous désirez consacrer à l’installation et à la configuration de votre installation. Vous pouvez lire ce premier article d’août 2016 qui dresse un premier aperçu des logiciels disponibles. A cette liste, ou pourra ajouter le projet Gladys développé par Pierre-Gilles Leymarie. Ce projet encore jeune (par rapport aux autres ténors) est entièrement en français et prend très bien en charge les commandes vocales.

Pour vous aider à choisir, voici différentes situations

Vous débutez

Vous cherchez un logiciel simple à installer et à configurer. Domoticz est le plus facile à installer. Une seule ligne de commande et c’est fait (suivez ce tutoriel). Simple et puissant, il est soutenu par une très grande communauté. On pourra lui reprocher une interface vieillissante et un peu bridée mais au final il fait très bien son travail. Il n’y a aucun système de plugin payant. Jeedom est aussi une solution facile à installer surtout depuis la mise en place du script NetInstall. Il faudra patienter car l’installation est longue. Seul regret, le système de plugin payant. Il faudra souvent passer à la caisse, mais rien d’extravagant, les modules coûtent entre 2 à 8€. L’avantage est de pouvoir rémunérer des développeurs qui s’investissent dans Jeedom depuis des années.

Domoticz Jeedom
domoticz Source : jeedom
Tutoriel : Installer Domoticz sur Raspberry Pi 3 Tutoriel : Installer Jeedom v3 sur Raspberry Pi 3

Une interface en français

Oui, c’est possible ! Il faudra accepter des taper des commandes en anglais et avoir des messages d’information ou d’erreur en anglais, mais l’interface sera en français. Jeedom, développé par une équipe lyonnaise est le meilleur choix pour vous. Ensuite Domoticz qui a été traduit par la communauté d’utilisateurs.

Jeedom Domoticz
Source : jeedom domoticz
Tutoriel : Installer Jeedom v3 sur Raspberry Pi 3 Tutoriel : Installer Domoticz sur Raspberry Pi 3

Vous êtes un peu Geek

Vous aimez tester ce qui est nouveau ou vous n’avez pas peur de mettre les mains dans les fichiers de configuration et coder. Home Assistant est mon préféré. Si vous avez un iPhone, vous pourrez même piloter votre installation depuis votre travail ou en vacances gratuitement. OpenHab est peu utilisé en France. C’est l’équivalent de Jeedom en Allemagne. Depuis la version 3, il est devenu plus accessible aux néophites. Une interface de configuration a été ajoutée. Très puissant, il est supporté par une très grande communauté. Il est probablement autant utilisé que Domoticz. Enfin, pourquoi pas tester Gladys, le petit nouveau français.

homeassistant
Home Assistant

Tutoriel : Installer Home Assistant sur un Raspberry Pi 3.

openhab
OpenHAB
Gladys
Gladys

Tableau de synthèse

Domoticz Home Assistant Jeedom OpenHab Gladys
Interface en Français X Partiellement* X Partiellement* Oui
Configuration via une interface X Partiellement X X

partiel depuis v3

X
Protocoles pour domotique DIY
  • MySensors
X X X X X
  • RFLink
X X X

plugin payant 4€

X
  • MQTT
X X X X X
  • OpenZwave / Z-Wave
X X X X X
  • Comme c’est à l’utilisateur de construire ses écrans à l’aide d’un language dédié (YAML pour Home Automation par exemple), il est possible d’avoir les libellés en Français. Le reste de l’interface reste en anglais.

Quelques livres pour débuter

Vous avez encore des hésitations, voici de très bons livres écrits par des blogueurs et des passionnés de l’univers Raspberry Pi. Si vous ne connaissez absolument rien au monde Linux et au Raspberry Pi, vous pouvez commencer par le livre de François MOCQ, Raspberry Pi 3 ou Pi Zero – Exploitez tout le potentiel de votre nano-ordinateur, l’auteur du blog framboise314.fr

Raspberry Pi 3 ou Pi Zero - Exploitez tout le potentiel de votre nano-ordinateur

29,90
Buy This Item
amazon.fr

Ensuite, vous pourrez vous baser sur les nombreux exemples et scénarios proposés dans Le guide de la maison et des objets connectés: Domotique, smart home et maison connectée de Cédric Locqueux, l’auteur du blog Maison et Domotique.

Le guide de la maison et des objets connectés: Domotique, smart home et maison connectée., Cédric Locqueneux

32,00
Buy This Item
amazon.fr

Quelques tutoriels pour débuter

Prêt à vous lancer, voici les derniers tutoriels publiés sur Projets DIY pour les principaux logiciels Open Source cités précédemment. Avant de commencer, vous pouvez aussi tester les serveurs à l’aide de Docker sur un PC Windows ou un Mac. Lisez cet article pour savoir comment faire.

Domoticz

Domoticz

Jeedom

Jeedom : tutoriels sur le serveur domotique, installation, plugins, scripts

Home Assistant

Home Assistant

Cet article Comment fabriquer une box domotique 100% DIY à base de Raspberry Pi 3 ? est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Wemos LoLin32 Lite, révision plus compacte de la LoLin32 à 4,20€

Par christophe

Wemos nous propose une nouvelle version Lite de la LoLin32 basée sur un module ESP-WROOM-32 corrigé. Ce nouveau module identifié ESP32-DOWD6Q 28017 (Rev 1) apporte quelques corrections de bugs du SoC d’Espressif. Ce SoC est toujours équipé de 4MB de mémoire flash et apporte la connectivité WiFi 801.11 b/g/n et Bluetooth LE pour vos projets DIY à base de micro-contrôleurs.

Pour devenir Lite, la LoLin32 a du perdre quelques broches. Les broches RX/TX et 5V ne sont plus présentes sur la carte. On ne dispose plus que d’une broche GND (au lieu de 5) et une seule broche 3V3 (au lieu de 2). Toutes les broches E/S sont disponibles (x21 au total) ce qui permettra d’exploiter toutes les possibilités offertes par l’ESP32. Le connecteur au format JST servant à alimenter la LoLin32 Lite à l’aide d’une batterie LiPo est toujours présent. Il est maintenant orienté dans le prolongement de la carte à gauche du connecteur micro-USB. Le port micro-USB est toujours présent. Il sert à la programmation (code Arduino, Lua ou micro-python) ainsi qu’à la charge de la batterie. La Led indiquant l’état de la charge est toujours présent sur la LoLin32 Lite. Le bouton Reset à déménagé entre les deux connecteurs micro-USB et batterie LiPo.

Wemos LoLin32 originale Wemos LoLin32 Lite

Evolutions des broches entre la LoLin232 et la version Lite

Voici un tableau comparatif qui résume les modifications apportées.

Broche LoLin32 Version Lite
3V3 x2 x1
5V x1
GND x5 x1
EN X X
VP X X
VN X X
RX/TX X
Broches E/S

34, 35, 32, 33, 25, 26, 27, 14, 12, 22, 19, 23, 18, 5, 17, 16, 4, 0, 2, 15, 13

x21 x21

Toutes les caractéristiques de la LoLin32 Lite

  • SoC : Espressif ESP32-DOWD6Q Rev 1.0. Processeur dual core Tensilica Xtensa LX6
  • Connectivité
    • WiFi 802.11 b/g/n
    • Bluetooth LE
  • I/Os via
    • Connecteur 2×13-pin pour UART, I2C, SPI, VP/VN, DAC…
    • Toutes les broches fonctionnent avec un tension de 3.3V
    • Compatible Breadboard
  • 1x port micro USB pour alimentation, recharge de la batterie LiPo, programmation et debug
  • Convertisseur USB/série : CH340G (drivers pour macOS et Windows sur le WiKi)
  • 1x bouton Reset
  • Alimentation : 5V via le connecteur micro USB ou une batterie LiPo (courant de charge maxi : 500mA)
  • Dimensions et poids : non indiqués (env. 40 x 25mm)

La carte est toujours aussi étroite que sa grande soeur. Une rangée de connecteur est disponible de chaque cotés lorsqu’elle est installée sur une breadboard.

La carte est livrée avec le firmware mircopython mais on pourra exécuter du code Arduino ou Lua comme avec toutes les cartes de développement ESP32 ou ESP8266. Elle est disponible à la vente sur la boutique AliExpress de Wemos au prix de 4,18€ + 1,40€ de frais de port (dans mon cas).

Cet article Wemos LoLin32 Lite, révision plus compacte de la LoLin32 à 4,20€ est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Installer Armbian sur Orange Pi sans écran ni clavier avec un câble FTDI

Par christophe

Dans le tutoriel précédent, nous avons vu qu’il est très simple d’installer Raspbian sur un Raspberry Pi (ou RPi Zero W) sans avoir besoin d’un clavier et d’un écran.Vous vous êtes sans doute demandé à quoi pouvait bien servir ce petit connecteur à trois broches sur la carte. Et bien, c’est une connecteur qui permet d’établir une liaison série. Dans ce tutoriel, nous allons voir comment s’en servir pour installer Armbian. Cette méthode fonctionne sur tous les modèles Orange Pi mais également sur toutes les distributions Linux. Pour ce tutoriel, nous allons installer Armbian sur un Orange Pi Lite. Vous aurez besoin d’un convertisseur Série vers USB (aussi appelé cable FTDI), de quelques jumper Dupont, d’un PC Windows et du logiciel Putty (ou équivalent sur macOS ou Linux). Vous pouvez également utiliser un Mac ou un PC Linux sans aucun logiciel supplémentaire avec la commande screen.

Matériel nécessaire

orange pi lite h3 computer board Orange Pi
orange pi alimentation 5v 3a jack Alimentation 5V – 3A
carte sd Carte SD 8Go minimum, classe 10
Convertisseur USB-Serie FTDI
3x Jumper Dupont (noir, jaune, orange dans l’idéal)
pc windows PC ou portable Windows

Récupérer l’image d’Armbian pour votre Orange Pi

Commencez par récupérer l’image d’Armbian qui correspond à votre modèle. Pour l’Orange Pi Lite par exemple, la version serveur ans bureau graphique est suffisante. Il sera possible d’ajouter un bureau graphique XFCE ultérieurement en suivant ce tutoriel.

armbian orange pi liteDécompressez l’archive 7Z. Sur macOS vous pouvez utiliser The Unarchiver. Sur Windows, vous pouvez utiliser 7-Zip.

Préparer la carte SD avec Etcher

Téléchargez et installez le logiciel Etcher de resin.io qui convient à votre système d’exploitation (macOS, Windows, Linux) ici. Insérer la carte SD de 8Go minimum (de classe 10 de préférence) dans le lecteur. Lancez Etcher. Appuyer sur Select image puis indiquer le chemin vers le fichier ZIP que vous venez de télécharger. La carte SD est automatiquement sélectionnée par Etcher. Si ce n’est pas le cas, indiquez le chemin en cliquant sur Select Drive. Lancez l’installation des fichiers sur la carte SD en appuyant sur Flash ! A la fin de l’installation, la carte SD est automatiquement éjectée du lecteur.

etcher armbian install serial without keyboard screen

Câbler la connexion série

A l’aide de jumpers Dupont, câblez la liaison série comme ceci.

Attention. Il faut inverser RX et TX pour que cela fonctionne
USB-to-serial (FTDI) Couleur

(en général)

Orange Pi
RXI Orange TX
TXO Jaune RX
GND Noir GND

Certains câbles n’ont pas de repérage. Vous pouvez vous aider du site officiel FTDI chip pour trouver le repérage qui correspond à votre convertisseur.

orange pi serial interface ftdi usb converter pinout

Inversez les câbles RX/TX coté convertisseur FTDI.

armbian orangepi opi ftdi converter wire

Enfin, branchez le convertisseur USB-to-serial sur le port USB de votre ordinateur

Lancer la communication série avec Putty

Ouvrez Microsoft PowerShell et exécutez la commande mode qui permet de lister tous les périphériques Serie connectés au PC. Ici, le convertisseur FTDI est connecté au port COM11.

power shell mode find port com

Téléchargez et installez Putty en allant sur le site officiel du projet. Il existe également une version qui ne nécessite aucune installation (alternative). Démarrez Putty et cochez l’option serie. Dans le champ Serial line, saisissez le port COM (ici COM11). Indiquez une vitesse de 115200 bauds dans le champ Speed. Enfin cliquez sur Open.

putty connect orange pi port com serial

Putty écoute maintenant les messages en provenance de l’OPI.

Sur macOS, Linux ou un Raspberry Pi !

Ouvrez le Terminal et exécuter la commande

ls /dev/tty*
  pour trouver le convertisseur FDTI. Sur mon Mac, il se trouve par exemple sur
/dev/tty.usbserial-A1048DR2

Nous allons utiliser la commande screen qui va nous permettre de communiquer avec l’Orange Pi via le port série comme avec Putty sous Windows. On lui passe simplement deux paramètres :

  • Le nom du périphérique sur lequel on souhaite se connecter. Ici 
    /dev/tty.usbserial-A1048DR2
  • la vitesse : 11500 bauds

Ce qui donne

screen /dev/tty.usbserial-A1048DR2 115200

Pour arrêter screen, utilisez la combinaison CTRL + A.

Allumer l’Orange Pi

Insérez la carte SD dans le lecteur et mettez sous tension l’OPI à l’aide du bouton de démarrage situé sur le coté de la carte.

orange pi serial interface ftdi usb converter power button

Quelques secondes après le démarrage, les premiers messages apparaissent dans la fenêtre Putty. Sur macOS ou Linux, vous obtiendrez exactement la même chose.

armbian install serial startup

Diagnostic

A l’allumage de l’Orange Pi, rien ne s’affiche dans le fenêtre Putty ou Screen. Voici les principales causes en cas de dysfonctionnement :

  • Vérifier que le câblage est correct. RX et TX doivent être croisés.
  • Vérifier que le driver du convertisseur FTDI USB-to-serial est correctement installé. Sur Windows, ouvrez le panneau de configuration puis Gestionnaire de périphérique. Si macOS ou Linux, exécutez la commande
    ls /dev/tty*
      pour vérifier qu’il est bien présent
  • Changer de port USB (oui, ça peut aider)
  • Débranchez la sortie vidéo HDMI
  • Débrancher et remettre son tension l’OPI
  • Utiliser les commentaires pour indiquer une autre solution  💡

Identification et création du compte utilisateur

A la fin du démarrage, Armbian vous propose de vous identifier. Identifiez vous avec l’utilisateur root et le mot de passe par défaut 1234. Armbian vous propose (impose) de changer immédiatement le mot de passe par défaut.

  1. Entrez le mot de passe actuel : 1234
  2. Saisissez votre nouveau mot de passe. Au moins 8 caractères et composé de chiffres et de lettres. Idéalement au moins un caractère spécial
  3. Saisissez de nouveau le mot de passe pour le confirmer

Ensuite, Armbian vous demande de créer un compte utilisateur qu’il est préférable d’utiliser au quotidien par sécurité

  1. Entrez le nom d’utilisateur
  2. Entrez le mot de passe
  3. Validez le mot de passe en le saisissant une seconde fois
  4. Enfin indiquez quelques informations optionnelles

armbian create user account

Enfin Armbian vous propose de modifier la résolution d’affichage à l’aide de l’outil h3disp. Acceptez, surtout si vous branchez l’Orange Pi à un moniteur informatique.

 armbian change h3disp change video settings

Voici toutes les résolutions supportées par la carte

480i use "-m 480i" or "-m 0"
576i    use "-m 576i" or "-m 1"
480p    use "-m 480p" or "-m 2"
576p    use "-m 576p" or "-m 3"
720p50  use "-m 720p50" or "-m 4"
720p60  use "-m 720p60" or "-m 5"
1080i50 use "-m 1080i50" or "-m 6"
1080i60 use "-m 1080i60" or "-m 7"
1080p24 use "-m 1080p24" or "-m 8"
1080p50 use "-m 1080p50" or "-m 9"
1080p60 use "-m 1080p60" or "-m 10"
1080p25 use "-m 1080p25" or "-m 11"
1080p30 use "-m 1080p30" or "-m 12"
1080p24_3d  use "-m 1080p24_3d" or "-m 13"
720p50_3d   use "-m 720p50_3d" or "-m 14"
720p60_3d   use "-m 720p60_3d" or "-m 15"
1080p24_3d  use "-m 1080p24_3d" or "-m 23"
720p50_3d   use "-m 720p50_3d" or "-m 24"
720p60_3d   use "-m 720p60_3d" or "-m 25"
1080p25 use "-m 1080p25" or "-m 26"
1080p30 use "-m 1080p30" or "-m 27"
4kp30   use "-m 4kp30" or "-m 28"
4kp25   use "-m 4kp25" or "-m 29"
800x480 use "-m 800x480" or "-m 31"
1024x768    use "-m 1024x768" or "-m 32"
1280x1024   use "-m 1280x1024" or "-m 33"
1360x768    use "-m 1360x768" or "-m 34"
1440x900    use "-m 1440x900" or "-m 35"
1680x1050   use "-m 1680x1050" or "-m 36"

On indique à la commande le format désiré. Soit dans le format explicite, par exemple -m 1280×1024, soit par le numéro – m 33. Si vous utilisez un convertisseur HDMI vers DVI, il faut l’indiquer avec le paramètre -d, ce qui donne par exemple

h3disp -m 33 -d
Après une mise à jour du système avec la commande apt-get upgrade, il est fort probable que l’affichage soit ré-initialisé. Il faudra ré-exécuter la commande h3disp avec l’option -d pour que revenir à la normale. Pour cela, passez par une connexion SSH depuis un autre ordinateur ou smartphone

Configurer le WiFi avec armbian-config

Armbian est maintenant livré avec un outil de configuration similaire à raspi-config sur Raspbian pour le Raspberry Pi appelé armbian-config (présenté en détail dans cet article). Lancez l’outil puis allez à l’option WiFi. Sélectionnez le réseau et saisissez le mot de passe. Votre Orange Pi est connectée au réseau !

armbian-config change wifi settings

Configurer le clavier dans votre langue

Pour changer le clavier, il faut être connecté en root. Si ce n’est pas le cas, exécutez

su -

Maintenant exécutez la commande suivante.

dpkg-reconfigure keyboard-configuration

Si vous ne trouvez pas votre type de clavier dans la liste, choisissez Generic 105-Key

armbian clavier francais

Ensuite, choisissez votre langue. Ici le français

armbian clavier francais

armbian configurer clavier francais

Puis le type de clavier utilisé. Laissé tout par défaut pour la plupart des claviers.

armbian clavier francais

armbian clavier francais

Redémarrez avec la commande sudo reboot pour activer les modifications.

 

Toutes les étapes de ce tutoriel peuvent paraître longues et fastidieuses mais il n’en est rien. C’est en fait très simple. Lorsque vous aurez installé Armbian avec cette méthode vous aurez du mal à faire différemment. En voici la preuve par l’image !

Cet article Installer Armbian sur Orange Pi sans écran ni clavier avec un câble FTDI est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

6 boitiers à imprimer 3D pour caméra de surveillance Raspberry Pi Zero W

Par christophe

Dans le tutoriel précédent, nous avons vu comment fabriquer sa propre caméra de surveillance à l’aide d’un Raspberry Pi Zero W et de Node-RED sans aucune programmation. Si vous avez la chance de posséder une imprimante 3D (vous pouvez vous équiper pour moins de 200€), voici une sélection de boitiers à imprimer en 3D disponibles sur Thingiverse.

Boitier à imprimer en 3D pour caméra de surveillance à fixer au mur

Le premier boitier que je vous propose a été dessiné par Geraldo Ramos du projet Open Source Pigeon. Pigeon est basé sur le projet Motion (déjà présenté ici). A chaque détection de mouvement, les images et la séquence vidéo est envoyée sur Dropbox. Pigeon est également possible d’envoyer des notifications par SMS, e-mail, IFTTT… Le support est prévu pour être fixé au mur à l’aide de 2 vis. La caméra peut être orientée. Le port micro-USB est accessible sur le coté du boitier. Pour assembler le boitier, vous aurez besoin de 4 vis M1,7x6mm. L’axe de rotation est réalisé à l’aide d’une vis M6.

Source : https://www.thingiverse.com/thing:2230707

Ce second modèle proposé par Kevin Worrel permet d’orienter la caméra à l’aide d’un bras équipé d’une rotule à chaque extrémité. La fixation du bras sur le boitier de la caméra et sur le mur est faite à l’aide d’une bande velcro 3M. Le boitier laisse un accès au GPIO du Raspberry Pi Zero W. Pratique pour commander un éclairage ou ajouter un détecteur de mouvement.

Source : https://www.thingiverse.com/thing:2285502

Boitier à imprimer en 3D pour caméra de surveillance sur pied

Ce premier boîtier dessiné par Gary Owen permet de poser la caméra sur une table ou un meuble à l’aide d’un support à 4 pieds. Le pied est fixé à la caméra à l’aide d’une vis M5 ou M6 qui servira également à régler l’orientation de celle-ci.

rpi zero w case 3d printed camera posee 4 pieds

Source : https://www.thingiverse.com/thing:1709013

Ce modèle dessiné par Andy Leer laisse un accès à la carte SD. Il ne dispose d’aucun réglage. Aucune visserie n’est nécessaire.

 rpi zero w case 3d printed camera posee acces carte sd

Source : https://www.thingiverse.com/thing:1592151

Enfin cette version proposée par David Mottram utilise un trepied de table. Un logement permettant de recevoir l’écrou 1/4-20 UNC est intégré prévu à la base du boitier.

rpi zero w case 3d printed camera trepied

Source : https://www.thingiverse.com/thing:2254307

Boitier à imprimer en 3D pour caméra de surveillance fonctionnant sur batterie LiPo

Ce boitier dessiné par Nobbin Robin permet d’embarquer une batterie LiPo rechargée à l’aide du Power Boost 1000 d’Adafruit. Il a été conçu pour la première génération du Pi Zero qui n’intégrait pas le WiFi. La connectivité WiFi était gérée par un dongle WiFi Edimax EW-7811Un inutile avec le Pi Zero W. Deux boutons sont présents. Le premier pour arrêter Raspbian et un second pour déclencher la prise d’un cliché, fonction très simple à coder avec Node-RED.

Source : https://www.thingiverse.com/thing:1632622

Cet article 6 boitiers à imprimer 3D pour caméra de surveillance Raspberry Pi Zero W est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Quelle caméra choisir pour le Raspberry Pi ou le RPi Zero W ?

Par christophe
camera originale raspberry pi noir v2camera originale raspberry pi noir v2

Tous les modèles de Raspberry Pi (Raspberry Pi 3 et Raspberry Pi Zero W notamment) possèdent un connecteur CSI permettant de brancher une caméra numérique. La fondation commercialise une caméra v2.1 couleur équipée d’un capteur 8MP et une caméra sensible en faible luminosité (v2.1 NoIR). Vous trouverez également des caméras compatibles avec un éclairage à Led moins cher chez les fabricants asiatiques.

Quelle caméra pour le Raspberry Pi 3 ?

La fondation propose deux caméras. La première désignée v2.1 est une caméra couleur basée sur le capteur de type CMOS Sony Sony IMX219 ayant une résolution de 8MP (3280 × 2464 pixels). La technologie CMOS (Complementary Metal-Oxide-Semiconductor) permet d’obtenir une image d’excellente qualité même lorsque la luminosité est très élevée. Contrairement au capteur CCD (Charge Coupled Device), chaque pixel est indépendant de son voisin. Les pixels ne débordent pas sur les voisins en cas de forte luminosité. C’est la traînée banche verticale (aussi appelé blooming) que l’on peut voir sur certaines photos numériques.

Source : http://www.camerarepair.org/2012/03/blooming-a-camera-repair-that-isnt/

La seconde caméra désignée v2.1 NoIR est équipée d’un capteur sur lequel le filtre Infra Rouge n’a pas été installé. La caméra est plus sensible en faible lumière.

Attention, certaines dénominations sont trompeuses, ce n’est pas une caméra à vision nocturne. Dans le noir complet, le capteur sera totalement aveugle. Par contre en ajoutant une lumière complémentaire (2 ou 3 Led infra-rouge par exemple), le capteur est (vraiment) très performant. Dans le noir complet, vous pouvez espérer voir à 10m, ce qui est suffisant pour fabriquer une caméra de surveillance. Pour en savoir plus, vous pouvez lire ce comparatif détaillé.

Parallèlement aux produits officiels Raspberry, de nombreux fabricants (principalement chinois) commercialisent des caméras compatibles. Bien souvent les performances sont inférieures mais le budget est plus raisonnable.

Voici une petite synthèse des principales caractéristiques techniques.

Caméra v2.1 couleur officielle Raspberry Caméra v2.1 NoIR officielle Raspberry Caméra asiatique NoIR

(double éclairage à Led)

raspberry pi camera v2.1 raspberry pi v2.1 noir camera official noir compatible camera raspberry pi
Connecteur CSI CSI CSI, compatible Raspberry
Dimensions 25 × 24 × 9 mm 25 × 24 × 9 mm 25 x 24 x 26 mm

25 x 75 x 26mm (avec Leds)

Résolution 8MP

3280 × 2464 pixels

8MP

3280 × 2464 pixels

5MP

2592 × 1944 pixels

Capteur CMOS Sony IMX219 CMOS Sony IMX219 CMOS OmniVision OV5647
Résolution vidéo max. 1080p30 1080p30 1080p30
Taille du capteur 1/4 pouces 1/4 pouces 1/4 pouces
Driver V4L2  V4L2  V4L2
Focale 3.60 mm 3.60 mm 3.60 mm
Champ de vision 53°(horiz.) x 41°(vert.) 53°(horiz.) x 41°(vert.) 75,7° (horiz.)
Liens commerciaux Amazon, environ 26€

Banggood, environ 28€

Amazon, environ 33€

Banggood, environ 29€

Aliexpress, environ 18€

Banggood, à partir de 15€

Le connecteur CSI

Le connecteur caméra du Raspberry Pi est appelé connecteur CSI pour Camera Serial Interface. C’est un standard industriel géré par l’alliance Mobile Industry Processor Interface. Il existe 3 normes (CSI-1, CSI-2, CSI-3) actuellement. La version la plus récente date de 2012. Le Raspberry Pi est équipé d’un connecteur CSI-2. Le problème avec le connecteur CSI c’est qu’il n’existe aucun logo qui permet de s’y retrouver aussi bien coté Raspberry Pi que coté caméra. Et c’est la même chose pour l’Orange Pi qui est lui aussi équipé d’un connecteur CSI incompatible avec la caméra du Raspberry Pi !

raspberry pi camera connector connecteur picamera

Bref, restez en terrain connu et vérifiez bien au moment de l’achat la compatibilité avec le Raspberry Pi (ou un autre mini-PC).

Quelle caméra pour le Raspberry Pi Zero W ?

Le Raspberry Pi Zero W (depuis la révision 1.3) dispose également de son connecteur caméra CSI. Mais il est plus étroit que celui qui équipe son grand frère 😈 .

Heureusement, il est tout à fait possible d’utiliser une caméra v2.1 ou v2.1 NoIR en remplaçant la nappe souple par une nappe compatible (aussi appelé camera ribbon en anglais). C’est d’ailleurs la solution retenue par la plupart des fabricants.

Si vous avez déjà une caméra, vous pouvez en acheter sur Amazon pour environ 8€. En direct d’Asie, on en trouve pour environ 2€.

adaptateur nappe camera raspberry pi zero 1.3

Connecter la caméra au Raspberry

Le Raspberry Pi dispose d’un connecteur CSI dédié. Le connecteur CSI se trouve juste à coté de la sortie vidéo HDMI. Avant de connecter la caméra au Raspberry, arrêtez Raspbian (

sudo halt
) et débranchez la carte.

Soulevez le connecteur

raspberry pi camera connector connecteur picamera

Il n’y a pas de d’indicateur de sens sur le ruban. Insérez le ruban en plaçant les pistes en direction du connecteur HDMI.

raspberry pi connect ruban camera picamera

Refermez le connecteur. On le verrouille en le descendant à fond vers le bas. Il n’y a pas de “clic” qui confirme la fermeture du connecteur. Tirez légèrement pour vous assurer que le ruban est en place et correctement maintenu. Vous l’avez compris, ce n’est pas un montage mécanique à toute épreuve. Il ne faut pas d’action mécanique trop intense sur le ruban sous peine de débrancher la caméra.

camera connectee raspberry pi 3

Activer le module caméra sur Raspbian Jessie Pixel

Avant de pouvoir utiliser le module caméra, il est nécessaire de l’activer. Sous Raspbian Jessie Pixel, ouvrez le Menu puis Préférences et enfin ouvrez le panneau de Configuration du Raspberry Pi. Allez à l’onglet Interfaces pour activer le module caméra.

 raspberry pi configuration camera

Redémarrer pour terminer l’activation de la caméra.

Activer la caméra sous Raspbian Jessie Lite

Sous Raspbian Jessie Lite (sans interface graphique) mais également depuis une connexion externe SSH, vous pouvez accéder à raspi-config avec la commande 

sudo raspi-config
. Allez au menu (5) Interfacing Options

raspberry pi i2c raspi-config

Puis au menu (P1) Enable Camera et répondez par Yes.

raspberry pi i2c activate raspi-config

Redémarrer pour terminer l’activation de la caméra.

Tester la caméra avec la commande raspistill

Raspbian est livré avec un petit utilitaire qui permet de prendre des clichés et d’enregistrer de petites séquences à l’aide de la caméra. C’est la commande raspistill. Ouvrez le Terminal

Pour prendre un cliché appelé demo.jpg, le cliché sera enregistré dans le répertoire d’exécution de la commande, exécutez

raspistill -o demo.jpg

Vous pouvez ajouter l’option

-vf
  pour faire une rotation verticale de 180° et
-hf
  horizontalement
raspistill -o -vf -hf demo.jpg

Exécutez la commande raspistill sans argument pour lister toutes les options disponibles. C’est une commande très puissante qui peut très facilement être intégrée dans un script Linux sans aucune autre dépendance.

raspistill

raspistill Camera App v1.3.11

Runs camera for specific time, and take JPG capture at end if requested

usage: raspistill [options]

Image parameter commands

-?, --help  : This help information
-w, --width : Set image width <size>
-h, --height    : Set image height <size>
-q, --quality   : Set jpeg quality <0 to 100>
-r, --raw   : Add raw bayer data to jpeg metadata
-o, --output    : Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved
-l, --latest    : Link latest complete image to filename <filename>
-v, --verbose   : Output verbose information during run
-t, --timeout   : Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-th, --thumb    : Set thumbnail parameters (x:y:quality) or none
-d, --demo  : Run a demo mode (cycle through range of camera options, no capture)
-e, --encoding  : Encoding to use for output file (jpg, bmp, gif, png)
-x, --exif  : EXIF tag to apply to captures (format as 'key=value') or none
-tl, --timelapse    : Timelapse mode. Takes a picture every <t>ms. %d == frame number (Try: -o img_%04d.jpg)
-fp, --fullpreview  : Run the preview using the still capture resolution (may reduce preview fps)
-k, --keypress  : Wait between captures for a ENTER, X then ENTER to exit
-s, --signal    : Wait between captures for a SIGUSR1 or SIGUSR2 from another process
-g, --gl    : Draw preview to texture instead of using video render component
-gc, --glcapture    : Capture the GL frame-buffer instead of the camera image
-set, --settings    : Retrieve camera settings and write to stdout
-cs, --camselect    : Select camera <number>. Default 0
-bm, --burst    : Enable 'burst capture mode'
-md, --mode : Force sensor mode. 0=auto. See docs for other modes available
-dt, --datetime : Replace output pattern (%d) with DateTime (MonthDayHourMinSec)
-ts, --timestamp    : Replace output pattern (%d) with unix timestamp (seconds since 1970)
-fs, --framestart   : Starting frame number in output pattern(%d)
-rs, --restart  : JPEG Restart interval (default of 0 for none)

Preview parameter commands

-p, --preview   : Preview window settings <'x,y,w,h'>
-f, --fullscreen    : Fullscreen preview mode
-op, --opacity  : Preview window opacity (0-255)
-n, --nopreview : Do not display a preview window

Image parameter commands

-sh, --sharpness    : Set image sharpness (-100 to 100)
-co, --contrast : Set image contrast (-100 to 100)
-br, --brightness   : Set image brightness (0 to 100)
-sa, --saturation   : Set image saturation (-100 to 100)
-ISO, --ISO : Set capture ISO
-vs, --vstab    : Turn on video stabilisation
-ev, --ev   : Set EV compensation - steps of 1/6 stop
-ex, --exposure : Set exposure mode (see Notes)
-awb, --awb : Set AWB mode (see Notes)
-ifx, --imxfx   : Set image effect (see Notes)
-cfx, --colfx   : Set colour effect (U:V)
-mm, --metering : Set metering mode (see Notes)
-rot, --rotation    : Set image rotation (0-359)
-hf, --hflip    : Set horizontal flip
-vf, --vflip    : Set vertical flip
-roi, --roi : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter  : Set shutter speed in microseconds
-awbg, --awbgains   : Set AWB gains - AWB mode must be off
-drc, --drc : Set DRC Level (see Notes)
-st, --stats    : Force recomputation of statistics on stills capture pass
-a, --annotate  : Enable/Set annotate flags or text
-3d, --stereo   : Select stereoscopic mode
-dec, --decimate    : Half width/height of stereo image
-3dswap, --3dswap   : Swap camera order for stereoscopic
-ae, --annotateex   : Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV))


Notes

Exposure mode options :
off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks

AWB mode options :
off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon

Image Effect mode options :
none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon

Metering Mode options :
average,spot,backlit,matrix

Dynamic Range Compression (DRC) options :
off,low,med,high

Preview parameter commands

-gs, --glscene  : GL scene square,teapot,mirror,yuv,sobel,vcsm_square
-gw, --glwin    : GL window settings <'x,y,w,h'>

Voici une série d’article pour aller plus loin :

Cet article Quelle caméra choisir pour le Raspberry Pi ou le RPi Zero W ? est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Recycler un vieux PC en serveur domotique Linux, station de développement Arduino / ESP8266

Par christophe
mini pc windows asus recylcer linux serveur domotiquemini pc windows asus recylcer linux serveur domotique

Recycler un vieux PC Windows est une très bonne solution pour héberger un serveur domotique, créer un environnement de développement Linux pour Arduino / ESP8266, ou un serveur multimédia . Dans la plupart des cas, un vieux PC à base de processeur Intel Atom ou i3 aura plus de puissance qu’un Raspberry Pi 3 ou un Orange Pi+ 2e.

Dans quel cas recycler un ancien PC plutôt que d’acheter un Raspberry Pi

Le Raspberry Pi 3 s’est très rapidement imposé pour plusieurs raisons :

  • Son très faible coût. Il y a encore quelques années, qui aurait pu imaginer acheter un ordinateur pour moins de 50€ (si on ajoute la carte SD et l’alimentation 5V).
  • Ses multiples connecteurs
    • Le connecteur d’entrées / sorties (GPIO) qui permet de s’initier très simplement à l’électronique
    • Le connecteur caméra qui permet de réaliser des projets à base de vision : microscope optique, caméra de surveillance, détection de visage…
    • Le connecteur pour écran LCD qui permet d’ajouter un écran tactile pour créer un dashboard ou piloter l’interface au doigts
  • Sa faible consommation électrique

En contrepartie, le Raspberry Pi 3 a quelques petits défauts :

  • Le raspberry Pi utilise une carte SD pour faire fonctionner le sytème. Il faut être rigoureux et éviter de débrancher le Raspberry Pi avant l’arrêt du système sous peine de corruption de données.
  • La puissance, équivalente à un smartphone peut s’avérer trop juste pour certaines applications.
  • Sans interface SATA, impossible de profiter d’un disques dur sans adaptateur USB. Le SSD n’a plus vraiment d’intérêt.
  • Certains logiciels ne sont pas disponible pour les SoC ARM. Dans certains cas, il faudra compiler depuis le code source (par exemple FFmpeg), ce qui demande un peu plus de compétence et de temps.

En général, les utilisateurs vont acheter un Raspberry Pi pour chaque tâche : serveur domotique, bureautique/internet, développement…

Si vous n’avez pas besoin des connecteurs (GPIO, LCD), recycler un ancien PC Windows peut être une solution alternative dans plusieurs cas :

  • Installer un serveur domotique. Vous aurez plus de puissance à votre disposition, surtout si vous avez de nombreux scénarios.
  • Installer un serveur multimédia. Même si Kodi (entre autre) s’accommode très bien du Raspberry Pi, vous pourrez profiter pleinement de la vitesse des disques durs SATA. Idem pour le décodage ou la compression des vidéos. les puces Intel sont généralement mieux adaptées pour ces tâches
  • Installer une base de données temps réel. Les objets connectés produisent de grandes quantités de données. Le stockage sur carte SD n’est pas adapté à ce travail. Les bases de données temps réel tel qu’InfluxDB n’ont pas été portées sur les puces ARM.

Mettre à niveau son vieux PC

Ce n’est pas parce qu’il est ancien que vous ne pouvez pas réserver un petit budget pour le mettre à niveau. En 5 ou 10 ans, le prix des disques durs à fortement chuté, surtout celui des SSD. Pour la RAM, c’est moins évident. A cause d’une plus faible demande, le prix des anciennes générations de RAM (DDR2, DDR3…) peut s’envoler. C’est au cas par cas.

Ajouter de la RAM

C’est la première chose à faire. Augmenter la RAM va immédiatement donner un coup de boost à votre vieux PC. Attention à respecter la norme de l’époque (vitesse, connecteur…). Certains fabricants utilisaient des barrettes d’ordinateurs portables plus couteuses. DDR2 ou DDR3 étaient la norme en 2010. Comptez environ 27€ pour 2 x 2 Go DDR2@800MHz.

Ajouter un SSD pour Linux

Aussi efficace que la RAM, remplacez le disque dur d’origine par un SSD. Inutile d’acheter la dernière génération ni le plus gros SSD, l’interface SATA ne pourra certainement pas dépasser un débit de 3Gbit/s. Même avec un débit de 3Gbits/s, le système sera extrêmement fluide. Comptez environ 65€ pour vous équiper d’un disque SSD de 120Go.

ssd sata recycler ancien pc serveur domotique arduino

Ajouter un disque dur pour le stockage des fichiers et bases de données

Pour transformer un vieux PC en serveur multi-média, rien de mieux qu’un gros disque dur. Vous pouvez trouver un disque dur de 1To (de bonne qualité) pour moins de 50€.

Ajouter le WiFi

A l’époque, le WiFi n’était pas encore intégré systématiquement à la carte mère, ou tout simplement la puce WiFi est défectueuse. Aucun problème, ajouter un dongle WiFi et le tour et joué. Choisissez un modèle supporté par Linux. TP-Link est une valeur sure très bien prise en charge pour les principales distributions Linux. Le dongle TP-Link TL-WN725N permet d’ajouter une connexion WiFi N (150 Mbps) pour environ 7€. Vérifiez sur internet que le chip utilisé est supporté par votre distribution Linux.

Ajouter le Bluetooth 4.0

Encore plus rare que le WiFi à l’époque, le Bluetooth. Ce n’est pas une priorité mais disposer d’une antenne Bluetooth vous permettra d’ajouter d’autres périphériques sans fil : clavier, souris, enceinte audio… Même conseil que pour le dongle WiFi, vérifiez la prise en charge native sous Linux avant votre achat. DSD Tech est une marque assez répandu. Comptez environ 7€.

Quelle distribution Linux installer ?

Il existe de très nombreuses distribution Linux. Il est toutefois préférable d’opter pour un distribution légère.

Le premier critère à prendre en compte est le type de microprocesseur et plus particulièrement s’il est 32-bit ou 64-bit. En effet, à partir de 2017, plusieurs distributions ont annoncé l’arrêt de support des processeurs 32-bit, trop ancien. Archlinux, une distribution très à la mode (et légère) pourra convenir si votre processeur est 64-bit.

Ubuntu (basée sur Debian) est la plus connue. Ubuntu n’est toutefois pas bien adaptée à la situation à cause de son bureau graphique Unity est très (trop) gourmand en ressources. Avec plus de 2Go de RAM et un disque dur SSD, ça peut passer, mais avec un disque dur classique et 2Go de RAM, votre ordinateur sera rapidement inutilisable.

ubuntu recycler ancien pc serveur domotique arduino

A la place d’Ubuntu, vous pouvez opter ou Lubuntu. Cette distribution est basée sur Ubuntu, le coeur sera le même, mais le bureau graphique est XFCE. C’est le bureau graphique que j’ai déjà installé sur un Orange Pi+ 2e fonctionnant sous Armbian. En portant sur Lubuntu, vous pourrez installer sans aucune difficulté un serveur domotique (Domoticz, Home Assistant…) en suivant les tutoriels sur Internet, l’IDE Arduino…

lubuntu recycler ancien pc serveur domotique arduino

Comment installer Linux sur un ancien PC ?

Commencez par récupérer l’image de la distribution sur le site officielle. J’insiste bien sur le terme officiel. Ne récupérez jamais une image sur un site alternatif non officiel. Cette image pourrait contenir du code malicieux !

Ensuite, utilisez Etcher (présenté ici) pour installer l’image sur une clé USB. La procédure est parfaitement identique à la préparation de la carte SD Raspbian pour Raspberry Pi ou Armbian pour Orange Pi.

armbian preparation carte sd etcher en cours

Pour démarrer sur la clé USB, vous devez configurer le BIOS de votre PC. En fonction du bios, vous devrez appuyer sur la touche F1, F2, F8, ESC, DEL… La touche est indiquée dès le premier écran de démarrage. Par exemple Press DEL to enter SETUP.

Si votre BIOS ne supporte pas le démarrage sur une clé USB (votre PC est vraiment très ancien), il faudra alors graver un CD ROM.

Ensuite suivez les étapes proposées à l’écran. Vous pouvez également retrouver toutes les étapes de l’installation dans ce précédent tutoriel.

virtualbox installation ubuntu 16.04 lts

Voilà, vous disposez maintenant d’une toute nouvelle machine qui pourra servir de base pour installer un serveur domotique et pourquoi pas une station de développement.

Cet article Recycler un vieux PC en serveur domotique Linux, station de développement Arduino / ESP8266 est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

ArduinoOTA ESP32 : mise à jour sans fil en Wi-Fi (OTA) depuis l’IDE Arduino

Par christophe
arduinoota esp32 5 wireless upload update ide arduinoarduinoota esp32 5 wireless upload update ide arduino
esp32 geekcreit wroom

La librairie ArduinoOTA qui permet de réaliser des mises à jour sans fil (OTA) en Wi-Fi est également compatible avec l’ESP32, le successeur plus puissant de l’ESP8266. Elle est intégrée au Arduino Core pour ESP32 développé par Espressif (page GitHub du projet). Il n’est pas encore possible d’installer le kit de développement depuis le gestionnaire de cartes. Le SDK étant encore en phase de développement, la procédure d’installation dépend de la machine sur laquelle est installé l’IDE Arduino. Il est maintenant possible d’utiliser le hash du mot de passe pour sécuriser d’avantage la mise à jour à distance. Autre nouveauté, il est maintenant possible de mettre en jour en Wi-Fi la zone mémoire SPIFFS.

Installer la librairie ArduinoOTA pour ESP32 sur l’IDE Arduino

Avant de démarrer l’installation, quittez l’IDE Arduino. Ensuite, pour installer le kit de développement sur votre macOS, Windows, Linux ou Raspberry Pi, suivez ce tutoriel précédent. Une fois que le SDK est installé, vous pouvez relancer l’IDE.

Si tout s’est correctement déroulé, vous devez avoir de nouvelles cartes ESP32 proposées

esp32 board cartes ide arduino windows 10 64-bits

Dans la version actuelle, le kit supporte les cartes génériques (ESP32 Dev Module jusqu’à 4MB), et plusieurs cartes de fabricants connus comme la nouvelle Wemos LoLin32 présentée récemment.

Mémoire flash USB-Serial
SparkFun ESP32 Thing SparkFun ESP32 Thing 4MB
Electronic SweetPeas - ESP320 Electronic SweetPeas – ESP320 16MB ?
Nano32 de MakerAsia 4MB
wemos lolin32 WEMOS LoLin32 4MB
espea32 esp32 ESPea32 disponible sur Tindie 4MB CP2104
Noduino Quantum esp32 Noduino Quantum 16MB CP2102
node32s esp32 development board Node32s 4MB
Hornbill ESP32 Dev Hornbill ESP32 Dev 4MB
hornbill esp32 minima Hornbill ESP32 Minima 4MB
FireBeetle-ESP32 4MB
IntoRobot Fig 4MB

Pour faire apparaître le menu des exemples, sélectionnez votre ESP32. Les cartes génériques sont très bien prisent en charge par le SDK. Dans le menu, sélectionnez l’exemple basicOTA.

Le code diffère très peu par rapport à celui des cartes ESP8266.

#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "..........";
const char* password = "..........";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  // ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  ArduinoOTA.setHostname("Demo OTA ESP32");

  // No authentication by default
  // ArduinoOTA.setPassword("admin");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA.onStart([]() {
    String type;
    if (ArduinoOTA.getCommand() == U_FLASH)
      type = "sketch";
    else // U_SPIFFS
      type = "filesystem";

    // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
    Serial.println("Start updating " + type);
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

Plusieurs paramètres sont à notre disposition :

  • setPort() : par défaut le port de communication est le 8266. Il n’est pas très utile de la changer sauf à ce qu’il soit déjà utiliser. Par exemple pour un projet intégrant de la communication UDP.
  • setHostname() : c’est probablement l’option la plus importante. Elle permet d’attribuer un nom à l’ESP32. Ce nom de machine sera diffusé sur le réseau et récupéré par l’IDE Arduino. Si vous avez beaucoup d’objets sur votre réseau, il sera beaucoup plus facile de l’identifier par son nom que par un identifiant construit automatiquement à partir du numéro de série.
  • setPassword() : permet de demander un mot de passe depuis l’IDE Arduino avant d’exécuter une mise à jour. Pratique si vous travaillez à plusieurs ou dans un établissement scolaire.
  • setPasswordHash() : permet de stocker l’empreinte du mot de passe pour plus de sécurité. Voir plus loin pour apprendre comment faire.

Quatre autres méthodes permettent de brancher des traitements dans les cas suivants :

  • onStart() : code à exécuter au démarrage de la mise à jour. Nouveauté sur l’ESP32, il est possible de mettre à jour à distance le fichiers de la zone SPIFFS. C’est très pratique si vous avez besoin de développer une interface HTML pour votre projet.
  • onEnd() : idem à la fin
  • onProgress() : durant la progression
  • onError() : et en cas d’erreur

A la fin du setup, on démarre la prise en charge de la mise à jour sans fil en appelant la méthode begin().

Enfin, pour que tout fonctionne, il est nécessaire d’appeler la méthode

ArduinoOTA.handle()
 dans la boucle loop().

Avant de teléverser le programme, modifiez les variables ssid (réseau Wi-Fi sur lequel va se connecter l’ESP32) et password (mot de passe du réseau).

Sécuriser la mise à jour avec le hash du mot de passe

L’ESP32 étant beaucoup plus sécurisé que l’ESP8266 (lire cet article pour en savoir plus), il est possible de stocker l’empreinte du mot de passe (hash) à la place de celui-ci. Pour créer l’empreinte de votre mot de passe, vous pouvez utiliser un générateur en ligne tel que celui-ci. Par exemple le hash du mot de passe admin donnera l’empreinte 21232f297a57a5a743894a0e4a801fc3.

Attention, certains générateurs en ligne sont peu recommandables… N’utilisez pas le mot de passe admin !

arduinoota esp32 2 hash password md5 online generator

Ensuite, utilisez la fonction setPasswordhash() à la place de setPassword() pour indiquer le mot de passe d’authentification.

ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

Test de mise à jour sans fil

Téléversez le programme et ouvrez le Terminal pour vérifier que l’ESP32 est correctement connecté au réseau Wi-Fi.

arduinoota esp32 6 serial monitor ip address

L’IDE Arduino détecte automatiquement les appareils supportant la mise à jour à distance. Ils sont ajoutés à la liste des ports dans une nouvelle section appelée Network ports.

arduinoota esp32 1 ide arduino

Si votre ESP32 n’apparaît pas quelques secondes après le démarrage, relancez l’IDE Arduino.

Pour mettre à jour le programme, il suffit de sélectionner l’ESP comme port à la place du port série habituel. Puis téléverser le programme comme d’habitude. Ici, comme un mot de passe est obligatoire, une fenêtre de saisie apparaît dans l’IDE. Il n’est demandé qu’une seule fois.

arduinoota esp32 3 password authentication

On peut suivre le bon déroulement (ou l’échec) de la mise à jour à distance directement depuis l’IDE Arduino.

arduinoota esp32 5 wireless upload update ide arduino

Le SDK est encore en développement. Durant les tests, j’ai du saisir deux fois le mot de passe avant de réussir la mise à jour.

Cet article ArduinoOTA ESP32 : mise à jour sans fil en Wi-Fi (OTA) depuis l’IDE Arduino est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

ArduinoOTA : mise à jour sans fil (OTA) depuis l’IDE Arduino des programmes ESP8266

Par christophe
arduinoota 2 esp8266 wifi update wireless arduino codearduinoota 2 esp8266 wifi update wireless arduino code

La librairie ArduinoOTA est une librairie qui permet de mettre à jour le programme Arduino (et ESP8266, ESP32) sans fil en Wi-Fi. C’est une librairie essentielle lorsqu’on développe des objets connectés. Elle permet de mettre à jour le programme sans avoir à démonter le micro-contrôleur (Arduino, ESP8266, ESP32) pour le connecter à son ordinateur. Cette librairie initialement développée pour mettre à jour les programmes Arduino, elle est parfaitement supportée par les ESP8266 et ESP32. Pour ce tutoriel, nous allons aborder uniquement le cas des ESP8266.

Installer la librairie ArduinoOTA pour ESP8266 sur l’IDE Arduino

La librairie ArduinoOTA est intégrée dans la librairie des cartes ESP8266. Il n’y a donc rien de plus à installer. Si vous débutez avec les ESP, voici comment installer le librairies et le support des cartes ESP. Ouvrez les préférences (depuis le menu Arduino) et ajoutez à la liste des packages celui-ci

http://arduino.esp8266.com/stable/package_esp8266com_index.json

IDE Arduino 1.6.8 esp8266 package

Ensuite, allez dans le gestionnaire de carte et cherchez esp8266, puis cliquez sur installer.

IDE Arduino 1.6.x ajouter carte esp8266

Après l’installation, de nouveaux exemples ont été ajoutés dans le menu des exemples. Sélectionnez votre carte ESP8266 pour faire apparaître les exemples disponibles. Ouvrez l’exemple BasicOTA qui se trouve dans le sous-menu ArduinoOTA.

arduinoota 0 basicota example

 

Pour qui l’IDE Arduino puisse compiler le code, il faut que Python 2.7 (attention, pas Python 3.5) soit installé sur la machine de développement (GitHub). Pour les utilisateurs Windows, il faut cocher l’option “Add python.exe to Path” durant l’installation. Merci à Jeff pour l’info

Ce programme contient tout ce qu’il faut pour gérer la mise à jour sans fil dans vos projets ESP.

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "..........";
const char* password = "..........";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 8266
  // ArduinoOTA.setPort(8266);

  // Hostname defaults to esp8266-[ChipID]
  ArduinoOTA.setHostname("Demo OTA ESP8266");

  // No authentication by default
  ArduinoOTA.setPassword((const char *)"123");

  ArduinoOTA.onStart([]() {
    Serial.println("Start");
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

Avant de teléverser le programme, modifiez les variables ssid (réseau Wi-Fi sur lequel se connecter) et password (mot de passe).

Ici, le programme utilise la librairie ESP8266WiFi pour se connecter au réseau. Vous pouvez également utiliser la librairie WiFiManager présentée précédemment.

Une fois que la connexion est établie, il est possible de définir des paramètres complémentaires (optionnels) :

  • setPort() : par défaut le port de communication est le 8266. Il n’est pas très utile de la changer sauf à ce qu’il soit déjà utiliser. Par exemple pour un projet intégrant de la communication UDP.
  • setHostname() : c’est probablement l’option la plus importante. Elle permet d’attribuer un nom à l’ESP8266. Si vous avez beaucoup d’objets sur votre réseau, il sera beaucoup plus facile de l’identifier par son nom que par un identifiant construit automatiquement à partir du numéro de série.
  • setPassword() : permet de demander un mot de passe depuis l’IDE Arduino avant d’exécuter une mise à jour. Pratique si vous travaillez à plusieurs ou dans un établissement scolaire.

Quatre autres méthodes permettent de brancher des traitements dans les cas suivants :

  • onStart() : code à exécuter au démarrage de la mise à jour
  • onEnd() : idem à la fin
  • onProgress() : durant la progression
  • onError() : et en cas d’erreur

Vous n’aurez pas besoin d’ajouter des traitements dans la plupart des cas. Ces fonctions permettent surtout de rester informé du bon déroulement des opérations.

A la fin du setup, une fois que toutes les fonctions ont été définies, on démarre la prise en charge de la mise à jour sans fil en appelant la méthode begin().

Enfin, pour que tout fonctionne, il est nécessaire d’appeler la méthode

ArduinoOTA.handle()
 dans la boucle loop().

Test de mise à jour sans fil

Téléversez le programme et ouvrez le Terminal pour vérifier que l’ESP8266 est correctement connecté au réseau Wi-Fi.

arduinoota 1 ide arduino ip address

L’IDE Arduino détecte automatiquement les appareils supportant la mise à jour à distance. Ils sont ajoutés à la liste des ports dans une nouvelle section appelée Network ports.

arduinoota 2 esp8266 wifi update wireless arduino code

Il semble que la version 1.8.x comporte un bug qui empêche la mise à jour des appareils. Si votre ESP n’apparaît pas quelques secondes après le démarrage de l’ESP, il suffit de redémarrez l’IDE Arduino.

Pour mettre à jour le programme, il suffit de sélectionner l’ESP comme port à la place du port série habituel. Puis téléverser le programme comme d’habitude. Ici, comme un mot de passe est obligatoire, une fenêtre de saisie apparaît dans l’IDE. Il n’est demandé qu’une seule fois.

arduinoota 5 saisie mot de passe type password ide arduino

On peut suivre le bon déroulement (ou l’échec) de la mise à jour à distance directement depuis l’IDE Arduino.

arduinoota 4 ide arduino done uploading

Il n’est pas possible d’ouvrir le moniteur série avec la mise à sans fil. Il faudra prévoir une petite interface Web. Lisez ce tutoriel pour comprendre comment ajouter un serveur Web et une interface HTML à une projet ESP8266. Pour allez plus loin, voici une série d’articles qui traite du sujet

Serveur Web (Interface)

Mises à jour

[4/09/2017] Installation de Python 2.7 pour les utilisateurs Windows

 

 

 

Cet article ArduinoOTA : mise à jour sans fil (OTA) depuis l’IDE Arduino des programmes ESP8266 est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Déballage du SONOFF 4CH PRO, boîtier 4 relais pilotés en WiFi & RF sur rail DIN, test avec l’appli EWelink

Par christophe

Itead, le fabricant Chinois de la marque SONOFF commercialise le SONOFF 4CH Pro, une version améliorée du 4CH. Vous connaissez très certainement les blocs d’alimentation et les prises connectées SONOFF. Dans l’article précédent, nous avons vu comment installer le firmware ESP Easy sur la prise connectée SONOFF S20. Itead propose un nouvelle gamme plus Pro de ses produits. Le 4CH est un boitier très économique (23€) qui permet de commander 4 relais que l’on pourra intégrer à un tableau électrique sur un rail DIN. Dans ce premier article, nous allons découvrir comment mettre en service le 4CH, les principales fonctionnalités proposées par le firmware et tester l’application mobile EWelink (pour iOS et Android). Dans le prochain article nous verrons comment remplacer le firmware d’origine. Cela nous permettra d’intégrer directement le 4CH ou le 4CH Pro à une box domotique.

Caractéristiques techniques du 4CH Pro et modes de fonctionnement

Le SONOFF 4CH Pro (et 4CH) est construit autour d’un module WiFi ESP8285 d’Espressif. On reste donc en terrain connu dans le domaine de la domotique DIY. Itead, comme d’habitude, a laissé la porte ouverte aux bricoleurs en plaçant sur le PCB l’emplacement pour souder un connecteur série :-D. Par rapport à son petit frère, le 4CH, le Pro dispose également d’un récepteur 433MHz. On pourra piloter les relais depuis une télécommande (la procédure est expliquée au paragraphe 4 ici en anglais) et probablement depuis un serveur domotique à l’aide de la passerelle RFLink (à tester…).

Chaque relais peut alimenter un appareil en 220V/10A (2200W maxi). Attention toutefois à ne faut pas dépasser 16A sur le total des 4 relais. Ca devrait suffire très largement pour la plupart des applications domotiques.

Itead a bien conçu son boîtier. Plusieurs modes de fonctionnement sont proposés que l’on pourra choisir à l’aide d’un sélecteur DIP S6 (Work mode switch). Pour accéder aux différents sélecteurs, on devra ouvrir le boîtier.

Aucune crainte à avoir pour ouvrir le boîtier. Il n’y a aucune étiquette d’annulation de garantie.

Sonoff_4CH_Pro_layout

Résumé des caractéristiques techniques. La version Pro est marquée en gras

  • Connectivité : WiFi (antenne gravée sur le PCB, aucun connecteur pour antenne externe), récepteur radio 433 MHz avec antenne intégrée
  • Module WiFi : ESP8266 re-programmable à l’aide d’un connecteur série à souder sur l’emplacement libre sur le PCB
  • Relais : 4 relais HUIKE 230V/10A ou 30VDC/10A. Max. 16A et 2200W par relais. NC (Normalement fermé) ou NO (Normalement Ouvert)
  • Sélecteurs de configuration
    • K5 et S6 (DIP 4 positions) : mode de fonctionnement (voir ci-dessous)
    • K6 : durée de maintient des relais dans le mode Inching (voir ci-dessous)
  • Alimentation électrique
    • 5-24VDC
    • 90-250V
  • Compatibilité avec les assistants vocaux
  •  Autres
    • Une Led rouge d’indication d’état pour chaque relai
    • Une Led bleue d’indication d’état du WiFi.
      • Clignote si le boîtier n’est pas connecté au réseau WiFi. La configuration WiFi se fait depuis l’application EWelink
      • Clignote 3 fois puis recommence durant l’inclusion (appuyer 5 secondes sur n’importe quel bouton de commande pour démarrer l’inclusion)
      • Allumé en continu lorsque le module fonctionne normalement
    • Un bouton de commande par relai
    • Un bouton pour effacer les codes radio

Différences entre ESP8285 et ESP8266

Les deux boîtiers sont construits autour d’un module WiFi ESP8285. Par rapport à l’ESP8266, l’ESP8285 ne dispose que d’1MB de mémoire flash (au lieu de 4MB). Les autres caractéristiques sont regroupées dans le tableau ci-dessous

ESP8285 ESP8266
CPU Tensilica L106 32-bit@80MHz…160MHz Tensilica L106 32-bit@80MHz…160MHz
2,412G…2,484GHz 2,412G…2,484GHz
Sensibilité du récepteur b: -91 dBm, g: -75 dBm, n: -72 dBm b: -91 dBm, g: -75 dBm, n: -72 dBm
Tension d’alimentation 3…3.6V DC 3…3.6V DC
Montage SMD SMD
Boîtier QFN32 QFN32
Protocole de communication FTP, HTTP, IPv4, TCP, UDP FTP, HTTP, IPv4, TCP, UDP
Puissance d’émission, dBm 20dBm 20dBm
Capacité de mémoire Flash 1MB 4MB
Chiffrage AES, WPA, WPA2, WPS, TKIP AES, WPA, WPA2, WPS, TKIP
Dimensions 5 x 5mm 5 x 5mm
Interface GPIO, I2C, I2S, PWM, SDIO, SPI, UART, ADC GPIO, I2C, I2S, PWM, SDIO, SPI, UART, ADC
Documentation technique ESP8285 ESP8266EX

Différences entre le SONOFF 4CH et 4CH Pro

Voici un tableau de comparaison des principales caractéristiques des boîtiers SONOFF 4CH et 4CH Pro.

4CH 4CH Pro
Module WiFi ESP8285 ESP8285 + SRM32
Récepteur radio 433MHz Oui
Relais 230V/16A 4 4 relais isolés
Alimentation 5VDC Oui
Alimentation 90-250V Oui Oui
Fiche technique Wiki Itead Wiki Itead

Comment choisir le mode de fonctionnement ?

Le SONOFF 4CH Pro propose 3 modes de fonctionnement.

  • Mode d’inter-verrouillage (mode Interlock) : un seul relais peut être activé à la fois. Par exemple, si R1 est activé, lorsqu’on on active R2 (manuellement u depuis l’appli), R1 est désactivé puis R2 est activé. C’est le mode par défaut au déballage.
Sonoff 4CH pro interlock mode
Source : Itead
  • Mode autobloquante (mode Self-locking) : chaque relais peut être allumé et éteint indépendamment.
Source : Itead
  • Mode Inching : chaque relai est activé pour une durée définie par le sélecteur K6 (delay) lorsqu’il est activé depuis l’appli, le bouton de commande ou une télécommande 433MHz. C’est très utile pour commander l’ouverture d’un portail ou la gâchette électrique d’un portillon.
Sonoff 4CH Inching mode
Source : Itead

Le sélecteur S6 permet de choisir entre le mode Interlock (par défaut) et Self-locking/Inching.

0 Interlock CH1 – CH4
1 Self-locking/Inching CH1 – CH4

Pour Self-locking/Inching, il est possible de choisir le mode de fonctionnement pour chaque relais à l’aide du sélecteur K5

Position Etat Mode Relais
1 0 Inching CH1
2 0 Inching CH2
3 0 Inching CH3
4 0 Inching CH4
1 1 Self-locking CH1
2 1 Self-locking CH2
3 1 Self-locking CH3
4 1 Self-locking CH4

Par exemple, si on veut uniquement que le relai 4 puisse commander une gâchette électrique (mode Inching), on devra mettre le sélecteur S6 sur 2 puis configurer le sélecteur K5 ainsi

Position K5
1 0
2 0
3 0
4 1

La durée d’activation se configure ensuite à l’aide du sélecteur K6 d’après le tableau suivant. Le temps est indiqué en milliseconde. Il s’applique à tous les relais.

Que peut-on piloter avec le 4CH Pro ?

Itead donne quelques exemples d’applications. Le plus classique est le pilotage de lampes bien évidemment. L’avantage c’est que l’on pourra piloter une installation existante sans avoir à remplacer toutes les ampoules. C’est beaucoup moins cher que de s’équiper avec des ampoules connectées Philipps Hue par exemple.

On peut imaginer bien d’autres applications :

  • Commander l’ouverture d’un portail électrique
  • Piloter la gâchette d’un portillon
  • Piloter l’ouverture d’une porte de garage
  • Piloter un arrosage de jardin

Itead propose également d’autres exemples de montage pour commander deux moteurs. Il est possible de piloter au maximum 2 moteurs 90-250V ou 2 moteurs à courant continu 5-30VDC.

Attention, on ne peut faire fonctionner qu’un seul moteur à la fois.
Montage pour piloter deux moteurs 90-230V (courant alternatif) Montage pour piloter deux moteurs 5-30VDC (courant continu)

Installer l’appli EWeLink pour iOS ou Android

Allez sur le store de votre smartphone ou tablette (iOS, Android) pour installer l’application. L’application est totalement gratuite et sans aucun achat InApp supplémentaire. Attention, il existe deux versions. Il ne faut pas prendre la version BLE destinée au pilotage des appareils domotiques en bluetooth (étrange d’ailleurs qu’Itead ait développé deux applications)

ewelink apple store

Il n’y a aucun publicité sur l’appli et cerise sur le gâteau, elle est traduite en français (à l’exception de quelques messages de temps en temps, mais rien de bloquant).

Pour fonctionner, vous devrez créer un compte utilisateur. Itead se contente d’un email (conseillé) ou d’un numéro de téléphone. Ce compte permet à Itead de piloter les appareils compatibles en WiFi ou en 4G même hors de chez vous. Après la saisie de vos coordonnées, vous avez une minute pour valider l’inscription en saisissant le code PIN envoyé par email (ou SMS) et votre mot de passe, c’est un peu court…

Contrairement à l’appli MiHome de Xiaomi, je n’ai observé aucun temps de latence en 4G. L’appli est simple et efficace comme vous allez le voir.

eweelink user account

Ajouter le 4CH à l’appli EWelink

Une fois connecté à votre compte, mettez sous tension le boîtier 4CH et appuyez durant 5 secondes sur un bouton de commande de relais. La Led bleue clignote 3 fois puis recommence. Le 4CH Pro est prêt à être intégré.

Il faut être connecté sur le même réseau WiFi que l’appareil durant la phase d’inclusion.

Depuis l’application, appuyez le sur + en bas de l’écran pour démarrer l’ajout de l’appareil à votre compte utilisateur

 

Passez le premier écran d’information pour accéder à la saisie du mot de passe. Le réseau WiFi est présélectionné. Il semble que l’application sélectionne automatiquement le réseau ayant le meilleure niveau de réception. Indiqué le mot de passe réseau puis continuez.

sonnof 4ch pro configuration wifi

La configuration du module se termine en quelques secondes

sonoff 4ch pro avancement configuration

Vous pouvez donner un nom à l’appareil pour le retrouver plus facilement si vous en avez beaucoup

sonoff 4ch pro name device

C’est terminé, votre boîtier 4CH Pro (ou 4CH) est prêt à fonctionner !

sonoff 4ch pro ready to use

La flèche située à droite du bloc permet d’accéder aux fonctions avancées ainsi qu’aux réglages de l’appareil. Les autres fonctions sont détaillées juste après. Pour accéder aux réglages appuyez les l’icônes “…” dans le coin supérieur droit.

Il est possible de renommer chaque canal (relais), le nom de l’appareil, mettre à jour le firmware du 4CH Pro, activer ou désactiver la vibration du smartphone qui signale la validation du changement d’état d’un relais. Enfin, il est possible de choisir pour chaque relais le comportement à la mise sous tension :

  • Activé (Marche) par défaut à la mise sous tension
  • Désactivé (Arrêt) par défaut à la mise sous tension
  • L’état (Garder) précédent est restauré.

sonoff 4ch pro device info page

Autres fonctions : minuteur, partage, compte à rebours , scénarios

L’appli EWelink propose quelques fonctions supplémentaires utiles

Minuteur (Timer)

Il est possible de définir jusqu’à 8 minuteurs qui pourra s’exécuter une seule fois ou à intervalle régulier. Pratique pour déclencher la pompe d’arrosage du jardin tous les matins à 7h, allumer une lampe pour simuler une présence…

sonoff 4ch pro minuteur timer

 

Compte à rebours

Le compte à rebours active ou désactive un relais après une certaine durée. Pratique pour arrêter un appareil automatiquement après votre départ

Partage d’appareil

Enfin, vous pouvez donner accès à vos appareils Itead à d’autres membres de votre famille ou des amis. Pour cela, chaque personne doit installer et créer un compte Itead. Pratique quand vous partez en vacances. Vous pouvez très facilement permettre à un ami d’ouvrir le portail depuis son smartphone.

Voilà, en quelques minutes vous aurez une installation domotique propre et parfaitement intégrée à votre installation électrique. Seul regret, les deux modèles ne proposent pas la mesure de consommation d’énergie (comme le SONOFF POW). Ce serait un vrai plus pour la v2. Si vous débutez en domotique, le 4CH Pro est idéal car vous pourrez commencer “à jouer” en toute sécurité en alimentant le module en 5-24VDC. On trouve très souvent les boîtiers SONOFF en promo sur les principales sites de vente Chinois, n’hésitez pas à comparer avant d’acheter sur Banggood ou AliExpress par exemple. Les frais de port sont souvent offerts.

Partagez vos astuces ou demandez de l’aide à la communauté sur le forum dédié aux appareils Sonoff

Cet article Déballage du SONOFF 4CH PRO, boîtier 4 relais pilotés en WiFi & RF sur rail DIN, test avec l’appli EWelink est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Comment inclure des appareils domotiques radio RFLink à Home Assistant (HASS)

Par christophe
rflink home assistant smoke detector fumee chacon 34126 34131rflink home assistant smoke detector fumee chacon 34126 34131

Home Assistant intègre nativement le support des appareils domotiques radio compatibles avec la passerelle Open Source RFLink. Dans le tutoriel précédent, nous avons vu comment inclure des objets connectés développés à l’aide de la librairie MySensors v2. L’inclusion d’appareils radio à l’aide de la gateway RFLink est un peu différente. La documentation technique manque de détails concernant l’ajout des appareils dans les groupes.

Passerelle RFLink et matériel utilisé pour le tutoriel

RFLink est un projet Open Source qui permet de réaliser une passerelle (gateway) entre un logiciel domotique et des appareils domotiques qui communiquent par ondes radio. C’est une alternative très économique à la gateway commerciale RFXCom. Le projet RFLink est capable de gérer plusieurs fréquences radio 315MHz, 433MHz, 868MHz, 915MHz et 2,4GHz. Suivez ce guide pour fabriquer votre passerelle domotique radio pour moins de 15€.

montage rflink rfxcom arduino mega 2560 superheterodyne domoticz
RFLink à base d’Arduino Mega 2560 et d’un module radio Super Heterodyne.

Pour ce tutoriel, nous utiliserons deux détecteurs de fumée Chacon 34126 qui communiquent en 433MHz. On les trouve assez facilement en magasin de bricolage ou les marchands en ligne.

detecteur fumees chacon 34126 34121

Avertissement. Vérifiez que la fréquence radio employée par l’appareil est autorisée dans votre pays avant tout achat.

Configuration de la passerelle dans Home Assistant

Tout comme MySensors, RFLink est supporté nativement par Home Assistant. Ouvrez le fichier de configuration.yaml. Si vous avez installé Home Assistant dans un environnement virtuel (conseillé), exécutez cette commande

sudo nano /home/homeassistant/.homeassistant/configuration.yaml

sinon, il le fichier se trouve dans le dossier utilisateur

sudo nano /home/UTILISATEUR/.homeassistant/configuration.yaml

La première chose à faire est de configurer un Hub RFLink. La documentation présente complète se trouve ici. Deux lignes suffisent

rflink:
  port: /dev/serial/by-id/usb-id01234

Pour trouver le port USB sur lequel est branché la passerelle, commencez par connecter l’Arduino Mega à votre ordinateur ou au Raspberry Pi. Ensuite, dans le Terminal, exécutez les commandes suivantes pour lister les appareils connectés.

cd /dev/serial/by-id
ls
usb-Arduino__www.arduino.cc__Arduino_Mega_2560_85430353631351209040-if00

D’autres paramètres optionnels peuvent compléter la configuration si besoin :

  • host : dans le cas ou la gateway est accessible depuis en autre poste en TCP/IP. Suivez ce tutoriel qui explique comment faire avec ser2net
  • wait_for_ask : attend la confirmation de l’exécution de la commande précédente avant d’envoyer la suivante. C’est le mode actif par défaut. Il est plus lent mais aussi plus fiable
  • ignore_devices : il est possible d’ignorer des périphériques radio. La commande supporte le joker (*)
  • reconnect_interval : temps d’attente en secondes entre deux tentatives de re-connexion
Attention. Home Assistant crash si la passerelle RFLink n’est pas connectée au démarrage

Activer le logger

Durant la mise au point, il est nécessaire d’activer l’enregistrement des messages par le logger intégré. Créez une nouvelle section logger si celle-ci n’existe pas encore. Il est possible de récupérer les messages radio ainsi que les messages échangés avec la gateway.

logger:
  default: error
  logs:
    rflink: debug
    homeassistant.components.rflink: debug

Le logger accepte plusieurs niveaux de sévérité. Le mode debug convient dans la plupart des cas :

  • critical
  • fatal
  • error
  • warning
  • warn
  • info
  • debug
  • notset

Redémarrer HASS

Enregistrez le fichier (CTRL + X puis Y) puis redémarrez Home Assistant. Je vous conseille de redémarrer le service depuis l’interface en vous rendant au panneau Configuration par exemple ou en exécutant cette commande depuis le Terminal.

sudo systemctl restart home-assistant@homeassistant

Suivez le lancement pour vérifier que HASS est bien connecté à la passerelle avec cette commande

sudo journalctl -fu home-assistant@homeassistant

Vous pouvez également consulter le log en ouvrant le fichier home-assistant.log qui se trouve dans le même répertoire que les fichiers de configuration. Voici un exemple

2017-05-19 12:16:05 INFO (MainThread) [homeassistant.components.rflink] Initiating Rflink connection
2017-05-19 12:16:05 INFO (MainThread) [homeassistant.components.rflink] Connected to Rflink
2017-05-19 12:16:05 DEBUG (MainThread) [rflink.protocol] connected
2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] received data: 20;00;Nodo RadioFrequencyLink - RFLink Gateway V1.1 - R46;
2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] got packet: 20;00;Nodo RadioFrequencyLink - RFLink Gateway V1.1 - R46;
2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] decoded packet: {'node': 'gateway', 'firmware': 'RFLink Gateway', 'protocol': 'unknown', 'revision': '46', 'hardware': '$
2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] got event: {'version': '1.1', 'firmware': 'RFLink Gateway', 'id': 'rflink', 'hardware': 'Nodo RadioFrequencyLink', 'revi$
2017-05-19 12:16:06 DEBUG (MainThread) [homeassistant.components.rflink] event of type unknown: {'version': '1.1', 'firmware': 'RFLink Gateway', 'id': 'rflink', 'hardware': 'Nod$
2017-05-19 12:16:06 DEBUG (MainThread) [homeassistant.components.rflink] unhandled event of type: unknown

Tout est correct, vous pouvez continuer

Inclusion des appareils : lumières, interrupteurs, capteurs

Maintenant qu’HASS peut se connecter à la passerelle, il ne reste plus qu’à ajouter les devices à un groupe existant (ou un nouveau groupe). Contrairement à MySensors, les appareils radio ne sont malheureusement pas listés dans le panneau d’état.

La première chose à faire est de récupérer l’identifiant de l’appareil. Pour cela, un seul moyen, faire fonctionner l’appareil pour qu’il envoi un signal radio contenant son identité. Appuyez sur le bouton de test ou de commande puis ouvrez le journal d’exécution (home-assistant.log) qui se trouve dans le même répertoire que les fichiers de configuration.

Ici, en appuyant sur le bouton de test du détecteur de fumée Chacon, on récupère toutes les informations nécessaires pour l’inclure dans Home Assistant.

2017-05-19 15:50:17 DEBUG (MainThread) [rflink.protocol] received data: 20;01
2017-05-19 15:50:17 DEBUG (MainThread) [rflink.protocol] received data: ;Slave;Debug=01 00 00 10
2017-05-19 15:50:17 DEBUG (MainThread) [rflink.protocol] received data: 00 1;
2017-05-19 15:50:17 WARNING (MainThread) [rflink.protocol] dropping invalid data: 20;01;Slave;Debug=01 00 00 10 00 1;
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: 20;02;
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: FA20RF;ID=40cd71;SWITCH=
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: 01;CMD=ON;SMOKEALERT=ON;
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data:
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] got packet: 20;02;FA20RF;ID=40cd71;SWITCH=01;CMD=ON;SMOKEALERT=ON;
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] decoded packet: {'node': 'gateway', 'command': 'on', 'protocol': 'fa20rf', 'smokealert': 'on', 'id': '40cd71', 'switch':$
2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] got event: {'command': 'on', 'id': 'fa20rf_40cd71_01'}

L’identifiant se trouve à la ligne got event.

L’identifiant est généré automatiquement par HASS. Il est de la forme protocol_id_type.

Ouvrez de nouveau le fichier de configuration.

sudo nano configuration.yaml

Les détecteurs de fumées sont gérés comme des interrupteurs. L’inclusion d’un appareil de type switch ne nécessite aucun réglage particulier. On ajoute un bloc de type switch en lui indiquant un nom (utilisé dans le groupe). La plateforme est de type rflink. Puis on liste les appareils (devices) reliés à ce bloc

switch sirenes:
  platform: rflink
  devices:
    fa20rf_40cd71_01:
      name: cuisine

C’est la configuration minimale nécessaire. D’autres paramètres sont disponibles pour affiner la gestion des appareils (la liste complète ici) :

Si vous devez inclure des capteurs, la configuration est un peu différente. En effet, il est nécessaire d’indiquer à HASS le type de capteur employé. Les types des capteurs supportés sont les suivants (documentation détaillée) :

  • average_windspeed : vitesse moyenne du vent
  • barometric_pressure : pression atmosphérique
  • battery : batterie
  • weather_forecast : prévision météo
  • doorbell_melody : mélodie de la sonnette
  • command : commande
  • co2_air_quality : teneur en CO2 dans l’atmosphère
  • current_phase_1 : intensité du courant phase 1
  • current_phase_2 : idem pour la phase 2
  • current_phase_3 : et la phase 3
  • distance
  • firmware
  • humidity_status
  • humidity
  • hardware
  • kilowatt
  • light_intensity : intensité lumineuse
  • meter_value
  • total_rain : hauteur d’eau totale tombée
  • rain_rate
  • revision
  • noise_level : niveau de bruit
  • temperature
  • uv_intensity : indice UV
  • version
  • voltage : tension du courant
  • watt
  • windchill (?)
  • winddirection : direction du vent
  • windgusts : rafale de vent
  • windspeed : vitesse du vent
  • windtemp : température du vent (?)

C’est la même chose pour les lumières mais le type n’est pas un paramètre obligatoire. Voici les types de lumière gérés (documentation détaillée) :

  • hybrid : envoi une commande dim suivie de ON ou OFF
  • Switchable : commutable, une lampe classique
  • Dimmable : variateur de lumière
  • Toogle : inverseur d’état. Il n’y a que la commande ON qui est envoyée. Cette commande peut être utile pour certains appareils tel que les interrupteurs muraux de la marque Livolo.

Configurer le groupe

Le plus dure est fait, l’ajout des détecteurs de fumée dans un groupe se fait très simplement. On va par exemple créer un groupe qui présente tous les détecteurs de fumée de la maison

smoke:
  name: Détecteurs de fumées
  control: hidden
  entities:
    - switch.cuisine  
    - switch.lingerie

On pourra ajouter ce groupe dans la vue capteurs par exemple

sensor_view:
  name: Capteurs
  view: yes
  icon: mdi:gauge
  entities:
    - group.smoke

Enregistrez la configuration et redémarrez Home Assistant depuis l’interface ou en exécutant cette commande

sudo systemctl restart home-assistant@homeassistant

Voilà, les deux détecteurs de fumées sont maintenant intégrés à Home Assistant. L’affichage n’est pas encore parfait. La surcharge du style disponible qui permet de définir le type de capteur via l’option device_class semble ne pas fonctionner pour RFLink. 

rflink home assistant smoke detector fumee chacon 34126 34131

Cet article Comment inclure des appareils domotiques radio RFLink à Home Assistant (HASS) est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Activer le bus i2c du Raspberry Pi 3 ou du Pi Zero W

Par christophe
bh1750 gy-302 i2c raspberry pi zerobh1750 gy-302 i2c raspberry pi zero

Le bus de données i2c permet d’échanger des données numériques entre un capteur (ou un actionneur) et un mini-PC tel que le Raspberry Pi. Le bus i2c est très répandu également sur les micro-contrôleurs (Arduino, ESP8266, ESP32). Par défaut, le bus i2c n’est pas activé sur la distribution Raspbian. Nous allons l’activer et installer les outils nécessaires.

Ce tutoriel fonctionne sur toutes les versions de Raspbian et tous les modèles de Raspberry Pi (y compris le nouveau Pi Zero W).

Activer le bus i2c avec l’outil raspi-config

Connectez-vous en SSH (lire ce tutoriel pour apprendre comment faire) ou ouvrez un Terminal puis lancez l’outil de configuration de Raspbian.

sudo raspi-config

Choisissez l’option (5) Interfacing Options

 raspberry pi i2c raspi-config

Puis dans la liste l’option (P5) I2C. Activez en choisissant YES. No pour désactiver.

raspberry pi i2c activate raspi-config

Il est nécessaire de redémarrer le Raspberry Pi pour prendre en compte la modification.

sudo reboot

Installer les outils i2c

Tout d’abord, faites une mise à jour du système.

Attention, l’opération risque de prendre du temps si vous n’avez pas mis à jour le système depuis longtemps.
sudo apt update 
sudo apt upgrade -y

Une fois le système mis à jour, lancez l’installation les outils permettant de communiquer avec les périphériques i2c en Python (python-smbus) et les outils de diagnostic (i2c-tools).

sudo apt-get install -y python-smbus i2c-tools

L’installation terminée, on peut déjà tester si les modules sont bien chargés

pi@raspberrypi:~ $ lsmod | grep i2c_
i2c_bcm2835             6433  0 
i2c_dev                 6642  0

Vous devez le module i2c_bcm2708 (ou i2c_bcm2835 sur le Raspberry Pi Zero W), c’est que les modules ont été correctement chargés.

Broches i2c sur le GPIO du Raspberry

Les broches i2c se trouvent sur les broches 3 (SDA) et 5 (SCL).

Raspberry pi reperage broches Pinout

Si vous débutez avec le Raspberry Pi, je vous conseille de vous procurer un adaptateur pour breadboard sur lequel les broches sont déjà repérées. La broche 1 du GPIO est symbolisée par un carré. adaptateur wedge gpio raspberry pi

Brancher et tester un périphérique i2c au Raspberry Py

Pour éviter toute détérioration de votre Raspberry Pi, il est impératif d’éteindre le système avec la commande
sudo halt
 et débrancher l’alimentation électrique.

Pour illustrer ce tutoriel, j’ai capteur de luminosité BH1750 (GY-302 de CJMCU) présenté dans cet article. N’importe quel autre capteur i2c pourra faire l’affaire. Par défaut, le BH1750 possède l’adresse 0x23.

Vérifier l’adresse du périphérique avec i2cdetect

La commande i2cdetect permet de connaitre l’adresse du périphérique sur le bus i2c. Le bus i2c permet de connecter jusqu’à 255 appareils. En fonction de la version du Raspberry Pi, la commande est différente. Pour les Pi 3 et Pi 2 (modèles A, B, B+) et le Pi Zero, exécutez

sudo i2cdetect -y 1

Pour les anciens modèles, exécutez

sudo i2cdetect -y 0

En cas d’erreur, vous obtiendrez le message suivant

Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory

Voici ce que vous devriez obtenir. Le BH1750 se trouve bien à l’adresse prévue.

pi@raspberrypi:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

Voilà, tout est prêt pour utiliser des capteurs i2c dans vos programmes python, C++ ou Node-RED.

 

 

 

 

 

Cet article Activer le bus i2c du Raspberry Pi 3 ou du Pi Zero W est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Comment souder le connecteur GPIO du Raspberry Pi Zero W

Par christophe

Le Raspberry Pi Zero W est livré avec un connecteur GPIO à souder soi-même sur le PCB. C’est une étape qui peut être effrayant lorsqu’on débute. Dans ce tutoriel, nous allons apprendre quel matériel utiliser et comment souder le connecteur correctement et en toute sécurité pour le Pi Zero W. Matériel nécessaire Pour ce tutoriel, j’ai …

Cet article Comment souder le connecteur GPIO du Raspberry Pi Zero W est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

💾

Installer Jeedom v3 à partir du script d’installation sur Raspberry Pi 3 (ou PC Linux Debian 8)

Par christophe

jeedom v3 installation mysql raspberry pi 3Depuis le passage à la version 3 de Jeedom, l’image de la carte SD du serveur domotique n’est plus proposée au téléchargement. Jeedom s’installe maintenant sur n’importe quelle distribution Linux basée sous Debian 8 à l’aide d’un script (comme Domoticz d’ailleurs). On pourra donc créer une box domotique DIY en recyclant un ancien PC windows, …

Cet article Installer Jeedom v3 à partir du script d’installation sur Raspberry Pi 3 (ou PC Linux Debian 8) est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Deviot, le package Sublime Text 3 PlatformIO pour PC recyclé sous Linux 32-bits

Par christophe

platformio sublime text 3 deviot installedDans l’article d’introduction à l’IDE PlatformIO, nous avons installé PIO avec l’éditeur de texte Open Source de GitHub Atom. Comme beaucoup de projets, Atom n’est plus proposé pour les anciens processeurs Intel x86 32-bits. Si vous souhaitez recycler un ancien PC en plateforme de développement sous Linux (Ubuntu par exemple), Atom n’est pas la solution. …

Cet article Deviot, le package Sublime Text 3 PlatformIO pour PC recyclé sous Linux 32-bits est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

BH1750 (GY-302), mesurer la qualité de l’éclairage de votre habitation (Arduino/ESP8266/ESP32)

Par christophe

arduino ic2 BH1750 circuitLe GY-302 de CJMCU est une carte I2C qui permet de mesurer la quantité de lumière à l’aide du photo-détecteur BH1750. Nous utiliserons la luminosité mesurée pour construire un indicateur de qualité d’éclairage ambiant basé sur la norme Européenne EN 12464-1. Il est très facile d’intégrer la capteur GY-302 dans un projet Arduino ou ESP8266 …

Cet article BH1750 (GY-302), mesurer la qualité de l’éclairage de votre habitation (Arduino/ESP8266/ESP32) est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Installer l’extension PlatformIO IDE pour Visual Studio Code (VSCode) : Windows, Linux 32-bit

Par christophe

platformio visual studio code vscode packagePlatformIO est disponible sous la forme d’une extension pour Visual Studio Code (aussi appelé VSCode) de Microsoft. VSCode est un éditeur de code léger et gratuit pour Windows, macOS, Linux 32-bits et 64-bits. Installer l’extension PlatformIO pour VSCode est une bonne alternative à la solution officielle basée sur Atom. VSCode est un éditeur de code beaucoup …

Cet article Installer l’extension PlatformIO IDE pour Visual Studio Code (VSCode) : Windows, Linux 32-bit est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

Calculer l’Indice de Qualité de l’Air (IAQ, IQA) avec un DSM501 sur Arduino ou ESP8266

Par christophe

DSM501 PINOUT PM10 PM25L’indice de qualité de l’air (IAQ ou IQA en anglais) est assez facile a déterminer à l’aide d’un Arduino (ou ESP8266) et un capteur DSM501. Le capteur DSM501A est un détecteur capable de mesurer la présence de fines particules en suspension dans l’atmosphère suivant les normes PM2.5 et PM10. Le DSM501A est un capteur très économique …

Cet article Calculer l’Indice de Qualité de l’Air (IAQ, IQA) avec un DSM501 sur Arduino ou ESP8266 est apparu en premier sur Projets DIY - Domotique et objets connectés à faire soi-même.

❌