A DIY Arduino hőmérő megépítése szórakoztató és praktikus módja annak, hogy bővítse trükközési készségeit, de hol kezdje el? Csatlakozzon hozzánk, amikor elmélyülünk a vezetékezésben és a kódolásban, amely egy Arduino, egy DS18B20 hőmérsékletszonda forgatásához szükséges, és egy OLED-kijelzőt egy precíz digitális hőmérővé, amely jól működik szobákban, akváriumokban és még szabadban.
Mire van szüksége egy barkács Arduino digitális hőmérő elkészítéséhez?
Mindezek az összetevők megtalálhatók olyan webhelyeken, mint az eBay és az Amazon.
Egy Arduino tábla
Szinte bármilyen 5 V-os kimenettel rendelkező Arduino használható ehhez a projekthez. Arduino Pro Micro-t használunk, hogy a kész hőmérőnk kompakt legyen, de használhat nagyobb táblát, például egy Arduino Uno-t, ha szeretné elkerülni a forrasztást ebben a projektben.
DS18B20 hőmérséklet szonda
A DS18B20 hőmérséklet-érzékelők kis önálló érzékelőkként, érzékelőkkel ellátott PCB-kként vagy vízálló szondákként, hosszú vezetékeken találhatók. Mi az utóbbit választottuk, mert így akváriumban is használhatjuk hőmérőnket, de a DS18B20 hőmérséklet-érzékelő bármelyik változatát választhatja. Más típusú hőmérséklet-érzékelőkkel ellentétben a DS18B20s közvetlen digitális jelet biztosít az Arduino számára, nem pedig az olyan opciókból származó analóg jeleket, mint az LM35 hőmérséklet-érzékelők.
OLED/LCD képernyő
A hőmérőhöz választott kijelző nagy hatással lesz a késztermékre. Hőmérőnknek egy 1,3 hüvelykes I2C-kompatibilis, monokróm fehér OLED kijelzőt választottunk, de választhat, amit szeretne, amennyiben az támogatja az I2C-t.
További kis alkatrészek
- 4,7K (kiloohm) ellenállás
- 28-22 AWG szilikon/PVC szigetelt vezeték
- Kenyérlemez (opcionális azoknak, akik nem akarnak forrasztani)
A DIY hőmérő bekötése
A projekt huzalozása sokkal egyszerűbb, mint gondolná. A fenti kapcsolási rajz segítségével kis erőfeszítéssel elkészítheti saját, barkácsolt digitális hőmérőjét, de az alábbi diagramot is bontottuk, hogy könnyebb legyen követni.
A DS18B20 hőmérsékletszonda bekötése
A DS18B20 hőmérsékletszonda megfelelő bekötése létfontosságú ehhez a projekthez, és meg kell győződnie arról, hogy a korábban említett 4,7K ellenállást használja, különben a szonda nem fog megfelelően működni. A szondához három vezeték tartozik: föld (általában fekete), VCC (általában piros) és adat.
- A VCC az Arduino 5 V-os érintkezőjéhez csatlakozik
- A föld az Arduino GND érintkezőjéhez csatlakozik
- Az adatok az Arduino bármely digitális tűjéhez csatlakozhatnak (a 15-ös digitális tűt választottuk)
- Az adat- és VCC vezetékeket is össze kell kötni egy 4,7K-os ellenállással
Az I2C OLED kijelző bekötése
Mivel I2C-kapcsolatot használunk az OLED-kijelzőnk és az Arduinónk között, csak négy vezetéket kell csatlakoztatnunk ahhoz, hogy elkezdhessük használni a kijelzőt: VCC, Ground, SDA és SCL. Szinte minden modern Arduino rendelkezik beépített SDA és SCL érintkezőkkel, amelyek lehetővé teszik akár 128 egyedi I2C komponens csatlakoztatását egyetlen kártyához.
Az Arduino Pro Micro készülékünkben SDA a 2. digitális érintkezőn, SCL pedig a 3. digitális tűn található, de előfordulhat, hogy mielőtt elkezdené, meg kell keresnie a kiválasztott kártya kivezetési diagramját.
- A VCC az Arduino 5 V-os érintkezőjéhez csatlakozik
- A föld az Arduino GND érintkezőjéhez csatlakozik
- Az SDA az Arduino SDA tűjéhez csatlakozik
- Az SCL az Arduino SCL érintkezőjéhez csatlakozik
Az áramkör tesztelése
Nagyon fontos, hogy tesztelje az elkészített áramkört, mielőtt elkezdi írni a végső kódot, de az alábbiakban tárgyalt könyvtárakhoz tartozó példaprojekteket használhatja a meglévő áramkör tesztelésére készült.
Hőmérséklet-érzékelő és OLED-kijelző kódolása
A DIY digitális hőmérő kódolása bonyolultabb, mint a bekötés, de az Arduino IDE használható erre, hogy megkönnyítse.
A megfelelő könyvtárak kiválasztása
- OLED kijelzőkönyvtár: A megjelenítésünkhöz az Adafruit_SH1106.h könyvtárat használjuk, mivel ez az a könyvtár, amellyel együttműködni készült. Egyéb OLED kijelzők használhatják saját könyvtáraikat, például az Adafruit_SSD1306.h könyvtárat, és általában arról a termékoldalról tudhatja meg, amelyikre van szüksége.
- DS18B20 hőmérséklet szonda: Két könyvtárra van szükségünk a hőmérséklet-szondánkhoz. A DallasTemperature.h a hőmérsékleti adatok gyűjtésére szolgál, a OneWire.h pedig az egyvezetékes kapcsolat lehetővé tételére.
Miután ezeket a könyvtárakat telepítette és beépítette a projektbe, a kódnak az alábbi részlethez hasonlónak kell lennie. Ne feledje, hogy kódot is mellékeltünk az összetevők érintkezőinek beállításához.
#beleértve //Könyvtár megjelenítése
#beleértve
#beleértve //Temp probe könyvtár
#define OLED_RESET -1
Adafruit_SH1106 kijelző (OLED_RESET);
#define ONE_WIRE_BUS 15 //Hőmérséklet-szonda adatvezeték érintkezője
OneWire oneWire (ONE_WIRE_BUS); //Mondja meg a OneWire-nek, hogy melyik tűt használjuk
Dallas hőmérséklet-érzékelők (&oneWire); //OneWire hivatkozás a Dallas hőmérsékletre
A funkciók felépítése
- üres beállítás: A szabványt használjuk beállít funkció a kijelzőnk és a hőmérséklet-szondánk inicializálásához.
- üres hurok: A mi szabványunk hurok funkció csak a mi hívására lesz használva Kijelző funkció.
- üres kijelző: Hozzáadtuk a Kijelző függvény, amely meghívja a mi Temp funkciót, és információkat szolgáltat a kijelzőnknek.
- int Temp: A miénk Temp függvény segítségével leolvashatjuk a hőmérsékletet Kijelző funkció.
Ha elkészült, ennek úgy kell kinéznie, mint az alábbi részlet.
void setup() {
}
void loop() {
}
void Display() {
}
int Temp() {
}
Az OLED kijelző kódolása
Mielőtt kódot adhatnánk hozzá Kijelző funkciót, meg kell győződnünk arról, hogy az OLED panel inicializálva van a mi üres beállítás funkció. Először is használjuk a display.begin parancsot a megjelenítés elindításához, majd a display.clearDisplay parancsot, hogy megbizonyosodjon arról, hogy a kijelző tiszta-e.
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C); //Módosítás a megjelenítési könyvtár alapján
display.clearDisplay();
}
Innentől kódot adhatunk hozzá Kijelző funkció. Ez egy másikkal kezdődik display.clearDisplay parancsot, mielőtt deklarálna egy új egész változót olyan értékkel, amely meghívja a Temp funkciót (erre később kitérünk). Ezután ezt a változót használhatjuk a hőmérséklet megjelenítésére a kijelzőn a következő kód segítségével.
void Display() {
display.clearDisplay();
int intTemp = Temp(); //Meghívja a Temp függvényünket
display.setTextSize (3); //Beállítja a szöveg méretét
display.setTextColor (FEHÉR); //Beállítja a szöveg színét
display.setCursor (5, 5); //Beállítja a szöveg pozícióját a kijelzőn
display.print (intTemp); //Kiírja a Temp függvény által biztosított értéket
display.drawCircle (44, 7, 3, FEHÉR); //Fokozat szimbólumot rajzol
display.setCursor (50, 5);
display.print("C"); //C hozzáadásával jelzi, hogy a hőmérsékletünk Celsius fokban van
}
A DS18B20 hőmérsékletszonda kódolása
A kijelzőnkhoz hasonlóan a hőmérséklet-szondánknak is beállítási kódra van szüksége az alkatrész inicializálásához.
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
sensors.begin();
}
Ezután ideje programozni magát a szondát, és hozzá kell adnunk kódot a sajátunkhoz Temp funkció. Először lekérjük a hőmérsékletet a szondánktól, majd az eredményt lebegő változóként rögzítjük és egész számmá konvertáljuk. Ha ez a folyamat sikeres, a hőmérséklet visszaáll a Kijelző funkció.
int Temp() {
sensors.requestTemperatures(); // Küldje el a parancsot a hőmérsékletek lekéréséhez
float tempC = sensors.getTempCByIndex (0); //Ez Celsiusban kéri a hőmérsékletet és hozzárendeli egy lebegőhöz
int intTemp = (int) tempC; //Ez a lebegőpontot egész számmá alakítja
if (tempC != DEVICE_DISCONNECTED_C) //Ellenőrizze, működött-e az olvasás
{
return intTemp; //Hőmérsékletértékünket visszaállítjuk a Display függvénybe
}
}
Befejezés
Végül csak el kell mondanunk a legfontosabbat hurok funkciót, hogy hívja a mi Kijelző függvényt a kód minden ciklusával, így egy ilyen projektet hagyunk magunk mögött.
#beleértve //Könyvtár megjelenítése
#beleértve
#beleértve //Temp probe könyvtár
#define OLED_RESET -1
Adafruit_SH1106 kijelző (OLED_RESET);
#define ONE_WIRE_BUS 15 //Hőmérséklet-szonda adatvezeték érintkezője
OneWire oneWire (ONE_WIRE_BUS); //Mondja meg a OneWire-nek, hogy melyik tűt használjuk
Dallas hőmérséklet-érzékelők (&oneWire); //OneWire hivatkozás a Dallas hőmérsékletre
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
sensors.begin();
}
void loop() {
Kijelző(); //Meghívja a megjelenítési függvényünket
}
void Display() {
display.clearDisplay();
int intTemp = Temp(); //Meghívja a Temp függvényünket
display.setTextSize (3); //Beállítja a szöveg méretét
display.setTextColor (FEHÉR); //Beállítja a szöveg színét
display.setCursor (5, 5); //Beállítja a szöveg pozícióját a kijelzőn
display.print (intTemp); //Kiírja a Temp függvény által biztosított értéket
display.drawCircle (44, 7, 3, FEHÉR); //Fokozat szimbólumot rajzol
display.setCursor (50, 5);
display.print("C"); //C hozzáadásával jelzi, hogy a hőmérsékletünk Celsius fokban van
}
int Temp() {
sensors.requestTemperatures(); // Küldje el a parancsot a hőmérsékletek lekéréséhez
float tempC = sensors.getTempCByIndex (0); //Ez Celsiusban kéri a hőmérsékletet és hozzárendeli egy lebegőhöz
int intTemp = (int) tempC; //Ez a lebegőpontot egész számmá alakítja
if (tempC != DEVICE_DISCONNECTED_C) //Ellenőrizze, működött-e az olvasás
{
return intTemp; //Hőmérsékletértékünket visszaállítjuk a Display függvénybe
}
}
DIY digitális hőmérő készítése
Ennek a projektnek szórakoztatónak és informatívnak kell lennie, ugyanakkor lehetőséget kell adnia egy praktikus tárgy elkészítésére. Ezt a kódot úgy alakítottuk ki, hogy a lehető legegyszerűbb legyen, de a tanulás során felhasználhatja egy bonyolultabb projekt alapjaként.
Érdekelnek az Arduino projektek, de nem tudod, hol kezdd? Ezek a kezdő projektek megtanítják Önnek, hogyan kezdjen hozzá.
Olvassa el a következőt
- DIY
- Arduino
- Elektronika

Samuel az Egyesült Királyságban élő technológiai író, aki minden barkácsolás iránti szenvedéllyel foglalkozik. A webfejlesztés és a 3D nyomtatás területén indított vállalkozást, valamint sokéves írói munkát Samuel egyedülálló betekintést nyújt a technológia világába. Főleg a barkácsolástechnikai projektekre összpontosítva nem szeret jobban, mint szórakoztató és izgalmas ötleteket megosztani, amelyeket otthon is kipróbálhat. A munkán kívül Samuelt általában biciklizni, számítógépes videojátékokat játszani, vagy kétségbeesetten próbál kommunikálni kedvenc rákjával.
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Kattintson ide az előfizetéshez