[Tuto] Le capteur Pulse Sensor

Dans ce tutoriel, je vais vous expliquer comment mettre facilement en place votre capteur Pulse Sensor.

Matériel nécessaires:
– 1 Arduino Uno
– 1 Capteur Pulse Sensor
– Du scotch occultant

1. Branchement

20160921_163044

Branchez:
– Le fil marron (+) sur la pin +5v de l’arduino.
– Le fil noir (-) sur la pin gnd.
– Le fil rouge (data) sur la pin A0.

Si tout a bien été fait, la led du capteur devrait s’allumer en vert.

2. Mise en place Logiciel

Téléchargez le logiciel du capteur ICI.

Démarrez Arduino et lancez le programme  » PulseSensorAmped_Arduino_1dot4.ino ».

Afin d’avoir quelque chose de cohérent dans notre moniteur Serial il vous faudra modifier la ligne 30 du programme:  » static boolean serialVisual = false;  » en  » static boolean serialVisual = true; « .

Afin d’activer la visualisation ASCII (comme le mentionne le commentaire).

Téléversez le programme dans votre Arduino.

3. Tests

Placez votre pouce sur le capteur à l’aide du scotch occultant afin que la led puisse mesurer correctement.

20160921_174047

N’oubliez pas de paramétrer votre moniteur Serial en 115200 Bauds.

Voici le résultat :

untitled-3

4. Bonus

Il est possible d’avoir un retour graphique !

Pour cela, téléchargez :
Le logiciel Processing
Le programme PulseSensor pour Processing

Il vous faudra aussi reprogrammer votre Arduino en changeant la ligne 30 à nouveau :  » static boolean serialVisual = true;  » en  » static boolean serialVisual = false;

Lancez Processing.

Ouvrez le programme PulseSensor pour Processing que vous avez téléchargé précédemment ( » PulseSensorAmpd_Processing_1dot4.pde « ) via Fichier > Ouvrir.

Lancez le programme grâce au bouton Play en haut à gauche.

untitled-2

Le logiciel vous demandera alors  quel port com il doit analyser.

untitled-3

Il ne reste plus qu’a admirer votre poux !

untitled-5

[Tuto] Le capteur de température DS18B20

Dans ce tutoriel, je vais vous montrer la marche à suivre afin de faire fonctionner le capteur de température DS18B20.

Matériel nécessaire :
– 1 arduino UNO 
– 1 capteur de température DS18B20
– 3 jumpers mâle-mâle
1 résistance de 4,7kOhm
1 breadboard

Commençons par le montage :

DS18B20
Pins DS18B20
Branchements
Branchements

Il vous faudra câbler les différents composants de la même manière que l’image ci-dessus.

C’est à dire :

  • Vcc & GND du capteur –> Le GND de l’Arduino
  • Signal du capteur (pin du milieu) –> Pin 2 de l’arduino
  • La résistance de 4,7K entre la pin 2 du capteur et le 5V

Le code maintenant :

#include <OneWire.h> //Librairie du bus OneWire
#include <DallasTemperature.h> //Librairie du capteur

OneWire oneWire(2); //Bus One Wire sur la pin 2 de l'arduino
DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie

void setup(void){
 Serial.begin(9600); //Permet la communication en serial
 sensors.begin(); //Activation des capteurs
 sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
 sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
}

void loop(void){
 sensors.requestTemperatures(); //Demande la température aux capteurs
 Serial.print("La température est: ");
 Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
 Serial.println(" C°");
}

La librairie « DallasTemperature.h » à été spécialement conçue pour ce capteur et nous propose donc des fonctions simplifiées. Ce qui permet de simplifier au maximum le code.

Envoyez ce code sur votre arduino et ouvrez l’écran serial de L’IDE, si tout est bon vous devriez avoir la température qui s’affiche comme ci-dessous.

témperature
Température en serial

A vous de jouer !

[Tuto] Utiliser un bargraph avec un Arduino Uno

Utiliser un bargraph

Le but de ce montage est de découvrir comment utiliser le bargraph. Le bargraph est un ensemble de LED très utile pour visualiser des informations sous forme d’échelle (puissance sonore, niveau d’eau…). Dans cet exemple, nous allons utiliser un capteur de type photo resistance mais vous pouvez utiliser n’importe quel capteur analogique pour le remplacer.

Composants nécessaires :

 
composants

Le montage consiste à relier le bargraph à 10 sorties numériques du Arduino et le capteur sur une entrée analogique comme sur le schéma ci-dessous :Principe du montage :

