Domotique avec pi framboise et arduino

Nous avons parlé des mérites relatifs de Arduino et Raspberry Pi avant - ils ont chacun leurs points forts. Ils ne doivent pas être un choix soit ou bien - les combiner pour obtenir le meilleur des deux mondes. La domotique est le candidat parfait pour cela. Le marché de la domotique est inondé avec des systèmes de consommation coûteux, incompatibles entre eux et coûteux à installer. Si tu as un Tarte aux framboises et un Arduino, vous pouvez essentiellement réaliser la même chose à une fraction du prix, supposant que vous êtes prêt à mettre dans le temps et l`effort.

Mise à jour: Depuis que cet article a été écrit, je l`ai découvert OpenHAB, une plate-forme domotique source libre et ouvert qui fonctionne sur Raspberry Pi et peut être intégré à une vaste gamme de kit de maison intelligente impromptu ainsi que Arduino. Regardez la vidéo ci-dessous pour un petit aperçu, puis la tête sur plus de notre Mise en route avec OpenHAB sur Raspberry Pi guide pour en savoir plus. Mise en route avec OpenHAB Home Automation sur Raspberry PiMise en route avec OpenHAB Home Automation sur Raspberry PiOpenHAB est une plate-forme domotique source mature, ouverte qui fonctionne sur une variété de matériel et est le protocole agnostique, ce qui signifie qu`il peut se connecter à presque tout matériel domotique sur le marché aujourd`hui.Lire la suite

Heimcontrol.js par Willi Thiel est un Node.js app construit pour fonctionner sur Raspberry Pi. Combiné avec un Arduino et des prises de commande à distance impromptu, il facilite le contrôle des appareils AC facile. Vous pouvez ajouter des capteurs de température, et même de contrôler votre téléviseur - mais nous allons aujourd`hui des choses de base garder et étendre le projet dans un tutoriel plus tard.

Voici une ventilation du projet:

  • Le Raspberry Pi agira comme le cerveau et la passerelle des opérations - il exécuter une application de nœud, lié à une base de données Mongo, et servir l`interface frontal à tout navigateur Web.
  • Un Arduino, alimenté à partir de la Pi, sera en interface entre l`électronique - des interrupteurs de puissance de commande de la radio, pour le moment.

Pour ce faire, vous aurez besoin:

  • Arduino et un Raspberry Pi
  • Certaines prises de télécommande et de commande (I a utilisé ces)
  • concentrateur USB

Video: Domotique avec raspberry pi

RC prises

Avant de commencer, voici une vidéo de démonstration du créateur du projet lui-même.

recommencer à zéro

Nous allons utiliser Raspian pour ce projet, et je suggère fortement à partir d`une nouvelle installation si vous avez déjà effectué d`autres hacks et autres. Téléchargez la dernière image Raspian, le copier sur votre carte SD, et assurez-vous d`étendre le système de fichiers et activer SSH. Le reste de ce guide suppose que vous avez fait, et se connectent via SSH en utilisant l`utilisateur par défaut.7 Systèmes d`exploitation que vous pouvez exécuter avec Raspberry Pi7 Systèmes d`exploitation que vous pouvez exécuter avec Raspberry PiQui peut discuter avec un ordinateur de 40 $? En particulier celui qui forme également une bonne base pour les projets de l`électronique! Je ne peux certainement pas. Mais le matériel seul est d`un seul côté de l`histoire: vous avez encore besoin ...Lire la suite

Si vous ne l`avez pas fait cela avant, cette vidéo explique le processus de préparation de votre carte SD dans OS X:

Et celui-ci pour les utilisateurs de Windows:

Video: Projet domotique avec Arduino + Relais + Bluetooth (Partie 1)

Préparation

Le processus d`installation est assez laborieuse, et dérivé des instructions ici. Malheureusement, ceux-ci étaient obsolètes ou non conçus pour Raspian, donc je les ai fortement ajusté ci-dessous. Les codes ci-dessous peuvent être la plupart du temps dans des blocs collés - vous devez coller pas un par un. Puisque nous compilant quelques petites choses sur le Pi lui-même, soyez averti que ce processus prendra beaucoup de temps. Je dirais aller vous faire une tasse de thé - mais quand je dis « longtemps », je veux dire la meilleure partie d`un jour - donc 178 tasses seraient plus appropriés.

Toutes les commandes doivent être dactylographiés dans le terminal, et vous devrez appuyer sur Entrée à certains points. Ces premières commandes mettront à jour le système et l`installation pré-requis:

