Connexion
de l'interface :
L'interface est conçue pour s'interconnecter
directement à l'un de vos ports de communication USB
présents sur votre ordinateur
au moyen d'un cordon USB A mâle - USB B mâle.
 Cordon
USB A mâle - USB B mâle.

Combinaison
VID et PID :
Dans
le cadre de ce projet, nous utilisons
un driver de type
HID (Human
Interface Device) utilisé pour
tous les périphériques
de type souris
ou clavier
USB du commerce. L'avantage est sa simplicité
de mise en oeuvre car le périphérique
de type HID est
automatiquement reconnu par Windows
et
ne nécessite aucun driver exotique!
Tous
les périphériques USB
sont pourvus d'une combinaison unique
prenant la forme de deux
nombres.
Le premier nombre VID
identifie le
fabricant du produit,
ici Microchip et le second PID
représente l'identificateur
du produit.
Dans le cadre de ce projet nous avons
utilisé le VID
de Microchip librement disponible 1240
et comme PID
nous
avons pris arbitrairement la valeur
6.
N'oubliez pas que le PIC
et
le logiciel
sous Windows doivent
utiliser la même combinaison VID/PID.
Enumération :
Avant
que le PC ne puisse utiliser le périphérique
USB, il faut qu'il y ait eu ce que l'on
appelle une énumération.
La première étape de ce
processus se fait directement au coeur
du PIC18F2550. C'est par le biais de
résistances
de Pull-Up ou Pull-down
(internes au PIC) que le dit circuit signale
sa présence sur le bus USB. Puisque
notre périphérique est
dit low-speed
(1,5MBits/s),
une résistance de Pull-Up
force
la ligne D-
au +3,3V.
En réaction à ce changement
d'état de la ligne de donnée,
le PC essaie par le biais d'un protocole
définit, de découvrir
quel périphérique a été
connecté au port USB. Au
delà des données classiques
telles que le VID et PID, le PIC18F2550
indique sa "classe", avec
le numéro de version, un nom,
etc... Le
PIC18F2550 se voit alors attribuer une
adresse USB,
ce qui permet au PC de le différentier
des autres appareils USB. Sur la base
des données obtenues, le PC
détermine le bon pilote
qu'il lui faut pour activer
et dialoguer avec
l'interface équipée du
PIC18F2550.
Connexion pour la
première fois de l'interface USB au PC :
La détection
du périphérique USB
s'effectue dès la connexion
de l'interface par votre PC.