Bargraphe_schéma
Montage

Programmation du montage:

Le programme va lire le capteur et transposer sa valeur en allumant un nombre de LED proportionnel à sa valeur. On pourra aussi avoir la valeur lue par l’interface série.

#define SENS_PIN 0 // Pin utilisée pour le capteur
#define LED_COUNT 10 // Nombre de LEDs utilisées

double sens;// Variable comprenant la valeur du capteur
double V_IN =5.0;// Variable de la tension d'alimentation
double R1 =10000;// Valeur de la resistance en parallele
int ledPins[]={0,1,2,3,4,5,6,7,8,9};// Tableau comprenant les références des pins utilisées

void setup(){
Serial.begin(9600);
for(int thisLed =0; thisLed < LED_COUNT; thisLed++){
pinMode(ledPins[thisLed], OUTPUT);// Boucle pour définir les pin utilisees comme sorties
}

}

void loop(){

sens = analogRead(SENS_PIN);// Lecture de la valeur du capteur
Serial.print("Valeur mesuree = ");
Serial.print(sens);// Affichage de la valeur mesurée de 0 à 1024
Serial.print("n");

int ledLevel = map(sens,0,1023,0, LED_COUNT);// Creation d'une valeur en 0 et LED_COUNT fonction de la mesure

for(int thisLed =0; thisLed < LED_COUNT; thisLed++){

// Si la valeur est inferieur a LED_COUNT on allume la LED
if(thisLed < ledLevel){
digitalWrite(ledPins[thisLed], HIGH);
}

// turn off all pins higher than the ledLevel:
else{
digitalWrite(ledPins[thisLed], LOW);
}

}

// Pause de 1 seconde
delay(1000);
}

Il reste à brancher le Arduino pour compiler le programme et le téléverser.

Une fois terminé cela nous donne :

ON 1
ON 2

Pour aller plus loin : Il sera ensuite possible d’optimiser l’échelle, de mettre en parallèle plusieurs bargraph…

[Tuto] Utiliser un capteur de son avec le Arduino Uno

Utiliser un capteur de son

Le but de ce montage est de détecter s’il y a présence de son / bruit on non. Si on détecte un bruit on allume une LED.

Composants nécessaires :

 
composant

Principe du montage :

Ce montage se basera sur le câblage du capteur suivant en mettant le capteur sur digital 0 et la LED sur digital 1:

  • 5V (Arduino) → +5V (capteur)

  • GND (Arduino) → GND (capteur)

  • Digital 0 (Arduino) → OU (capteur)

  • Digital 1 (Arduino) → LED (Anode)

  • LED (cathode) → Résistance

  • GND (Arduino) → Résistance

Montage

Programmation du montage:

Le programme va lire la valeur présente sur Digital 0 et si elle est à 1 la mettre sur Digital 1 pour allumer la LED.

// Programme du capteur de son
// Letmeknow.fr

const int capteur =0;// pin connecté à la sortie digital du capteur
const int LED =1;// pin connecté à la LED + resistance

void setup()
{
   pinMode(capteur, INPUT);
   pinMode(LED, OUTPUT);
}

void loop()
{
if(digitalRead(capteur)== HIGH)
   {
   digitalWrite(LED, HIGH);// Allumer la LED
   delay(10);// Temps de traitement
   }
else
   {
   digitalWrite(LED, LOW);// Eteindre la LED
   delay(10);// Temps de traitement
   }
}

Il reste à brancher le Arduino pour compiler le programme et le téléverser.

Une fois terminé cela nous donne :

ON

Pour voir l’état changer, approcher l’ensemble prêt d’une source de bruit (enceinte, claquement de doigt…). Pensez à bien régler le seuil (vis bleu) en fonction de l’intensité de votre source de bruit.

Pour aller plus loin : On peut ensuite ajouter un bargraph en fonction de la durée des sons, modifier le seuil…

[Tuto] Utiliser un capteur de niveau d’eau

Utiliser un capteur de niveau d’eau

Le but de ce montage est de découvrir comment utiliser le capteur de niveau d’eau.

Ce capteur fonctionne de manière analogique. Il envoi une valeur fonction de la hauteur d’eau.

Composants nécessaires :

 
composants

Principe du montage :

Le montage consiste à relier l’alimentation (5V et GND) et une lecture analogique du Arduino au capteur.

  • 5V (Arduino) → pin + (Capteur)

  • GND (Arduino) → pin – (Capteur)

  • Analog 0 (Arduino) → pin S (Capteur)

montage

 Programmation du montage:

