Quantcast
Channel: Raspberry Pi – Domotique et objets connectés à faire soi-même
Viewing all 46 articles
Browse latest View live

Node-RED : installer, désinstaller facilement des modules

$
0
0

Il existe un très grand nombre de modules (Nodes) et de Flows pour Node-RED disponibles sur la librairie en ligne http://flows.nodered.org/. Il est très facile de gérer les modules installés sur directement depuis le navigateur internet sans passer par les lignes de commandes. Le gestionnaire de palette permet d’activer ou désactiver les Nodes inclus dans chaque module, d’installer …

Cet article Node-RED : installer, désinstaller facilement des modules est apparu en premier sur Projets DIY.


Comblez la faille Dirty Cow sur Raspberry Pi

$
0
0

Le Raspberry PI n’échappe pas à la faille de sécurité Dirty Cow qui tous les systèmes Linux. Cette faille de sécurité identifiée en 2007 vient seulement corrigée aujourd’hui. C’est une faille qui touche le noyau (kernel) de tous les systèmes. Toutes les plateformes sont touchées. Ca va du smartphone Android, au serveur WEB, en passant …

Cet article Comblez la faille Dirty Cow sur Raspberry Pi est apparu en premier sur Projets DIY.

Jeedom sur Raspberry Pi 3 : installation, WiFi, 1er pas

$
0
0

Jeedom @Jeedom_domotic est un serveur domotique Open Source Français très simple d’utilisation et disons le, très beau. Open Source ne signifie par toujours gratuit, Jeedom dispose de son Market et il faudra sortir sa carte bancaire de temps en temps lorsqu’on craque pour un module. Les prix sont toutefois très raisonnables (quelques euros). Dans ce tutoriel, nous …

Cet article Jeedom sur Raspberry Pi 3 : installation, WiFi, 1er pas est apparu en premier sur Projets DIY.

Tester des logiciels domotique sur Raspberry Pi 3 grâce à Docker

$
0
0

Nous avons vu dans l’article précédent comment installer et le Docker Toolbox pour tester des logiciels domotique simplement sur Mac et PC. Maintenant que Docker est supporté officiellement par la fondation Raspberry, il est très facile de l’installer. Nous allons en profiter pour tester quelques logiciels domotique. Pour réaliser cet article, j’ai suivi le tutoriel …

Cet article Tester des logiciels domotique sur Raspberry Pi 3 grâce à Docker est apparu en premier sur Projets DIY.

Commandes utiles pour configurer et utiliser son Raspberry Pi

$
0
0

Le Raspberry Pi est un ordinateur qui fonctionne sous Linux. Même si beaucoup de choses peuvent se faire à l’aide de logiciels qui possèdent une interface graphique, le Terminal de commande reste omni présent pour configurer, mettre à jour, installer. A force de chercher les commandes sur internet, j’ai fini par écrire un petit article …

Cet article Commandes utiles pour configurer et utiliser son Raspberry Pi est apparu en premier sur Projets DIY.

Picamera (version 1.9) : piloter en Python la caméra du Raspberry Pi

$
0
0

Depuis sa sortie, la librairie Picamera qui permet de piloter et d’exploiter la caméra du Raspberry Pi a pas mal évoluée. Dans cet article, nous allons voir les changements introduits dans la version 1.8 ainsi que les nouveautés de la version 1.9 (si vous avez besoin, la documentation officielle se trouve ici). Pour ceux qui …

Cet article Picamera (version 1.9) : piloter en Python la caméra du Raspberry Pi est apparu en premier sur Projets DIY.

Nouveau script d’installation de Jeedom v3.x sur Raspberry Pi (fonctionne aussi sur PC Linux Debian 8) [Màj 2018]

$
0
0
jeedom v3 installation mysql raspberry pi 3

Depuis le passage à la version 3 de Jeedom, l’image de la carte SD basée sur Raspbian pour le Raspberry Pi 3 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, un Raspberry Pi 3 ou un Orange Pi (suivez ce tutoriel pour installer Jeedom sur la carte SD ou la mémoire eMMC). Il est également possible de mettre à jour la version 2 de Jeedom. Pour cela, n’hésitez pas à aller lire cet article publié sur Maison et Domotique. Pour ce tutoriel, nous allons installer Jeedom v3 sur un Raspberry Pi 3 fonctionnant sous Raspbian Stretch Desktop livré avec le bureau Pixel préinstallé

Configuration de base

Si vous vous lancez dans la fabrication d’une box domotique Jeedom, voici une configuration à base de Raspberry Pi 3 très bien adaptée. Vous pouvez également consulter ce guide d’achat sur le comparateur de prix.

Si vous préférez acheter le Raspberry Pi 3 seul, vous aurez également besoin d’une carte SD (je vous conseille d’en acheter une seconde pour cloner régulièrement votre système en suivant ce tutoriel). Choisissez une carte de grande marque à la norme SDXC, UHS-1, UHS-3 ou classe 10 pour obtenir les meilleures performances.

Enfin, il vous faudra une alimentation 5V micro-USB. Le Raspberry Pi 3 consomme peu. Une alimentation 2A est suffisante. Toutefois, si vous voulez y connecter des accessoires USB ou une caméra CSI, il est préférable d’opter pour une alimentation 3A (3000 mA). Si l’alimentation électrique est insuffisante, vous risquer d’avoir des arrêts du système. En plus d’être gênant pour un serveur domotique, vous risquer de détériorer la carte SD.

Le Rasberry Pi 3 dispose d’une sortie vidéo au standard HDMI, vous aurez peut être besoin d’un adaptateur HDMI vers DSUB (VGA) ou HDMI vers DVI pour brancher le RPI3 à un moniteur VGA ou DVI.

Protéger le serveur domotique avec un onduleur

L’onduleur est le dernier achat important pour un serveur domotique. Le prix de l’onduleur va rapidement faire grimper la note de votre équipement mais il 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 !).

Passerelle domotique RFXCom, Z-Wave, RFLink

Pour piloter vos appareils sans fils depuis Jeedom, vous pouvez ajouter une (ou plusieurs) passerelles domotiques.

RFXCOM RFXCom

Environ 110€

Module payant 4€

cle dongle jeedom domoticz z-wave zwave.me Clé Z-Wave

Environ 34€

Module gratuit

montage rflink rfxcom arduino mega 2560 superheterodyne domoticz Passerelle Open Source RFLink

Tutoriel pour fabriquer une passerelle RFLink 100% DIY pour environ 10,50€

Module payant 4€. La liste du matériel à acheter

Préparer la carte SD Raspbian

Si vous débutez en domotique et que vous venez d’acheter un Raspberry Pi 3, la première chose à faire est de préparer la carte SD du système d’exploitation. Allez sur le site officiel de la fondation et téléchargez l’image de la distribution Raspbian Jessie ou Jessie Lite. La version Lite est plus légère. Il n’intègre pas de bureau graphique (appelé Pixel) et aucun logiciel pré-installé (navigateur internet, messagerie, suite bureautique…).

Si le Raspberry Pi est réservé à la box domotique (fortement conseillé), la version Lite est suffisante.

raspberry pi jessy lite raspbian

Pour ce tutoriel, nous allons installer Jeedom sur un Raspberry Pi 3 fonctionnant sous Raspbian Jessie avec le bureau Pixel. Suivez ce tutoriel pour installer Raspbian sans écran ni clavier.

Après avoir téléchargé l’image de la carte SD, utilisez le logiciel Open Source Etcher pour installer Raspbian sur la carte SD. Suivez ce guide qui explique toutes les étapes. Etcher est disponible sur Windows, macOS et Linux.

etcher sd card

Configuration WiFi et SSH de Raspbian (sans clavier ni écran)

La fondation Raspberry à prévu un mécanisme de configuration du réseau WiFi au premier démarrage qui permet de connecter Raspbian au réseau WiFi sans avoir besoin d’écran ou de clavier. Après avoir “gravé” (ou plutôt copié) le système Raspbian sur la carte micro SD avec Etcher (ou tout autre logiciel de gravure) ouvrez un éditeur de texte (Nodepad++ ou Sublime Text).

A la fin de la gravure, Etcher éjecte automatiquement la carte SD du lecteur. Insérez de nouveau la carte SD de Raspbian dans le lecteur.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR

network={
  ssid=<span class="hljs-string">"SSID"</span>
  psk=<span class="hljs-string">"MOT DE PASSE WIFI"</span>
  key_mgmt=WPA-PSK
  scan_ssid=1
}

Enregistrez le fichier à la racine de la carte SD (nommée boot) sous le nom wpa_supplicant.conf

Pour pouvoir vous connecter depuis un autre ordinateur en SSH, il faut activer le port 22. Pour cela, il suffit de créer un simple fichier texte et le nommer ssh (sans aucune extension)

La méthode s’applique à tous les modèles de Raspberry Pi.

Démarrer le Raspberry Pi

Au premier démarrage, Raspbian s’occupe d’étendre la partition pour occuper tout l’espace disponible sur la carte SD.

Configurer le clavier

Pour tout mettre en Français, ouvrez le Menu puis Preferences -> Raspberry Pi Configuration et allez dans l’onglet Localisation.

Cliquez sur Set Locale…

Choisissez fr (French) en face de Language et Fr (France) en face de Country

raspberry raspbian configurer interface en francais

Votre Pi doit redémarrer pour prendre en compte les modifications.

Une fois redémarré, ouvrez le Menu -> Préférences -> Clavier et souris

Allez dans l’onglet clavier et cliquez sur Keyboard Layout…

raspberry pi 3 raspi 3 configurer clavier azerty francais
Dans la liste qui s’affiche, choisissez France en dessous de la colonne Country et cherchez le clavier qui s’approche le plus du vôtre dans la colonne Variant.

Validez. Votre clavier est maintenant en AZERTY.

Configurer le WiFi et le bluetooth

Le bluetooth est activé par défaut. Il n’y a rien de plus à faire.

Pour connecter le Raspberry Pi au réseau WiFi, cliquez sur l’icône réseau à coté de l’heure (dans le coin supérieur droit de l’écran). Sélectionner le réseau et saisir le mot de passe dans la fenêtre qui s’affiche.

activate wifi raspbian jessie

Modifier le mot de passe et activer  la connexion SSH manuellement

Raspbian est livré avec un mot de passe par défaut qui pourrait être utilisé par des pirates pour accéder à votre box domotique. Lisez cet article sur le Trojan Linux.MulDrop.14 récemment découvert. Il est impératif de le modifier. Pour cela, exécutez la commande

passwd
  et suivez les consignes.
Ne débranchez jamais le câble d’alimentation sans avoir arrêté le système. C’est le meilleur moyen de casser votre carte SD ! Pour arrêter le système, exécutez la commande
sudo halt
. Après l’extinction de la Led d’activité, attendez encore 5 secondes.

Pour activer la connexion SSH qui permettra d’installer ou de mettre à jour Jeedom et Raspbian depuis un autre ordinateur (sans avoir besoin d’un clavier et d’une souris pour le Raspberry Pi), il suffit d’aller dans le panneau de configuration. Suivez ce tutoriel pour apprendre comment fonctionne une connexion sécurisée SSH.

raspbian raspberry pi activer connexion ssh

Configurer le clavier en français avec l’utilitaire raspi-config

Si vous avez installé la version Lite de Raspbian (version sans le bureau graphique), lancez l’utilitaire de configuration avec la commande sudo raspi-config

Allez dans le menu Localisation Options puis Change Keyboard Layout

 

Installer Jeedom v3 sur Raspbian Stretch

Maintenant que tout est prêt, nous pouvons lancer l’installation de Jeedom. Il n’y a quasiment rien à faire car c’est le script qui va se charger de tout. La procédure est détaillée dans la documentation officielle (point 5 – Autre/DIY). Le code du script d’installation est disponible sur GitHub ici.

Avant de lancer l’installation de Jeedom, je vous conseille de mettre à jour votre système manuellement. Le script s’en charge mais parfois il y a des erreurs durant la mise à jour ce qui fait échouer le script. Exécutez ces deux commandes

sudo apt-get update
sudo apt-get upgrade

 

L’installation de Jeedom va se dérouler en 11 étapes successives :

  • step_1_upgrade : mise à jour du système. C’est l’opération la plus longue car le script fait un update et un dist-upgrade du système
  • step_2_mainpackage : installation des librairies
  • step_3_database : installation et configuration de mysql. Durant cette étape, le mot de passe à la base de données sera affiché dans le Terminal. C’est une série de chiffres et de lettres générée au hazard. Notez le. En cas de plantage durant l’installation, il vous permettra de reprendre facilement celle-ci
  • step_4_apache : installation du serveur web apache
  • step_5_php : installation de php
  • step_6_jeedom_download : télécharge les ressources de Jeedom et décompresse le Zip dans
    /var/www/html
  • step_7_jeedom_customization : construction du système
  • step_8_jeedom_configuration : configuration de Jeedom. Si le script s’est planté auparavant, le script ne pourra plus se connecter à la base de données car un nouveau mot de passe aura été généré. La solution est données plus bas dans l’article
  • step_9_jeedom_installation : exécute le script php install.php
  • step_10_jeedom_post : mise en place de la cron table (exécutions programmées)
  • step_11_jeedom_check : dernière vérification

Exécutez ces trois commandes pour installer Jeedom sur Raspbian. La première commande permet de récupérer le script d’installation. On rend ensuite ce script exécutable (chmod +x) avant de le lancer.

Connectez vous au Raspberry en SSH ou ouvrez un Terminal puis récupérez le script d’installation avec cette commande wget

wget -O- https://raw.githubusercontent.com/jeedom/core/stable/install/install.sh | sudo bash

Rendez le script exécutable avec la commande

chmod +x install.sh

Le script d’installation accepte plusieurs paramètres (tout est détaillé ici) :

  • -w, le dossier d’installation des fichier de l’interface web accessible depuis n’importe quel ordinateur, smartphone ou tabellete connecté au réseau de votre domicile
  • -z, permet d’installer les dépendances pour la prise en charge des accessoires domotiques z-wave
  • -m, le mot de passe root mysql désiré

Ce qui donne par exemple

./install.sh -w /var/www/html -z -m Jeedom

Le temps d’installation va fortement dépendre de la vitesse de votre connexion internet et de l’état de votre système. S’il est déjà à jour, la première étape (qui est la plus longue) sera très rapide. En principe tout se fait tout seul. Il faut juste de la patience ! Ls développeurs de Jeedom annoncent 45 minutes d’installation.