sudo apt-get mettre à joursudo apt-get surclassementsudo apt-get installer git-core git scons scons build-essential libpcre ++ - dev xulrunner-dev libboost-dev libboost-programme-options-dev libboost-thread-dev libboost-système de fichiers-dev

Ensuite, nous devons installer Noeud:

sudo mkdir / Opt / noeudwget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gzle goudron xvzf noeud-v0.10.2-linux-bras-pi.tar.gzsudo cp -r noeud-v0.10.2-linux-bras-pi / * / opt / nœudsudo Dans -s / opt / node / bin / node / usr / local / bin / noeudsudo Dans -s / opt / node / bin / NPM / usr / local / bin / NPM

Ajouter une variable PATH à votre profil afin que le système d`exploitation sait où le nœud est situé. Utilisez l`éditeur de texte nano comme suit:

sudo nano / Etc / profile

Recherchez la ligne qui dit Export PATH et le remplacer par:

NODE_JS_HOME="/ Opt / noeud"CHEMIN="$ PATH:$ NODE_JS_HOME/poubelle"exportation CHEMIN

Appuyez sur Ctrl-X pour quitter et Y pour enregistrer.

Vous devrez peut-être vous déconnecter et à nouveau pour les changements de chemin à prendre effet, mais vous pouvez tester avec la commande:

lequel nœud

Si vous ne recevez pas une sortie pointant vers le binaire de noeud, quelque chose a mal tourné.

mongo

Le travail suivant consiste à installer Mongo. Mongo est basé sur des documents base de données No-SQL de plus en plus utilisé par les applications Web. Malheureusement, cela prendra toujours à installer que nous devons compiler. Tout en exécutant les commandes suivantes, vous aurez beaucoup d`erreurs comme:

{entrée standard}: 13085: Attention: SWP{b} l`utilisation est dépréciée pour cette architecture

Ne vous inquiétez pas à ce sujet. , Exécutez ces commandes pour installer Mongo:

git git clone: ​​//github.com/RickP/mongopi.gitCD mongopisconssudo scons --prefix=/ Opt / mongo installerscons -c

Quand cela est fini, nous avons besoin d`un peu plus de la première installation pour résoudre les problèmes d`autorisation et assurez-vous qu`il est en cours d`exécution au démarrage.

sudo useradd MongoDBsudo mkdir / Data / DBBsudo chown $ USER / Data / dbCD /etc/init.dsudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.shsudo chmod +x mongodbsudo update-rc.d mongodb defaultsmongod

Cette dernière commande va lancer le serveur Mongo, et vous aurez besoin d`ouvrir un nouveau terminal pour continuer avec les autres commandes. Je ne suis pas tout à fait sûr de cette étape, donc si quelqu`un peut corriger cela dans les commentaires sur la façon d`avoir mongod lancer automatiquement au démarrage, il serait très apprécié. Pour l`instant, cela fonctionne, mais pas avec élégance.

sudo fermer -r maintenant

Enfin, il est temps d`installer l`application Node Heimcontrol.js.

CD ~ pigit git clone: ​​//github.com/ni-c/heimcontrol.js.gitCD heimcontrol.jsNPM installer

Vous pouvez commencer à exécuter l`application en tapant

noeud heimcontrol.js

À ce stade, vous devriez être en mesure d`accéder à l`interface de commande par http: // localhost: 8080 de la Pi ou remplacez localhost par l`adresse IP si vous accédez à partir d`un autre ordinateur (Et vous pouvez également mettre en place redirection de port pour y avoir accès partout dans le monde), donc je vous encourage à fouiller et vérifier que tout fonctionne avec la base de données avant de fixer l`Arduino.Qu`est-ce que la redirection de port & Comment peut-il me aider? [MakeUseOf Explique]Qu`est-ce que la redirection de port & Comment peut-il me aider? [MakeUseOf Explique]Pleurez-vous un peu à l`intérieur quand quelqu`un vous dit qu`il ya un problème de redirection de port et voilà pourquoi votre nouvelle application brillante ne fonctionnera pas? Votre Xbox ne vous laissera pas jouer à des jeux, fichiers torrent téléchargés refusent ...Lire la suite

Matériel

Finalement, je voudrais une relais câblé, mais pour l`instant, je vais utiliser l`option plus sûre de commutateurs radio-commandés.

Je l`ai utilisé quelques 20 £ à bas prix raisonnable ensembles de Maplin qui viennent avec 3 prises, et a ouvert la télécommande pour que je puisse interfacer directement avec la puce 433 MHz à l`intérieur. J`ai trouvé les instructions pour ce ici.