Le programme va lire le capteur et nous renvoyer l’information par la liaison série.

// Capteur de niveau d'eau
// letmeknow.fr

int capteur =0;// Le capteur est sur la pin A0
int val =0;// Variable de stockage de la valeur lue

void setup ()
{
Serial.begin (9600);// Démarrage de la liaison série
}

void loop ()
{
val = analogRead (capteur);// Lecture de la valeur du capteur
Serial.println (val);// Affichage de la valeur
delay (1000);// Attendre 1s avant la prochaine lecture
}

Il reste à brancher le Arduino pour compiler le programme et le téléverser.

Une fois terminé cela nous donne :

Coté Arduino

 
ON

Coté PC

 
capture

Pour aller plus loin : Il sera ensuite possible d’utiliser ses informations pour les afficher sur un LCD, créer une station météo et suivre les précipitations, gérer une cuve d’arrosage…

[Tuto] Détecteur de pluie

Détecteur de pluie

Le but de ce montage est de détecter s’il pleut et d’allumer une LED si c’est le cas.

Le montage sera basé sur le capteur de pluie dont on utilisera la sortie digital D0 avec un seuil.

Composants nécessaires :

 
composants

Ce montage se basera sur le câblage du capteur suivant en mettant le capteur sur digital 0 et la LED sur digital 1:Principe du montage :

  • 5V (Arduino) → VCC (capteur)
  • GND (Arduino) → GND (capteur)

  • Digital 0 (Arduino) → D0 (capteur)

  • Digital 1 (Arduino) → LED (Anode)

  • LED (cathode) → Résistance

  • GND (Arduino) → Résistance

Montage

Programmation du montage:

Le programme va lire la valeur présente sur Digital 0 et si elle est à 1 la mettre sur Digital 1 pour allumer la LED.

Attention : Le capteur fonctionne en inversé, il est à l’état haut s’il n’y a pas d’eau et bas s’il y a de l’eau.

// Programme du capteur de pluie
// Letmeknow.fr

const int capteur = 0; // pin connecté à la sortie digital du capteur
const int LED = 1; // pin connecté à la LED + resistance

void setup()
{
  pinMode(capteur, INPUT);
  pinMode(LED, OUTPUT);
}

void loop()
{
if(digitalRead(capteur) == LOW)
  {
    digitalWrite(LED, HIGH); // Allumer la LED
    delay(10); // Temps de traitement
  }
else
  {
    digitalWrite(LED, LOW); // Eteindre la LED
    delay(10); // Temps de traitement
  }
}

Il reste à brancher le Arduino pour compiler le programme et le téléverser.

Une fois terminé cela nous donne :

ON

 
ON

OFF

 
OFF

Pour aller plus loin : On peut ensuite ajouter une alarme (buzzer) pour nous prévenir de la pluie, utiliser la sortie analogique du capteur pour détecter l’intensité de pluie, l’utiliser avec d’autres capteurs pour faire une station météo…

Lauréat du jeu concours Samsung

Le projet d’Internet Of Things a été élu Lauréat du concours Samsung, qui devient donc notre mentor KissKissBankBank et remporte donc leur soutien à hauteur de 1 500€. Je tiens vraiment à remercier Samsung pour ce gain qui nous permet de franchir la barre des 100% de participation et ainsi d’être certains que le projet va aboutir. Je félicite aussi les 3 autres lauréats (Bluish fieldsVoici venu le tempsSaint-Malo mini maker faire) ainsi que les autres participants.

En conséquence, nous allons désormais nous fixer de nouveaux objectifs que voici:

– Si le projet atteint 200%, chaque kit recevra le double de capteurs (Par exemple, le kit Bluetooth se composait de 4 capteurs au lieu de 2)
– Si le projet atteint 300%, chaque kit recevra le double de capteurs ET le double d’actionneurs (Par exemple, le kit Bluetooth se composait de 4 capteurs au lieu de 2 et 4 actionneurs au lieu de 2)
– Si le projet atteint 500%, chaque participant recevra, en plus du doublement des capteurs et actionneurs, un arduino supplémentaire
D’autres nouvelles devraient arrivées très bientôt avec entre autre un nouveau nom pour le projet, plus facile à retenir, restez à l’écoute 🙂

[Tuto] Utiliser un bargraphe avec un Arduino