Attention. Il ne faut pas interrompre le script d’installation, surtout après l’étape 3. Un mot de passe est créé automatiquement pour configurer la base de donnée:80s MySQL. Il n’est indiqué qu’à la fin de l’exécution du script. Suivez ce tutoriel pour ré-initialiser le mot de passe en cas de problème.

Voici un extrait des nouveautés proposées par la version 3 (la liste complète ici)

  • Suppression du mode esclave
  • Possibilité de déclencher un scénario sur un changement d’une variable
  • Les mises à jour de variables déclenchent maintenant la mise à jour des commandes d’un équipement virtuel (il faut la dernière version du plugin)
  • Possibilité d’avoir une icône sur les commandes de type info
  • Possibilité sur les commandes d’afficher le nom et l’icone
  • Ajout d’une action « alert » sur les scénarios : message en haut dans jeedom
  • Ajout d’une action « popup » sur les scénarios : message à valider
  • Les widgets des commandes peuvent maintenant avoir une méthode d’update ce qui évite un appel AJAX à Jeedom
  • Les widgets des scénarios sont maintenant mis à jour sans appel ajax pour avoir le widget
  • Le résumé global et des pièces sont maintenant mis à jour sans appel ajax
  • Un clic sur un élément d’un résumé domotique vous amène sur une vue détaillée de celui-ci
  • Vous pouvez maintenant mettre dans les résumés des commandes de type texte
    Changement des bootstraps slider en slider (correction du bug du double événement des sliders)
  • Sauvegarde automatique des vues lors du clic sur le bouton « voir le résultat »
  • Possibilité d’avoir les docs en local
  • Les développeurs tiers peuvent ajouter leur propre système de gestion de tickets
  • Refonte de la configuration des droits utilisateurs (tout est sur la page de gestion des utilisateurs)
  • Mise à jour des libs : jquery (en 3.0) , jquery mobile, hightstock et table sorter, font-awesome
  • Grosse amélioration des designs :
    • Toute les actions sont maintenant accessibles à partir d’un clic droit
    • Possibilité d’ajouter une commande seule
    • Possibilité d’ajouter une image ou un flux vidéo
    • Possibilité d’ajouter des zones (emplacement cliquable) :
      • Zone de type macro : lance une série d’actions lors d’un clic dessus
      • Zone de type binaire : lance une série d’actions lors d’un clic dessus en fonction de l’état d’une commande
      • Zone de type widget : affiche un widget au clic ou au survol de la zone
    • Optimisation général du code
    • Possibilité de faire apparaître une grille et de choisir sa taille (10×10,15×15 ou 30×30)
    • Possibilité d’activer une aimantation des widgets sur la grille
    • Possibilité d’activer une aimantation des widgets entre eux
    • Certains types de widgets peuvent maintenant être dupliqués
    • Possibilité de verrouiller un élément
  • Les plugins peuvent maintenant utiliser une clef api qui leur est propre
  • Ajout d’interactions automatiques, Jeedom va essayer de comprendre la phrase, d’exécuter l’action et de répondre

Erreur SQLSTATE[HY000] [2002] No such file or directory : problème avec la base de données MySQL

Jeedom utilise la base de données Open Source MySQL (aussi appelée MariaDB) pour fonctionner. Même si en théorie tout est installé et configuré par la script, vous risquez de rencontrer ce message après l’installation. Le message SQLSTATE[HY000] [2002] No such file or directory signifie que Jeedom n’arrive pas à se connecter à la base de données. Vous pourrez également rencontrer ce problème suite à un arrêt imprévu de Jeedom (une coupure de courant, un plantage de Jeedom…). Impossible de décrire toutes les solutions. Consultez le forum officiel ici. Pour ma part, j’ai obtenu le message d’erreur après l’installation. Je n’en connais pas la cause exacte mais voici comment je m’en suis sorti !

Tout d’abord, mettez en lieu sûre le mot de passe généré par le script au moment de l’installation. Il est indiqué  par le script à la fin de l’installation dans la section ALL CECKS COMPLET. C’est un identifiant unique composé de 15 caractères alphanumériques généré automatiquement au démarrage du script.

On commence par désinstaller MySQL du système

sudo apt-get purge mysql-server

Puis tout le contenu du répertoire

sudo rm -rf /var/lib/mysql

Enfin, on installe MySQL

sudo apt-get install mysql-server

Durant l’installation, une fenêtre va apparaître pour vous demander le mot de passe root. Collez le mot de passe généré par le script précédemment. Rien ne vous interdit d’utiliser un autre mot de passe. Il faudra l’indiquer au script d’installation de Jeedom juste après.

Pour sécuriser encore plus MySQL, vous pouvez exécuter la commande mysql_secure_installation

Evidemment, désinstaller et ré-installer MySQL n’est pas sans conséquences sur Jeedom. Si vous actualisé le navigateur internet, vous aurez le message d’erreur suivant

SQLSTATE[HY000] [1045] Access denied for user 'jeedom'@'localhost' (using password: YES)

Il va falloir “rejouer” le script d’installation pour tout remettre en ordre. Comme vous avez noté le mot de passe (et ré-installé MySQL avec le même), exécutez cette commande

sudo ./install.sh -m MOT_DE_PASSE_MYSQL

Comme le système est déjà à jour et que toutes les ressources ont été téléchargées, quelques minutes suffisent.

Et voilà, vous pouvez commencer à configurer votre box domotique 100% DIY Jeedom v3 ! Ouvrez Jeedom en saisissant l’adresse IP du Raspberry Pi depuis n’importe quel ordinateur ou tablette du réseau local.

Connectez vous avec l’utilisateur Admin et le mot de passe admin. N’oubliez pas de changer le mot de passe dans les réglages pour plus de sécurité.

Mises à jour

[17 mai 2018] Modification de l’url du script v3. Clarification des paramètres d’installation du script d’installation

Vous pouvez partager vos difficultés et vos astuces sur le forum ici
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

L’article Nouveau script d’installation de Jeedom v3.x sur Raspberry Pi (fonctionne aussi sur PC Linux Debian 8) [Màj 2018] est apparu en premier sur Domotique et objets connectés à faire soi-même.

Comment souder le connecteur GPIO du Raspberry Pi Zero W

$
0
0
raspberry pi zero w without keyboard screen

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 acheté le kit Essential de PiHut sur Amazon. Ce kit est livré avec 3 types de connecteurs :

  • Un connecteur droit identique à celui qui équipe son grand frère, le Raspberry Pi3
  • Un connecteur coudé à 90° qui permet de concevoir des montage à plat
  • Un connecteur femelle identique à celui qui équipe les cartes Arduino

raspberry pi zero w essential kit pihut connectors

Pour souder le connecteur, je vous recommande d’utiliser un fer à souder de bonne qualité. L’idéal est de vous procurer un fer à souder avec un contrôler la température de soudure. On obtient de bons résultats entre 300 et 400°C. Optez pour un fer à souder avec une panne de 2mm diamètre maximum. On en trouve pour moins de 20€ sur Amazon. Prenez du fil d’étain entre 0,5 et 1mm de diamètre.

station de soudage raspberry pi

Le plus facile pour souder correctement les connecteurs, c’est d’utiliser une breadboard (platine de prototypage). Il suffira d’insérer le connecteur dans la breadboard puis de poser la carte à souder.

 

Dernier outil indispensable, la pompe à dessouder. En cas d’erreur ou d’un apport trop important en étain, vous pourrez corriger le problème. Evitez les modèles en plastique bon marché. La pompe va fonctionner 50 fois avant de satelliser le piston à l’autre bout de la pièce, c’est du vécu  :-D.

Comment souder facilement

Il existe de nombreux tutoriels qui expliquent comment bien souder sur internet et surtout de bonnes vidéos sur Youtube. Vous pouvez commencer par celle-ci (j’ai passé le bla-bla du début)

Ce qu’il faut en retenir

  • Se mettre dans de bonnes conditions : à plat, éclairage, loupe
  • Positionner les éléments à souder
  • Placer la panne à la jonction de la broche et du circuit et pré-chauffer durant 3 secondes
  • Apporter un peu de soudure
  • Au contact de la panne, la soudure va chauffer et mouiller le connecteur. C’est à dire qu’elle va couler le long de la broche et venir combler l’espace entre la broche et le circuit
  • Pour les connecteurs, on soude d’abord deux broches à chaque extrémité pour éviter qu’il ne bouge durant le montage
Attention. Limitez le temps de chauffe lorsque vous soudez un circuits sur lequel il y a déjà des composants. Vous risquez de dé-souder des composants. Pire, certains composants sont sensibles à la chaleur, vous risquez donc de les détruire. 

Souder le connecteur sur le Raspberry Pi Zero W

Ici, j’ai opté pour le connecteur droit identique au Raspberry Pi 3. Le connecteur micro HDMI étant plus épais que la carte, il faut se placer sur un bord de la breadboard pour que le connecteur GPIO puisse être plan. Maintenez la carte en place puis faites 2 points de soudure à chaque extrémité du connecteur.

raspberry pi zero w essential kit pihut connectors breadboard top

Vous obtiendrez ainsi un montage correct

raspberry pi zero w essential kit pihut connectors breadboard

Vous pouvez maintenant procéder à la soudure des broches restantes. Pour terminer ce tutoriel, voici une petite vidéo de quelques points de soudure. Si vous avez d’autres astuces, n’hésitez pas à partager votre expérience dans les commentaires.

 

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


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

$
0
0
bh1750 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.

 

 

 

 

 

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

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

$
0
0

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

N’ayant pas trouvé de modèle à imprimer en 3D pour les caméras NoIR avec double éclairage à LED compatibles avec le Raspberry Pi W, j’ai réalisé le miens. Il est disponible sur Thingiverse. Toutes les étapes de fabrication, d’assemblage et d’installation de la distribution Kerberos en détail sur cet article.

photo studio filtree

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

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

Comment fabriquer une box domotique 100% DIY avec un Raspberry Pi 3 pour Jeedom, Domoticz, Home Assistant

$
0
0

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 PiZero 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.

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 PiZero 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 SysBench 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. Vous obtiendrez de meilleures performances avec des cartes SD de nouvelle génération de type SDXC II V60 (60MB/s).

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 sur Rail DIN

Autre accessoire utile, un petit boitier de protection. On en trouve pour quelques euros. Cependant, il est souvent beaucoup moins chère d’acheter le Raspberry Pi 3 dans un pack. On en trouve qui intègrent un boitier, des dissipateurs thermiques (même si le RPi chauffe très peu), une alimentation 5V/3A.

Pour fabriquer une box domotique, il existe également des boitiers inclinés qui peuvent recevoir un écran tactile 7”. C’est idéal pour fabriquer un panneau de commande tactile pour piloter vos accessoires domotiques. Vous pourrez au choix poser votre box domotique sur un meuble ou la fixer au mur.

La dernière solution consiste à installer le Raspberry Pi directement dans l’armoire électrique à l’aide d’un boitier équipé d’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 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+ 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.

  • Contrôleur USB Z-Wave+ - Everspring

    32,90€

    Le contrôleur Z-Wave d'Everspring se connecte sur un port USB de votre ordinateur ou d'une carte Raspberry-Pi. Il vous permet ensuite de communiquer avec votre réseau Z-Wave. Vous pourrez ainsi ...

    Disponibilité : En stock
    amazon amazon.fr
  • Z-Wave.Me Centrale USB-Stick ZME_UZB1

    30,00€

    USB Smart Home Stick My Cloud2 WD 

    Disponibilité : En stock
    amazon amazon.fr
  • z-wave.me RaZberry - contrôleurs périphériques (Z-Wave)

    63,46€

    Otras características: Compatibilité: Raspberry PIContrôleur d'interface: Z-WaveInterface de l'hôte: GPIOMicrologiciel évolutif: Oui

    Disponibilité : En stock
    amazon amazon.fr

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: 90,00
as of 25 June 2018  
Buy This Item
amazon.fr
Wait For A Price Drop
You will receive a notification when the price drops.

Price History

Statistics

Current Price 90,00€ 25 June 2018
Highest Price 101,00€ 13 January 2018
Lowest Price 90,00€ 14 June 2018
Since 9 January 2018

Last price changes

90,00€ 14 June 2018
91,00€ 13 June 2018
92,00€ 24 May 2018
92,50€ 20 May 2018
92,00€ 18 May 2018

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

Home Assistant

Home Assistant

L’article Comment fabriquer une box domotique 100% DIY avec un Raspberry Pi 3 pour Jeedom, Domoticz, Home Assistant est apparu en premier sur Domotique et objets connectés à faire soi-même.

Station météo avec affichage ePaper (Dashboard) pour Jeedom sur Raspberry Pi (via l’API JSON RPC)

$
0
0
jeedom epaper waveshare display dashboard weather station

La semaine dernière, nous avons pu tester l’écran ePaper (eInk) 2,7 pouces du fabricant chinois Waveshare. Nous n’étions pas allé très loins dans la présentation. Il me fallait un peu de temps pour apprendre à maitriser la librairie Python Imaging Library (ou le fork Pillow). Je vous propose dans ce nouveau tutoriel d’aller beaucoup plus loin. Nous allons réaliser une station météo connectée à un serveur domotique Jeedom. Le plugin météo (gratuit) de Jeedom permet de récupérer très facilement les prévisions sur 5 jours sur le site  openweathermap.org. Bien évidemment, ce n’est qu’un prétexte. L’idée étant de montrer les différents mécanismes à mettre en place pour interroger le serveur Jeedom, récupérer les données d’un appareil et comment générer l’affichage ePaper.

Remarque. Vous pouvez tester et mettre au point votre code sur n’importe quel PC Windows ou Linux, Mac ou Raspberry Pi sans avoir d’écran eInk. Il suffira d’enregistrer l’image générée par la librairie Python Imaging.

Matériel utilisé pour la station météo ePaper

Pour ce projet, j’ai utilisé le matériel suivant. L’écran mesure 2,7 pouces de diagonale avec une résolution de 264 x 176 pixels. Il est assez grand pour afficher les prévisions météo en détail. Il possède 4 boutons sur le coté que l’on va utiliser pour naviguer entre les écrans. On pourrait également les utiliser pour déclencher un scénario domotique ou afficher d’autres états.

57,99€
4 nouveau de 57,99€
Relevé le 25 juin 2018 18 h 57 min
Amazon.fr
Livraison gratuite

