Difference between revisions of "Affichage de la température sur un afficheur LCD et sur un appareil Android"

(Page créée avec « {{Tuto Details |Type=Technique |Area=Électronique |Tags=Arduino, bluetooth, Android, |Description=Il s'agit de mesurer une température et d'envoyer l'info vers un affich... »)
 
Line 31: Line 31:
  
 
Des bouts de code ont été récupérés sur le web.
 
Des bouts de code ont été récupérés sur le web.
 +
 +
    include <LiquidCrystal.h>
 +
 +
    include <OneWire.h> // Inclusion de la librairie OneWire
 +
 +
    define DS18B20 0x28    // Adresse 1-Wire du DS18B20
 +
 +
    define BROCHE_ONEWIRE 10 // Broche utilisée pour le bus 1-Wire
 +
 +
OneWire ds(BROCHE_ONEWIRE); // Création de l’objet OneWire ds
 +
 +
// Fonction récupérant la température depuis le DS18B20↵// Retourne true si tout va bien, ou false en cas d’erreur↵boolean getTemperature(float *temp){↵byte data[9], addr[8];↵// data : Données lues depuis le scratchpad↵// addr : adresse du module 1-Wire détecté
 +
 +
if (!ds.search(addr)) { // Recherche un module 1-Wire↵ds.reset_search();    // Réinitialise la recherche de module↵return false;        // Retourne une erreur↵}
 +
 +
if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l’adresse a été correctement reçue↵return false;                        // Si le message est corrompu on retourne une erreur
 +
 +
if (addr[0] != DS18B20) // Vérifie qu’il s’agit bien d’un DS18B20↵return false;        // Si ce n’est pas le cas on retourne une erreur
 +
 +
ds.reset();            // On reset le bus 1-Wire↵ds.select(addr);        // On sélectionne le DS18B20
 +
 +
ds.write(0x44, 1);      // On lance une prise de mesure de température↵delay(800);            // Et on attend la fin de la mesure
 +
 +
ds.reset();            // On reset le bus 1-Wire↵ds.select(addr);        // On sélectionne le DS18B20↵ds.write(0xBE);        // On envoie une demande de lecture du scratchpad
 +
 +
for (byte i = 0; i < 9; i++) // On lit le scratchpad↵data[i] = ds.read();      // Et on stock les octets reçus
 +
 +
// Calcul de la température en degré Celsius
 +
 +
    temp = ((data[1] << 8) | data[0]) * 0.0625;
 +
 +
// Pas d’erreur↵return true;↵}
 +
 +
// initialize the library with the numbers of the interface pins↵LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 +
 +
void setup() {↵Serial.begin(9600); // Initialisation du port série↵// set up the LCD’s number of columns and rows:↵lcd.begin(16, 2);↵// Print a message to the LCD.↵lcd.print(« Temperature : »);↵}
 +
 +
void loop()↵{↵float temp;↵char c;↵lcd.setCursor(0, 1);
 +
 +
if(getTemperature(&temp)) {↵lcd.print(temp);↵}
 +
 +
if(Serial.available()){↵c = Serial.read();↵}
 +
 +
if(c ==’A’) {↵Serial.print(temp);↵}↵delay(500);
 +
 +
}
 +
 +
 +
 
|Step_Picture_00=Affichage_de_la_temp_rature_sur_un_afficheur_LCD_et_sur_un_appareil_Android_temp_america_bb1.png
 
|Step_Picture_00=Affichage_de_la_temp_rature_sur_un_afficheur_LCD_et_sur_un_appareil_Android_temp_america_bb1.png
 
}}
 
}}

Revision as of 00:04, 18 February 2017

Author avatarBernardet | Last edit 9/12/2019 by Clementflipo

No image yet

Il s'agit de mesurer une température et d'envoyer l'info vers un afficheur LCD ou un téléphone Android.
Difficulty
⧼wf-propertyvalue-difficulty-Facile⧽
Duration
1 ⧼wf-propertyvalue-durationtype-heure(s)⧽
Categories
⧼wf-propertyvalue-area-Électronique⧽
Cost
30 EUR (€)
Other languages:
English • ‎français

Materials

  • Une carte Arduino Nano
  • Un module bluetooth HC-06
  • Un afficheur LCD 2 lignes de 16 caractères chacune
  • Un capteur de température ds18b20
  • Un potentiomètre 10 kO (pour l'afficheur)
  • Une résistance 4.7 kO
  • Une plaque à insertion rapide
  • Des fils

Tools

  • Un ordinateur avec l’environnement de développement Arduino

lien=|classe=ve-ce-chimera ve-ce-chimera-gecko

Step 1 - Schéma de câblage




Comments

Cochez cette case si vous considérez ce tutoriel terminé