![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Répertoire projet Interfaçage SESAM IUT Cachan. Interface Graphique Capteur HIH6030-021-001 Humidité & Température
L'objectif de ce projet à pour but d'afficher la température et l'humidité du capteur HIH6030-021-001 de Honeywell.
Capteur HIH6030-021-001 :
Lien Farnell : https://fr.farnell.com/honeywell/hih6030-021-001/capteur-humidite-temperature-num/dp/2356755
« Datasheet » du composant : http://www.farnell.com/datasheets/1927619.pdf?_ga=2.84320473.1584398624.1549960629-263764023.1527238100
Le HIH6030-021-001 de Honeywell est un capteur d'humidité / température numérique humidIcon dans un boîtier SOIC-8. Ce capteur fournit un niveau de précision de ±4,5% de HR pour les performances d'humidité et ±1,0°C pour la performance de la température. Les applications typiques comprennent HVAC/R, les compresseurs d'air, les stations météorologiques, les armoires de télécommunication, les thérapies respiratoires et les incubateurs industriels / micro environnements.
• Plage d'alimentation de 2.3VDC à 5.5VDC • Disponible sans filtre et sans condensation • Stabilité à long terme de l'industrie jusqu'à ± 1,2% HR et ± 0,05 ° C / an • La fiabilité leader de l'industrie • Haute résolution • Sortie I2C Température réelle • Faible consommation • Gamme de température d'utilisation de -40°C à 100°C • Plage d'humidité de 0%RH à 100%RH • Courant d'alimentation de 1mA
A l’aide de l’écran tactile de la carte STM32F746G-DISCO, nous pouvons choisir différentes options pour les 2 modes.
Pour le mode température, il y a une option entre Degrés Celsius, Kelvin et Fahrenheit. Pour le mode humidité, l’option permettant de savoir, si nous sommes dans un taux d’humidité faible, modéré ou élevée est disponible.
Revision 0:553477233cd5, committed 2019-06-04
- Comitter:
- jpally
- Date:
- Tue Jun 04 13:01:02 2019 +0000
- Commit message:
- Interfacage SESAM
Changed in this revision
diff -r 000000000000 -r 553477233cd5 F746_GUI.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/F746_GUI.lib Tue Jun 04 13:01:02 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/MikamiUitOpen/code/F746_GUI/#50b8f7654c36
diff -r 000000000000 -r 553477233cd5 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jun 04 13:01:02 2019 +0000 @@ -0,0 +1,180 @@ +#include "mbed.h" +#include "F746_GUI.hpp" + +//RESOLUTION 480x272 + +LCD_DISCO_F746NG lcd; //Affichage LCD +TS_DISCO_F746NG ts; //Touch Screen + +DigitalOut myled(LED1); + +I2C i2c(D14, D15); //Liaison I2C + +const int addr = 0x27; + +Button button1(15, 110, 80, 40, "Celsius"); +Button button2(15, 160, 80, 40, "Kelvin"); +Button button3(15,210, 80, 40, "Fahrenheit"); +Button button4(260,125, 200, 50, "Connaitre taux d'humidite"); +Button cache1(100,110, 140, 40, ""); +Button cache2(100,160, 140, 40, ""); +Button cache3(100,210, 140, 40, ""); +Button cache4(245,180, 230, 90, ""); + +int main() +{ + float valeur_celsius=0.00; + double valeur_kelvin; + float valeur_fara; + float valeur_hum; + + char valeur[4]; + + char buffer[50]; + char buffer2[50]; + char buffer3[50]; + char buffer4[50]; + + lcd.Init(); + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font20); + lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"CAPTEUR HIH6030-021-001", CENTER_MODE); + lcd.SetFont(&Font12); + lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"Julien PALLY LPRO SESAM", CENTER_MODE); + lcd.DrawLine(240, 65, 240, 260); + lcd.SetFont(&Font24); + lcd.DisplayStringAt(25, LINE(3), (uint8_t *)"Temperature", LEFT_MODE); + lcd.SetFont(&Font24); + lcd.DisplayStringAt(290, LINE(3), (uint8_t *)"Humidite", LEFT_MODE); + + while(1) + { +///////////////////////////////////////////////////// PARTIE I2C ////////////////////////////////////////////////////////////////// + + + i2c.write(addr<<1,0,0); + i2c.read(addr<<1, valeur, 4); + + float lecture_hum = (valeur[0]<< 8) + valeur[1]; + float humidite = lecture_hum / 163382 * 100; + + float lecture_temp = (valeur[2] << 6) + (valeur[3] >> 2); + float temperature = lecture_temp / 16382 * 165 - 40; + +///////////////////////////////////////////////////// AFFICHAGE DES BOUTONS ////////////////////////////////////////////////////////////////// + + button1.Draw(LCD_COLOR_GRAY, LCD_COLOR_WHITE); //Dessin des boutons + button2.Draw(LCD_COLOR_GRAY, LCD_COLOR_WHITE); + button3.Draw(LCD_COLOR_GRAY, LCD_COLOR_WHITE); + button4.Draw(LCD_COLOR_GRAY, LCD_COLOR_WHITE); + + +///////////////////////////////////////////////////// PARTIE TRAITEMENT ///////////////////////////////////////////////////////////////////// + + + + wait_ms(100); + + valeur_celsius = temperature; + valeur_kelvin = temperature + 273.15; + valeur_fara = temperature * 1.8 + 32; + valeur_hum = humidite; + + + if (valeur_celsius >= 999){valeur_celsius = 999;} + if (valeur_kelvin >= 999){valeur_kelvin = 999;} + if (valeur_fara >= 999){valeur_fara = 999;} + if (valeur_hum >= 999){valeur_hum = 999;} + + sprintf(buffer, "%.2f", valeur_celsius); + sprintf(buffer2, "%.2f", valeur_kelvin); + sprintf(buffer3, "%.2f", valeur_fara); + sprintf(buffer4, "%.2f", valeur_hum); + + if(button1.IsOnButton()) //si on touche le bouton Celsius + { + cache2.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache3.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache4.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + + + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font24); + lcd.DisplayStringAt(100, LINE(5), (uint8_t *)buffer, LEFT_MODE); + lcd.DisplayStringAt(210, LINE(5), (uint8_t *)"C" , LEFT_MODE); + } + + if(button2.IsOnButton()) //si on touche le bouton Kelvin + { + cache1.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache3.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache4.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + + + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font24); + lcd.DisplayStringAt(100, LINE(7), (uint8_t *)buffer2, LEFT_MODE); + lcd.DisplayStringAt(210, LINE(7), (uint8_t *)"K", LEFT_MODE); + } + + + if(button3.IsOnButton()) //si on touche le bouton Fahrenheit + { + cache1.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache2.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache4.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font24); + lcd.DisplayStringAt(100, LINE(9), (uint8_t *)buffer3, LEFT_MODE); + lcd.DisplayStringAt(210, LINE(9), (uint8_t *)"F", LEFT_MODE); + } + + + if(button4.Touched()) //si on touche le bouton de l'Humidité + + { + cache1.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache2.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + cache3.Draw(LCD_COLOR_WHITE, LCD_COLOR_WHITE); + + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font24); + lcd.DisplayStringAt(295, LINE(10), (uint8_t *)buffer4, LEFT_MODE); + lcd.DisplayStringAt(410, LINE(10), (uint8_t *)"%", LEFT_MODE); + + + if(valeur_hum < 40) + { + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font20); + lcd.DisplayStringAt(250, LINE(10), (uint8_t *)"Humidite Faible", LEFT_MODE); + } + + else if((valeur_hum > 40) && (valeur_hum < 70)) + { + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font20); + lcd.DisplayStringAt(250, LINE(10), (uint8_t *)"Humidite Moyenne", LEFT_MODE); + } + + else if(valeur_hum > 70) + { + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetFont(&Font20); + lcd.DisplayStringAt(250, LINE(10), (uint8_t *)"Humidite Elevee", LEFT_MODE); + } + } + + + } +} \ No newline at end of file
diff -r 000000000000 -r 553477233cd5 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Jun 04 13:01:02 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/3a7713b1edbc \ No newline at end of file