Zostrojenie vlastného teplomera Arduino je zábavný a praktický spôsob, ako rozšíriť svoje majstrovské zručnosti, ale kde by ste mali začať? Pridajte sa k nám, keď sa ponoríme do zapojenia a kódovania, ktoré vedie k otáčaniu Arduina, teplotnej sondy DS18B20, a OLED displej na presný digitálny teplomer, ktorý môže dobre fungovať v miestnostiach, akváriách a dokonca vonku.

Čo potrebujete na výrobu vlastného digitálneho teplomera Arduino?

Všetky tieto komponenty možno nájsť na webových stránkach ako eBay a Amazon.

Doska Arduino

Pre tento projekt môžete použiť takmer akékoľvek Arduino s 5V výstupom. Používame Arduino Pro Micro, takže náš hotový teplomer je kompaktný, ale ak sa chcete vyhnúť spájkovaniu pre tento projekt, môžete použiť väčšiu dosku ako Arduino Uno.

Teplotná sonda DS18B20

Snímače teploty DS18B20 možno nájsť ako malé samostatné snímače, dosky plošných spojov s pripojenými snímačmi alebo ako vodotesné sondy na dlhých drôtoch. Vybrali sme si to druhé, pretože nám to umožňuje používať náš teplomer vo vnútri akvária, ale môžete si vybrať akýkoľvek variant teplotného snímača DS18B20. Na rozdiel od iných typov snímačov teploty, DS18B20 poskytujú vášmu Arduinu priamy až digitálny signál, a nie analógové signály, ktoré pochádzajú z možností, ako sú teplotné snímače LM35.

instagram viewer

Obrazovka OLED/LCD

Displej, ktorý si vyberiete pre svoj teplomer, bude mať veľký vplyv na hotový výrobok. Pre náš teplomer sme vybrali 1,3-palcový monochromatický biely OLED displej kompatibilný s I2C, ale môžete si vybrať, čo sa vám páči, ak podporuje I2C.

Ďalšie malé diely

  • 4,7K (kiloohm) odpor
  • Silikón/PVC izolovaný drôt 28 až 22 AWG
  • Doska na krájanie (voliteľné pre tých, ktorí nechcú spájkovať)

Zapojenie vášho teplomera

Zapojenie pre tento projekt je oveľa jednoduchšie, ako si dokážete predstaviť. Pomocou vyššie uvedenej schémy zapojenia si môžete s malým úsilím vytvoriť svoj vlastný digitálny teplomer, ale nižšie uvedený diagram sme tiež rozdelili, aby ste ho ľahšie sledovali.

Zapojenie teplotnej sondy DS18B20

Správne zapojenie teplotnej sondy DS18B20 je pre tento projekt životne dôležité a musíte sa uistiť, že používate odpor 4,7 K, ktorý sme už spomenuli, inak vaša sonda nebude správne fungovať. Sonda sa dodáva s tromi vodičmi: zem (zvyčajne čierny), VCC (zvyčajne červený) a dátový.

  • VCC sa pripája k 5V kolíku na vašom Arduine
  • Zem sa pripája ku kolíku GND na vašom Arduine
  • Dáta sa môžu pripojiť k akémukoľvek digitálnemu kolíku na vašom Arduine (vybrali sme digitálny kolík 15)
  • Dátové a VCC vodiče musia byť tiež navzájom spojené pomocou 4,7K odporu

Zapojenie I2C OLED displeja

Keďže používame pripojenie I2C medzi naším OLED displejom a našim Arduinom, musíme pripojiť iba štyri vodiče, aby sme mohli začať používať náš displej: VCC, Ground, SDA a SCL. Takmer každé moderné Arduino má vstavané piny SDA a SCL, ktoré poskytujú možnosť pripojiť až 128 jedinečných komponentov I2C k jednej doske.

Naše Arduino Pro Micro má SDA na digitálnom kolíku 2 a SCL na digitálnom kolíku 3, ale možno budete musieť pred začatím vyhľadať schému pinoutov konkrétnej dosky, ktorú ste si vybrali.

  • VCC sa pripája k 5V kolíku na vašom Arduine
  • Zem sa pripája ku kolíku GND na vašom Arduine
  • SDA sa pripája ku kolíku SDA na vašom Arduine
  • SCL sa pripája ku kolíku SCL na vašom Arduine

