lib_SHT11

Dependents:   lib_SHT11_example libs_YSI_example

Committer:
YSI
Date:
Tue Jun 06 14:08:27 2017 +0000
Revision:
0:6b657f74b4e4
lib_SHT11

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YSI 0:6b657f74b4e4 1 /** SHT11 class
YSI 0:6b657f74b4e4 2 *
YSI 0:6b657f74b4e4 3 * @purpose library for SHT11 humidity and temperature sensor
YSI 0:6b657f74b4e4 4 *
YSI 0:6b657f74b4e4 5 * Utilisée pour mesurer la temperature et l'humidite
YSI 0:6b657f74b4e4 6 *
YSI 0:6b657f74b4e4 7 * https://www.sensirion.com/products/humidity-sensor/
YSI 0:6b657f74b4e4 8 *
YSI 0:6b657f74b4e4 9 * Copyright (c) 2012, cstyles (http://mbed.org)
YSI 0:6b657f74b4e4 10 *
YSI 0:6b657f74b4e4 11 * Exemple:
YSI 0:6b657f74b4e4 12 * @code
YSI 0:6b657f74b4e4 13 * #include "mbed.h"
YSI 0:6b657f74b4e4 14 * #include "lib_SHT11.h"
YSI 0:6b657f74b4e4 15 *
YSI 0:6b657f74b4e4 16 * SHT11 capteur_HT;
YSI 0:6b657f74b4e4 17 * //SHT11 capteur_HT(p30, p29, 2.0); //data, sck, periode_cycle_mesure
YSI 0:6b657f74b4e4 18 * Serial pc(USBTX, USBRX);
YSI 0:6b657f74b4e4 19 *
YSI 0:6b657f74b4e4 20 * int main()
YSI 0:6b657f74b4e4 21 * {
YSI 0:6b657f74b4e4 22 * float Temperature_mesuree=0.0, Humidite_mesuree=0.0;
YSI 0:6b657f74b4e4 23 *
YSI 0:6b657f74b4e4 24 * while(1)
YSI 0:6b657f74b4e4 25 * {
YSI 0:6b657f74b4e4 26 * if((Temperature_mesuree != capteur_HT.lire_T()) || (Humidite_mesuree != capteur_HT.lire_H()))
YSI 0:6b657f74b4e4 27 * {
YSI 0:6b657f74b4e4 28 * capteur_HT.lire_T_H(&Temperature_mesuree, &Humidite_mesuree);
YSI 0:6b657f74b4e4 29 * pc.printf("T=%f\tH=%f\r\n", Temperature_mesuree, Humidite_mesuree);
YSI 0:6b657f74b4e4 30 * }
YSI 0:6b657f74b4e4 31 * }
YSI 0:6b657f74b4e4 32 * }
YSI 0:6b657f74b4e4 33 * @endcode
YSI 0:6b657f74b4e4 34 * @file lib_SHT11.h
YSI 0:6b657f74b4e4 35 * @date Jun 2012
YSI 0:6b657f74b4e4 36 * @author Yannic Simon
YSI 0:6b657f74b4e4 37 */
YSI 0:6b657f74b4e4 38
YSI 0:6b657f74b4e4 39 #ifndef DEF_lib_SHT11_H
YSI 0:6b657f74b4e4 40 #define DEF_lib_SHT11_H
YSI 0:6b657f74b4e4 41
YSI 0:6b657f74b4e4 42 #include "mbed.h"
YSI 0:6b657f74b4e4 43
YSI 0:6b657f74b4e4 44 /** SHT11 class
YSI 0:6b657f74b4e4 45 */
YSI 0:6b657f74b4e4 46 class SHT11 : public Ticker
YSI 0:6b657f74b4e4 47 {
YSI 0:6b657f74b4e4 48 public:
YSI 0:6b657f74b4e4 49 /** Creer une instance SHT11
YSI 0:6b657f74b4e4 50 * sur les pins data, sck avec une periode de mesure de minimum 2sec
YSI 0:6b657f74b4e4 51 *
YSI 0:6b657f74b4e4 52 * @param pin_DATA par defaut p30
YSI 0:6b657f74b4e4 53 * @param pin_SCK par defaut p29
YSI 0:6b657f74b4e4 54 * @param T_C_mesure par defaut 2.0
YSI 0:6b657f74b4e4 55 */
YSI 0:6b657f74b4e4 56 SHT11(PinName pin_DATA = p30, PinName pin_SCK = p29, float T_C_mesure = 2.0);
YSI 0:6b657f74b4e4 57
YSI 0:6b657f74b4e4 58 /** renvoie la derniere temperature mesuree
YSI 0:6b657f74b4e4 59 *
YSI 0:6b657f74b4e4 60 * @param aucun
YSI 0:6b657f74b4e4 61 * @returns la temperature en degres Celsius
YSI 0:6b657f74b4e4 62 */
YSI 0:6b657f74b4e4 63 float lire_T(void);
YSI 0:6b657f74b4e4 64
YSI 0:6b657f74b4e4 65 /** renvoie la derniere humidite mesuree
YSI 0:6b657f74b4e4 66 *
YSI 0:6b657f74b4e4 67 * @param aucun
YSI 0:6b657f74b4e4 68 * @returns l'humidite relative
YSI 0:6b657f74b4e4 69 */
YSI 0:6b657f74b4e4 70 float lire_H(void);
YSI 0:6b657f74b4e4 71
YSI 0:6b657f74b4e4 72 /** donne les derniere humidite et temperature mesuree
YSI 0:6b657f74b4e4 73 *
YSI 0:6b657f74b4e4 74 * @param T variable qui sera actualisee avec la temperature
YSI 0:6b657f74b4e4 75 * @param H variable qui sera actualisee avec l'humidite
YSI 0:6b657f74b4e4 76 * @returns aucun
YSI 0:6b657f74b4e4 77 */
YSI 0:6b657f74b4e4 78 void lire_T_H(float *T, float *H);
YSI 0:6b657f74b4e4 79
YSI 0:6b657f74b4e4 80 /** change la periode de mesure du capteur
YSI 0:6b657f74b4e4 81 *
YSI 0:6b657f74b4e4 82 * @param new_Temps_cycle_mesure (minimum 2sec)
YSI 0:6b657f74b4e4 83 * @returns aucun
YSI 0:6b657f74b4e4 84 */
YSI 0:6b657f74b4e4 85 void changer_timer_cycle(float new_Temps_cycle_mesure);
YSI 0:6b657f74b4e4 86
YSI 0:6b657f74b4e4 87 /** initialisation du capteur
YSI 0:6b657f74b4e4 88 *
YSI 0:6b657f74b4e4 89 * @param aucun
YSI 0:6b657f74b4e4 90 * @returns aucun
YSI 0:6b657f74b4e4 91 */
YSI 0:6b657f74b4e4 92 void init(void);
YSI 0:6b657f74b4e4 93
YSI 0:6b657f74b4e4 94 /** desactivation de la mesure du capteur
YSI 0:6b657f74b4e4 95 *
YSI 0:6b657f74b4e4 96 * @param aucun
YSI 0:6b657f74b4e4 97 * @returns aucun
YSI 0:6b657f74b4e4 98 */
YSI 0:6b657f74b4e4 99 void desactiver(void);
YSI 0:6b657f74b4e4 100
YSI 0:6b657f74b4e4 101 private:
YSI 0:6b657f74b4e4 102
YSI 0:6b657f74b4e4 103 void start(void);
YSI 0:6b657f74b4e4 104 void gestion_HT(void);
YSI 0:6b657f74b4e4 105 void demande_mesure(short octet_de_commande);
YSI 0:6b657f74b4e4 106 void mesure_T(void);
YSI 0:6b657f74b4e4 107 void mesure_H(void);
YSI 0:6b657f74b4e4 108 void mesure_T_H(void);
YSI 0:6b657f74b4e4 109 void reception_mesure_T(void);
YSI 0:6b657f74b4e4 110 void reception_mesure_H(void);
YSI 0:6b657f74b4e4 111 void calcul_Temperature_Humidite(void);
YSI 0:6b657f74b4e4 112
YSI 0:6b657f74b4e4 113 DigitalInOut DATA_HT;
YSI 0:6b657f74b4e4 114 DigitalOut SCK_HT;
YSI 0:6b657f74b4e4 115 Ticker Timer_cycle_mesure;
YSI 0:6b657f74b4e4 116
YSI 0:6b657f74b4e4 117 unsigned int Temperature;
YSI 0:6b657f74b4e4 118 unsigned int Humidite;
YSI 0:6b657f74b4e4 119 unsigned int etat_sht11;
YSI 0:6b657f74b4e4 120 unsigned int etat_cycle;
YSI 0:6b657f74b4e4 121 float Temperature_mesuree;
YSI 0:6b657f74b4e4 122 float Humidite_mesuree;
YSI 0:6b657f74b4e4 123 float Temps_cycle_mesure;
YSI 0:6b657f74b4e4 124 };
YSI 0:6b657f74b4e4 125
YSI 0:6b657f74b4e4 126 #endif