Arduino - Temperatuursensor - OLED

In deze tutorial leren we hoe u Arduino programmeert om de temperatuur te lezen van de DS18B20 one-wire sensor en deze weer te geven op een OLED.

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0-kabel type A/B
1×SSD1306 I2C OLED-Display 128x64
1×SSD1306 I2C OLED-Display 128x32
1×DS18B20 Temperatuursensor (MET Adapter)
1×DS18B20 Temperatuursensor (ZONDER Adapter)
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables STEM V3 Starterskit (Arduino inbegrepen)
1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Aankoopadvies: Veel DS18B20-sensoren op de markt zijn van lage kwaliteit. We raden u ten zeerste aan de sensor van het merk DIYables te kopen via de bovenstaande link. We hebben het getest en het werkte goed.

Over OLED en DS18B20 Temperatuursensor

Als u nog niet bekend bent met OLED en de DS18B20 temperatuursensor (pinout, werking, programmeren, etc.), kunt u meer leren in de volgende tutorials:

Bedradingsschema

Arduino Temperatuursensor OLED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Wij raden aan een DS18B20 sensor te kopen met een bedradingsadapter voor eenvoudige aansluiting. De adapter heeft een ingebouwde weerstand, zodat u geen aparte weerstand in de bedrading hoeft op te nemen.

Arduino DS18B20 Temperatuursensor OLED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Arduino Code - Temperatuur van DS18B20 Temperatuursensor uitlezen en weergeven op OLED

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 2 // Arduino pin connected to DS18B20 sensor's DQ pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature tempSensor(&oneWire); // pass oneWire to DallasTemperature library String tempString; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display tempSensor.begin(); // initialize the sensor tempString.reserve(10); // to avoid fragmenting memory when using String } void loop() { tempSensor.requestTemperatures(); // send the command to get temperatures float tempCelsius = tempSensor.getTempCByIndex(0); // read temperature in Celsius tempString = String(tempCelsius, 2); // two decimal places tempString += char(247) + String("C"); Serial.println(tempString); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(tempString); } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Snelle stappen

  • Open Arduino IDE op uw computer.
  • Ga naar het Bibliotheken icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek op “SSD1306”, en vind de SSD1306 bibliotheek van Adafruit.
  • Klik op de Installeren knop om de bibliotheek te installeren.
Arduino OLED bibliotheek
  • U wordt gevraagd om enkele andere bibliotheekafhankelijkheden te installeren.
  • Klik op de Alles installeren knop om alle afhankelijkheden te installeren.
Arduino Adafruit GFX sensor bibliotheek
  • Zoek op “DallasTemperature”, en vind de DallasTemperature bibliotheek van Miles Burton.
  • Klik op de Installeren knop om de DallasTemperature bibliotheek te installeren.
Arduino Dallas Temperature bibliotheek
  • U wordt gevraagd om een bijkomende bibliotheek te installeren.
  • Klik op de Alles installeren knop om de OneWire bibliotheek te installeren.
Arduino onewire bibliotheek
  • Kopieer de bovenstaande code en open deze in de Arduino IDE.
  • Klik op de Uploaden knop in de Arduino IDE om de code naar de Arduino te uploaden.
  • Plaats de sensor in warm en koud water, of houd de sensor vast met uw hand.
  • Bekijk het resultaat op de OLED display.

※ Notiz:

De bijbehorende code centreert automatisch de tekst horizontaal en verticaal op het OLED-display.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!