IDLabs-IoT Le site dédié aux objets connectés

Un site des laboratoires pédagogiques de l'école CampusID

Mois : juillet 2018

Présentation et Mise en œuvre de l’anémomètre ADA-1733 – Adafruit

Posted on 8 juillet 2018  in Non classé

Présentation de l’anémomètre Adafruit :

 

Un anémomètre est un appareil utilisé pour mesurer la vitesse du vent, et c’est un instrument commun pour une station météo. Les anémomètres sont faits pour rester dehors, et sont donc conçus pour résister aux écarts de températures, mais aussi à la pluie. Les connectiques de l’anémomètre d’Adafruit sont donc des connectiques étanches.

Cet anémomètre en particulier peut mesurer des vents de 0 à 32 mètres par secondes, soit de 0 à 115 kilomètres par heure, avec une précision de 2 mètres par seconde (soit environ 7km/h).

L’anémomètre fonctionne sur un courant entre 7 et 24 volts, et dispose de 3 fils, un noir, qui sert pour la masse, un marron, qui est l’alimentation de l’anémomètre, et le bleu, qui est le signal, et qui renverra une tension entre 0,4 et 2 volts, correspondant à la vitesse du vent.

Les informations reçus depuis l’anémomètre sont donc de type analogique. L’utilisation avec un Raspberry Pi directement n’est donc pas possible, il faudra passer par un convertisseur analogique/numérique.

L’autre possibilité qui sera étudié aussi, c’est l’utilisation d’un Arduino, qui lui, possède des entrées analogiques.

 

 

Mise en œuvre à l’aide d’une carte Arduino

 

 

            Câblage du projet :

 

Dans un premier temps, il faut connecter l’anémomètre et la carte Arduino. L’anémomètre ne présentant que trois fil, il faut donc connecter le fil noir à un pin de masse, le fil bleu a un pin d’entrée analogique, et le fil marron à un pin d’alimentation en 9v.

Il faudra donc prévoir pour l’anémomètre une alimentation supérieure à celle de la carte Arduino, qui fonctionne entre 3 et 5 volts.

 

 

            Programmation :

 

 

L’anémomètre va donc renvoyer une tension qui va varier entre 0.4 et 2 volts, ce qui correspond à la vitesse du vent, 0.4v étant un vent nul, et 2v un vent de 32.4m/s (116km/h).

La tension qui est renvoyé par l’anémomètre est linéaire, c’est-à-dire que pour chaque 0.1v de tension supplémentaire, la vitesse du vent augmente de 2m/s.

 

Le code qui suit, trouvé sur le site hackerscapes.com, permet de transformer les valeurs renvoyées par l’anémomètre en valeurs de vitesse du vent.

 


//Setup Variables

const int sensorPin = A0; //Defines the pin that the anemometer output is connected to
int sensorValue = 0; //Variable stores the value direct from the analog pin
float sensorVoltage = 0; //Variable that stores the voltage (in Volts) from the anemometer being sent to the analog pin
float windSpeed = 0; // Wind speed in meters per second (m/s)
float voltageConversionConstant = .004882814; //This constant maps the value provided from the analog read function, which ranges from 0 to 1023, to actual voltage, which ranges from 0V to 5V

int sensorDelay = 1000; //Delay between sensor readings, measured in milliseconds (ms)

//Anemometer Technical Variables

//The following variables correspond to the anemometer sold by Adafruit, but could be modified to fit other anemometers.

float voltageMin = .4; // Mininum output voltage from anemometer in mV.
float windSpeedMin = 0; // Wind speed in meters/sec corresponding to minimum voltage

float voltageMax = 2.0; // Maximum output voltage from anemometer in mV.
float windSpeedMax = 32; // Wind speed in meters/sec corresponding to maximum voltage

