Arduino UNO R4 - Temperatuursensor - OLED

In deze handleiding leren we hoe u een Arduino UNO R4 programmeert om de temperatuur van een DS18B20 sensor uit te lezen en deze weer te geven op een OLED-scherm.

Arduino UNO R4 DS18B20 Temperatuursensor OLED

Benodigde Hardware

1×Arduino UNO R4 WiFi or Arduino UNO R4 Minima
1×Alternatief: DIYables STEM V4 IoT, Compatible with Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Alternatief)
1×USB-kabel Type-C
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 Draden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno R4
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno R4
1×(Aanbevolen) Behuizing voor Arduino Uno R4
1×(Aanbevolen) Stromsplitter voor Arduino Uno R4
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables STEM V4 IoT 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

Leer over OLED en de DS18B20 Temperatuursensor (inclusief pinout, functionaliteit en programmering) in deze tutorials:

Bedradingsschema

Arduino UNO R4 DS18B20 Temperatuursensor OLED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

We raden aan om een DS18B20 sensor met een bedradingsadapter te kopen voor een eenvoudige opstelling. De adapter bevat een weerstand, dus u heeft geen extra weerstand nodig voor de bedrading.

Arduino UNO R4 Code - Temperatuur van DS18B20 Temperatuursensor en weergave op OLED

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define OLED_WIDTH 128 // OLED display width, in pixels #define OLED_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 8 // The Arduino UNO R4 pin connected to DS18B20 sensor Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library String temperature_str; 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 DS18B20.begin(); // initialize the sensor temperature_str.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature_C = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature_str = String(temperature_C, 2); // two decimal places temperature_str += char(247) + String("C"); Serial.println(temperature_str); // print the temperature in Celsius to Serial Monitor oled_display_center(temperature_str); } void oled_display_center(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // center the display both horizontally and vertically oled.clearDisplay(); // clear display oled.setCursor((OLED_WIDTH - width) / 2, (OLED_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg dan de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Sluit de OLED en temperatuursensor aan op het Arduino Uno R4 board volgens het bijgeleverde schema.
  • Verbind het Arduino Uno R4 board met uw computer via een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 board (bijv. Arduino Uno R4 WiFi) en COM-poort.
  • Klik op het Libraries pictogram aan de linkerkant van de Arduino IDE.
  • Typ "SSD1306" in het zoekveld en zoek naar de SSD1306 library van Adafruit.
  • Druk op de "Install" knop om de library toe te voegen.
Arduino UNO R4 OLED library
  • U moet enkele extra libraries installeren
  • Klik op de Install All knop om alle benodigde libraries te installeren.
Arduino UNO R4 Adafruit GFX sensor library
  • Typ "DallasTemperature" in het zoekveld en zoek naar de DallasTemperature library van Miles Burton.
  • Druk op de Install knop om de DallasTemperature library te installeren.
Arduino UNO R4 Dallas Temperature library
  • U moet de library afhankelijkheid installeren.
  • Klik op de Install All knop om de OneWire library te installeren.
Arduino UNO R4 onewire library
  • Kopieer de bovenstaande code en open deze in Arduino IDE
  • Druk op de Upload knop in Arduino IDE om de code naar Arduino UNO R4 over te dragen
  • Plaats de sensor in warm of koud water, of houd deze in uw hand
  • Bekijk de weergave op de OLED voor resultaten

※ Notiz:

De 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.

Reacties

※ 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!