Créer un compteur de passage avec un capteur ultrason HC-SR04 – Arduino

Il est assez simple de créer un compteur de passage afin d’enregistrer le nombre de personnes qui entre dans une pièce.

Nous pouvons utiliser un capteur ultrason HC-SR04. Lorsqu’une personne passera devant le capteur, celui-ci prendra la mesure de la distance entre lui et cette personne. Si la distance est inférieure à 10 cm, nous considérons qu’une personne a franchi la porte, et nous incrémentons ainsi le compteur.

Un interrupteur est branché à l’Arduino. Celui-ci permet de réinitialiser le compteur à 0. La LED permet d’indiquer qu’une personne a été détecté devant la porte.

 

 

// définition des broches et variables utilisées
int trig = 3;
int echo = 2;
int interrupteur = 7;
int led = 8;
int lecture_echo;
int distance;
int compteur = 0;
int a;


void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
pinMode(7, INPUT_PULLUP);
pinMode(8, OUTPUT);
Serial.begin(9600);
}

void loop()
{
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);

// La doc constructeur dit que si pn veut une distance en cm, il faut diviser l'echo par 58
distance = lecture_echo / 58;

// Il est possible d'afficher la distance en cm. Décommenter les lignes du dessous.
// Serial.print("Distance en cm : ");
// Serial.println(distance);

// Si l'interrupteur est à 1, le compteur se remet à 0
if (interrupteur = HIGH) {
compteur = 0;
}
else {
if (distance > 10) {
a = 0;
}
if (distance < 10 && a == 0) {
compteur = compteur + 1;
a = 1;
Serial.print("Compteur : ");
Serial.println(compteur);
}
if (distance < 10) {
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
}
}

}
Compteur - HC-RS04

Problème IMEI Invalid sur mobile Android – Comment s’en sortir ?

J’ai acheté un Elephone P6000 il y quelques temps. La ROM installée ne fonctionnait pas bien (trop gourmande en batterie – elle tenait quelques heures, le GPS ne fonctionnait pas, le téléphone chauffait énormément..).

J’ai donc installé une ROM MIUI 7, mais au premier démarrage j’ai un message m’indiquant que les IMEI étaient invalides.

J’ai donc réussi à trouver une solution qui fonctionne sur ce P6000, et qui risque fortement de fonctionner sur d’autres modèles. Cette procédure ne nécessite pas d’être « ROOT.

– Récupérer vos numéros IMEI. Généralement, ils sont inscrits au dos de votre téléphone, derrière la batterie.

– Il faut démarrer le mode ingénieur. Pour cela, entrez ce numéro sur votre dialer : *#*#3646633#*#*

– Choisir l’onglet Connectivity

– Se rendre sur CDS information

– Choisir Radio information

– Sélectionner Phone 1 pour la carte SIM 1

– Positionnez-vous en haut de l’écran “AT+” et taper la commande E

– Une boite de dialogue s’ouvre, choisissez “AT +EGMR=1,7, » »

– Saisissez votre code IMEI au milieu des deux guillemets à la fin

– Appuyez sur « SEND AT COMMAND »

– Revenez en arrière au menu Phone 1 / Phone 2

– Sélectionner Phone 2 pour la carte SIM 2

– Positionnez-vous en haut de l’écran “AT+” et taper la commande E

– Une boite de dialogue s’ouvre, choisissez “AT +EGMR=10, » »

– Saisissez votre code IMEI au milieu des deux guillemets à la fin

– Appuyez sur « SEND AT COMMAND »

– Revenez en arrière au menu Phone 1 / Phone 2

– Revenez sur l’écran d’accueil de votre téléphone

– Redémarrez votre mobile.

Normalement, les codes IMEI sont reconnus par votre mobile. Pour vérifier cette information, sur votre dialer, tapez le numéro : *#06#

Régler la luminosité sous Ubuntu 14.04

Depuis l’installation d’Ubuntu 14.04 sur mon PC portable, il m’était impossible de régler la luminosité de l’écran. Impossible d’utiliser l’outil inclus dans les paramètres dUbuntu, et les touches du clavier.
La solution ci-dessous ne fonctionnera seulement si vous disposez d’une puce graphique Intel

Il faut déjà lancer la commande suivante dans un terminal :
ls /sys/class/backlight/

Afin de régler ce problème, il faut executer dans un terminal la commande suivante :

sudo gedit /usr/share/X11/xorg.conf.d/20-intel.conf
… puis ajouter ces lignes dans le document qui vient de s’ouvrir :

Section « Device »
Identifier « card0 »
Driver « intel »
Option « Backlight » « intel_backlight »
BusID « PCI:0:2:0″EndSection

Enregistrez votre document, redémarrer le PC…
Normalement, il est possible de régler la luminosité dans les paramètres Système d’Ubuntu et avec les touches fonctionnelles du clavier.

Installer Google SketchUp sous Ubuntu 14.04