void setup()
{
     Serial.begin(9600);  //Start the serial connection
}
void loop()
{
     sensorValue = analogRead(sensorPin); //Get a value between 0 and 1023 from the analog pin connected to the anemometer
     sensorVoltage = sensorValue * voltageConversionConstant; //Convert sensor value to actual voltage
     //Convert voltage value to wind speed using range of max and min voltages and wind speed for the anemometer
     if (sensorVoltage <= voltageMin){
          windSpeed = 0; //Check if voltage is below minimum value. If so, set wind speed to zero. 
     }else {
          windSpeed = (sensorVoltage - voltageMin)*windSpeedMax/(voltageMax - voltageMin); //For voltages above minimum value, use the linear relationship to calculate wind speed.
     }
//Print voltage and windspeed to serial
Serial.print("Voltage: ");
Serial.print(sensorVoltage);
Serial.print("\t");
Serial.print("Wind speed: ");
Serial.println(windSpeed);
delay(sensorDelay);

}

 

 

Possibilité de mise en œuvre avec un Raspberry Pi ?

 

 

Pour pouvoir utiliser l’anémomètre Adafruit sur le Raspberry Pi, il faut donc passer par un convertisseur analogique/numérique, comme dit précédemment.

Le fonctionnement n’est donc pas [uniquement, restreint à] l’anémomètre Adafruit, mais commun a tout capteur analogique que l’on souhaite connecter à un Raspberry Pi, par le biais du port GPIO.

Dans un premier temps, il faut réaliser les branchements nécessaires entre les différents composants. Il existe plusieurs convertisseurs analogiques/numériques, nous prendrons ici l’exemple du MCP3008.

 

Ici, une représentation du MCP3008, ainsi que tout ses pins, et ce à quoi ils correspondent.

Les CH0 à CH8 sont les entrées analogiques, AGND et DGND sont les masses analogique et digitale et CLK correspond à l’horloge. Les ports Dout, Din, et CS sont a connecter au SPI du Raspberry Pi.

Sur le branchement suivant, l’anémomètre à été remplacé par un potentiomètre (deux sur l’image d’illustration du câblage) pour simuler la vitesse du vent, mais le branchement est le même qu’avec l’anémomètre, à savoir une alimentation, une masse, et un signal.

 

En ce qui concerne la programmation, il faut tout d’abord ajouter la routine ReadChannel, qui va s’occuper de la communication entre le Raspberry pi et le MCP3008, après avoir ouvert le port SPI :

Ensuite, il n’y plus qu’a utiliser cette routine pour lire les valeurs des entrées analogiques sur le MPC3008 :

 

 

Il faut ensuite, à l’aide d’une data sheet existante, ou en créant sa propre datasheet, calibrer le capteur. C’est-à-dire expliquer au programme que lors du renvoi d’un code particulier, il y a une correspondance dans la datasheet, comme ici, une vitesse de vent, ou sur d’autres capteurs, une température, ou bien d’autres choses encore.

 

Sources :

www.electroniqueamateur.blogspot.fr

www.microchip.com

www.raspberrypi-spy.co.uk

www.hackerscapes.com

www.modmypi.com

 

 

Les programmes sont issus des sites hackerspaces et electroniqueamateur.blogspot

 

[Top]

Mois : juillet 2018

Mise en œuvre du module RC522 RFID pour Arduino

Posted on 8 juillet 2018  in Non classé

Présentation du module

 

 

Le module RC522 est un module RFID pour Arduino. Il est composé d’un capteur RFID, qui sera connecté à l’Arduino, mais aussi de deux puces RFID, l’une sous la forme d’une carte, l’autre sous la forme d’un badge..

 

 

Le module se présente sous la forme d’une simple carte imprimé, avec 8 pins, sur laquelle se trouve l'antenne :

 

 

Les 8 pins doivent être connectés comme suit (de l’Arduino vers le RFID):

+5V    à  VCC

9         à  RST

GND   à  GND

12        à MISO

11        à MOSI

13        à SCK

10       à NSS

