Capteurs connectés :
Voici quelques pistes pour commencer :
-
Objectif 1 : détecter la présence d'une voiture sur une place de parking
et signaler à un ordinateur central si la place est libre. -
Test de différentes solutions à cout réduit : magnétomètre, capteurs inductifs...
-
Objectif 2 : détecteur de niveau dans des containers ou silos à l'aide d'un capteur à ultrason. Test de fiabilité.
-
Objectif 3 : réalisation de capteur de débit communiquants.
Le blog de Hugo et Adrien
Le projet que nous
avons choisi est un projet de capteur utilisé pour les places de
parkings.
En effet notre projet consiste à détecter la présence ou non
d’une voiture, soit une masse d'acier.
L'objectif est de
détecter la variation de champ magnétique induite par la présence
d'une voiture au dessus du capteur.
Si cela fonctionne on pourra détecter la présence d'une voiture sans
contact avec un capteur à bas coût.
Les applications sont alors nombreuses : on peut imaginer une application qui signale à un automobiliste la place de parking libre la plus proche...
Eléments mis a disposition :
-
Magnétomètre GY-271.
-
Une carte Arduino.
Le programme principal :
Ce programme consiste à récupérer les coordonnées (X;Y;Z) puis calculer la somme quadratique des trois valeurs obtenues juste avant.
Si cette somme varie c'est qu'il y a un objet ferromagnétique ( voiture ) au dessus qui modifie la valeur de B.
Puis le programme ci dessous permet de récupérer les information de l'arduino, ainsi on peut voir si un emplacement est occupé.
Somme quadratique lorsqu’il n’ a aucun objet influant sur le magnétomètre.
-
On observe bien un net changement de la Somme Quadratique ce qui prouve que la place est occupée.
Somme quadratique lorsqu’il y a un objet ( voiture ) influant sur le magnétomètre.
Les conseils du Prof et ressources diverses :
Test
du
Module boussole 3 axes HMC5883L
Programme exemple :
/* An Arduino code example for interfacing with the HMC5883 by: Jordan McConnell SparkFun Electronics created on: 6/30/11 license: OSHW 1.0, http://freedomdefined.org/OSHW Analog input 4 I2C SDA Analog input 5 I2C SCL */ #include <Wire.h> //I2C Arduino Library #define address 0x1E //0011110b, I2C 7bit address of HMC5883 void setup(){ //Initialize Serial and I2C communications Serial.begin(9600); Wire.begin(); //Put the HMC5883 IC into the correct operating mode Wire.beginTransmission(address); //open communication with HMC5883 Wire.write(0x02); //select mode register Wire.write(0x00); //continuous measurement mode Wire.endTransmission(); } void loop(){ int x,y,z; //triple axis data //Tell the HMC5883 where to begin reading data Wire.beginTransmission(address); Wire.write(0x03); //select register 3, X MSB register Wire.endTransmission(); //Read data from each axis, 2 registers per axis Wire.requestFrom(address, 6); if(6<=Wire.available()){ x = Wire.read()<<8; //X msb x |= Wire.read(); //X lsb z = Wire.read()<<8; //Z msb z |= Wire.read(); //Z lsb y = Wire.read()<<8; //Y msb y |= Wire.read(); //Y lsb } //Print out values of each axis Serial.print("x: "); Serial.print(x); Serial.print(" y: "); Serial.print(y); Serial.print(" z: "); Serial.println(z); delay(250); }
Le capteur de proximité :