Part list
- Arduino uno
- Temperature sensor DS18B20
- Oled display 128x32 SSD1306
Software library
- Library U8g2lib.h
- OneWire.h
- DallasTemperature.h
Software icon image in XBM
Schematic diagram
Sensor DS18B20 wiring
Sketch Arduino
/*DS18B20_128x32_SL03.ino
* Lit DS18B20 et affiche sur OLED
* là j'essaie d'introduire un caractère fichier XBM créé par:
* XBM file editor https://xbm.jazzychad.net/
* slazare 2019 02 22 et 23
*/
#include <U8g2lib.h>
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C lcd(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ SCL, /* data=*/ SDA); // pin remapping with ESP8266 HW I2C
#include <OneWire.h> //Librairie du bus OneWire
#include <DallasTemperature.h> //Librairie du capteur
float temp = 25.36; //variable température
OneWire oneWire(4); //Bus One Wire sur la pin 4 de l'arduino
DallasTemperature sensors(&oneWire); //Utilisation du bus Onewire pour les capteurs
DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie
//Définition du logo utilisé ici un thermomètre "therm" en fichier XBM avec l’éditeur ci-dessus
#define therm_logo_width 32
#define therm_logo_height 32
static unsigned char therm_logo_bits[] = {
0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xb0,0x01,0x00,
0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,
0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,
0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,
0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x50,0x01,0x00,
0x00,0x50,0x01,0x00,0x00,0x50,0x01,0x00,0x00,0x50,0x01,0x00,
0x00,0x50,0x01,0x00,0x00,0x58,0x03,0x00,0x00,0x48,0x02,0x00,
0x00,0xec,0x06,0x00,0x00,0xf6,0x0d,0x00,0x00,0xba,0x0b,0x00,
0x00,0x1a,0x0b,0x00,0x00,0x1a,0x0b,0x00,0x00,0xb6,0x0d,0x00,
0x00,0xe6,0x0c,0x00,0x00,0x4c,0x06,0x00,0x00,0x18,0x03,0x00,
0x00,0xf0,0x01,0x00,0x00,0x40,0x00,0x00};
void setup() {
// Serial.begin(9600); //Permet la communication en serial
lcd.begin();
sensors.begin(); //Activation des capteurs
sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
}
void loop() {
lcd.clearBuffer();
//lcd.setCursor(90,32);
lcd.drawXBM( 95, 0, therm_logo_width, therm_logo_height, therm_logo_bits); //à améliorer
lcd.setFont(u8g2_font_logisoso32_tr);
lcd.setCursor(0,32);
sensors.requestTemperatures(); //Demande la température aux capteurs
temp = sensors.getTempCByIndex(0);
String tempString = String(temp,2);
lcd.print(tempString);
lcd.sendBuffer();
// Serial.print("temperature: ");
// Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
// Serial.println(" C");
delay(1000);
}
Edition of icon images XBM files
- on line editor https://xbm.jazzychad.net/ method 1
- method 2 with Gimp 2 define the size eg. 32x32
- draw with the pencil size 1
- export with the XBM format
- open with notepad++
- copy into Arduino IDE sketch
2019 February 23, first draft
Aucun commentaire:
Enregistrer un commentaire