N/C    à IRC

 

 

 

 

Les sorties MOSI, MISO, SCK, et NSS sont utilisées pour que le module communique avec l’Arduino, par le biais du bus SPI. Le Pin VCC sert pour l’alimentation du module, le GND sert de masse, et le pin RST sert au fonctionnement du module.

 

Présentation du SDK

Pour rappel, un SDK (Software Developpement Kit) ou kit de développement de logiciel, est une aide, une bibliothèque comprenant de la documentation, des exemples, et les outils nécessaires au développement.

Ici, nous allons trouver des classes et des fonctions, préconçues, qui permettront d’utiliser le module plus facilement, de façon plus intuitive ; Ainsi, pour récupérer les informations sur une carte, lors d’une lecture RFID par exemple, il faudra simplement faire appel à la fonction PCD_ReadRegister, qui se présente comme suit :

 

 

Il existe donc une quantité de fonctions et procédures, qui seront appelées à l’utilisation du Module RFID, tel que les fonctions d’initialisation


MFRC522::PCD_Init()

 

concernant les fonctionnalités de l’antenne


MFRC522::PCD_AntennaOff()
MFRC522::PCD_AntennaOn()
MFRC522::PCD_GetAntennaGain()
…

de test


MFRC522::PCD_PerformSelfTest()

de réglage de la puissance


MFRC522::PCD_SoftPowerDown()
MFRC522::PCD_SoftPowerUp()

et les fonctions de communication avec les puces RFID


MFRC522::PCD_TransceiveData
MFRC522::PICC_RequestA
MFRC522::PICC_WakeupA
MFRC522::PICC_REQA_or_WUPA
…

 

Les fonctions existantes pour la communication entre les puce RFID existents aussi en version MIFARE. (MIkron FARE Collection System).

 

 

 

3 – Exemples de code

 

 

Le hello world du module RFID RC522 est la lecture et l’affichage des informations d’une puce RFID lue par le module. Il est codé comme suis, sur un Arduino, et relié à un moniteur série :

 

Pour aller plus loin, et c’est l’utilisation principale de ces cartes/badges, on peut faire un système de carte d’accès.

Dans l’exemple suivant, deux LEDs (une rouge et une verte) sont simulées, et bien sur tout code ou fonctions permettant l’accès peut être ajouté au même endroit que l’allumage de la diode verte (comme le déclenchement d’une serrure électromagnétique).

 

 

 

Sources :

gotronic.fr

github.com

les-electroniciens.com

f-leb.developpez.com

[Top]

Mois : juillet 2018

Présentation et mise en œuvre d’une sonde 1-Wire DS18B20 sur Raspberry Pi

Posted on 8 juillet 2018  in Non classé

Présentation de la sonde

La sonde de température DS18B20 est une sonde de température 1-Wire, (bus conçu par Dallas Semiconductor)c’est-à-dire qu’elle n’as besoin que d’un seul fil, (en plus de l’alimentation et de la masse) pour renvoyer des données au Raspberry Pi. C’est une sonde numérique, et contrairement à une sonde analogique, elle est directement utilisable sur le Raspberry pi.

De plus, cette sonde, ainsi que toutes  les sondes et capteurs de type 1-Wire sont particulièrement adaptés au Raspberry Pi. En effet, le Raspberry Pi intègre un bus 1-Wire, qui est basé sur un système maître esclave.

Bien sur, dans notre cas, il n’y aura que la sonde, donc l’utilité du bus 1-Wire ne sera pas exploitée.

Le schéma ci-dessous représente le branchement de la sonde

 

 

Une résistance de tirage est placée entre l’alimentation en 3.3v de la sonde et son fil de data. C’est ensuite en mettant a la masse la sortie de la sonde que l’on envoie les données au maitre du bus 1-Wire.

Ainsi, le maître initialise le bus, qui commence par forcer le bus à zéro pendant 480 µs, à la suite de quoi l'esclave renvoi son identifiant unique.