Vous pouvez également choisir un autre écran dans la gamme Waveshare

Ecran

Couleurs

Niveau de gris

Résolution (pixels)

Taille écran (mm)

Taille totale (mm)

Temps de rafraîchissement (s)

Interface

Compatible HAT(1)

1.54 pouces

noir, blanc

2

200×200

27.60 × 27.60

48.0 × 33.0

2

SPI

x

1.54 pouces (B)

rouge, noir, blanc

2

200×200

27.60 × 27.60

48.0 × 33.0

8

SPI

x

2.13 pouces

noir, blanc

2

250×122

48.55 × 23.71

65.0 × 30.2

2

SPI

2.13 pouces (B)

rouge, noir, blanc

2

212×104

48.55 × 23.71

65.0 × 30.2

15

SPI

2.7 pouces

noir, blanc

2

264×176

57.29 × 38.19

85.0 × 56.0

6

SPI

2.7 pouces (B)

rouge, noir, blanc

2

264×176

57.29 × 38.19

85.0 × 56.0

15

SPI

2.9 pouces

noir, blanc

2

296×128

66.89 × 29.05

89.5 × 38.0

2

SPI

x

2.9 pouces (B)

rouge, noir, blanc

2

296×128

66.89 × 29.05

89.5 × 38.0

15

SPI

x

4.2 pouces

noir, blanc

2

400×300

84.80 × 63.60

103.0 × 78.5

4

SPI

x

4.2 pouces (B)

rouge, noir, blanc

2

400×300

84.80 × 63.60

103.0 × 78.5

15

SPI

x

4.3 pouces

noir, blanc

4

800×600

88.00 × 66.00

118.0 × 75.0

1.5

UART

x

7.5 pouces

noir, blanc

2

640×384

163.20×97.92

170.2×111.2

6

SPI

7.5 pouces (B)

rouge, noir, blanc

2

640×384

163.20×97.92

170.2×111.2

31

SPI

(1) Connecteur compatible avec Raspberry Pi 2B/3B/Zero/Zero W. Les autres écrans doivent être connectés à l’aide de Jumpers.

Librairies Python à installer

Si vous débutez avec les écrans ePaper de Waveshare, je vous conseille de lire l’article précédent qui explique comment les utiliser avec un ou deux exemples simples.

Le driver epd (pour EPaper Display j’imagine) ne fait “que” l’afficher une image. On va donc devoir la générer en Python au préalable. La librairie Python Imaging (Pil) ou son fork Pillow semble la plus puissante dans le domaine. Attention, Pil et Pillow ne peuvent pas cohabiter sur la même machine.

Pour installer Pil vous pouvez utiliser la commande pip. Vous aurez peut être besoin de faire précéder la commande pip d’un sudo.

pip install python-pil request

Sur macOS, le plus facile est d’utiliser brew

brew install pil request

La librairie Python Pil / Pillow rapidement

La librairie Pil ou Pillow permettent de manipuler des images (convertir, redimensionner, orienter…), ajouter des formes géométriques (ligne, ellipse, polygone, arc de cercle…) ou du texte sur une image existante. Ici nous allons créer un masque ayant comme dimension celle de l’écran ePaper 2,7”.

mask = Image.new('1', (EPD_HEIGHT,EPD_WIDTH), 255)

Comme nous l’avons vu dans l’article précédent, l’image produite est verticale. Si on veut un affichage horizontal, l’astuce consiste à créer une image dans les dimensions horizontales et verticales sont inversée puis la tourner de 90° avant de l’afficher sur l’écran ePaper. Créez un nouveau script nommé demopill.py et collez le code suivant

#Librairies nécessaires
from PIL import Image
from PIL import ImageDraw

#Dimensions de l'image
EPD_WIDTH       = 176
EPD_HEIGHT      = 264
# Créé un masque avec un fond blanc
mask = Image.new('1', (EPD_HEIGHT,EPD_WIDTH), 255)   
#Créé un objet Draw qui va permettre d'ajouter des éléments sur le masque
draw = ImageDraw.Draw(mask)
#En exemple de texte
draw.text((EPD_HEIGHT/4,EPD_WIDTH/2), 'Demo Python PILL', fill = 0)
#Une ligne horizontale
draw.line((0,EPD_WIDTH/2 + 12, EPD_HEIGHT, EPD_WIDTH/2 + 12), fill = 0)
#On enregistre l'image générée
mask.save('demopill.bmp',"bmp")

Enregistrez le script et exécutez le avec la commande

python demopill.py
.

Voici l’image générée par le script. Comme vous pouvez le voir, elle est horizontale car j’ai inversé la hauteur (Height) et la largeur (Width). Ici, il n’est pas nécessaire de tourner l’image.

Récupérer des images et des fonts Open Source

J’ai utilisé des images gratuites et Open Source pour ce projet. Vous pouvez en trouver un peu partout sur internet. Voici les sites que j’ai utilisé pour ce projet :

  • Les icônes Open Source de Kickstand Apps disponibles sur Github pour les symboles météo. Pratique, elles sont déjà au format PNG. Utilisez plutôt la version épaisse pour un meilleur rendu sur l’écran ePaper
  • icones8.fr pour les pictogrammes température, humidité, pression atmosphérique, direction du vent
  • La police FreeMonoBold.ttf peut être récupérée un peu partout sur internet comme ici sur GitHub

Installer et configurer le plugin météo sur Jeedom

Ouvrez le gestionnaire de plugin de Jeedom et recherchez le plugin Meteo officiel

Activez le plugin et configurez votre ville et attribuez un objet

Activer l’API JSON RPC et récupérer la clé API

Jeedom dispose de deux interfaces de communication. La première permet d’interroger Jeedom avec des requêtes HTTP. C’est cette interface qui avait été utilisé pour réaliser ce mini affichage déporté.

Pour varier les plaisirs (et aussi parce que l’API HTTP offre moins de possibilités), nous allons utiliser l’API JSON RPC pour ce projet. Le JSON RPC est un standard qui est documenté ici. Toutes les commandes exposées par Jeedom sont expliquées en détail sur la documentation en ligne.

Pour récupérer votre clé API et vérifier que les API sont activées, allez dans le menu de configuration (roue crantée) puis configuration. Ouvrez l’onglet API. Votre clé est la grande chaine de caractère. Vous pouvez en générée une nouvelle si vous pensez que la sécurité de votre serveur domotique a été corrompue. L’accès JSONPRC doit être activé. N’oubliez pas de sauvegarder si vous faites une modification.

Comment récupérer les prévisions météo avec l’API JSON RPC de Jeedom ?

Maintenant que tout est prêt, il est temps de commencer. Il existe (très grossièrement) deux types d’objets Jeedom qui vont nous intéresser ici. Les commandes et les équipements. Pour faire simple, le widget météo est un équipement. Un équipement est lui même attaché à un objet (le terme de groupe aurait été mieux adapté mais ce n’est pas très important). Ensuite chaque équipement peut posséder des commandes. Pour récupérer les identifiants de l’équipement et des commandes, il suffit d’ouvrir le panneau de Configuration avancée qui se trouve systématiquement dans le coins supérieur droit.

Ici l’équipement widget météo a l’IDentifiant 3.

id equipement jeedom json rpc api

Cliquez ensuite sur la roue crantée de chaque commande pour récupérer son identifiant (ici 17).

id commande equipement jeedom api json rpc

On peut aussi interroger l’API pour récupérer tous les identifiants mais la réponse renvoyée est très (trop) détaillée. Si vous avez de nombreux équipements vous risquez vite de vous noyer.

Créez un nouveau script python (par exemple jeedomrpc.py) et collez le code ci-dessous. Avant de l’exécuter vous devez modifier les paramètres suivants :

  • ip_jeedom : l’adresse IP du serveur Jeedom
  • Api_key : votre clé API récupérée précédemment
  • conditiontxt : l’IDentifiant de la commande condition. Elle renvoi la prévision sous la forme d’une chaine
  • condition: l’IDentifiant de la commande condition_numero. On récupère le code de la prévision d’OpenWeatherMap. On l’utilisera pour définir l’icône de la prévision à afficher

# coding: utf-8
import requests
import json

ip_jeedom = 'XXX.XXX.XXX.XXX'                                                                                                         
Api_key = 'XXXX_JEEDOM_API_KEY_XXXX'   
url = "http://%s/core/api/jeeApi.php"% ( ip_jeedom)
headers = {'content-type': 'application/json'}

#Dictionnaire qui contiendra les prévisions récupérées sur Jeedom
prevision = {}

def updateParameter(id, method):
  # Toutes les méthodes json rpc de Jeedom sont disponibles ici
  # https://jeedom.github.io/core/fr_FR/jsonrpc_api#tocAnchor-1-30-2
  parameters = {                                                                
    "jsonrpc" : "2.0",                                                    
    "method" : method,                                                                                                              
    "params": {                                                           
        "apikey": Api_key,
        "id" : id                                      
        }                                                                 
  }  
  return parameters 

def getDataFromJeedom():
  #Identifiants de commandes à récupérer
  idCmd = {
      "conditiontxt": "17",
      "condition"   : "18"
  }

  #On interroge l'API JSON RPC de Jeedom pour chaque commande 
  for key, value in idCmd.iteritems(): 

    param = updateParameter(value, "cmd::byId")
    response = requests.post(url, data=json.dumps(param), headers=headers).json()
    #Affichage la réponse renvoyée par Jeedom
    print response
    #Ajoute les valeur actuelle et l'unité dans le dictionnaire
    prevision[key] = {
      'value' : response['result']['currentValue'],
      'unit' : response['result']['unite'],
    }
    #Affichage les données récupérées et stockées dans le dictionnaire
    print prevision

getDataFromJeedom()

Exécutez le script (commande

python jeedomrpc.py
 ). La réponse d’affiche directement dans le Terminal (ou l’invite de commande sous Windows). Pour “déplier” la réponse au format JSON et la rendre plus lisible pour nous pauvres humains, vous pouvez utiliser jsonlint.com par exemple.
{
	u 'jsonrpc': u '2.0', u 'id': None, u 'result': {
		u 'generic_type': u 'WEATHER_CONDITION',
		u 'currentValue': u 'L\xe9g\xe8res chutes de neige',
		u 'configuration': None,
		u 'name': u 'Condition',
		u 'display': {
			u 'generic_type': u 'WEATHER_CONDITION'
		},
		u 'isHistorized': u '0',
		u 'eqLogic_id': u '3',
		u 'unite': u '',
		u 'id': u '17',
		u 'subType': u 'string',
		u 'html': None,
		u 'alert': None,
		u 'value': None,
		u 'template': None,
		u 'isVisible': u '1',
		u 'eqType': u 'weather',
		u 'logicalId': u 'condition',
		u 'type': u 'info',
		u 'order': u '0'
	}
} {
	'conditiontxt': {
		'unit': u '',
		'value': u 'L\xe9g\xe8res chutes de neige'
	}
}

Il ne faut pas s’inquiéter des ‘u’ devant chaque clé. Par contre ce qui est plus gênant c’est l’encodage des chaînes. Jeedom n’encode pas en utf-8 mais en latin-1. Cala risque de vous poser pas mal de problèmes. Voici quelques astuces :

  • Forcer l’encodage en utf-8 au début du script en ajoutant le paramètre # coding: utf-8
  • Créez une variable intermédiaire qui contient la condition avant de créer un objet texte avec la librairie Pill.

Pour info, voici également le dictionnaire (une variable) qui a été créé par ce script. On y retrouve la prévision et le code correspondant.

{
	'conditiontxt': {
		'unit': u '',
		'value': u 'L\xe9g\xe8res chutes de neige'
	},
	'condition': {
		'unit': u '',
		'value': 600
	}
}

Code python complet

Voilà, maintenant il ne reste plus qu’à tout assembler. Nous savons interroger l’API JSON RPC de Jeedom pour récupérer des états et des informations sur des équipements. Nous savons comment générer une image à l’aide de la libraire Python Pil. Enfin, nous savons intercepter les boutons Key1 à Key2 sur le coté de l’écran pour modifier l’affichage ou déclencher un scénario.

Créez un nouveau script et collez le code ci-dessous. Modifiez les paramètres suivants dans le code

  • ip_jeedom : l’adresse IP du serveur Jeedom
  • Api_key : votre clé API
  • Dictionnaire idCmd : changez les identifiants des différentes commandes pour celles de votre équipement météo
  • modeTest : permet de générer l’image sur un ordinateur (PC Windows, Linux, Mac, Raspberry Pi) sans utiliser le GPIO et l’écran ePaper. Le script génère juste une image en sortie
  • Toutes les images et la police FreeMonoBold.ttf doivent être stockées dans le dossier image.

Téléchargez les images et la police FreeMonoBold.ttf depuis le blog en cliquant sur ce lien. Décompressez l’archive et placez le dossier à la racine du code python. La variable folder_img permet de modifier le dossier des ressources.


# coding: utf-8
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
import requests
import json
import math
import time
from datetime import datetime 
from datetime import timedelta 
import locale
locale.setlocale(locale.LC_TIME,'')

ip_jeedom = 'xxxx.xxx.xxx.xxx'                                                                                                         
Api_key = 'XXXX_JEEDOM_API_KEY_XXXX'   
url = "http://%s/core/api/jeeApi.php"% ( ip_jeedom)
headers = {'content-type': 'application/json'}
folder_img = 'images/'
H_condition = 100
W_condition = 100
H_Big = 15
H_icone = 25
W_icone = 25
Bord = 5
Col1 = 66
Col2 = 132
Col3 = 198
LiBaCd = 140
DiamPastille = 10
modeTest = False
prevision = {}

if modeTest:
  EPD_WIDTH       = 176
  EPD_HEIGHT      = 264