Quand j’étais enseignant au collège, j’utilisais beaucoup Google SketchUp pour faire de la modélisation 3D avec les élèves. Mais l’installation sous Ubuntu n’est pas aussi facile que sous Windows.
Le problème est qu’il n’existe pas de version de SketchUp pour Linux. il faut donc utiliser Wine, une couche logicielle qui permet de rendre compatible des applications Windows sous Ubuntu.

Il faut déjà ouvrir un terminal, et lancer les commandes suivantes afin d’installer la dernière version de Wine :

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7

Une fois Wine installé, il va falloir lui demander d’utiliser une librairie supplémentaire. Toujours dans le terminal, lancer la commande suivante :
winecfg

– Dans l’onglet « Applications », changer la version de Windows par « Windows 7 »
– Dans l’onglet « Libraries », sélectionner la librairie « Riched20 » et ajoutez-là en cliquant simplement sur « Add »

Il faudra également penser à télécharger la version Windows de SketchUp à cette adresse : http://www.sketchup.com/download. Une fois le téléchargement complété, cliquez-droit sur le fichier exécutable, et sélectionnez « Ouvrir avec Wine… »

J’ai également du faire à un soucis. Au lancement du logiciel, celui-ci freezait ! Si vous obtenez donc une erreur au lancement, lancez cette commande dans un terminal :

wine regedit

Dans l’Éditeur du registre, effectuez ces changements sous les clés :

HKEY_USERS/S-1-5-4/Software/Google/SketchUp8/GLConfig/Display

modifier la valeur de [HW_OK] et y mettre « 1 »

 

Module RFID RC522 – Arduino

Ce page est obsolète… Se rendre ici pour la mise à jour : https://mataucarre.fr/index.php/2022/03/03/arduino-et-module-rfid-rc522-gerer-plusieurs-cartes/

Le Module RFID-RC522 est module RFID utilisé pour lecture/écriture sans contact d’un tag. Le lecteur utilise une communication SPI.

RFID est l’abréviation de Radio Frequency IDentification. Les modules RFID utilisent des champs électromagnétiques pour transférer des données entre la carte et le lecteur. Différents tags sont attachés à des objets (carte, porte clé…) et lorsque nous plaçons cet objet en face du lecteur, le lecteur lit ces balises.

Un avantage du RFID est qu’il n’a pas besoin d’être dans une ligne de mire pour être détecté.

Les Tags possèdent une antenne associée à une puce électronique qui leur permet de recevoir et de répondre aux requêtes radio émises depuis l’émetteur-récepteur.
Ils contiennent un identifiant individuel (standard Epc-96 sur 96 bits). Leur fonctionnement est passif (sans source d’énergie, donc c’est autonome et inusable).

RFID – RC522 Arduino Leonardo
VCC 3,3V
RST/Reset ICSP 5
GND ICSP 6
IRQ /
MISO ICSP 1
MOSI ICSP 4
SCK ICSP 3
SDA Interface 10

Il faut télécharger les librairies suivantes et les installer dans le dossier librairies de votre dossier Arduino : Librairies RFID et SPI

Vous trouverez ensuite deux codes :
– Le premier permet de récupérer le numéro d’un TAG RFID
– Le second permet de vérifier si le TAG est correct (un numéro de TAG est en mémoire dans le programme).

#include <SPI.h>
#include <RFID.h>

RFID RFID(10,9); //RFID(SPI PIN, RST PIN)

int UID[5];

void setup()
{
Serial.begin(9600);
SPI.begin();
RFID.init();

}

void loop()
{
if (RFID.isCard()) { //Si une carte est présente près du lecteur
if (RFID.readCardSerial()) { // Si cette carte possède un numéro de série
Serial.print("L'UID est: ");
for(int i=0;i<=4;i++)
{
UID[i]=RFID.serNum[i];
Serial.print(UID[i],DEC);
Serial.print(".");
}
Serial.println("");
}
RFID.halt();
}
delay(100);
}
Lecture d'un TAG RFID
#include <SPI.h>
#include <RFID.h>

RFID RFID(10,9);

int UID[5]={};
int IDCarte[5]={1,100,52,75,209}; // UID du badge ou de la carte acceptée sous forme de tableau (Array).
bool statut = 1;

void setup()
{
Serial.begin(9600);
SPI.begin();
RFID.init();

}

void loop()
{


for(int i=0;i<=4;i++)
{
UID[i]=RFID.serNum[i];

}

if (UID[0] == IDCarte[0] // Si l'UID 0 est égale à 1
&& UID[1] == IDCarte[1] // Et si l'UID 1 est égale à 100
&& UID[2] == IDCarte[2] // Et si l'UID 1 est égale à 52
&& UID[3] == IDCarte[3] // Et si l'UID 1 est égale à 75
&& UID[4] == IDCarte[4]) // Et si l'UID 1 est égale à 209
{
Serial.print("Bonne carte");}

else
{
Serial.print("Mauvaise carte");

}

RFID.halt();
delay(100);

}
Comparer un numéro de carte, avec un autre en mémoire