Ensuite, chaque esclave renverra les informations sur le bus lorsqu'il sera activé,

 

 

Exemples de code

 

Avant de pouvoir utiliser la sonde,, il faut ajouter deux modules, w1-gpio et w1-therm,.

 

Ensuite, après un redémarrage du Pi, on s'assure que la sonde soit bien reconnue par le Raspberry Pi. Pour cela, on lance 2 commande,s :

 


 cd /sys/bus/w1/devices

 /sys/bus/w1/devices $ ls

 28-0000054c2ec2 w1_bus_master 1

 

On voit ici que le code unique de la sonde nous est renvoyé, commence par deux chiffres, qui correspondent à la famille de capteurs à laquelle appartient la sonde. Suite à cette vérification, un dossier à son nom aura été créé, et c'est à cet endroit qu'il faut récupérer les informations concernant la température.

Dans ce dossier, un fichier w1_slave contient le code correspondant au numéro de la sonde sur la première ligne, et la température en hexadécimal et en millième de degrés Celsius sur la seconde.

La sonde ayant une précision de 0,5°C, on peut arrondir la température à un chiffre après la virgule.

Pour lire la température, on utilise donc la commande :

 

find /sys/bus/w1/devices/ -name "28-*" -exec cat {}/w1_slave \; | grep "t=" | awk -F "t=" '{print $2/1000}' 	

Cette commande peut aussi être retranscrite dans un script, pour une utilisation plus facile:

 

 

Ce script à été trouvé sur le site framboise314.fr.

Il permet d’enregistrer la température dans un fichier, qui peut être ainsi lu par un autre programme, et affiché.

Les utilisations qui seront faite de cette sonde peuvent être varié, mais elle auront toutes en commun la récupération de l'info de la sonde, comme présenté ci-desssus.

 

Sources

framboise314.fr

pihomeserver.fr

blogmotion.fr

planète-domotique.com

daniel.menesplier.free.fr

[Top]

Mois : juillet 2018

Traçage des activités salariées nomades et droit à la déconnexion

Posted on 8 juillet 2018  in Non classé

Pourquoi géo localiser un salarié nomade ?

 

 

La géo localisation d’un salarié a deux intérêts. Le premier est de surveiller le salarié, afin de vérifier qu’il soit bien sur son lieu de mission. Le second permet d’améliorer la qualité d’un service qui fait appel à la mobilité de ses salariés (comme par exemple les techniciens d’opérateurs téléphoniques).

La géo localisation d’un salarié est apparu suite a la demande des entreprises de pouvoirs surveiller leurs employés, afin d’éviter les abus, comme les salariés nomades profitant de ne pas avoir leur patron sur le dos pour aller boire un verre au bar du coin,

Mais aujourd’hui, c’est le second intérêt de la géo localisation qui prévaut sur le premier. En effet, plus que surveiller son salarié, l’entreprise va utiliser la géo localisation pour améliorer le service qu’elle peut proposer. Par exemple, dans le cas d’un technicien d’opérateur téléphonique, la géo localisation peut permettre, combiné a son agenda du jour, de prévenir les clients d’un retard, ou justement, de l’arrivée a l’heure pour le rendez-vous.

Même situation, dans le cadre d’une intervention d’urgence, plus besoin d’appeler tout les salariés qui travaillent dans la zone, pour savoir lequel va être le plus proche du lieu de l’intervention d’urgence. Et cela peut être étendu aux services de police, de SAMU, et de pompiers.

Le même principe fonctionne pour les vendeurs nomades, ou toute autre profession, tant qu’elle est nomade.

 

 

Les technologies de traçage

 

Il existe plusieurs principes de géo localisation: le GPS, le GSM/GPRS, et le RFID.