Testovanie vášho obvodu

Je dôležité, aby ste otestovali obvod, ktorý ste vytvorili predtým, ako preň začnete písať konečný kód, ale na otestovanie okruhu, ktorý máte, môžete použiť príklady projektov, ktoré sa dodávajú s knižnicami uvedenými nižšie vyrobené.

Kódovanie vášho snímača teploty a OLED displeja

Kódovanie vášho digitálneho teplomera pre domácich majstrov je zložitejšie ako jeho zapojenie, ale na uľahčenie je možné použiť Arduino IDE.

Výber správnych knižníc

  • Knižnica OLED displeja: Pre naše zobrazenie používame knižnicu Adafruit_SH1106.h, pretože je to knižnica, s ktorou bol navrhnutý. Ďalšie OLED displeje môžu používať svoje vlastné knižnice, ako je knižnica Adafruit_SSD1306.h, a zvyčajne môžete zistiť, ktorú z nich potrebujete, na stránke produktu, z ktorej máte displej.
  • Teplotná sonda DS18B20: Pre našu teplotnú sondu potrebujeme dve knižnice. DallasTemperature.h sa používa na zber údajov o teplote a OneWire.h na umožnenie nášho jednovodičového pripojenia.

Po nainštalovaní a zahrnutí týchto knižníc do vášho projektu by mal váš kód vyzerať približne ako úryvok nižšie. Všimnite si, že sme zahrnuli aj kód na nastavenie kolíkov pre naše komponenty.

#include  //Zobraziť knižnicu
#include
#include //Knižnica teplotných sond
#define OLED_RESET -1
Displej Adafruit_SH1106 (OLED_RESET);
#define ONE_WIRE_BUS 15 //Kolík dátového vodiča teplotnej sondy
OneWire oneWire (ONE_WIRE_BUS); //Povedzte OneWire, ktorý pin používame
DallasTemperature sensors (&oneWire); //Odkaz OneWire na teplotu Dallasu

Budovanie funkcií

  • neplatné nastavenie: Používame štandard nastaviť funkcia na inicializáciu nášho displeja aj našej teplotnej sondy.
  • prázdna slučka: Náš štandard slučka funkcia sa použije iba na volanie nášho Displej funkciu.
  • neplatné zobrazenie: Pridali sme a Displej funkcia, ktorá volá náš tepl funkciu a poskytuje informácie na náš displej.
  • int Temp: Náš tepl funkcia sa používa na získanie údajov o teplote pre naše Displej funkciu.

Po dokončení by to malo vyzerať ako úryvok nižšie.

void setup() {
}
void loop() {
}
void Display() {
}
int Temp() {
}

Kódovanie OLED displeja

Predtým, ako môžeme pridať kód do nášho Displej funkciu, musíme sa uistiť, že OLED panel je inicializovaný v našom neplatné nastavenie funkciu. Najprv použijeme a zobraziť.začať príkaz na spustenie zobrazenia, za ktorým nasleduje a display.clearDisplay aby ste sa uistili, že displej je čistý.

void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C); //Zmena na základe vašej knižnice zobrazenia
display.clearDisplay();
}

Odtiaľto môžeme pridať kód do nášho Displej funkciu. Toto začína ďalším display.clearDisplay pred deklarovaním novej celočíselnej premennej s hodnotou, ktorá volá tepl funkciu (budeme sa tomu venovať neskôr). Potom sme schopní použiť túto premennú na zobrazenie teploty na displeji pomocou nasledujúceho kódu.

void Display() {
display.clearDisplay();
int intTemp = Temp(); //Volá našu funkciu Temp
display.setTextSize (3); //Nastaví veľkosť nášho textu
display.setTextColor (WHITE); //Nastaví farbu nášho textu
display.setCursor (5, 5); //Nastaví pozíciu nášho textu na displeji
display.print (intTemp); //Vytlačí hodnotu poskytnutú funkciou Temp
display.drawCircle (44, 7, 3, WHITE); //Nakreslí symbol stupňa
display.setCursor (50, 5);
display.print("C"); //Pridáva C na označenie, že naša teplota je v stupňoch Celzia
}

Kódovanie teplotnej sondy DS18B20

Rovnako ako náš displej, aj naša teplotná sonda potrebuje kód nastavenia na inicializáciu komponentu.

