Y SI / lib_SHT11

Dependents:   lib_SHT11_example libs_YSI_example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers lib_SHT11.h Source File

lib_SHT11.h

Go to the documentation of this file.
00001 /** SHT11 class
00002 *
00003 * @purpose       library for SHT11 humidity and temperature sensor
00004 *
00005 * Utilisée pour mesurer la temperature et l'humidite
00006 *
00007 * https://www.sensirion.com/products/humidity-sensor/
00008 *
00009 * Copyright (c) 2012, cstyles (http://mbed.org)
00010 *
00011 * Exemple:
00012 * @code
00013 * #include "mbed.h"
00014 * #include "lib_SHT11.h" 
00015 * 
00016 * SHT11 capteur_HT;
00017 * //SHT11 capteur_HT(p30, p29, 2.0);   //data, sck, periode_cycle_mesure
00018 * Serial pc(USBTX, USBRX);
00019 * 
00020 * int main()
00021 * {
00022 *     float Temperature_mesuree=0.0, Humidite_mesuree=0.0;
00023 * 
00024 *     while(1)
00025 *     {
00026 *         if((Temperature_mesuree != capteur_HT.lire_T()) || (Humidite_mesuree != capteur_HT.lire_H()))
00027 *         {
00028 *             capteur_HT.lire_T_H(&Temperature_mesuree, &Humidite_mesuree);
00029 *             pc.printf("T=%f\tH=%f\r\n", Temperature_mesuree, Humidite_mesuree);
00030 *         }
00031 *     }
00032 * }
00033 * @endcode
00034 * @file          lib_SHT11.h 
00035 * @date          Jun 2012
00036 * @author        Yannic Simon
00037 */
00038 
00039 #ifndef DEF_lib_SHT11_H
00040 #define DEF_lib_SHT11_H
00041 
00042 #include "mbed.h"
00043 
00044 /** SHT11 class
00045  */
00046 class SHT11 : public Ticker
00047 {
00048 public:
00049     /** Creer une instance SHT11
00050     * sur les pins data, sck avec une periode de mesure de minimum 2sec
00051     *
00052     * @param pin_DATA par defaut p30
00053     * @param pin_SCK par defaut p29
00054     * @param T_C_mesure par defaut 2.0
00055     */
00056     SHT11(PinName pin_DATA = p30, PinName pin_SCK = p29, float T_C_mesure = 2.0);
00057 
00058     /** renvoie la derniere temperature mesuree
00059     *
00060     * @param aucun
00061     * @returns la temperature en degres Celsius
00062     */  
00063     float lire_T(void);
00064     
00065     /** renvoie la derniere humidite mesuree
00066     *
00067     * @param aucun
00068     * @returns l'humidite relative
00069     */ 
00070     float lire_H(void);
00071     
00072     /** donne les derniere humidite et temperature mesuree
00073     *
00074     * @param T variable qui sera actualisee avec la temperature
00075     * @param H variable qui sera actualisee avec l'humidite
00076     * @returns aucun
00077     */ 
00078     void lire_T_H(float *T, float *H);
00079     
00080     /** change la periode de mesure du capteur
00081     *
00082     * @param new_Temps_cycle_mesure (minimum 2sec)
00083     * @returns aucun
00084     */
00085     void changer_timer_cycle(float new_Temps_cycle_mesure);
00086     
00087     /** initialisation du capteur
00088     *
00089     * @param aucun
00090     * @returns aucun
00091     */
00092     void init(void);
00093     
00094     /** desactivation de la mesure du capteur
00095     *
00096     * @param aucun
00097     * @returns aucun
00098     */
00099     void desactiver(void);
00100     
00101 private:
00102     
00103     void start(void);
00104     void gestion_HT(void);
00105     void demande_mesure(short octet_de_commande);
00106     void mesure_T(void);
00107     void mesure_H(void);
00108     void mesure_T_H(void);
00109     void reception_mesure_T(void);
00110     void reception_mesure_H(void);
00111     void calcul_Temperature_Humidite(void);
00112 
00113     DigitalInOut DATA_HT;
00114     DigitalOut SCK_HT;
00115     Ticker Timer_cycle_mesure;
00116 
00117     unsigned int Temperature;
00118     unsigned int Humidite;
00119     unsigned int etat_sht11;
00120     unsigned int etat_cycle;
00121     float Temperature_mesuree;
00122     float Humidite_mesuree;
00123     float Temps_cycle_mesure;
00124 };
00125 
00126 #endif