
Peter Holmes
0
1824
362
Nous avons déjà parlé des mérites relatifs d’Arduino et de Raspberry Pi, chacun ayant ses points forts. Ils n'ont pas besoin d'être l'un ou l'autre choix - combinez-les pour obtenir le meilleur des deux mondes. La domotique est le candidat idéal pour cela. Le marché de la domotique est inondé de systèmes grand public coûteux, incompatibles entre eux et coûteux à installer. Si vous possédez un Raspberry Pi Raspberry Pi: le didacticiel officieux Raspberry Pi: le didacticiel officieux Que vous soyez un propriétaire actuel de Pi qui souhaite en savoir plus ou un propriétaire potentiel de cet appareil de la taille d'une carte de crédit, il ne s'agit pas d'un guide vouloir manquer. et un Arduino, vous pouvez pratiquement obtenir la même chose à une fraction du prix, en supposant que vous soyez prêt à mettre le temps et l'effort.
Mise à jour: Depuis la rédaction de cet article, j'ai découvert OpenHAB, une plate-forme domotique gratuite et à code source ouvert qui fonctionne sur Raspberry Pi et peut être intégrée à une vaste gamme de kits pour la maison intelligente standard ainsi qu’Arduino. Regardez la vidéo ci-dessous pour un aperçu, puis passez à la section Mise en route d'OpenHAB sur Raspberry Pi Initiation à OpenHAB Home Automation sur Raspberry Pi Mise en route d'OpenHAB Home Automation sur Raspberry Pi OpenHAB est une domotique mature et open source. Plate-forme qui fonctionne sur une variété de matériel et est indépendante du protocole, ce qui signifie qu'elle peut se connecter à presque tout matériel de domotique actuellement disponible sur le marché. guide pour en savoir plus.
Heimcontrol.js est une application Node.js conçue pour fonctionner sur Raspberry Pi. Associé à un Arduino et à quelques prises de télécommande, il facilite le contrôle des appareils AC. Vous pouvez ajouter des capteurs de température et même contrôler votre téléviseur - mais nous allons garder les choses de base aujourd'hui et étendre le projet dans un prochain tutoriel..
Voici une ventilation du projet:
- Le Raspberry Pi agira comme le cerveau et la passerelle des opérations: il exécutera une application Node, liée à une base de données Mongo, et servira l'interface frontale à tout navigateur Web..
- Un Arduino, alimenté par le Pi, servira d'interface entre l'électronique - commutateurs d'alimentation à commande radio, pour l'instant.
Pour ce faire, vous aurez besoin de:
- Arduino et un Raspberry Pi
- Quelques prises et contrôleurs télécommandés (je les ai utilisés)
- Hub USB alimenté
Avant de commencer, voici une vidéo de démonstration du créateur du projet lui-même..
Recommence
Nous allons utiliser Raspian pour ce projet. 11 Systèmes d’exploitation Raspberry Pi, vous pouvez essayer 11 Systèmes d’exploitation Raspberry Pi, vous pouvez essayer Quel que soit votre projet Raspberry Pi, il existe un système d’exploitation. Nous vous aidons à trouver le meilleur système d'exploitation Raspberry Pi pour vos besoins. , et je suggérerais fortement de commencer à partir d’une nouvelle installation si vous avez déjà effectué d’autres piratages et autres. Téléchargez la dernière image Raspian, copiez-la sur votre carte SD et veillez à développer le système de fichiers et à activer SSH. Le reste de ce guide supposera que vous l’avez déjà fait et que vous vous connectez via SSH avec l’utilisateur par défaut..
Si vous ne l'avez pas déjà fait auparavant, cette vidéo explique le processus de préparation de votre carte SD sous OS X:
Et celui-ci pour les utilisateurs Windows:
Préparation
Le processus d'installation est assez laborieux et est dérivé des instructions fournies ici. Malheureusement, ceux-ci étaient périmés ou non conçus pour Raspian, je les ai donc fortement ajustés ci-dessous. Les codes ci-dessous peuvent généralement être collés par blocs - vous ne devez pas les coller un par un. Étant donné que nous compilons quelques éléments sur le Pi lui-même, sachez que tout ce processus prendra du temps. Je dirais que tu vas te préparer une tasse de thé - mais quand je dis un “Longtemps”, Je veux dire la meilleure partie de la journée - donc 178 tasses seraient plus appropriées.
Toutes les commandes doivent être saisies dans le terminal et vous devrez peut-être appuyer sur la touche Entrée à certains moments. Ces premières commandes mettront à jour le système et installeront les prérequis:
sudo apt-get update sudo apt-get upgrade sudo apt-get install git-core git scons build-essential scons libpcre ++ - dev xulrunner-dev libboost-dev libboost-programme-options-dev libboost-thread-dev libboost-file-system-dev
Ensuite, nous devons installer Node:
sudo mkdir / opt / node wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz tar xvzf node-v0.10.2-linux-arm-pi. tar.gz sudo cp -r noeud-v0.10.2-linux-arm-pi / * / opt / noeud sudo ln -s / opt / noeud / bin / noeud / usr / local / bin / noeud sudo ln -s / opt / node / bin / npm / usr / local / bin / npm
Ajoutez une variable PATH à votre profil afin que le système d'exploitation sache où se trouve le nœud. Utilisez l'éditeur de texte nano comme suit:
sudo nano / etc / profile
Localisez la ligne qui dit chemin d'exportation et le remplacer par:
NODE_JS_HOME = "/ opt / node" PATH = "$ PATH: $ NODE_JS_HOME / bin" PATH d'exportation
Appuyez sur Ctrl-X pour quitter et sur Y pour enregistrer..
Vous devrez peut-être vous déconnecter et vous reconnecter pour que les modifications de chemin prennent effet, mais vous pouvez tester avec la commande:
quel noeud
Si vous ne recevez aucune sortie pointant vers le binaire Node, il y a un problème..
Mongo
Le prochain travail consiste à installer Mongo. Mongo est une base de données No-SQL basée sur les documents de plus en plus utilisée par les applications Web. Malheureusement, cela prendra une éternité à installer car nous devons le compiler. En exécutant les commandes suivantes, vous obtiendrez de nombreuses erreurs, telles que:
entrée standard: 13085: Avertissement: l'utilisation de swp b est déconseillée pour cette architecture.
Ne t'inquiète pas pour ça. Alors, lancez ces commandes pour installer Mongo:
git clone git: //github.com/RickP/mongopi.git cd mongopi scons sudo scons --prefix = / opt / mongo installe scons -c
Lorsque cela est terminé, nous avons d’abord besoin d’un peu plus de configuration pour résoudre les problèmes d’autorisation et nous assurer qu’elle s’exécute au démarrage..
sudo useradd mongodb sudo mkdir / data / dbb sudo chown $ USER / data / db cd / cd / init.d. .sh sudo chmod + x mongodb sudo update-rc.d mongodb par défaut mongod
Cette dernière commande lancera le serveur Mongo et vous devrez ouvrir un nouveau terminal pour continuer avec les autres commandes. Je ne suis pas tout à fait sûr de cette étape. Si quelqu'un pouvait corriger cela dans les commentaires sur la manière de lancer automatiquement Mongod au démarrage, cela serait très apprécié. Pour l'instant, ça marche, mais pas élégamment.
sudo shutdown -r now
Enfin, il est temps d'installer l'application Heimcontrol.js Node.
cd ~ pi git clone git: //github.com/ni-c/heimcontrol.js.git cd heimcontrol.js npm installer
Vous pouvez commencer à exécuter l'application en tapant
noeud heimcontrol.js
À ce stade, vous devriez pouvoir accéder à l’interface de contrôle avec http: // localhost: 8080 depuis le Pi, ou remplacez localhost par l'adresse IP si vous y accédez depuis un autre ordinateur (et vous pouvez également configurer le transfert de port. Qu'est-ce que la redirection de port et comment peut-il m'aider? [MakeUseOf explique] Qu'est-ce que la redirection de port & Comment peut-il m'aider? [MakeUseOf explique] Pleure-tu un peu à l'intérieur quand quelqu'un te dit qu'il y a un problème de transfert de port et que c'est pour cela que ta toute nouvelle application ne fonctionne pas? Ta Xbox ne te laissera pas jouer, tes téléchargements torrent refuser… d'y accéder de partout dans le monde), je vous encourage donc à fouiller et à vérifier que tout fonctionne avec la base de données avant de connecter l'Arduino.
Matériel
Finalement, je voudrais un relais câblé, mais pour le moment, j'utiliserai l'option plus sûre des commutateurs radiocommandés..
J'ai utilisé des ensembles raisonnablement bon marché de Maplin, vendus avec 3 prises, et j'ai ouvert la télécommande pour que je puisse me connecter directement à la puce 433 MHz qui se trouve à l'intérieur. J'ai trouvé les instructions pour cela ici.
Vous pouvez également acheter des émetteurs individuels 433 MHz prêts à être utilisés sur eBay ou auprès de fournisseurs d'électronique grand public. Tout ce dont vous avez besoin est de connecter le VCC à 5 V sur l’Arduino, les GND et une seule broche de commande - rappelez-vous celle que vous avez utilisée. (Schéma de Willi Thiel)
Le plugin fonctionne en envoyant “codes de trois états”, mais ceux-ci varient selon le fabricant. Reportez-vous à la documentation de RCSwitch pour trouver vos codes exacts. Ce guide wiki peut aussi aider.
La communication avec l’Arduino s’effectue à l’aide d’une bibliothèque de nœuds appelée duino. Arrêtez l'application Heimcontrol si elle est en cours d'exécution et installez le pont Arduino à l'aide de la commande suivante.
npm installer duino
Ce code doit être téléchargé sur l’Arduino - je vous suggère de le copier-coller pour l’installer à partir d’un autre ordinateur. Il s'agit essentiellement d'un programme d'écoute qui répond aux commandes série du Pi, mais rien ne vous empêche de l'étendre avec vos propres fonctionnalités..
Avec l'application Web lancée, accédez à la Réglages menu> Arduino.
À partir de là, vous pouvez ajouter un nouvel élément en choisissant la méthode RCSwitch, la broche de votre émetteur et le code d’adresse à trois états. N'oubliez pas de sauvegarder, puis revenez à l'écran principal pour votre nouveau bouton.
Bogues:
Après plusieurs heures de débogage du code, j'ai constaté que les numéros de code confidentiel à un chiffre ne fonctionnaient pas - assurez-vous que votre émetteur est placé sur le code confidentiel. dix être sur.
J'ai aussi constaté que le plugin Arduino était codé en dur avec des bits finaux incorrects pour les codes à trois états dont mes récepteurs avaient besoin. Une petite explication d’abord: les codes à trois états consistent en 3 octets d’informations. 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 sockets adressables). L'octet final est composé de deux bits de remplissage et de 2 bits pour l'activation / la désactivation. Malheureusement, le dernier octet est codé en dur dans le plugin Arduino - et dans mon cas, le code d'activation / désactivation était incorrect.
Je devais éditer manuellement le plugins / arduino / index.js utiliser les codes corrects. Si vous utilisez les mêmes prises de contrôle à distance que moi, changez les lignes 80 à:
// Envoyer le code RC si (item.value) return that.pins [item.pin] .triState (item.code + "FFFF"); // changement de FF0F else return that.pins [item.pin] .triState (item.code + "FFF0"); // changement de FF00
Voici une vidéo de démonstration de tout ce qui fonctionne:
Je vais en rester là pour l'instant, mais les lectures de capteurs et les télécommandes infrarouges sont également prises en charge. Je reviendrai probablement sur ceux-ci à une date ultérieure avec quelques améliorations supplémentaires. Si tout cela vous a semblé un peu trop complexe, consultez peut-être ces projets Arduino adaptés aux débutants. 15 Grands projets Arduino pour les débutants 15 Grands Projets Arduino pour les débutants Vous êtes intéressé par des projets Arduino mais vous ne savez pas par où commencer? Ces projets pour débutants vous apprendront comment démarrer. .