Le bargraphe est un ensemble de LED. Il est très pratique pour visualiser des niveaux. Nous allons ici effectué un programme dans la continuité du programme sur les capteurs (Tuto ici: http://letmeknow.fr/blog/tuto-utiliser-un-capteur-avec-le-arduino/).

Bargraphe

Nous utilisons un modèle ELB-1001 dont la documentation est présente ici: http://www.everlight.com/datasheets/B1001SYGWA-S530-E2_datasheet.pdf

Liste des composants

Montage

Pour le montage, nous repartons du montage précédent en ajoutant le bargraphe comme 10 LEDs indépendantes avec leurs résistances associées sur 10 sorties numériques du Arduino.

Bargraphe_schéma

L’équivalent en montage avec des LEDs est:

 Montage à LEDs
  • Programme

On repars du programme précédent en ajoutant différents éléments:

– Une variable globale pour le nombre de LED

– Un tableau avec les pins utilisées pour les LEDs

– La définition des sorties dans le setup()

– Une variable ledLevel entre 0 et 10 pour commander le bargraphe grace à la fonction map() pour plus d’information regardez la documentation officielle http://arduino.cc/de/Reference/Map

– Un if qui affiche un nombre de LED proportionnel à la valeur de ledLevel

// 09/05/2013
// Letmeknow.fr
// Capteur & 10k resistor en pont diviseur entre 5V et GND
// Bargraphe sur les sorties D2 a D11

#include 
#define SENS_PIN   5  // Pin utilisée pour le capteur
#define LED_COUNT 10 // Nombre de LEDs utilisées

double sens; // Variable comprenant la temperature
double V_IN = 5.0; // Variable de la tension d'alimentation
double R1 = 10000; // Valeur de la resistance en parallele

int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Tableau comprenant les références des pins utilisés

void setup() {
  Serial.begin(9600);
  for (int thisLed = 0; thisLed < LED_COUNT; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT); // Boucle pour définir les pin utilisees comme sorties
  }
}

void loop() {

  sens = analogRead(SENS_PIN); // Lecture de la valeur du capteur
  Serial.print("Valeur mesuree = ");
  Serial.print(sens); // Affichage de la valeur mesurée de 0 à 1024
  Serial.print("n");

  int ledLevel = map(sens, 0, 1023, 0, LED_COUNT); // Creation d'une valeur en 0 et LED_COUNT fonction de la mesure

  for (int thisLed = 0; thisLed < LED_COUNT; thisLed++) {
    // Si la valeur est inferieur a LED_COUNT on allume la LED
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    } 
    // turn off all pins higher than the ledLevel:
    else {
      digitalWrite(ledPins[thisLed], LOW); 
    }
  }

  // Pause de 1 seconde
  delay(1000);
}

[Tuto] Utiliser un capteur avec le Arduino

Le but de ce tuto est de vous montrer comment mettre en place un montage rapide avec un capteur dont vous ne connaissez pas forcément les caractéristiques précises.

Dans notre exemple, nous allons utiliser un capteur de luminosité aux caractéristiques inconnues.

Liste de composants

Montage

On réalise le montage suivant:

Capteur_breadboard

Photo du montage:

Breadboard du montage du capteur de luminosité

Le capteur va venir insérer une résistance entre le +5V et le 0V. Ce montage est appelé pont diviseur de tension. Si vous voulez plus d’informations sur ce montage la page wikipedia peut vous être utile: http://fr.wikipedia.org/wiki/Diviseur_de_tension

  • Code

Pour le code on va créer une liaison série pour voir ce que lit le Arduino (Déjà vu dans cet article) et ensuite on affichera directement ce qui est lu par le Arduino puis une conversion en tension de la valeur lue.

// 06/05/2013
// Letmeknow.fr
// Sensor & 10k resistor en pont diviseur entre 5V et GND

#include 
#define THERM_PIN   0  // Pin utilisée

double lum; // Variable comprenant la luminosite
double V_IN = 5.0; // Variable de la tension d'alimentation

void setup() {
  Serial.begin(9600);
}

void loop() {

  lum= analogRead(THERM_PIN); // Lecture de la valeur du capteur
  Serial.print("Valeur mesuree = ");
  Serial.print(lum); // Affichage de la valeur mesurée de 0 à 1024
  Serial.print("n");

  double V =  lum/ 1024 * V_IN; // Valeur de tension d'entrée
  Serial.print("Tension mesuree = ");
  Serial.print(V); // Affichage de la tension mesurée de 0 à 5V
  Serial.print("Vn");

  // Pause de 1 seconde
  delay(1000);

}

En connaissant les caratéristiques (ou en les définissant), on peut aller plus loin et créer des formules mathématiques pour afficher des valeurs en d’autres unités suivant le capteur utilisé (comme le lumens, le degrés…). »