Seuls les deux premiers nous intéressent ici, la géo localisation à l’aide de puces RFID étant plutôt réservé à des zones contrôlées, c’est-à-dire, a l’intérieur d’une usine, d’un hangar de manutention, ou en extérieur, comme dans une carrière par exemple.

 

 

 

Le système GPS fonctionne comme un navigateur GPS automobile, c’est-à-dire que celui-ci se repère grâce aux satellites, et à l’aide d’une connexion avec ces mêmes satellites, le système de géo localisation va renvoyer sa position. L’entreprise qui propose le service va ainsi traiter l’information reçue, et la renvoyer au client propriétaire du véhicule équipé, sous la forme d’une application, ou d’une webapp (carte en temps réel, par exemple).

 

 

 

Le système GSM/GPRS est similaire, sauf qu’il n’utilise pas les satellites GPS, mais les antennes de communication GSM. Le fonctionnement est donc similaire à celui d’un smartphone. Les boitiers qui embarquent cette solution sont aussi équipés d’une carte Sim, afin de pouvoir communiquer leur position. L’avantage de ce système est qu’il est plus économique que le système GPS, mais il ne fonctionnera pas en zone blanche.

 

 

Les règles qui entourent la pratique

 

En ce qui concerne le traçage des salariés nomades, bien qu’il y ai eu un flou au début de cette pratique, elle est aujourd’hui très encadrée, par la CNIL.

 

 

Il faut déjà noter, que les informations enregistrées sont la position du véhicule d’un salarié, ou sa position dans le cas d’une installation sur le smartphone, à un instant donné,  mais peuvent aussi être associées dans le temps

pour constituer se

s trajets, sa vitesse moyenne, ses temps de pause. Si ces informations sont relatives à un salarié dument identifié, cela constitue un traitement de données à caractère personnel.

Ainsi, dès lors qu’un employeur veut mettre en place un tel système, il doit en faire une déclaration auprès de la CNIL, qui effectuera des vérifications concernant la protection des données,

Il faut aussi justifier de l’application d’un tel système, avec l’une des raisons suivantes :

  • Le suivi du temps de travail des employés ne peut pas être réalisé autrement
  • Amélioration du processus de production, (en temps réel, comme vu précédemment, avec l’envoi du véhicule le plus proche pour un client, ou indirectement, en analysant les déplacements effectués avec pour but de les optimiser.)
  • Contribution à la sécurité des personnes ou des marchandises transportées (un travailleur isolé, comme un bucheron, ou un garde forestier, et la sécurité d’un fourgon blindé)
  • La lutte contre le vol (les systèmes pouvant être installés sur des machines comme des pelleteuses, mais cela ne rentre pas dans le cadre de cette contribution)
  • Suivi et constitution de preuves de l’exécution d’une prestation (passage d’un technicien, par exemple)

Parmi les autres règles définie

s par la CNIL, c’est la limitation de la collecte de ces données de géo localisation, qui ne peuvent intervenir que pendant les heures de travail. En dehors, il est interdit de collecter les données. Dans le cas d’un véhicule de fonction (qui est un avantage en nature, et peu être utilisé en dehors de l’entreprise et des horaires de travail) le dispositif de géo localisation doit pouvoir être désactivé.

Les données de géo localisation ne peuvent être utilisées pour constater des dépassements des limitations de vitesse, bien qu’elles puissent être utilisées pour calculer une vistesse moyenne sur un trajet.

Ces données doivent êtres sécurisées au sein de l’entreprise, et seules les personnes habilitées peuvent y avoir accès. Leur conservation est aussi limité dans le temps. Ainsi, si ces données sont utilisées pour optimiser des tournées ou des interventions, et donc utilisées en temps réel,  elles ne doivent pas être conservées. En revanche, dans le cas ou elles sont utilisées pour un contrôle d’activités (comme un système de pointage), la CNIL recommande une conservation maximum de 2 mois.

 