else:
  print 'mode epd2in7'
  import RPi.GPIO as GPIO
  import epd2in7
  epd = epd2in7.EPD()
  epd.init()
  EPD_WIDTH       = epd2in7.EPD_WIDTH
  EPD_HEIGHT      = epd2in7.EPD_HEIGHT
  GPIO.setmode(GPIO.BCM)
  key1 = 5
  key2 = 6
  key3 = 13
  key4 = 19
  
  GPIO.setup(key1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  GPIO.setup(key2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  GPIO.setup(key3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  GPIO.setup(key4, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#Charge les fonts et les images
fontSmall = ImageFont.truetype(folder_img + 'FreeMonoBold.ttf', 9)
fontMedium = ImageFont.truetype(folder_img + 'FreeMonoBold.ttf', 12)
fontBig = ImageFont.truetype(folder_img + 'FreeMonoBold.ttf', H_Big)
temperature = Image.open(folder_img + 'temperature.png')
humidity = Image.open(folder_img + 'humidity.png')
pressure = Image.open(folder_img + 'pressure.png')
direction = Image.open(folder_img + 'direction.png')
lever = Image.open(folder_img + 'lever.png')
coucher = Image.open(folder_img + 'coucher.png')

#Redimensionnement des images
temperature = temperature.resize((H_icone,W_icone))
humidity = humidity.resize((H_icone,W_icone))
pressure = pressure.resize((H_icone,W_icone))
direction = direction.resize((H_icone,W_icone))
lever = lever.resize((H_icone ,W_icone ))
coucher = coucher.resize((H_icone ,W_icone ))
#w,h = condition.size

def updateParameter(id, method):
  # Toutes les méthodes json rpc Jeedom disponibles https://jeedom.github.io/core/fr_FR/jsonrpc_api#tocAnchor-1-30-2
  parameters = {                                                                
    "jsonrpc" : "2.0",                                                    
    "method" : method,                                                                                                              
    "params": {                                                           
        "apikey": Api_key,
        "id" : id                                      
        }                                                                 
  }  
  return parameters

def getSunTime(timestring):
  if len(timestring) == 3:
   #timestring[1:] +  
   return  timestring[0:1] + 'h' + timestring[-2:]
  else:
    return timestring[0:2] + 'h' + timestring[-2:]  

def getDirWind(WindDir):
  #D'après https://www.campbellsci.com/blog/convert-wind-directions
  Direction = ["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW","N"]
  CompassDir = int(round((math.fmod(WindDir,360))/ 22.5,0)+1)
  return Direction[CompassDir]

def findIcone(condition_id):
  
  # Toutes les conditions renvoyees par le plugin météo de Jeedom https://github.com/jeedom/plugin-weather/blob/beta/core/class/weather.class.php
  # Prevision d apres le code openweathermap.org
  # Icones Open Source https://github.com/kickstandapps/WeatherIcons
  # Icones température, humidité, pression atmosphérique récupérées sur https://icones8.fr
  if condition_id >= 200 and condition_id <= 299:
    return 'Storm'  
  if condition_id >= 300 and condition_id <= 399:
    return 'Haze'  
  if condition_id >= 500 and condition_id <= 510:
    return 'PartlySunny'  
  if condition_id >= 520 and condition_id <= 599:
    return 'Rain'  
  if condition_id >= 600 and condition_id <= 699 or condition_id == 511:
    return 'Snow' 
  if condition_id >= 700 and condition_id <= 799:
    return 'wind'
  if condition_id >= 800 and condition_id <= 899:
    return 'Cloud'  
  if condition_id == 800:
    return 'Sun'  

def getDataFromJeedom():
    # ID des commandes de l'équipement météo
    idCmd = {
      "conditiontxt": "17",
      "condition"   : "18",
      "leverSoleil" : "14",
      "coucherSoleil" : "13",
      "pa"          : "10",
      "humidite"    : "9",
      "tempMin"     : "15",
      "tempMax"     : "16",
      "vitVent"     : "11",
      "dirVent"     : "12",
      "conditionJ1" : "28",
      "conditionJ2" : "30",
      "conditionJ3" : "32",
      "conditionJ4" : "34",
      "condJ1Txt"   : "27",
      "condJ2Txt"   : "29",
      "condJ3Txt"   : "31",
      "condJ4Txt"   : "33",
      "tempMinJ1"   : "19",
      "tempMinJ2"   : "21",
      "tempMinJ3"   : "23",
      "tempMinJ4"   : "25",
      "tempMaxJ1"   : "20",
      "tempMaxJ2"   : "22",
      "tempMaxJ3"   : "24",
      "tempMaxJ4"   : "26"
    }

    #Recupère le nom de la ville, modifier le 3 par l'ID de l'équipement météo
    _parameters = updateParameter(3, "eqLogic::byId")
    response = requests.post(url, data=json.dumps(_parameters), headers=headers).json()
    
    prevision['city'] = response['result']['name']

    #Récupère les prévisions
    for key, value in idCmd.iteritems(): 
      _parameters = updateParameter(value, "cmd::byId")
      response = requests.post(url, data=json.dumps(_parameters), headers=headers).json()
      #print response
      if ( key == 'condition' or key == 'conditionJ1' or key == 'conditionJ2' or key == 'conditionJ3' or key == 'conditionJ4'):
        prevision[key] = findIcone(response['result']['currentValue'])
        print 'condition_id '+ str(response['result']['currentValue']) + " => " + str(prevision[key])
      else:
        prevision[key] = {
          'value' : response['result']['currentValue'],
          'unit' : response['result']['unite'],
        }
    print prevision

# Dessine l'écran du jour
def updateFrame1():
    mask = Image.new('1', (EPD_HEIGHT,EPD_WIDTH), 255)   
    
    draw = ImageDraw.Draw(mask)

    #Format date heure en Python https://www.cyberciti.biz/faq/howto-get-current-date-time-in-python/
    #Entete
    condition = Image.open(folder_img + prevision['condition'] + '.png')
    condition = condition.resize((H_condition,W_condition))
    mask.paste(condition, (0,0), condition)
    mask.paste(lever, (W_condition + Bord,70), lever)
    mask.paste(coucher, (W_condition + 90,70), coucher)
    date = unicode(time.strftime("%a %d %B") + "  " + time.strftime("%H:%M"),'UTF-8')
    draw.text((W_condition + Bord,5), date, font = fontMedium, fill = 0)
    condGauche = prevision['conditiontxt']['value'][0:16]
    condDroite = prevision['conditiontxt']['value'][16:]
    draw.text((W_condition + Bord,25), condGauche, font = fontBig, fill = 0)
    draw.text((W_condition + Bord,45), condDroite, font = fontBig, fill = 0)
    draw.text((W_condition + 45,75), getSunTime(str(prevision['leverSoleil']['value'])), font = fontSmall, fill = 0)
    draw.text((W_condition + 125,75), getSunTime(str(prevision['coucherSoleil']['value'])), font = fontSmall, fill = 0)

    #Prévision du jour en détail
    #Tourne la bousole dans la direction du vent
    direction.rotate(float(prevision['dirVent']['value']))
    mask.paste(temperature, (Bord,110), temperature)
    mask.paste(humidity, (Col1,110), humidity)
    mask.paste(pressure, (Col2,110), pressure)
    mask.paste(direction, (Col3,110), direction)
    draw.text((Bord,LiBaCd), str(prevision['tempMax']['value']) + '%C', font = fontMedium, fill = 0)
    draw.text((Col1,LiBaCd), str(prevision['humidite']['value'])+'%', font = fontMedium, fill = 0)
    draw.text((Col2,LiBaCd), str(prevision['pa']['value'])+str(prevision['pa']['unit']), font = fontMedium, fill = 0)
    draw.text((Col3 + 35,110), getDirWind(float(prevision['dirVent']['value'])), font = fontMedium, fill = 0)
    draw.text((Col3,LiBaCd), str(prevision['vitVent']['value'])+str(prevision['vitVent']['unit']),font = fontMedium, fill = 0)

    #Lignes
    draw.line((0,H_condition,EPD_HEIGHT,H_condition), fill=0)
    draw.line((0,LiBaCd + 20,EPD_HEIGHT,LiBaCd + 20), fill=0)
    draw.line((W_condition,0,W_condition,H_condition), fill=0)
    
    #Bas de page
    draw.text((Bord,EPD_WIDTH - 18), str(prevision['city']),font = fontMedium, fill = 0)
    draw.text((180,EPD_WIDTH - 17), "projetsdiy.fr",font = fontSmall, fill = 0)
    draw.ellipse((97,EPD_WIDTH - DiamPastille - 2,107,EPD_WIDTH - 2), fill=0, outline=0)
    draw.ellipse((117,EPD_WIDTH - DiamPastille - 2,127,EPD_WIDTH - 2), fill=255, outline=0)
    draw.ellipse((137,EPD_WIDTH - DiamPastille - 2,147,EPD_WIDTH - 2), fill=255, outline=0)
    draw.ellipse((157,EPD_WIDTH - DiamPastille - 2,167,EPD_WIDTH - 2), fill=255, outline=0)  
    
    out = mask.rotate(90)
    out.save('frame1.bmp',"bmp")

    if modeTest == False:
      epd.display_frame(epd.get_frame_buffer(out))

#Prévisions des 4 prochains jours
def updateFrame2():
    mask = Image.new('1', (EPD_HEIGHT,EPD_WIDTH), 255)   
    date = datetime.now()
    draw = ImageDraw.Draw(mask)
    pasHoriz = 16
    #Format date heure en Python https://www.cyberciti.biz/faq/howto-get-current-date-time-in-python/
    #Entete
    draw.text((Bord,0), unicode("Prévisions à 4 jours",'utf-8'), font = fontBig, fill = 0)
    draw.line((0,2*Bord + H_Big,EPD_HEIGHT,2*Bord + H_Big), fill=0)
    draw.line((Col1, 2*Bord + H_Big, Col1, EPD_WIDTH - 15), fill=0)
    draw.line((Col2, 2*Bord + H_Big, Col2, EPD_WIDTH - 20), fill=0)
    draw.line((Col3, 2*Bord + H_Big, Col3, EPD_WIDTH - 20), fill=0)
    draw.line((0,EPD_WIDTH - 15,EPD_HEIGHT,EPD_WIDTH - 15), fill=0)

    #J+1
    date = datetime.now() + timedelta(days=1)  
    draw.text((Bord, 3*Bord + H_Big), unicode(date.strftime("%A"),'utf-8'), font = fontMedium, fill = 0)
    c1 = Image.open(folder_img + prevision['conditionJ1'] + '.png')
    c1 = c1.resize((H_icone * 2,W_icone * 2))
    mask.paste(c1, (Bord, 5*Bord + H_Big), c1)    
    prev1 = prevision['condJ1Txt']['value'][0:12]
    prev2 = prevision['condJ1Txt']['value'][12:24]
    print prev2
    draw.text((Bord, 5 * pasHoriz), prev1, font = fontSmall, fill = 0)
    draw.text((Bord, 6 * pasHoriz), prev2, font = fontSmall, fill = 0)
    draw.text((Bord, 7 * pasHoriz), unicode(str(prevision['tempMinJ1']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)
    draw.text((Bord, 8 * pasHoriz), unicode(str(prevision['tempMaxJ1']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)
    
    #J+2
    date = datetime.now() + timedelta(days=2)  
    draw.text((Bord + Col1, 3*Bord + H_Big), unicode(date.strftime("%A"),'utf-8'), font = fontMedium, fill = 0)
    c1 = Image.open(folder_img + prevision['conditionJ2'] + '.png')
    c1 = c1.resize((H_icone * 2,W_icone * 2))
    mask.paste(c1, (Bord + Col1, 5*Bord + H_Big), c1)
    prev1 = prevision['condJ2Txt']['value'][0:12]
    prev2 = prevision['condJ2Txt']['value'][12:24]
    draw.text((Bord + Col1, 5 * pasHoriz), prev1, font = fontSmall, fill = 0)
    draw.text((Bord + Col1, 6 * pasHoriz), prev2, font = fontSmall, fill = 0)
    draw.text((Bord + Col1, 7 * pasHoriz), unicode(str(prevision['tempMinJ2']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)
    draw.text((Bord + Col1, 8 * pasHoriz), unicode(str(prevision['tempMaxJ2']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)

    #J+3
    date = datetime.now() + timedelta(days=3)  
    draw.text((Bord + Col2, 3*Bord + H_Big), unicode(date.strftime("%A"),'utf-8'), font = fontMedium, fill = 0)
    c1 = Image.open(folder_img + prevision['conditionJ3'] + '.png')
    c1 = c1.resize((H_icone * 2,W_icone * 2))
    mask.paste(c1, (Bord + Col2, 5*Bord + H_Big), c1)
    prev1 = prevision['condJ3Txt']['value'][0:12]
    prev2 = prevision['condJ3Txt']['value'][12:24]
    draw.text((Bord + Col2, 5 * pasHoriz), prev1, font = fontSmall, fill = 0)
    draw.text((Bord + Col2, 6 * pasHoriz), prev2, font = fontSmall, fill = 0)
    draw.text((Bord + Col2, 7 * pasHoriz), unicode(str(prevision['tempMinJ3']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)
    draw.text((Bord + Col2, 8 * pasHoriz), unicode(str(prevision['tempMaxJ3']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)    

    #J+4
    date = datetime.now() + timedelta(days=4)  
    draw.text((Bord + Col3, 3*Bord + H_Big), unicode(date.strftime("%A"),'utf-8'), font = fontMedium, fill = 0)
    c1 = Image.open(folder_img + prevision['conditionJ4'] + '.png')
    c1 = c1.resize((H_icone * 2,W_icone * 2))
    mask.paste(c1, (Bord + Col3, 5*Bord + H_Big), c1)
    prev1 = prevision['condJ4Txt']['value'][0:12]
    prev2 = prevision['condJ4Txt']['value'][12:24]
    draw.text((Bord + Col3, 5 * pasHoriz), prev1, font = fontSmall, fill = 0)
    draw.text((Bord + Col3, 6 * pasHoriz), prev2, font = fontSmall, fill = 0)
    #draw.text((Bord + Col1, 6 * pasHoriz), str(prevision['condJ4Txt']['value'][0:10]), font = fontSmall, fill = 0)
    draw.text((Bord + Col3, 7 * pasHoriz), unicode(str(prevision['tempMinJ4']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)
    draw.text((Bord + Col3, 8 * pasHoriz), unicode(str(prevision['tempMaxJ4']['value'])+'°C','utf-8'), font = fontMedium, fill = 0)

    #Bas de page
    draw.text((Bord,EPD_WIDTH - 18), str(prevision['city']),font = fontMedium, fill = 0)
    draw.text((180,EPD_WIDTH - 17), "projetsdiy.fr",font = fontSmall, fill = 0)
    draw.ellipse((97,EPD_WIDTH - DiamPastille - 2,107,EPD_WIDTH - 2), fill=255, outline=0)
    draw.ellipse((117,EPD_WIDTH - DiamPastille - 2,127,EPD_WIDTH - 2), fill=0, outline=0)
    draw.ellipse((137,EPD_WIDTH - DiamPastille - 2,147,EPD_WIDTH - 2), fill=255, outline=0)
    draw.ellipse((157,EPD_WIDTH - DiamPastille - 2,167,EPD_WIDTH - 2), fill=255, outline=0) 
    
    out = mask.rotate(90)
    out.save('frame2.bmp',"bmp")

    if modeTest==False:
      epd.display_frame(epd.get_frame_buffer(out))

def main():
    if modeTest:
      getDataFromJeedom()  
      updateFrame1()
      #updateFrame2()
    else:
      while True:
        key1state = GPIO.input(key1)
        key2state = GPIO.input(key2)
        key3state = GPIO.input(key3)
        key4state = GPIO.input(key4)
    
        if key1state == False:
            print('Update frame 1')
            getDataFromJeedom()  
            updateFrame1()
            time.sleep(0.5)
        if key2state == False:
            print('Update frame 2')
            getDataFromJeedom()  
            updateFrame1()
            time.sleep(0.5)
        if key3state == False:
            print('Key3 Pressed')
            time.sleep(0.2)
        if key4state == False:
            print('Key4 Pressed')
 
if __name__ == "__main__":
    #Met à jour l'écran au démarrage
    getDataFromJeedom()  
    #updateFrame2()
    updateFrame1() 
    
    #puis attend un événement sur les touches Key1 à Key4 (sur un Raspberry Pi uniquement)
    main()

Remarque. J’ai juste un doute sur l’orientation correcte de la boussole en fonction de la direction du vent. Je compte sur vous pour le vérifier.

Le dashboard météo ePaper pour Jeedom obtenu

Il ne reste plus qu’à lancer le script. Au premier lancement, le script génère et affiche immédiatement la première page de la station météo. Pour afficher le second panneau, appuyer sur le bouton Key2. Les autres écrans sont disponibles pour afficher d’autres informations en provenance de Jeedom. Etat des lampes, des portes, niveau de CO2, température, consommation électrique…

La première page (Key1) récapitule la météo du jour

frame1 jeedom station meteo epaper waveshare eink jsin rpc

Le second écran (key2) permet d’afficher les prévisions à 4 jours. Et oui, c’est l’hivers 🙁

frame2 jeedom station meteo epaper waveshare eink jsin rpc prevision 4 jours

La même chose en vrai avec l’écran Waveshare 2,7” installé sur un Raspbery Pi3 qui fait tourner le serveur Jeedom !

jeedom epaper waveshare display dashboard weather station

jeedom epaper waveshare display dashboard weather station frame2

 

Voilà, il ne plus qu’à faire la même chose avec Domoticz ! J’espère que ce projet vous donnera plein de nouvelles idées. Pour le moment, j’ai réalisé les deux tutoriels avec un Raspberry Pi 3. L’intérêt principal des écrans ePaper étant l’absence de consommation électrique après le rafraichissement de l’affichage, il est temps de le tester avec un micro-contrôleur ESP8266 ou ESP32.

L’article Station météo avec affichage ePaper (Dashboard) pour Jeedom sur Raspberry Pi (via l’API JSON RPC) est apparu en premier sur Domotique et objets connectés à faire soi-même.

Configurer VNC sur Raspbian pour accéder à distance au bureau Pixel du Raspberry Pi

$
0
0
telecharger realvnc vnc

La distribution Raspbian prend en charge le bureau distant VNC. Il est très simple à configurer et à activer et ne requiert aucune compétence technique pour le faire. Le Raspberry Pi est une plateforme idéale pour l’apprentissage de la programmation et de l’électronique. Vous pouvez recycler du vieux matériel informatique (écran, clavier, souris, carte SD, chargeur 5V de smartphone). L’autre solution consiste à accéder au bureau graphique du Raspberry (appelé Pixel) à distance via une connexion spéciale appelée VNC qui signifie Virtual Network Computing. Pour fonctionner, on doit installer sur le Raspberry Pi un serveur VNC qui sera en charge de gérer les droits d’accès, d’envoyer l’image de l’écran (comme un flux vidéo) et de gérer les interactions de l’utilisateur (clavier, souris). Si un autre ordinateur (ou pourquoi pas une tablette ou un smartphone), on utilisera un client (ou Viewer).

Trouver l’adresse IP du Raspberry Pi

Vous aurez besoin de connaître l’adresse attribuée par le routeur au Raspberry Pi. Pour cela, ouvrez le Terminal et exécutez la commande ifconfig. Ici, le RPI se trouve à l’adresse 192.168.1.24 sur le réseau local. Suivez ce tutoriel si vous avez besoin d’attribuer une adresse IP fixe à votre Raspberry Pi.

raspberry pi ifconfig domoticz adresse ip serveur

Configurer VNC sur Raspbian

VNC permet donc d’accéder au bureau graphique de Raspbian depuis un autre ordinateur et une tablette. Ouvrez le Terminal et lancez raspi-config avec la commande

sudo raspi-config
 . Sélectionnez l’option 5 (Interfacing Option)

activate vnc raspbian raspberry pi

Ensuite P3 – VNC et acceptez

activate vnc raspbian raspberry pi

La première fois qu’on active VNC sur la distribution Raspbian, il faut installer tous les paquets nécessaires.

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés : 
  bc cups cups-browsed cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ppdc cups-server-common
  ghostscript gsfonts libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libfontembed1 libgs9 libgs9-common libgutenprint2 libijs-0.35
  libjbig2dec0 libpoppler46 libqpdf13 poppler-data poppler-utils printer-driver-gutenprint qpdf
Paquets suggérés :
  cups-bsd foomatic-db-compressed-ppds foomatic-db printer-driver-hpcups hplip cups-pdf xpp ghostscript-x gutenprint-locales fonts-japanese-mincho
  fonts-ipafont-mincho fonts-japanese-gothic fonts-ipafont-gothic fonts-arphic-ukai fonts-arphic-uming fonts-nanum gutenprint-doc
Les NOUVEAUX paquets suivants seront installés :
  bc cups cups-browsed cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ppdc cups-server-common
  ghostscript gsfonts libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libfontembed1 libgs9 libgs9-common libgutenprint2 libijs-0.35
  libjbig2dec0 libpoppler46 libqpdf13 poppler-data poppler-utils printer-driver-gutenprint qpdf realvnc-vnc-server
0 mis à jour, 31 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 20,9 Mo dans les archives.
Après cette opération, 86,9 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O

Acceptez l’installation (touche O) des nouveaux paquets. Raspbian s’occupe de tout, y compris installer le script de démarrage automatique du serveur VNC au lancement du système.

Installer un client (viewer) VNC

Il existe de très nombreux clients VNC pour toutes les plateformes (macOS, Windows, Linux…) et pour smartphone (iOS, Android…). RealVNC (site internet) est disponible sur toutes les plateformes (y compris mobile). Il est gratuit pour un usage personnel. Si vous préférez rester dans les projets 100% Open Source et libres, gage de respect de la vie privée, vous pouvez vous tourner vers UltraVNC (page officielle du projet).

Allez sur le site de RealVNC pour récupérer le client (viewer) VNC qui correspond à votre système.

telecharger realvnc vnc

Installez et lancez VNC Viewer sur votre ordinateur.

Dans la barre d’adresse, saisissez l’adresse IP du Raspberry Pi (commande ifconfig pour la trouver) puis validez en appuyant sur la touche Enter du clavier. Il n’est pas nécessaire d’indiquer le port (5900) sauf s’il a été modifié manuellement.

adresse ip raspberry pi realvnc vnc viewer client

Dans la fenêtre qui s’affiche, saisissez votre nom d’utilisateur et votre mot de passe.

connexion raspbian raspberrypi realvnc vnc

RealVNC vous informe que la connexion n’est sécurisée (ce n’est pas très grave lorsqu’on se connecte au Raspberry Pi depuis un réseau local). Acceptez

realvnc alerte securite raspbian non securise

Vous voilà sur votre Raspberry Pi :D. Il n’y a rien de plus à configurer. VNC démarre automatiquement au démarrage du système ! Ici, mon Raspberry Pi 3 de test qui fait également fonctionner un serveur domotique Jeedom.

raspbian install scratch 2 manually

TightVNC

TightVNC (page officielle du projet) est un serveur VNC léger qui fonctionne sur toutes les distributions Linux ainsi que sur Windows. C’est une alternative à RealVNC utilisé par la fondation Raspberry. Il nécessite plus de réglages et de configuration que RealVNC. A vous de choisir la solution qui vous convient le mieux. Clé en main ou Power User.

Pour installer et configurer TightVNC, suivez ce tutoriel écrit pour Armbian sur un Orange Pi s’applique également à Raspbian Stretch.

Sécuriser (crypter) l’accès VNC

Si vous vous connectez à votre Raspberry Pi depuis votre réseau local, l’absence de cryptage SSL n’est pas obligatoire. Tout peut être intercepté sur le réseau. Le flux vidéo, les actions à la souris, les touches du clavier… Si la sécurité est votre obsession ou si vous devez accéder régulièrement à votre Raspberry Pi depuis internet (depuis votre travail ou votre smartphone), il est judicieux et fortement conseillé de crypter vos échanges avec celui-ci.

Il existe plusieurs méthodes :

  • Créer un tunnel SSH dans lequel sera injecté le flux VNC. Suivez ce tutoriel pour le mettre en place
  • Utiliser VNC Connect de RealVNC. Suivez ce tutoriel de François Mocq
Remarque. Pour accéder au Raspberry PI depuis internet, il faudra faire une redirection de port vers l’adresse IP du Raspberry Pi. VNC utilise le port 5900.

Ajouter un accès VNC à un nouvel utilisateur

Si vous devez ajouter un nouvel utilisateur au système, il est nécessaire de configurer une nouvelle sortie au serveur VNC. Pour cela, il suffit d’ouvrir une connexion SSH ou un Terminal et d’exécuter la commande vncserver. Ici par exemple, j’ai ajouté un utilisateur pi à l’image de Jeedom

VNC(R) Server 6.1.1 (r28093) ARMv6 (May 19 2017 12:59:35)
Copyright (C) 2002-2017 RealVNC Ltd.
RealVNC et VNC sont des marques de commerce de RealVNC Ltd, déposées et/ou en
cours de dépôt dans l'Union européenne, aux États-Unis et dans d'autres pays.
Protégé par le brevet nº 2481870 au Royaume-Uni ; nº 8760366 aux États-Unis ;
nº 2652951 dans l'UE.
Voir https://www.realvnc.com pour plus d'informations sur VNC.
Pour les avis de propriété intellectuelle d'entreprises tierces, voir :
https://www.realvnc.com/docs/6.1/foss.html

Génération de la clé privée... terminé
Si un environnement de bureau ne se charge pas pour ce bureau virtuel, voir :
 https://www.realvnc.com/doclink/kb-345
Exécution d'applications dans /etc/vnc/xstartup

Alias VNC Server : "Saint complex ground. Crash deluxe Julius."
       signature : 06-4a-cd-d9-96-17-d9-de

Fichier journal : /home/pi/.vnc/jeedom:2.log
Nouveau bureau : jeedom:2 (192.168.1.24:2)

En lançant le serveur vnc, celui-ci configure automatiquement une nouvelle sortie. On y accède en ajoutant :2 après l’adresse IP

 

Pour aller plus loin, voici d’autres tutoriels sur Raspbian qui pourraient vous intéresser

L’article Configurer VNC sur Raspbian pour accéder à distance au bureau Pixel du Raspberry Pi est apparu en premier sur Domotique et objets connectés à faire soi-même.

Installer le bureau Pixel sur Raspbian Stretch Lite. 10 logiciels indispensables pour le Raspberry Pi 3

$
0
0
raspbian install scratch 2 manually

Si vous regrettez d’avoir optez pour la version Lite de Raspbian, voici un tutoriel rapide qui explique comment installer manuellement le bureau Pixel. Inutile de graver une nouvelle carte SD pour votre Raspberry Pi. Quelques commandes dans le Terminal suffisent pour installer le bureau graphique Pixel sur Raspbian Stretch Lite. Nous allons également voir comment installer les principaux logiciels indispensables pour débuter avec le Raspberry Pi 3. Synaptic Package Manager, VNC, VLC Player, client BitTorrent Deluge, LibreOffice, Mathematica, Wolfram Alfa, Thonny Python, Node-RED, Scratch 2, IDE Arduino

Installer manuellement le bureau Pixel sur Raspbian Lite

On trouve de nombreuses conversations sur le forum officiel de la fondation comme celle-ci. Pour réaliser l’article sur le test de l’écran tactile 7” de Waveshare, j’avais utilisé la carte SD de Jeedom qui est basé sur Jessie Lite. Evidemment, lorsqu’il a fallu testé la partie tactile de l’écran, je n’avais pas de bureau graphique  😕

Une seule commande est nécessaire pour installer le bureau Pixel. Connectez-vous à votre Raspberry Pi. Commencez par mettre à jour la distribution

sudo apt update
sudo apt upgrade

Ensuite, exécutez cette commande qui va installer X11 (le moteur graphique de Linux) et le bureau PIXEL.

sudo apt install raspberrypi-ui-mods

A la fin de l’installation, redémarrez le système avec la commande 

sudo reboot
. Raspbian se lance directement sur Pixel et vous demande de vous connecter.

login raspbian pixel installation jessie lite

10 logiciels à installer sur votre Raspberry Pi en priorité

L’installation manuellement du bureau graphique Pixel ne veut pas dire que tous les logiciels pré-installés sur l’image Desktop vont l’être également. En fait, il n’y a vraiment que le bureau Pixel qui est installé. Si vous avez besoin d’autres logiciels, il va falloir les installer un à un manuellement. Voici une liste des 10 logiciels indispensables à installer sur votre Raspberry Pi.

Navigateur internet Chromium

Avant de vous lancer, la première chose à faire est de mettre à jour la distribution vers la version la plus récente. Exécutez les commandes suivantes puis redémarrez. La mie à jour de la distribution va permettre (en plus des améliorations sous le capot comme par exemple une meilleure gestion du Bluetooth) d’installer le navigateur web Open Source Chromium (attention à ne pas confondre avec le navigateur Chrome de Google), l’outil système Htop et les liens vers le MagPi et d’autres ressources pour le Raspberry Pi.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot

Ensuite, voici quelques commandes trouvées sur internet pour installer les différents logiciels pré-installés sur l’image Stretch Desktop.

Gestionnaire de paquets Synaptic Package Manager

Si vous n’avez pas l’habitude du Terminal, je vous conseille d’installer le gestionnaire de paquets Synaptic. C’est l’équivalent des Stores sous Windows et macOS. La plupart des logiciels disponibles pour le Raspberry Pi peuvent être installés depuis ce gestionnaire. Ce dernier est accessible depuis le raccourcis ajouté dans le menu Préférence.

Pour l’installer, exécutez la commande 

sudo apt-get install synaptic
 depuis le Terminal.

raspbian install synaptic package manager

VNC pour accéder au bureau Pixel à distance avec RealVNC

VNC permet d’accéder au bureau graphique de Raspbian depuis un autre ordinateur et même une tablette. Depuis le Terminal, lancez raspi-config avec la commande sudo raspi-config puis sélectionnez l’option 5 (Interfacing Option)

activate vnc raspbian raspberry pi

Ensuite P3 – VNC et acceptez

activate vnc raspbian raspberry pi

La première fois qu’on active VNC sur la distribution Jessie Lite, il faut installer tous les paquets nécessaires.

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés : 
  bc cups cups-browsed cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ppdc cups-server-common
  ghostscript gsfonts libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libfontembed1 libgs9 libgs9-common libgutenprint2 libijs-0.35
  libjbig2dec0 libpoppler46 libqpdf13 poppler-data poppler-utils printer-driver-gutenprint qpdf
Paquets suggérés :
  cups-bsd foomatic-db-compressed-ppds foomatic-db printer-driver-hpcups hplip cups-pdf xpp ghostscript-x gutenprint-locales fonts-japanese-mincho
  fonts-ipafont-mincho fonts-japanese-gothic fonts-ipafont-gothic fonts-arphic-ukai fonts-arphic-uming fonts-nanum gutenprint-doc
Les NOUVEAUX paquets suivants seront installés :
  bc cups cups-browsed cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ppdc cups-server-common
  ghostscript gsfonts libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libfontembed1 libgs9 libgs9-common libgutenprint2 libijs-0.35
  libjbig2dec0 libpoppler46 libqpdf13 poppler-data poppler-utils printer-driver-gutenprint qpdf realvnc-vnc-server
0 mis à jour, 31 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 20,9 Mo dans les archives.
Après cette opération, 86,9 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O

Acceptez l’installation (touche O) des nouveaux paquets.

Maintenant, allez sur le site de RealVNC pour récupérer le viewer qui correspond à votre système.

telecharger realvnc vnc

Installez et lancez VNC Viewer. Dans la barre d’adresse, saisissez l’adresse IP du Raspberry Pi (commande ifconfig pour la trouver) puisen appuyant sur la touche Enter du clavier. Il n’est pas nécessaire d’indiquer le port (5900) sauf s’il a été modifié manuellement. Dans la fenêtre qui s’affiche, saisissez votre nom d’utilisateur et votre mot de passe.

connexion raspbian raspberrypi realvnc vnc

RealVNC vous informe que la connexion n’est sécurisée (ce n’est pas très grave lorsqu’on se connecte au Raspberry Pi depuis un réseau local). Acceptez

realvnc alerte securite raspbian non securise

Vous voilà sur votre Raspberry Pi :D. Il n’y a rien de plus à configurer. VNC démarre automatiquement au démarrage du système !

raspbian install scratch 2 manually

Vous pouvez également installer TightVNC. Suivez ce tutoriel écrit pour Armbian sur un Orange Pi s’applique également à Raspbian Stretch.

Player VLC

Le célèbre lecteur multimédia a évidemment été adapté au Raspberry Pi. VLC est disponible depuis Synaptic ou en ligne de commande (

sudo apt install vlc
).La version 2.2.7 ne se lance as sur Raspbian Strech.

Le client BitTorrent Deluge

Le Raspberry Pi est un mini-PC qui consomme très peu. Si vous avez des fichiers (légaux) à télécharger, le Raspberry Pi 3 est un bonne alternative. Cela vous évitera de laisser fonctionner votre PC de nombreuses heures ou d’investir dans un NAS onéreux. Deluge peut être installé depuis Synaptic ou en ligne de commande (sudo apt install deluge). Deluge vient se loger dans le menu Internet

install deluge bittorrent raspbian raspberry pi

L’éditeur de code Thonny Python (pour Python 3)

Thonny Python est un éditeur de code simple et efficace pour programmer en Python. Il est maintenant intégré par défaut à la distribution Raspbian Stretch. Python 3 est également installé en même temps de l’éditeur de code Thonny Python. Thonny Python vient se ranger dans le menu programmation.

thonny python install raspbian

Mathematica et le langage Wolfram Alfa

sudo apt-get install wolfram-engine

Depuis le Terminal, les commandes

wolfram
  et
mathematica
 permettent de lancer les logiciels.

Node-RED

Node-RED s’installe très facilement avec une seule commande dans le Terminal. Pour en savoir plus, lisez ce tutoriel.

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Pour aller plus loin, voici les derniers tutoriels sur Node-RED

Scratch 2

Exécutez cette commande depuis le Terminal pour installer Scratch 2 sur Raspbian. Un raccourcis pour lancer facilement Scratch 2 est automatiquement ajouté au menu Programmation.

sudo apt-get install scratch2

raspbian install scratch 2 manually

Libre Office

Le Raspberry Pi 3 est assez puissant pour servir de poste bureautique d’appoint. Libre Office (nouveau nom d’Open Office) est très facile à installer depuis Synaptic. Lancez Synaptic depuis le raccourcis qui se trouve dans le menu Préférences. Faites une recherche sur le mot clé “libreoffice” ou “libre office”.

install libreoffice raspbian raspberry pi

Dans la liste qui s’affiche, faites un clic sur le paquet libreoffice puis choisissez l’option Sélectionner pour l’installation. Acceptez tous les paquets et les dépendances qu’il faut installer en même temps.

install libreoffice select package

Lancez l’installation en cliquant sur Appliquer

 installation libreoffice raspbian

Vous pouvez l’installer LibreOffice en ligne de commande en exécutant cette commande depuis le Terminal

sudo apt-get install libreoffice
 .

libreoffice raspbian raspberry pi vnc

IDE Arduino

Tout comme Libre Office, vous pouvez installer l’IDE Arduino à l’aide de Synaptic. Un raccourcis est ajouté dans le menu programmation. Je vous conseille toutefois de suivre ce tutoriel qui explique comment installer la version officielle de l’éditeur de code. Vous serez certain d’avoir la dernière version de celui-ci. En effet, le numéro de version (ici 2:1.0.5) ne correspond pas à la numérotation officielle. Je n’ai pas trouvé d’explication sur la différence (si quelqu’un peut nous éclairer ?). Peut être que la fondation ne publie pas les mises à jour sur les dépôts Linux.

ide arduino install raspbian raspberry pi

Avec l’IDE Arduino, vous pourrez programmer de très nombreuses cartes de développement. Toutes les cartes officielles développées par la fondation mais également les modules WiF ESP8266 ou les nouveaux ESP32 qui intègrent également la communication Bluetooth LE. Pour en savoir plus, vous pouvez commencer par lire quelques articles :

Voici également quelques projets qui peuvent vous intéresser

L’article Installer le bureau Pixel sur Raspbian Stretch Lite. 10 logiciels indispensables pour le Raspberry Pi 3 est apparu en premier sur Domotique et objets connectés à faire soi-même.

Installer facilement des logiciels sur le Raspberry Pi sous Raspbian Stretch avec Synaptic Package Manager ou depuis le Terminal

$
0
0
paquet synaptic libreoffice raspbian raspberry

Vous venez d’acheter votre Raspberry Pi et vous découvrez l’univers Linux. Voici quelques conseils pour bien débuter et installer facilement des logiciels sur Raspbian. Le plus facile est d’installer le gestionnaire de paquets Synaptic Package Manager. C’est un équivalent (très très simplifié et sans images  😥 ) de l’Apple Store ou du Windows Store. Dans certains cas, il faudra tout de même passer par le Terminal. Nous allons voir que la commande APT est très simple et très puissante.

Installer le gestionnaire de paquets Synaptic Package Manager

Si vous n’avez pas l’habitude du Terminal, je vous conseille d’installer le gestionnaire de paquets Synaptic. C’est l’équivalent des Stores sous Windows et macOS. La plupart des logiciels disponibles pour le Raspberry Pi peuvent être installés depuis ce gestionnaire. Ce dernier est accessible depuis le raccourcis ajouté dans le menu Préférence.

Pour l’installer, exécutez la commande 

sudo apt-get install synaptic
 depuis le Terminal.

raspbian install synaptic package manager

Synaptic va a l’essentiel, il permet de rechercher et d’installer des logiciels. Ce qui est déroutant par rapport aux autres environnements, c’est qu’on peut installer des “morceaux” de logiciels. Comme tout est Open Source, c’est à dire que chacun peut lire et modifier le code source de n’importe quel logiciel linux (y compris Linux en lui même d’ailleurs), on peut installer une librairie qui est partagée avec d’autres logiciels. C’est un peu l’équivalent des librairies DLL sous Windows.

Faites une recherche sur le mot clé “libreoffice” ou “libre office”.

install libreoffice raspbian raspberry pi

Donc, lorsqu’on cherche un logiciel, par exemple LibreOffice, on va trouver le paquet principal (le logiciel) ainsi que toutes les librairies associées. En général, le logiciel se trouve en premier puis on trouve les dépendances.

paquet synaptic libreoffice raspbian raspberry

 

Dans la liste qui s’affiche, faites un clic sur le paquet libreoffice puis choisissez l’option Sélectionner pour l’installation. Acceptez tous les paquets et les dépendances qu’il faut installer en même temps.

install libreoffice select package

Lancez l’installation en cliquant sur Appliquer

 installation libreoffice raspbian

Si le logiciel propose une interface graphique (GUI), un raccourcis est ajouté dans le menu. Ici LibreOffice est ajouté au menu Bureautique. Comme sur Windows ou macOS, un clic sur le raccourci permet de démarrer le logiciel.

libreoffice raspbian raspberry pi vnc

Installer un logiciel en ligne de commande

Synaptic se connecte à des dépôts en ligne pour rechercher les logiciels qui vous voulez installer. Il est possible que le logiciel qui vous désiré ne soit pas présent sur les dépôts habituels. Dans d’autres cas (assez rare), les dépôts ne sont pas à jour. C’est par exemple le cas de l’IDE Arduino. Dans ce cas, il faudra passer par les lignes de commande dans le Terminal. Ici Synaptic installe la version 2:1.0.5 de l’IDE Arduino à la place de la version 1.8.5. Il faut donc l’installer manuellement (en suivant ce tutoriel).

ide arduino install raspbian raspberry pi

C’est commande APT qui est utilisée sous Raspbian (il en existe d’autres sur les autres distributions Linux). Elle s’utilise comme ceci

sudo apt-get install 'nom du logiciel'

ou

sudo apt install 'nom du logiciel'

vous pouvez ajouter l’option -y qui permet de répondre automatiquement à la question “Après cette opération, XXX Mo d’espace disque supplémentaires seront utilisés. Souhaitez-vous continuer ? [O/n]”

Pour supprimer un logiciel, on utilisera la commande

sudo apt remove 'nom du logiciel'

La commande APT est vraiment très puissante. Si vous avez besoin d’autres options, tout est très bien expliqué sur le site d’Ubuntu (qui utilise également la distribution Debian comme base)

 

Pour aller plus loin, voici d’autres tutoriels sur Raspbian qui pourraient vous intéresser

 

L’article Installer facilement des logiciels sur le Raspberry Pi sous Raspbian Stretch avec Synaptic Package Manager ou depuis le Terminal est apparu en premier sur Domotique et objets connectés à faire soi-même.


#Test de l’écran LCD 3.5” HDMI tactile (via le GPIO) avec boitier acrylique pour Raspberry Pi 3 sous Raspbian (480×320 à 1920×1080 pixels)

$
0
0
kit lcd 35 tactile raspberry pi gpio raspbian 1024x768 pixels

Nous continuons notre série de tests des différentes solutions d’affichage pour le Raspberry Pi 3. Aujourd’hui, je vous propose de tester l’écran LCD de 3.5” HDMI tactile livré avec un boitier en acrylique transparent. La partie tactile est gérée via le GPIO du Raspberry Pi. On réservera cette solution pour des projets qui n’utilisent pas le GPIO du Raspberry Pi. C’est un petit boiter très pratique pour protéger le Raspberry Pi. On le trouve souvent en promo pour moins de 20€ sur AliExpress. On pourra utiliser cette solution pour développer un serveur domotique, un serveur de fichier, un serveur multi-média, un dashboard pour objet connecté, une mini console de rétrogaming Retropie ou Recalbox…

Déballage du kit LCD 3.5” tactile pour Raspberry Pi

Le kit est composé d’un écran LCD 3.5” de la société chinoise Kedei capable d’afficher une résolution allant de 480×320 pixels à 1920*1080 pixels (il faudra penser à acheter des loupes en même temps  :-D). On trouve assez souvent ce kit en promo pour moins de 20€ sur AliExpress. Ici, nous allons le tester dans la résolution de base (480×320 pixels). On trouve des kits équivalents sous la marque Geekwrom ou Kuman. La partie tactile est gérée par le GPIO du Raspberry Pi. L’écran est conçu comme un HAT compatible avec le GPIO du Raspberry Pi (2 ou 3). Si vous voulez conserver un accès au GPIO pour vos projets, il faudra faire vous même le câblage de la partie tactile et utiliser un câble HDMI standard. Sinon, vous pouvez également opter pour un écran avec une gestion via le port USB de la partie tactile.

Ce kit de très bonne qualité est livré dans un petit carton d’emballage compact. L’écran est protégé par de la mousse. Le kit contient les éléments suivants :

  • Un écran LCD 3.5” qui fonctionne en HDMI
  • Un boitier (acrylique) transparent à assembler
  • La visserie pour fixer le Raspberry Pi 3 et assembler le boitier
  • Un tournevis
  • Un stylet indispensable pour viser les icônes sur un écran d’une si petite taille
  • Un (petit) guide d’installation (en anglais) qui n’est plus d’actualité

kit lcd 3.5 pouces tactile raspberry pi gpio hdmi 480x320

Assemblage du boitier et de l’écran

Commencez par retirer le film protecteur sur chaque élément du boitier. Ensuite, fixez les 4 entretoises sur le cadre de l’écran.

 kit lcd 35 tactile raspberry pi gpio assemblage base

Fixez le Raspberry Pi 3 sur la base du boitier en intercalant une entretoise à chaque fois.

kit lcd 3.5 pouces tactile montage raspberrypi3 kit lcd 3.5 pouces tactile raspberry pi gpio montage boitier

Connectez l’écran LCD sur le GPIO du Raspberry Pi 3. Il s’insère totalement à droite de connecteur GPIO. Insérez les quatre cotés du boitier. Branchez l’écran HDMI à l’aide du connecteur coudé.

kit lcd 3.5 pouces tactile raspberry pi gpio montage ecran kit lcd 3.5 pouces tactile raspberry pi gpio hdmi connector

Terminez le montage en fixant la base sur les quatre entretoises.

kit lcd 3.5 pouces tactile raspberry pi gpio montage boitier

Avant d’aller plus loin, allumez le rétro-éclairage de l’écran à l’aide du petit interrupteur situé à coté du connecteur HDMI (au dessus du connecteur d’alimentation du Raspberry Pi).

kit lcd 3.5 pouces tactile raspberry pi gpio hdmi connector

Installation du driver, configuration de l’écran et prise en charge du tactile via le GPIO

Si vous avez lu l’article sur le test de l’écran LCD 7” Waveshare, vous allez retrouver le même principe de configuration. Ici, il n’y a (presque) rien à faire car tout est géré par un script de configuration.

Kedei commercialise plusieurs écrans :

  • HDMI_Normal_LCD, l’écran qui nous intéresse pour ce test
  • HDMI_Surper_Vertical
  • HDMI_Surper_Horizontal

Pour chaque écran, on trouve le driver ainsi qu’une image de la distribution Linux pré-configurée. Je n’ai pas testé les images proposées (ce n’est pas nécessaire). Je n’ai aucun idée de la distribution proposée pour le Raspberry Pi.

Faites un clic droit sur LCD_show_35hdmi et copiez l’adresse du lien (http://en.kedei.net/raspberry/hdmi/LCD_show_35hdmi.tar.gz)

lcd tft 35 inchs hdmi tactile kedei spi raspberry pi gpio screen driver

Mettez sous tension le Raspberry Pi et connectez vous en SSH à celui-ci (comment faire). Exécutez la commande suivante pour télécharger le driver (modifiez le lien si nécessaire).

wget http://en.kedei.net/raspberry/hdmi/LCD_show_35hdmi.tar.gz

Décompressez l’archive

tar -xzvf LCD_show_35hdmi.tar.gz

Allez dans le répertoire

cd LCD_show_35hdmi

Voici le script d’installation pour l’écran 3.5” (480×320 pixels) testé dans cet article

sudo cp ./lcd_35_v/kernel.img /boot/kernel.img
sudo cp ./lcd_35_v/kernel7.img /boot/
sudo cp ./lcd_35_v/*.dtb /boot/
sudo cp ./lcd_35_v/config_480_320.txt  /boot/config.txt
sudo cp ./lcd_35_v/overlays/*.dtb* /boot/overlays/
sudo cp -rf ./lcd_35_v/lib/* /lib/

sudo apt-mark hold raspberrypi-kernel
sudo apt-mark hold raspberrypi-bootloader
sudo reboot

Comme vous pouvez le constater, le fichier

/boot/config.txt
  va être écrasé par cette nouvelle version. Si vous avez apporté des modifications à ce fichier, n’oubliez pas d’en faire une copie puis reportez vos réglages. L’autre solution consiste à mettre en commentaire la ligne
sudo cp ./lcd_35_v/config_480_320.txt /boot/config.txt
  et d’ajouter manuellement la configuration dans votre fichier actuel.
hdmi_force_hotplug=1
hdmi_drive=2
hdmi_group=2
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0

dtoverlay=ads7846,cs=0,penirq=25,penirq_pull=2,speed=10000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=199,xmax=3999,ymin=199,ymax=3999

Si vous êtes prêt, exécutez le script d’installation.

sudo ./LCD35_480*320

Le script s’exécute. Le Kernel est mis à jour puis Raspbian redémarre.

raspberrypi-kernel passé en figé (« hold »).
raspberrypi-bootloader passé en figé (« hold »).

Voici le bureau Pixel de Raspbian en 480×320 pixels

kit lcd 35 tactile raspberry pi gpio raspbian 320x480 pixels

Vous pouvez modifier la résolution d’affichage dans le fichier config.txt. En dessous d’une résolution de 800×600 pixels, il est souvent difficile de pouvoir accéder ou boutons de confirmation. Il faut redémarrer le système après chaque modification pour prendre en compte les nouveaux paramètres d’affichage. Voici le résultat en 1024×768 pixels.

kit lcd 35 tactile raspberry pi gpio raspbian 1024x768 pixels

Evidemment, c’est un écran bien trop petit pour développer ou surfer sur internet. L’avantage de pouvoir disposer d’une grande résolution trouve tout de même un intérêt si on se connecte à distance au Raspberry par une connexion VNC. VNC ne sait pas (ne peut pas) afficher une résolution supérieure à celle de l’écran. Dans le prochain tutoriel, nous verrons comment installer Retropie pour transformer ce petit boitier en console de jeu rétro.

L’article #Test de l’écran LCD 3.5” HDMI tactile (via le GPIO) avec boitier acrylique pour Raspberry Pi 3 sous Raspbian (480×320 à 1920×1080 pixels) est apparu en premier sur Domotique et objets connectés à faire soi-même.

Installer l’IDE Arduino (1.8 ou supérieur) sur Linux (Ubuntu 16.04 ou supérieur)

$
0
0
ide arduino ubuntu linux 32-bits lubuntu

L’IDE Arduino est disponible sur les principaux systèmes d’exploitation et bien entendu sur Ubuntu ou n’importe quelle autre distribution Linux. L’IDE Arduino est disponible pour les versions 32-bits et 64 bits de Linux. C’est l’occasion de recycler un ancien PC fonctionnant sous Windows XP pour vous lancer dans la programmation des micro-contrôleurs Arduino, ESP8266, ESP32, etc..

Récupérer les fichiers d’installation de l’IDE Arduino

L’IDE Arduino a pas mal évolué en 10 ans. Vous allez probablement trouver des anciens tutoriels qui expliquent comment installer l’environnement de développement à l’aide de la commande sudo apt-get install arduino -y . Cette méthode n’est pas conseillée car elle ne permet pas d’installer la dernière version.

Pour installer l’IDE Arduino sur Ubuntu, il suffit de se rendre sur le site officiel à cette page et de télécharger l’archive correspondant à la version de votre système.

arduino ide telechargement version arm

Installer l’IDE Arduino

Ubuntu dispose d’un utilitaire de décompression d’archive (Archive Manager). A la fin du téléchargement, ouvrez le gestionnaire de fichiers et faites un double clic sur l’archive tar. L’Archive Manager s’ouvre. Cliquez sur le bouton Extract (extraire) pour décompresser l’archive. Décompresser le dossier dans le répertoire de destination directement. Par exemple dans votre dossier utilisateur.

extract ide arduino archive manager ubuntu

Le script d’installation va simplement créer des liens symboliques et ajouter une icône sur le bureau ainsi que dans le menu programmation.

Ouvrez un Terminal et placez vous dans le dossier d’installation de l’IDE, par exemple

cd /home/utilisateur/arduino-1.8.2

Puis exécutez le script d’installation

./install.sh

Sur certaines distributions Linux (y compris sur Raspbian d’ailleurs), le script d’installation pose problème à partir de la version 1.8.1. Vous allez certainement rencontrer ce message d’erreur (plusieurs fois)

A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated
with a dash ("-"). An example filename is 'example-cc.arduino.arduinoide.desktop'
Use --novendor to override or 'xdg-desktop-icon --manual' for additional info.
xdg-mime: file '/home/chris/arduino-1.8.2/lib/cc.arduino.arduinoide.xml' does not exist

La solution a été apportée par jeryneedle sur le forum Arduino ici.

Ouvrez le script d’installation avec un éditeur de texte (leafpad, geany ou nano) et modifiez cette ligne (ligne 9 pour la version 1.8.2)

RESOURCE_NAME=cc.arduino.arduinoide

par

RESOURCE_NAME=cc.arduino-arduinoide

Enregistrez et exécutez de nouveau le script d’installation. Cette fois, les raccourcis vont correctement être installés sur le bureau et dans le menu programmation.

raccourci ide arduino ubuntu

Ici, l’IDE fonctionne sous Lubuntu 32-bits. Cette version plus légère d’Ubuntu 16.04 fonctionne très bien sur mini-PC à base d’ATOM recyclé.

ide arduino ubuntu linux 32-bits lubuntu

L’article Installer l’IDE Arduino (1.8 ou supérieur) sur Linux (Ubuntu 16.04 ou supérieur) est apparu en premier sur Domotique et objets connectés à faire soi-même.

Programmer les cartes ESP32 avec l’IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Framework ESP-IDF

$
0
0
ide arduino esp32 demo led blink geekcreit

Les cartes de développement construites autour du module ESP32 sont maintenant très courantes. Les cartes de développement ESP32 ne sont pas supportées officiellement par l’IDE Arduino.  Un lien vers le dépôt du SDK est maintenant disponible ce qui permet d’installer les librairies directement depuis le gestionnaire de cartes supplémentaires de l’IDE Arduino. Si vous avez installé le SDK pour les cartes ESP32 avec l’ancienne méthode, suivez la procédure de désinstallation manuelle. 

 

Le kit de développement (SDK) d’Espressif pour les cartes ESP32 est disponible sur GitHub. Il est compatible avec l’IDE Arduino pour macOS, Windows, Linux 32-bit, 64-bit et puces ARM (Raspberry Pi, Orange Pi, etc…).

Désinstaller l’ancienne librairie ESP32

Si vous avez déjà installé la version précédente du SDK avec l’ancienne procédure d’installation, vous devez déjà supprimer la version précédente. Ouvrez les préfères de l’IDE Arduino pour connaître le répertoire d’installation des librairies. Par défaut, les librairies sont installées dans le dossier library situé dans le dossier Documents/Arduino.

chemin installation librairie esp32

Une fois localisé, il suffit de supprimer le dossier esp32 situé dans le dossier hardware/espressif. Redémarrez l’IDE Arduino pour actualiser la configuration.

supprimer sdk esp32 espressif old

Installer le Framework ESP-IDF pour ESP32 sur l’IDE Arduino. Compatible avec tous les systèmes d’exploitation

Maintenant que le framework ESP-IDF pour les cartes de développement ESP32 est directement disponible depuis le gestionnaire de cartes de l’IDE Arduino, la procédure d’installation est identique quelque soit le système d’exploitation (Windows 10, macOS, Linux, Raspbian, Armbian…)

Ouvrez le panneau des préférences et cliquez sur le bouton situé à droite de l’option URL de gestionnaire de cartes supplémentaires.

sdk espressif esp32 ide arduino preferences

Dans la boîte de dialogue qui s’ouvre, ajoutez le lien suivant puis cliquez sur OK

https://dl.espressif.com/dl/package_esp32_index.json

Attention, une ligne par URL.

link sdk espressif esp32 ide arduino

Il existe également un lien vers la version en cours de développement (release). Cette version est déconseillée pour la production. Elle permet d’évaluer les nouvelles fonctionnalités en cours de développement.

https://dl.espressif.com/dl/package_esp32_dev_index.json

Ouvrez le gestionnaire de carte depuis le menu Outils puis Type de carte

2 install sdk espressif esp32 ide arduino

Cherchez le SDK avec le mot clé ESP32 puis cliquez sur installer.

install sdk espressif esp32 ide arduino

Maintenant que les cartes ESP32 sont gérées depuis le gestionnaire de carte, les librairies pourront être mises à jour dès qu’une nouvelle version est disponible.

Vérifier que les cartes ESP32 sont correctement installées

Une fois l’installation terminée, il n’est pas nécessaire de redémarrer l’IDE Arduino. Ouvrez le menu Outils puis le sous-menu Type de carte. Faites défiler la liste, vous devriez pouvoir sélectionner une carte de développement ESP32 dans la liste si tout s’est correctement déroulé.

liste esp32 cartes ide arduino

Premier test : faire clignoter une Led

L’ESP32 se programme exactement comme un ESP8266. Nous allons ici simplement vérifier que tout est correctement installé. Créez un nouveau projet et collez le code suivant qui fait clignoter une Led branchée entre la broche 15 et le GND. Pour cet article, j’ai utilisé une carte générique de Geekcreit.

/*
 * ESP32 Dev Board Test
 * Led blinking
 * projetsdiy.fr - diyprojects.io
 */
int ledPin = 15;

void setup()
{
    pinMode(ledPin, OUTPUT);
    Serial.begin(115200);
}

void loop()
{
    Serial.println("Hello ESP32!");
    digitalWrite(ledPin, HIGH);
    delay(500);
    digitalWrite(ledPin, LOW);
    delay(500);
}

Dans la liste des cartes, sélectionnez ESP32 Dev Module. Les modules supportent en général une vitesse de téléchargement de 921600 bauds ce qui est très appréciable.

ide arduino esp32 demo led blink geekcreit

Voilà, ça fonctionne.

ide arduino esp32 demo led blink geekcreit

Tutoriels et projets à base d’ESP32

Près à vous lancer, voici d’autres tutoriels et projets à base d’ESP32

Ancienne procédure d’installation obsolète (ne plus utiliser)

Installer le kit de développement ESP32 sur Windows 7,8,10 (32-bit ou 64-bit)

Avant de commencer l’installation, quittez l’IDE Arduino s’il est lancé. Si vous ne disposez pas encore l’IDE pour macOS, allez le récupérer ici. Lancez l’IDE Arduino une première fois pour que le dossier Arduino soit créé dans le dossier Mes Documents. Fermez l’IDE.

Si vous avez un utilitaire Git sur votre machine, vous pouvez vous en servir pour cloner le dépôt du projet. Sinon, allez sur GitHub ici. Cliquez sur Clone or download puis Download ZIP.

github download esp32 dev kit for windows

Ouvrez l’Explorateur de fichiers et allez dans vos Documents. Créez les dossiers suivants pour obtenir l’arborescence suivante Mes Documents\Arduino\hardware\esp32. Il est important de respecter la casse et cette arborescence. Le chemin est codé “en dur” dans le kit. Décompressez et déplacez le contenu du Zip téléchargé dans le dossier esp32.

decompression git kit developpement esp32

Allez dans le répertoire tools et lancez le programme get.exe

esp32 tools launch get_exe

Ce programme termine de récupérer et d’installer les ressources nécessaires.

get_exe progression

Lancez l’IDE Arduino. Un nouveau menu contenant les cartes ESP32 est disponible dans les outils.

esp32 board cartes ide arduino windows 10 64-bits

Installer le kit de développement ESP32 sur macOS

Avant de commencer l’installation, quittez l’IDE Arduino s’il est lancé. Si vous ne disposez pas encore l’IDE pour macOS, allez le récupérer ici.

Ouvrez le Terminal, copiez puis collez le commande suivantes dans le Terminal. Validez pour lancer l’installation.

Attention, certaines commandes (git clone, pyton get.py) peuvent prendre du temps car les sources sont téléchargées depuis internet.
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools/ && \
python get.py

Démarrez l’IDE Arduino. L’installation est terminée. Si tout st correct, vous devez avoir un menu supplémentaire dans les cartes

ide arduino esp32 board cartes liste

Installer le kit sur Linux ARM (Raspberry Pi, Orange Pi…)

Quittez l’IDE Arduino. Si vous n’avez pas encore installé l’IDE Arduino sur votre Raspberry Pi, suivez ce tutoriel.

Ouvrez le Terminal, collez l’ensemble des commandes suivantes et appuyer sur la touche Enter du clavier pour lancer l’installation du kit de développement. L’opération risque de durer quelques minutes en fonction des ressources déjà installées sur votre distribution.

sudo usermod -a -G dialout $USER && \
sudo apt-get install git && \
wget https://bootstrap.pypa.io/get-pip.py && \
sudo python get-pip.py && \
sudo pip install pyserial && \
mkdir -p ~/Arduino/hardware/espressif && \
cd ~/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools/ && \
python get.py

L’IDE est prêt

ide arduino esp32 arm linux raspberry raspbian pixel

Installer le SDK ESP32 sur Linux 32-bits ou 64-bits

Suivez exactement la même procédure d’installation que sur Linux pour processeurs ARM.

Les cartes de développement ESP32 supportées (avant la version 1.0 du nouveau SDK)

Dans la version actuelle, outre les cartes génériques (ESP32 Dev Module jusqu’à 4MB), le kit prend en charge les cartes de développement ESP32 suivantes :

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

L’ESP32 proposant 26 E/S au lieu de 11 sur l’ESP8266, les dimensions des cartes de développement sont plus imposantes. Certains fabricants proposent un nombre restreint d’E/S. L’ESP320 du suédois Electronic SweetPeas ne dispose que de 11E/S et 1 entrée analogique pour une dimension de seulement 27.5 x 17.8 mm.

Les deux cartes Hornbill font l’objet d’une campagne de financement participative sur Crowd Supply. L’ESP32 Dev est une carte de développement standard mais plus étroite. La Minima est destinée à la réalisation d’applications vestimentaires. Le support du bluetooth est un avantage indéniable pour ce type d’application. Elle pourrait remplacer avantageusement les cartes LilyPad et LilyTiny qui commencent à prendre de l’age.

La grande majorité de ces cartes sont (encore) assez difficile à se procurer (à un prix raisonnable). Les prix ont passés la barre des 7euros ces derniers mois. C’est heureux car il était difficile de justifier un prix supérieur à 10€ face au Raspberry Pi Zero ou l’Orange Pi Zero. On trouve par exemple la Wemos LoLin32 pour environ 6,45€ (hors frais de port). On trouve également des modèles génériques (Geekworm, Doit.am souvent dénommées Geekcreit) pour un prix similaire.

Exemples disponibles

Quelques exemples sont livrée avec le kit de développement :

  • AnalogOut
    • LEDCSoftwareFade : allume progressivement une Led
    • SigmaDelta
  • Timer
    • RepeatTimer
  • Touch
    • TouchInterrupt
    • TouchRead

Si vous êtes passé à coté, l’ESP32 est capable de gérer les écrans LCD tactiles. Voici un exemple (impressionnant) de ce qu’il est possible de faire. Le projet est disponible sur GitHub ou le blog de Marc Merlin.

Mises à jour

[3/06/2019] Nouvelle procédure d’installation du SDK compatible avec tous les systèmes d’exploitation depuis le gestionnaire de cartes de l’IDE Arduino

L’article Programmer les cartes ESP32 avec l’IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Framework ESP-IDF est apparu en premier sur Domotique et objets connectés à faire soi-même.

Pi Imager et l’assistant de configuration simplifient l’installation de Raspbian sur Raspberry Pi 4

$
0
0
pi imager choose storage

L’installation et la configuration de Raspbian n’a jamais été aussi simple. Fini le téléchargement de l’image du système et l’écriture de fichier de configuration. Avec Pi Imager et le nouveau assistant de configuration de Raspbian, l’installation et la configuration devient un jeu d’enfant et ne prend quel quelques dizaines de minutes. 

 

 

Installer Raspberry Pi Imager sur votre PC ou Mac

La fondation Raspberry a développé un outil qui permet de télécharger et installer l’image du système sur la carte micro-SD de destination en 3 étapes. Inutile donc de télécharger manuellement l’image de Raspbian Pi Imager s’occupe de tout !

C’est un outil équivalent à Noobs mais cette fois

Allez sur cette page pour récupérer l’application Pi Imager qui convient à votre environnement. Windows, macOS ou Linux (Ubuntu uniquement).

install raspbian buster raspberry pi4

Une fois installé sur votre ordinateur, lancez Pi Imager. Cliquez sur Choose OS pour sélectionner le système à installer

start pi imager

Pi Imager reprend le même principe que Noobs et propose plusieurs systèmes d’exploitation à installer :

  • Raspbian (Buster ou supérieur)
    • Version Lite (400MB). C’est la version minimale sans interface graphique avec le minium de logiciels pré-installés. C’est la distribution idéale pour faire fonctionner un serveur domotique ou faire du développement IoT avec Node-RED, InfluxDB, MongoDB, Grafana…
    • Raspbian (1.1GB). La version recommandée par défaut. On y trouve un interface graphique avec la suite bureautique Libre Office, des outils de développement et édition graphique…
    • Raspbian Full (2.5GB). La version complète
  • LibreElec (0.1MB). Une distribution qui permet de transformer le Raspberry Pi en mediacenter. LibreElec est une branche à but non lucratif du projet OpenELEC. 3 versions sont disponibles en fonction du modèle de Raspberry Pi (Zero, Pi 2 ou Pi 3, Raspberry Pi 4)
  • Ubuntu. 6 versions de Ubuntu. Server 32 ou 64 bits (18 ou 19), Core IoT (32 ou 64 bits)
  • Misc utility images (utilitaires). Cette catégorie ne contient que l’outil de restauration de l’EEPROM du Raspberry Pi 4

pi imager eeprom boot recovery

  • Custom. Permet de choisir sa propre image de distribution (au format .img) stockée localement. On utilisera cette option pour les autres distributions tel que Mozilla WebThing, PiNet

pi imager distributions

Insérez maintenant la carte micro-SD dans le lecteur et cliquez sur Choose SD Card pour indiquer la destination de la copie.

start pi imager

Lancez l’écriture des fichiers en cliquant sur Write. Pi Image va s’occuper de télécharger l’image du système, le copie sur la carte et enfin vérifie que tout est correct.

raspberry pi imager write raspbian sd card

La carte SD est automatiquement éjectée à la fin de l’opération d’écriture.

raspberry pi imager complete

Dans quel cas utiliser Belana Etcher ?

Avant que la fondation Raspberry ne propose Pi Imager, la solution la plus courante (autre que Noobs) était d’utiliser Balena Etcher. Etcher est un utilitaire qui permet de copier des fichiers sur une carte SD d’une manière générale et n’a pas été spécifiquement développé pour Raspbian.

Etcher présente encore de l’intérêt notamment lorsqu’on doit préparer un grand nombre de cartes SD en série (l’une après l’autre ou par lot avec Etcher Pro), par exemple si vous avez le projet d’équiper une salle de classe.

Autre limitation, Pi Imager ne supporte que les images au format img. Etcher quant à lui supporte la plupart des formats img, iso, zip, bin, bz2, dmg, dsk, etch, gz, hddimg, raw, rpi-sdimg, sdcard, wic et xz !

belana etcher

 

Configurer Raspbian Buster au premier démarrage avec l’assistant piwiz.desktop

Insérez la carte micro-SD dans le lecteur du Raspberry Pi et mettez le sous tension. Le démarrage est assez rapide (environ 20 à 30 secondes en fonction du modèle de Raspberry Pi).

Au premier démarrage, Raspbian lance l’assistant de configuration. Cliquez sur Next à chaque étape de la configuration.

raspberry pi4 setup raspbian buster welcome

Au démarrage, le système lance un utilitaire nommé piwiz.desktop enregistré dans le dossier système /etc/xdg/autostart/. Cet utilitaire est supprimé – définitivement – à la fin de la configuration ou lorsqu’on appui sur Cancel (annuler). Il n’est plus possible de relancer l’assistant de configuration (peut être dans une prochaine mise à jour…).

Par défaut, Raspbian Buster est configurer en anglais. Modifiez la langue de l’interface, le clavier et le fuseau horaire. La configuration du clavier est automatiquement faite en passant à l’écran suivant mais il faudra attendre le redémarrage pour que l’interface soit modifiée.

raspberry pi4 setup raspbian buster french raspberry pi4 setup raspbian buster country setup

Par sécurité, modifiez immédiatement le mot de passe de l’utilisateur Pi (créé par défaut).

Si vous avez une bordure noire sur le bord de l’écran, cochez la case sur l’assistant qui tentera d’améliorer l’affichage. Il faudra attendre le redémarrage pour que le réglage soit pris en compte.

raspberry pi4 setup raspbian buster screen black border

Choisissez le réseau WiFi sur lequel doit se connecter Raspberry Pi (sauf s’il est connecté en ethernet)

 raspberry pi4 setup raspbian buster wifi

Dernière étape, mettez à jour le système. Les paquets sont mis à jour quotidiennement. Même si vous venez d’installer l’image de Raspbian, il y a très certainement des mises à jour de sécurité à faire, cela ne prendra que quelques minutes.

 raspberry pi4 raspbian buster update raspberry pi4 raspbian buster update system

C’est presque terminé, il ne reste plus qu’à redémarrer Raspbian !

raspberry pi4 raspbian buster update complete

Et voilà, votre Raspberry Pi est prêt !

L’article Pi Imager et l’assistant de configuration simplifient l’installation de Raspbian sur Raspberry Pi 4 est apparu en premier sur Domotique et objets connectés à faire soi-même.

Comment souder le connecteur GPIO du Raspberry Pi Zero W

$
0
0
raspberry pi zero w without keyboard screen

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.

Si vous n’avez pas le matériel nécessaire, ou si la soudure n’est pas votre truc, vous pouvez opter directement pour la version WH (H pour Header) sur lequel le GPIO est déjà soudé

Matériel nécessaire

Pour ce tutoriel, j’ai acheté le kit Essential de PiHut sur Amazon. Ce kit est livré avec 3 types de connecteurs :

  • Un connecteur droit à 40 broches identique à tous les Raspberry Pi
  • Un connecteur coudé à 90° qui permet de concevoir des montage à plat
  • Un connecteur femelle identique à celui qui équipe les cartes Arduino

raspberry pi zero w essential kit pihut connectors

Pour souder le connecteur, je vous recommande d’utiliser un fer à souder de bonne qualité. L’idéal est de vous procurer un fer à souder avec un contrôler la température de soudure. On obtient de bons résultats entre 300 et 400°C. Optez pour un fer à souder avec une panne de 2mm diamètre maximum. On en trouve pour moins de 20€ sur Amazon. Prenez du fil d’étain entre 0,5 et 1mm de diamètre.

station de soudage raspberry pi

Le plus facile pour souder correctement les connecteurs, c’est d’utiliser une breadboard (platine de prototypage). Il suffira d’insérer le connecteur dans la breadboard puis de poser la carte à souder.

 

Dernier outil indispensable, la pompe à dessouder. En cas d’erreur ou d’un apport trop important en étain, vous pourrez corriger le problème. Evitez les modèles en plastique bon marché. La pompe va fonctionner 50 fois avant de satelliser le piston à l’autre bout de la pièce, c’est du vécu  :-D.

Comment souder facilement

Il existe de nombreux tutoriels qui expliquent comment bien souder sur internet et surtout de bonnes vidéos sur Youtube.

Ce qu’il faut en retenir

  • Se mettre dans de bonnes conditions : à plat, éclairage, loupe
  • Positionner les éléments à souder
  • Placer la panne à la jonction de la broche et du circuit et pré-chauffer durant 3 secondes
  • Apporter un peu de soudure
  • Au contact de la panne, la soudure va chauffer et mouiller le connecteur. C’est à dire qu’elle va couler le long de la broche et venir combler l’espace entre la broche et le circuit
  • Pour les connecteurs, on soude d’abord deux broches à chaque extrémité pour éviter qu’il ne bouge durant le montage
Attention. Limitez le temps de chauffe lorsque vous soudez un circuits sur lequel il y a déjà des composants. Vous risquez de dé-souder des composants. Pire, certains composants sont sensibles à la chaleur, vous risquez donc de les détruire. 

On passe à la pratique, souder le connecteur sur le Raspberry Pi Zero W

Ici, j’ai opté pour le connecteur droit identique au Raspberry Pi 3. Le connecteur micro HDMI étant plus épais que la carte, il faut se placer sur un bord de la breadboard pour que le connecteur GPIO puisse être plan. Maintenez la carte en place puis faites 2 points de soudure à chaque extrémité du connecteur.

raspberry pi zero w essential kit pihut connectors breadboard top

Vous obtiendrez ainsi un montage correct

raspberry pi zero w essential kit pihut connectors breadboard

Vous pouvez maintenant procéder à la soudure des broches restantes. Pour terminer ce tutoriel, voici une petite vidéo de quelques points de soudure. Si vous avez d’autres astuces, n’hésitez pas à partager votre expérience dans les commentaires.

Avez-vous aimé cet article ?
[Total: Moyenne: ]

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

Viewing all 46 articles
Browse latest View live