Après
l'installation du pilote, l'interface
est fonctionnelle et vous pouvez désormais
utiliser le logiciel sous Windows pour
piloter votre thermomètre /hygromètre.
L'interface
est compatible Windows Seven,
Vista, XP.
Commandes utilisées sous
Windows
pour dialoguer avec l'interface thermomètre
/ hygromètre :
L'interface
n'envoie aucune donnée au démarrage
du programme. Elle patiente jusqu'à recevoir
l'ordre d'activer l'acquisition de la
température et de l'hygrométrie
pour envoyer ses mesures au PC. Dans
le cadre de ce projet, nous transmettons
uniquement au PC des instructions
déterminant l'activation ou la
désactivation
de l'acquisition. Ou bien encore, l'activation
ou la désactivation du buzzer (le
buzzer émet un bip lors de chaque
acquisition).
Si
vous vous référez au code
source du programme écrit sous
Borland Delphi 7 téléchargeable
depuis cette page web, l'instruction
est
affectée à la case mémoire
FBufferOut[1].
En
retour, l'interface composée
du PIC18F2550 envoie chaque seconde
au PC, 5 octets
affectés à la case mémoire
FBufferIn[x]
(avec
1 < x < 5) permettant
de connaître la valeur de la température
et de l'humidité mesurées.
Nous
allons expliciter ci-dessous l'ensemble
de ces octets...
Transfert
de données (octets) du PC vers
l'interface :
Instruction permettant de
lancer l'acquisition :
FBufferOut[1]
|
Comportement
de l'interface
|
1
|
Acquisition
activée
|
Instruction
permettant de désactiver l'acquisition
:
FBufferOut[1]
|
Comportement
de l'interface
|
2
|
Arrêt
de l'acquisition
|
Instruction
permettant d'activer le buzzer
:
FBufferOut[1]
|
Comportement
de l'interface
|
3
|
Buzzer
actif
|
Instruction
permettant de désactiver le buzzer
:
FBufferOut[1]
|
Comportement
de l'interface
|
4
|
Buzzer
inactif
|
Transfert
de données (octets) de l'interface
vers le PC :
Premier
octet :
Le
premier octet nous permet de définir
si nous devons afficher ou non le signe
moins
" -
"
pour les températures négatives.
FBufferIN[1]
|
Logiciel
sous Windows
|
1
|
Température
positive
|
FBufferIN[1]
|
Logiciel
sous Windows
|
2
|
Température
négative
|
Second
octet :
Le
second octet contient la valeur de la
température sur
1
digit (-9°C
à +9°C), 2
digits (-55°C
à +99°C) ou 3
digits
(+100°C à +125°C).
FBufferIN[2]
|
Logiciel
sous Windows
|
X
ou XX ou XXX
|
Valeur
de la température
|
Troisième
octet :
Le
troisième octet contient le chiffre
après la virgule de la température.
FBufferIn[3]
|
Logiciel
sous Windows
|
-xx,0
-xx,5 -x,0 ou -x,5 x,0
ou x,5 xx,0 ou xx,5 xxx,0
ou xxx,5
|
Chiffre
après la virgule
|
Quatrième
octet :
Le
quatrième octet contient le
poids faible de la valeur de la tension
délivrée par le capteur
d'humidité VOUT (de
990mV pour 30% à 2970mV pour
90%).
FBufferIn[4]
|
Logiciel
sous Windows
|
de
0 à 255
|
LSB
potentiel du capteur humidité mesuré
par le MAX187
|
Cinquième
octet :
Le
cinquième octet contient le
poids fort de la valeur de la tension
délivrée par le capteur
d'humidité VOUT (de
990mV pour 30% à 2970mV pour
90%).
FBufferIn[5]
|
Logiciel
sous Windows
|
de
0 à 255
|
MSB
potentiel du capteur humidité mesuré
par le MAX187
|
A
partir du 4ème
et 5ème
octet, il est très facile de
retrouver
la valeur de la tension délivrée
par le module hygromètre, elle
même mesurée par le MAX187
:
Tension
du module hygromètre VOUT
= ( 256 * FBufferIn[5] ) + FBufferIn[4]
)
Pour
déterminer l'humidité
relative il suffit d'appliquer la relation
:
RH(%)
= VOUT / 33 (avec
33
la
pente de la droite caractérisant
le module hygrométrique).
Logiciel et
son code source dédié
à la gestion de l'interface thermomètre
/ hygromètre :
Téléchargement
du logiciel et de son code source :
Afin
de piloter simplement l'interface USB via votre PC,
un petit programme nommé
"Thermomètre
/ Hygromètre USB"
écrit sous Borland
Delphi 7 est disponible en
libre
téléchargement. Ce dernier génère automatiquement
les
différentes instructions
présentées
ci-dessus.
Les
SE compatibles avec ce programme sont
: 8,
Seven,
Vista
et
XP. ll
n'a pas été testé
sous 2000, Me et 98SE.
Téléchargement du
soft compilé EXE : 439ko

L'ensemble
du code source de
ce programme est
librement téléchargeable
ci-après. Le code source est
commenté et vous n'aurez aucun
mal à l'adapter selon vos besoins.
Téléchargement de
l'ensemble des fichiers sources au format
Borland Delphi : 255ko
Téléchargement du code
source au format TEXTE : 8
ko
Les commandes sont extrêmement
simples à maitriser grâce
à l'usage d'une DLL
(Dynamic
Link Library)
spécifiquement dédiée
à la communication USB (mcHID.dll). N'oubliez
pas de placer cette DLL dans
le même répertoire que
votre programme exécutable.
Logiciel de l'interface thermomètre
/ hygromètre :
Présentation :
Voici
une version plus élaborée
du programme permettant d'afficher en
zone de notification
la température et l'humidité
sur
deux digits.
Cela permet de conserver toujours un
oeil dessus !

Sur
fond jaune,
la température de 22°C (sur
2 digits) Sur fond blanc, l'humidité
relative de 48% (sur 2 digits)
En
cliquant une
fois sur
l'un des icônes de la zone de
notification, vous pouvez ouvrir la
fenêtre générale
du programme.

Une
option "Configuration" permet
d'ajouter ou retrancher un
offset au
niveau du capteur d'humidité
afin de l'étalonner avec précision,
à partir d'un hygromètre
de référence.

Le
fond
coloré
des températures affichées
dans la zone de notification changent
en fonction des plages de température.
Ce choix est purement personnel...
Bleu
entre -55°C et +18.5°C

Jaune
entre +19°C et +24.5°C

Rouge
entre +25°C et +128°C

Si
vous quittez Windows alors que le logiciel
Thermomètre/Hygromètre
USB est en train de fonctionner, ce
dernier redémarrera
automatiquement
au prochain lancement de Windows.
Dans
ce programme, le buzzer
n'est pas géré.
Dès lors, vous n'êtes pas
obligé de monter ce dernier sur
la platine.
Téléchargement
du logiciel :
Les
SE compatibles avec ce programme sont
: 8,
Seven,
Vista
et
XP. ll
n'a pas été testé
sous 2000, Me et 98SE.
Version
1.1. Mise à jour du 1 novembre
2009
750ko
AVIS
: Le programme source ne sera pas diffusé.
Bonne
utilisation de l'interface...
|