Merci
Image du code d'origine pour la sonde DS18b20
Le nouveau code
#include <Adafruit_SSD1306.h> // la bibliothèque du l'écran
#include <Adafruit_GFX.h> // la bibliothèque du l'écran
#include <math.h> //KY-013 pour température de l'air
#include <OneWire.h> //DS18B20 pour température de l'eau
#include <DallasTemperature.h> //DS18B20 pour température de l'eau
// Essai affichage voltage, température air et eau
// http://www.instructables.com/id/Arduino-OLED-Voltage-Meter/ le voltmètre
// http://edu.mrpigg.ca/termo.html thermo resistor Keyes KY-013 pour l'air
// https://letmeknow.fr/blog/2016/08/10/le-capteur-de-temperature-ds18b20/ //A venir
//les librairies de l'écran
//https://github.com/adafruit/Adafruit_SSD1306
//https://github.com/adafruit/Adafruit-GFX-Library
//les librairies de la sonde étanche DS18B20
//https://github.com/PaulStoffregen/OneWire
// L'écran OLED
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
// Température de l'eau DS18B20
#define EAU_TEMPERATURE_PIN A2
OneWire oneWire(EAU_TEMPERATURE_PIN);
DallasTemperature sensors(OneWire);
// Température de l'eau KY-013
int sensorPin = A1; // KY-013 Déclaration de la broche d'entrée
// fonction convertit la valeur analogique lue en température en °C
double Thermistor(int RawADC)
{
double Temp;
Temp = log(10000.0 * ((1024.0 / RawADC - 1)));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
Temp = Temp - 273.15; // conversion de degrés Kelvin en °C
return Temp;
}
void loop() {
// la température de l'eau
sensors.requestTemperatures();
double dTempWater = sensors.getTempCByIndex(0); // le nom de la variable de la températur eau
// KY-013 le programme mesure la valeur de tension continue à la CTN et convertit le résultat en °C
int readVal = analogRead(sensorPin);
double temp = Thermistor(readVal);
delay(1);//delay time 1 milli second
display.clearDisplay();
display.setTextSize(1);//text size
display.setTextColor(WHITE);//text color
display.setCursor(0, 0);
display.println("Niveau Batterie");//affiche texte 1ere ligne 8 pixels
display.setTextColor(BLACK, WHITE);
display.println(); // affiche une ligne noire
display.println("A0");//define analog pin 16 pixels
display.setTextSize(1);
display.setTextColor(WHITE);//text color
//*****************************
display.setTextSize(1);//text size
display.setTextColor(WHITE);//text color
display.setCursor(0, 0);
display.println("Température Eau et Air");//affiche texte 1ere ligne 8 pixels
display.setTextColor(BLACK, WHITE);
display.println(); // affiche une ligne noire
display.println("A1"); // ici on met la 1° température air ( Keyes KY-013)
display.setTextSize(2);//text size // mettre 2 pour 16 pixels
display.print(char(186)); //Affichage du symbole <°>
display.println("C"); //Affichage du symbole <C>
delay(500); // Attente 0,5 sec pour réactualiser
display.setTextColor(BLACK, WHITE);
display.println(); // affiche une ligne noire
display.println("dTempWater"); // ici on met la 2° température eau (sonde étanche)(A2)
display.setTextSize(2);//text size // mettre 2 pour 16 pixels
display.print(char(186)); //Affichage du symbole <°>
display.println("C"); //Affichage du symbole <C>
delay(500); // Attente 0,5 sec pour réactualiser
// pour le voltage de la batterie
int sensorValue = analogRead(A0); // Convertion du signal (which goes from 0 - 1023) to a voltage (0 - 12V):
float voltage = sensorValue * (12.0 / 1023.0); // écrit la valeur lue
display.print(voltage);
display.println("V");
display.display();
}
/*
AO récupère l’information du voltage
A1 récupère l’information de la température Thermo résistance (modèle Keyes KY-013)
A2 récupère l’information de la température de la sonde étanche 1m DS18B20
*/
Et ses erreurs >:(
Arduino : 1.8.5 (Windows 7), Carte : "Arduino/Genuino Uno"
D:\Donnees\0_Personnel\Bateau\Ecran_temp_volt\Ecran_temp_volt.ino: In function 'void loop()':
Ecran_temp_volt:54: error: request for member 'requestTemperatures' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sensors.requestTemperatures();
^
Ecran_temp_volt:55: error: request for member 'getTempCByIndex' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
double dTempWater = sensors.getTempCByIndex(0); // le nom de la variable de la températur eau
^
exit status 1
request for member 'requestTemperatures' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