void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
senzory.begin();
}

Ďalej je čas naprogramovať samotnú sondu a musíme pridať kód do nášho tepl funkciu. Najprv si vyžiadame teplotu z našej sondy, potom zaznamenáme výsledok ako pohyblivú premennú a prevedieme ho na celé číslo. Ak je tento proces úspešný, teplota sa vráti na Displej funkciu.

int Temp() {
sensors.requestTemperatures(); // Odošlite príkaz na získanie teplôt
float tempC = sensors.getTempCByIndex (0); //To vyžaduje teplotu v stupňoch Celzia a priradí ju k float
int intTemp = (int) tempC; //Toto skonvertuje float na celé číslo
if (tempC != DEVICE_DISCONNECTED_C) //Skontrolujte, či naše čítanie fungovalo
{
return intTemp; //Vráťte našu hodnotu teploty do funkcie Display
}
}

Finishing Up

Nakoniec musíme povedať to hlavné slučka funkciu volať náš Displej fungovať s každým cyklom kódu, takže nám zostane projekt, ktorý vyzerá takto.

#include  //Zobraziť knižnicu
#include
#include //Knižnica teplotných sond
#define OLED_RESET -1
Displej Adafruit_SH1106 (OLED_RESET);
#define ONE_WIRE_BUS 15 //Kolík dátového vodiča teplotnej sondy
OneWire oneWire (ONE_WIRE_BUS); //Povedzte OneWire, ktorý pin používame
DallasTemperature sensors (&oneWire); //Odkaz OneWire na teplotu Dallasu
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
senzory.begin();
}
void loop() {
Display(); //Volá našu funkciu zobrazenia
}
void Display() {
display.clearDisplay();
int intTemp = Temp(); //Volá našu funkciu Temp
display.setTextSize (3); //Nastaví veľkosť nášho textu
display.setTextColor (WHITE); //Nastaví farbu nášho textu
display.setCursor (5, 5); //Nastaví pozíciu nášho textu na displeji
display.print (intTemp); //Vytlačí hodnotu poskytnutú funkciou Temp
display.drawCircle (44, 7, 3, WHITE); //Nakreslí symbol stupňa
display.setCursor (50, 5);
display.print("C"); //Pridáva C na označenie, že naša teplota je v stupňoch Celzia
}
int Temp() {
sensors.requestTemperatures(); // Odošlite príkaz na získanie teplôt
float tempC = sensors.getTempCByIndex (0); //To vyžaduje teplotu v stupňoch Celzia a priradí ju k float
int intTemp = (int) tempC; //Toto skonvertuje float na celé číslo
if (tempC != DEVICE_DISCONNECTED_C) //Skontrolujte, či naše čítanie fungovalo
{
return intTemp; //Vráťte našu hodnotu teploty do funkcie Display
}
}

Vytvorenie DIY digitálneho teplomera

Tento projekt by mal byť zábavný a informatívny a zároveň by vám mal poskytnúť možnosť vyrobiť si praktický predmet. Tento kód sme navrhli tak, aby bol čo najjednoduchší, ale môžete ho použiť ako základ pre komplikovanejší projekt, keď sa budete učiť.

15 skvelých projektov Arduino pre začiatočníkov

Zaujímajú vás projekty Arduino, ale nie ste si istí, kde začať? Tieto projekty pre začiatočníkov vás naučia, ako začať.

Prečítajte si ďalej

zdieľamTweetujteEmail
Súvisiace témy
  • DIY
  • Arduino
  • Elektronika
O autorovi
Samuel L. Garbett (35 publikovaných článkov)

Samuel je technologický spisovateľ so sídlom v Spojenom kráľovstve s vášňou pre všetko, čo si sami urobia. Samuel, ktorý začal podnikať v oblasti vývoja webu a 3D tlače, spolu s dlhoročnou prácou spisovateľa ponúka jedinečný pohľad do sveta technológií. Zameriava sa hlavne na DIY technické projekty a nemiluje nič viac ako zdieľanie zábavných a vzrušujúcich nápadov, ktoré si môžete vyskúšať doma. Mimo práce možno Samuela zvyčajne nájsť bicyklovať, hrať počítačové videohry alebo sa zúfalo pokúšať komunikovať so svojím krabom.

Viac od Samuela L. Garbett

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber