\documentclass[a4paper,12pt]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{tabularx}

\title{Capteur d'humidité : DHT11}
\author{D.Moreaux}

\begin{document}
\maketitle
\pagestyle{plain}
\section{Le composant}
Le DHT11 se présente sous la forme d'un boîtier en plastique avec une face percée de petits trous
et quatre broches sur un côté.

Les broches sont, dans l'ordre, Vcc, data, NC\footnote{Non Connecté} et GND. La broche data doit
être munie d'une résistance de PullUp d'à  peu près 5k.

On le trouve aussi sous forme d'un module 3 broches qui équipe la résistance de PullUp. Les broches
sont alors dans l'ordre data, Vcc, GND.

Le DHT11 est un composant très imprécis (5\% d'erreur sur l'humidité, mesurée entre 20 et 90\%),
pour des mesures plus précises il faut utiliser le DHT22 qui  utilise le même brochage et le
même mode de communication mais propose une résolution bien meilleure et une plage de température
de fonctionnement bien plus grande.

Pour lire l'humidité, le  processeur enverra une impulsion basse sur la ligne data pour déclencher
le transfert et lira ensuite les impulsions envoyées par le DHT. Si l'impulsion basse est plus
longue que l'impulsion haute qui suit il s'agit d'un bit à 1 sinon, il s'agit d'un bit à 0. Le
composant enverra l'humidité (8 bits partie entière et 8 bits partie décimale) et la température
(même format) suivi d'une somme de contrôle. A noter que la température est très imprécise et
qu'il sera préférable de la lire à l'aide d'un autre composant.

\section{Librairie Adafruit}
Plusieurs librairies permettent de lire le DHT11, une des mieux tenue à jour est la librairie
proposée par Adafruit\footnote{Leurs librairies sont fiable et peuvent être utilisées pour
d'autres capteurs sans aucune hésitation}. Cette librairie peut être utilisée dans deux modes,
le mode "natif" et le mode "Unified Sensor". Il est nécessaire d'installer la librairie 
{\em adafruit unified sensor}.

La librairie s'utilisera de manière très simple :

\begin{verbatim}
#include "DHT.h"

DHT dht(pin,DHT11);

void setup() {
  dht.begin();
}

\end{verbatim}

On peut remplacer {\tt DHT11} par {\tt DHT21} ou {\tt DHT22} pour les composants en question.

On pourra ensuite lire l'humidité à l'aide de la fonction \verb|dht.readHumidity()| ou encore
lire la température à l'aide de \verb|dht.readTemperature(f)| où f vaudra 1 pour une température
Farenheit et 0 pour une température Celsius.

La librairie permet également de calculer l'index de chaleur (utilisé dans certains pays pour
déterminer l'état de canicule et le danger lié à la chaleur). Cela se fera à l'aide
de la fonction \verb|dht.computeHeatIndex(temp,hum,f)| où le dernier paramètre indiquera l'unité
de température  utilisée.

L'index de température se mesure comme une température et sesubdivise en 4 intervalles "à surveiller"

\begin{table}[htbp]
\begin{tabular}{l|l}
27-32 & Inconfort \\
33-39 & Inconfort Extrême \\
40-52 & Danger \\
53+ & Danger Extrême
\end{tabular}
\end{table}

\end{document}