En plus de tout cela, la collecte de données a caractère personnelle ne peut être faite à l’insu des salariées. Ceux-ci doivent être informés que des données sont collectées, la manière dont elles sont traitées, mais aussi la personne responsable du bon traitement et de la bonne utilisation de ces données.

Le droit du travail et la révolution numérique

 

Avec l’avènement du numérique, tout les domaines d’activités sont concernés, et le travail n’y fait pas exception. Ainsi, la ou avant tout ce faisait sur papier, ou les communications étaient verbales, on passe maintenant a un ordinateur, et les communications se font sous forme d’e-mail, qui, à l’instar des texto, peuvent être envoyés à n’importe quelle heure. C’est ce qu’on appelle les TIC (Technologies de l’Information et de la Communication)

Pour certains employés, en particulier les cadres qui n’ont pas d’horaires fixes, ainsi que les personnes effectuant du télétravail, les TIC permettent une plus grande efficacité dans leur travail, mais elles sont aussi responsables de l’augmentation de la charge de travail, et de son intensification. Ainsi, les salariés sont à la fois joignables plus facilement, mais aussi interrompu dans leur travail plus fréquemment, et peuvent être amenés a effectuer plusieurs taches en même temps.

Ainsi, un salarié qui peut être joignable a n’importe quelle heure, même en soirée, le weekend, ou en vacances, va travailler plus, afin de rendre au plus vite le rapport qu’on lui a demandé. Et ce temps de travail, à la maison, dans les transports, ou encore dans d’autres lieux tiers, qui n’est pas forcément reconnu, ni comptabilisé, et dépasse ainsi les limites horaires définies par la loi. La limite entre vie personnelle et vie professionnelle s’amincie.

Ce droit est donc une protection, à la fois contre les abus et une protection psychologique, afin de pouvoir profiter de son temps de repos comme chaque salarié peut y prétendre. C’est aussi pour éviter, dans le cadre d’ingénieurs, ou de cadres, les burn out, qui sont l’effet d’un excès de travail, de pression. Le droit à la déconnexion apporte donc des éléments de réponses à cette problématique.

 

Droit et devoir à la déconnexion

 

Le droit à la déconnexion est donc intégré au droit su travail, mais ce n’est pas encore une obligation. L’obligation est dans la négociation.

Citation de l’article L 2242-8 du code du travail :

« Les modalités du plein exercice par le salarié de son droit à la déconnexion et la mise en place par l’entreprise de dispositifs de régulation de l’utilisation des outils numériques, en vue d’assurer le respect des temps de repos et de congé ainsi que de la vie personnelle et familiale. À défaut d’accord, l’employeur élabore une charte, après avis du comité d’entreprise ou, à défaut, des délégués du personnel. Cette charte définit ces modalités de l’exercice du droit à la déconnexion et prévoit en outre la mise en œuvre, à destination des salariés et du personnel d’encadrement et de direction, d’actions de formation et de sensibilisation à un usage raisonnable des outils numériques. »

 

Ainsi, la loi définie une négociation, qui débouche soit sur un accord, soit sur une charte, définissant les règles, les droits, et les devoirs de déconnexion au sein d’une entreprise. Ainsi, d’une entreprise à l’autre, les règles ne seront pas les mêmes.

Ainsi, un accord peut donc définir différente chose, comme par exemple, des horaires pendant lesquels un salarié ne peut pas être contacté pour des raisons professionnelles, ou encore qu’il ne puisse se connecter à sa boite mail professionnelle qu’au sein de l’entreprise. Ou encore qu’il ne puisse emporter chez lui un outil de travail, comme son ordinateur professionnel.

 

Le droit à la déconnexion est aussi un devoir, car rester « sur-connecté » à son travail, tout le temps, n’est pas bon pour la santé sur le long terme, ni pour sa productivité sur le court terme. Il faut donc apprendre à se déconnecter, ce qui devient de plus en plus compliqué, dans une société ultra connectée comme la notre….

 

 

, , ,

[Top]