rc-contrôleur bidouille

Vous pouvez également acheter des émetteurs individuels 433 MHz prêt à être utilisé sur eBay ou des fournisseurs d`électronique de passe-temps. Tout ce que vous devez connecter l`est à 5 V CCV sur l`Arduino, les GNDs, et une broche de commande unique - rappelez-vous que l`on vous avez utilisé. (Schéma par Willi Thiel)

arduino-rcswitch

Le plugin fonctionne en envoyant des « codes » de trois états, mais ceux-ci varie selon le fabricant. Reportez-vous à la documentation RCSwitch pour trouver vos codes exacts. Ce guide wiki peut aider aussi.

La communication avec l`Arduino est effectuée à l`aide d`une bibliothèque de nœud appelé Duino. Arrêtez l`application Heimcontrol si elle est en cours d`exécution et installer le pont Arduino en utilisant la commande suivante.

NPM installer Duino

L`Arduino doit avoir ce code téléchargé - je vous suggère de copier-coller pour installer ce à partir d`un autre ordinateur. Il est essentiellement un programme d`écoute qui répond aux commandes série de Pi, mais il n`y a rien pour vous empêcher de l`étendre avec vos propres caractéristiques.

rc paramètres

Avec l`application Web lancé, allez à la Paramètres Menu -gt; Arduino.

heimcontrol-menu-réglages

De là, vous pouvez ajouter un nouvel élément, le choix de la méthode RCSwitch, la broche de votre émetteur, et le code d`adresse tristate. Rappelez-vous d`enregistrer, puis retournez à l`écran principal de l`écran pour votre nouveau bouton.

rcswitch-cadre

Bogues:

Après de nombreuses heures de débogage du code, j`ai trouvé les numéros de broches à un seul chiffre travaillaient pas - assurez-vous que votre émetteur est placé sur la broche dix pour être sûr.

Je trouve aussi que le plug-in Arduino a été codé en dur avec des morceaux finaux incorrects pour les codes de mes récepteurs nécessaires tristate. Une petite explication première: Les codes se composent de 3 tristate octets d`information. Le premier nous détermine le numéro de réseau (1-4), et le second fournit l`adresse de l`émetteur-récepteur (encore une fois, 1-4, produisant un maximum de 16 prises de courant adressables). L`octet final est constitué de deux bits de remplissage, ainsi que 2 bits pour la marche / arrêt. Malheureusement, l`octet final est codé en dur pour le plug-in Arduino - et dans mon cas, le code marche / arrêt était incorrect.

Je devais modifier manuellement le plugins / arduino / index.js d`utiliser les codes appropriés. Si vous utilisez les mêmes prises de contrôle à distance que je suis, les lignes de changement 80 à partir:

// Envoyer le code RCsi (item.value) {revenir that.pins[item.pin].trois États(item.code + "FFFF")-// change de FF0F} autre {revenir that.pins[item.pin].trois États(item.code + "FFF0")-// change de FF00}

Voici une vidéo de démonstration de tout ce travail:

Je vais le laisser ici à ce stade, mais les lectures des capteurs et IR télécommandes sont également supportés. Je vais revisiter sans doute ceux-ci à une date ultérieure avec quelques améliorations plus. Si tout cela a été un peu trop complexe pour vous, peut-être consulter mon projet de contrôle d`Internet Arduino.Comment faire pour configurer Arduino contrôle Web sans Ethernet ShieldComment faire pour configurer Arduino contrôle Web sans Ethernet ShieldDepuis quelques semaines, je remis le contrôle de l`éclairage d`ambiance dans mon studio aux téléspectateurs lors de la diffusion en direct de technophilie Podcast - vous pouvez voir les résultats de ce dans le ...Lire la suite

Articles connexes