Dans l’optique de mon projet Milapli, Il faudra bien, à un moment donné, afficher les données quelquepart. Dans l’absolu, on pourrait se contenter de stocker ces données, puis d’y accéder par le réseau. Cependant, on peut trouver pour une dizaine d’euros des écrans LCD 2*16 caractères RGB, ou divers autres coloris. Avec un tel écran, il est possible d’afficher directement les informations de notre choix. Ils sont simples à utiliser, et permettent une visualisation directe des données. Dans le cas présent, j’utilise un écran 2*16 caractères, avec un rétro-éclairage blanc de Sparkfun, qui produit des lettres blanches sur fond noir. Ce modèle à un contraste très important, et je vous le recommande pour des projets devant être utilisés en extérieur. Nous allons ici voir comment connecter un tel écran à un ATmega328p (ça devrait fonctionner avec les autres ATmega), ou tout simplement un Arduino.
You are browsing archives for
Année : 2013
Mesurer la luminosité (éclairement lumineux,lux) avec un Arduino
L’éclairement lumineux mesure la sensation d’éclairement qu’on perçoit dans une situation donnée. Cette grandeur se mesure en lux, et correspond à 1 candela. stéradian/m². Nous verrons aujourd’hui comment mesurer cette valeur à l’aide d’un petit composant économique, la sonde analogique de luminosité GA1A12S202 de chez Adafruit.
Ce composant est minuscule (10 x 13 x 1.5mm), économique (moins de 4$, environ 3€), fonctionne avec une tension assez large (de 2.3 à 6V), et à une consommation négligeable (quelques centaines de µA au maximum). Le câblage est également très simple : il suffit de brancher la broche VCC (la plus à gauche) au 5V ou au 3.3V, la broche GND (la plus à droite) à la masse (0V du circuit), et enfin la broche OUT (broche centrale) à l’une des broches analogiques de votre Arduino ou votre Raspberry Pi. Ce composant est fait de façon à fournir une sortie inférieure à 3.3V même lorsqu’il est alimenté en 5V, on peut donc le brancher directement sur un composant 3.3V en sortie.
L’utilisation s’avère toutefois légèrement plus délicate que l’installation, sans toutefois être insurmontable. Nous verrons ceci en détails ici, et le code source complet d’un exemple fonctionnel est disponible sur le github du projet Milapli.
Utiliser un module radio 433Mhz pour faire communiquer deux modules
Dans ce billet, nous verrons comment communiquer sans fil entre deux élements, par le biais de modules radio 433Mhz. La bande des 433Mhz est libre pour ce genre de communications, et nous trouverons donc de très nombreux modules adaptés. Par exemple, chez snootlab, vous trouverez un émetteur 434Mhz et le récepteur 434mhz associé, ou encore un module émetteur-récepteur RFM12. Ce dernier est un module plus intéréssant, car il gère bien plus de choses que les modules simples, et pour 5€ on a un module bi-directionnel. Toutefois, il est plus complexe à utiliser. Pour un premier essai, je me suis procuré des kits très économiques comprenant émetteur et récepteur 433Mhz, pour un peu moins de 4€ (pour les deux). Ces modules sont très simples, très petits, et assez facile à utiliser. Nous verrons donc comment s’en servir pour transmettre des données.
Lire la valeur d’une sonde de température et d’hygrométrie DHT11/DHT22/AM2301
Dans ce billet, nous poursuivons la construction de notre station météo. Cette fois ci, nous ajouterons la lecture de l’hygrométrie, à savoir le taux d’humidité dans l’air. Pour cela, l’un des composants les moins chers que j’ai pu trouver est le DHT11. Ce composant regroupe à la fois une sonde de température et un capteur d’humidité. Il existe une autre version, le DHT22 qui est plus précise et possède une plus large plage de fonctionnement, mais qui coûte environ le double du prix. Il existe également un capteur portant la référence AM2302, qui est en fait un DHT22 avec des fils au lieu de broches, et une résistance pull-up. Dans tous les cas, le montage présenté ici sera valable pour les trois, et le code similaire.
Lecture d’une sonde de température TMP36 sur un Arduino
Aujourd’hui, nous nous pencherons sur l’utilisation d’une sode de température TMP36 sur un Arduino.
Pour le projet de station météo “home made”, il nous faut des capteurs. Nous allons commencer par un capteur très simple, économique, et facile à utiliser avec le TMP36.
Branchement
En fait, ce capteur est tellement simple, que ce billet risque d’être très court! L’image de gauche donne même toutes les informations nécessaires.
Pour lire ce capteur, il faut une entrée analogique. Sur un Arduino, ce seront les broches A0 à A5. Sur un Raspberry Pi, il faudra utiliser un MCP3008 ou un autre convertisseur analogique vers numérique.
Ce capteur donne la température de -50 à 125°C, et est alimenté via du courant continu entre 2.7V et 5.5V pour une consommation de 0.05mA. Ce n’est donc pas ce capteur qui videra les batteries de votre montage.
Dans la forme que j’ai utilisée, il y a un coté arrondi, et un coté plat. Si le coté plat est vers vous, alors la broche de gauche ira sur le +5V de votre Arduino, ou sur le +3.3V du Raspberry Pi. La broche centrale ira sur votre entrée analogique, par exemple le A0 du Arduino, ou une broche d’entrée du MCP3008 connecté à votre Raspberry Pi. Enfin, la broche de droite sera connectée à la masse (0V) de votre circuit.
Et voila! Le branchement est fini!
Creation d’une station météo “maison” : projet Milapli
Bonjour à tous!
Aujourd’hui, je vais vous présenter mon nouveau projet : la création d’une station météo de toutes pièces. Je possède déja une station météo du commerce, mais je suis sur qu’on peut faire quelque chose de proche pour moins cher. D’autre part, avec une station météo faite soi même, on peut ajouter tous les capteurs que l’on veut.
C’est donc l’occasion d’aller plus loin qu’une simple station météo : il sera possible d’ajouter toutes sortes de capteurs environnementaux et de mesurer de nombreux paramètres. D’autre part, comme nous maîtrisons complètement le matériel ET le logiciel, il sera possible de programmer le rythme de collecte de données, le stockage de celles ci, et tout ce qui nous souhaitera important.
Voyons maintenant les objectifs de ce projet.En savoir plus
Mesurer la distance à laquelle se trouve un objet avec un capteur infrarouge sur le Raspberry Pi
Dans le ce billet, nous verrons comment utiliser un capteur de distance infrarouge ou pour mesurer précisément la distance entre le capteur et un objet en face de celui ci. Dans un prochain billet, nous verrons comment réaliser la même chose avec un capteur à ultra-sons.
Utilisation d’un relais Grove sur un Arduino : commandons un appareil 220V depuis notre arduino
Dans le tutoriel d’aujourd’hui, nous allons voir comment utiliser un relais pour commander un appareil fonctionnant en 220V depuis un Arduino. Quand je dis commander, il s’agit de l’allumer, ou de l’éteindre.
Pour cela, nous utiliserons un relais. Un relais est un composant qu’on pourrait comparer à une vanne : il peut soit laisser passer le courant, soit ne pas le laisser passer. Aujourd’hui nous utiliserons un relais “normally open”, pour “ouvert par défaut”. Cela signifie que de base, le relais ne laisse pas passer le courant.
Si nous appliquons un signal de 5V, celui ci laissera passer le courant. Le courant qu’on contrôle peut avoir une tension de continue allant jusqu’à 30V ou une tension alternative de 250V max. En pratique, cela signifie qu’on peut contrôler du courant secteur!
Ajouter des GPIO au Raspberry Pi en utilisant une puce MCP23017 ou 23008
Si le nombre de GPIO disponibles sur le Raspberry Pi ne vous convient pas, pas d’inquiétude, il est possible d’en rajouter. La puce MCP23017 permet d’ajouter 16 GPIO , et la puce MCP23008 permet d’en rajouter 8. Dans les deux cas, ces puces se connectent au Raspberry Pi sur des GPIO “spéciaux”, dédiés au protocole I²C. Ce qui est formidable, c’est que même ainsi, vos broches I²C restent disponibles, grâce à un système d’adressage.
Il est ainsi possible de connecter d’autres puces sur les broches I²C en chaînant celles ci avec notre MCP23017 ou MCP23008. Pour cela, on utilisera un système d’adressage que nous verrons plus tard.
Ces deux puces coûtent 2$ pour le MCP23008, et 3$ pour le MCP23017. A moins d’avoir des contraintes d’espace (le MCP23008 se présente sous forme d’une puce à 16 broches, en 2*8, alors que la MCP23017 est une puce à 28 broches, en 2*14) sur votre montage, autant prendre des MCP23017. 🙂
Fabrication d’un NAS maison – étape 2 : réalisation du boitier.
Fabriquer un boîtier n’est pas très compliqué. Il faut juste un plan, des matériaux, et quelques outils. Pour ma part, j’ai décidé d’utiliser du bois, plus précisément du contreplaqué. Ce choix peut paraître surprenant car ce matériau est plus connu comme isolant thermique. Toutefois, il est facile à travailler, peu cher, résistant et peut avoir un bel aspect. De plus, faire son boîtier soi même permet de penser l’aération. Je ne crains donc pas les surchauffes, puisque les composants seront abondamment ventilés. Je vais vous présenter ici la première version de mon boîtier NAS, déjà finie au moment de l’écriture de ce billet.
En savoir plus
Mesurer la luminosité avec une photo résistance
Une photo-résistance est un composant dont la résistance varie en fonction de l’intensité lumineuse s’appliquant sur sa surface. On peut s’en servir pour détecter s’il fait jour ou nuit, mais aussi, en utilisant une paire de photo résistances, déterminer la direction d’une source lumineuse. Ce composant pourra par exemple servir à orienter un panneau solaire vers le soleil et ainsi maximiser l’énergie reçue… On pourra également s’en servir pour un robot suiveur de ligne, ou pour détecter le mouvement d’un objet qui obstruerait une source lumineuse. Les applications sont très nombreuses, et ce composant est économique et simple à utiliser, alors pourquoi s’en priver?
Ce billet vise à décrire la lecture des valeurs d’une photodiode en utilisant un Raspberry Pi. Nous avons vu comment lire des valeurs analogiques en utilisant une puce MCP3008, et nous utiliserons ce même montage pour lire notre photo résistance. Si vous utilisez un Arduino, c’est encore plus simple, puisqu’il suffira de connecter la broche de lecture à une broche analogique du Arduino, et de remplacer l’alimentation 3.3V par une alimentation 5V sur le schéma.
De nombreux tutoriels sont disponibles pour Arduino, par exemple celui d’Adafruit : Utiliser une photorésistance avec un Arduino.
Voyons maintenant de quoi nous aurons besoin.
- Une photorésistance
- Une résistance classique d’environ 1-2KOhm (valeur à adapter à ce que vous voulez mesurer)
- Un Raspberry Pi
- Un MCP3008 connecté au Raspberry pi
- Comme d’habitude, c’est plus facile avec une breadboard, mais on peut faire sans.
Lire des entrées analogiques sur un Raspberry avec un circuit ADC : le MCP3008
Le Raspberry pi est doté des GPIO, capables de servir d’entrées(tuto) ou de sorties(tuto) numériques. On peut donc lire des signaux logiques hauts ou bas (des 0 ou des 1). Il n’est en revanche pas possible de lire directement des valeurs analogiques. Pour cela, il faut utiliser un ADC, pour “Analog to Digital Converter”, ou convertisseur analogique vers numérique en français, dont le Raspberry Pi n’est pas doté. L’objet de ce tutoriel sera justement de connecter une puce, la MCP3008, au Raspberry pi via le bus SPI pour ajouter huit entrées analogiques. A titre d’exemple, nous nous servirons de ces entrées pour pouvoir effectuer la lecture des valeurs d’un capteur simple : le potentiomètre. Il est toujours possible d’accéder à la liste des tutoriels sur le Raspberry pi sur le wiki.
N’hésitez pas à consulter la version wiki de cet article, plus confortable avec des liens supplémentaires.
Utilisation d’un circuit L293D pour commander des moteurs
Si l’on branche un moteur à courant continu (DC Motor) à une source de courant adaptée, celui ci tournera. Si l’on veut inverser le sens de rotation, il suffit d’inverser le branchement. Cependant, inverser des branchements “à la main” ne convient pas à un robot. Nous verrons donc aujourd’hui comment contrôler le sens et la vitesse de rotation d’un ou deux moteurs en utilisant un circuit intégré L293D. Pour davantage de moteurs, il suffira de multiplier les puces L293D. Cette puce vaut environ 2.5$. Dans ce tutoriel, nous verrons comment interfacer cette puce avec un raspberry pi (les branchements). Ce tutoriel est également valable pour un Arduino ou tout autre microcontrôleur ayant des sorties programmables En savoir plus
Test Rapide : Hub USB Trust 7 ports
Pour moins de 20€, Trust nous propose un hub USB 7 ports, alors qu’a ce prix on trouve généralement des hubs 4 ports. Trust est une marque généralement connue pour ses produits d’entrée de gamme peu chers, mais pas toujours de la meilleure qualité.
Voyons comment se débrouille notre produit.
Lire la valeur d’un bouton connecté aux GPIO du Raspberry Pi
Les GPIO du Raspberry pi peuvent être utilisés en sortie (écriture), mais également en entrée (lecture). Nous nous intéresserons ici à cette seconde possibilité, qui permettra au Raspberry pi de recevoir des informations du monde extérieur. L’objectif de ce tutoriel est de s’appuyer sur le tutoriel sur l’utilisation d’un GPIO en sortie pour contrôler une LED, et d’y ajouter le fait de lire un bouton poussoir connecté sur un autre GPIO pour changer l’état de cette LED. Il est également possible d’accéder à la liste des tutoriels sur le Raspberry pi pour voir d’autres utilisations.
Contrôler une LED depuis les GPIO du Raspberry PI
Un des grands intérêts du Raspberry pi est qu’il dispose de GPIO utilisables comme entrée ou sortie afin de lire des capteurs ou commandes des systèmes. Nous nous verrons ici comment contrôler les GPIO du Raspberry pi configurés en mode sorte, à travers un exemple concret ou nous commanderons une LED. Il est également possible d’accéder à la liste des tutoriels sur le Raspberry pi pour voir d’autres utilisations.