Izrada vašeg DIY Arduino termometra zabavan je i praktičan način da proširite svoje vještine petljanja, ali gdje biste trebali početi? Pridružite nam se dok ulazimo u ožičenje i kodiranje koje ide u pretvaranje Arduina, temperaturne sonde DS18B20, i OLED zaslon u precizan digitalni termometar koji može dobro raditi u sobama, akvarijumima, pa čak i na otvorenom.

Što vam je potrebno da napravite DIY Arduino digitalni termometar?

Sve ove komponente mogu se pronaći na web stranicama kao što su eBay i Amazon.

Arduino ploča

Za ovaj projekt možete koristiti bilo koji Arduino s izlazom od 5 V. Koristimo Arduino Pro Micro tako da naš gotov termometar bude kompaktan, ali možete koristiti veću ploču kao što je Arduino Uno ako želite izbjeći lemljenje za ovaj projekt.

DS18B20 temperaturna sonda

Senzori temperature DS18B20 mogu se naći kao mali samostalni senzori, PCB s priključenim senzorima ili kao vodootporne sonde na dugim žicama. Odabrali smo potonje, jer nam to omogućuje korištenje našeg termometra unutar akvarija, ali možete odabrati bilo koju varijantu senzora temperature DS18B20. Za razliku od drugih tipova temperaturnih senzora, DS18B20s osiguravaju izravan-digitalni signal vašem Arduinu, umjesto analognih signala koji dolaze iz opcija poput LM35 temperaturnih senzora.

instagram viewer

OLED/LCD ekran

Zaslon koji odaberete za svoj termometar imat će veliki utjecaj na gotov proizvod. Odabrali smo 1,3-inčni I2C kompatibilan monokromatski bijeli OLED zaslon za naš termometar, ali možete odabrati što god želite sve dok podržava I2C.

Dodatni mali dijelovi

  • Otpornik 4,7K (kilooma).
  • 28 do 22 AWG silikonsko/PVC izolirana žica
  • Matična ploča (opcija za one koji ne žele lemiti)

Ožičenje vašeg DIY termometra

Ožičenje za ovaj projekt daleko je jednostavnije nego što možete zamisliti. Koristeći gornji dijagram strujnog kruga, možete izraditi svoj vlastiti digitalni termometar "uradi sam" uz malo truda, ali smo također rastavili dijagram u nastavku kako bismo ga lakše pratili.

Ožičenje temperaturne sonde DS18B20

Ispravno ožičenje temperaturne sonde DS18B20 ključno je za ovaj projekt i morate biti sigurni da koristite 4,7K otpornik koji smo ranije spomenuli ili vaša sonda neće ispravno raditi. Sonda dolazi s tri žice: Ground (obično crna), VCC (obično crvena) i Data.

  • VCC se spaja na 5V pin na vašem Arduinu
  • Uzemljenje se spaja na GND pin na vašem Arduinu
  • Podaci se mogu spojiti na bilo koji digitalni pin na vašem Arduinu (odabrali smo digitalni pin 15)
  • Žice za podatke i VCC također moraju biti povezane jedna s drugom pomoću otpornika od 4,7K

Ožičenje I2C OLED zaslona

Kako koristimo I2C vezu između našeg OLED zaslona i našeg Arduina, moramo spojiti samo četiri žice prije nego što počnemo koristiti naš zaslon: VCC, Ground, SDA i SCL. Gotovo svaki moderni Arduino ima ugrađene SDA i SCL pinove, pružajući mogućnost povezivanja do 128 jedinstvenih I2C komponenti na jednu ploču.

Naš Arduino Pro Micro ima SDA na digitalnom pinu 2 i SCL na digitalnom pinu 3, ali možda ćete morati potražiti pinout dijagram određene ploče koju ste odabrali prije nego što počnete.

  • VCC se spaja na 5V pin na vašem Arduinu
  • Uzemljenje se spaja na GND pin na vašem Arduinu
  • SDA se povezuje na SDA pin na vašem Arduinu
  • SCL se povezuje na SCL pin na vašem Arduinu

Testiranje vašeg kruga

Ključno je da testirate sklop koji ste napravili prije nego što počnete pisati konačni kod za njega, ali možete koristiti primjere projekata koji dolaze s bibliotekama o kojima se raspravlja u nastavku da biste testirali sklop koji imate napravio.

Kodiranje vašeg temperaturnog senzora i OLED zaslona

Kodiranje vašeg DIY digitalnog termometra teže je od spajanja, ali Arduino IDE se može koristiti za to kako bi bilo lakše.

Odabir ispravnih knjižnica

  • Biblioteka OLED zaslona: Za naš zaslon koristimo biblioteku Adafruit_SH1106.h jer je to knjižnica s kojom je dizajnirana za rad. Ostali OLED zasloni mogu koristiti svoje vlastite biblioteke, poput biblioteke Adafruit_SSD1306.h, a obično možete saznati koja vam je potrebna na stranici proizvoda s koje ste dobili svoj zaslon.
  • DS18B20 temperaturna sonda: Potrebne su nam dvije biblioteke za našu temperaturnu sondu. DallasTemperature.h se koristi za prikupljanje podataka o temperaturi, a OneWire.h za omogućavanje naše jednožične veze.

Nakon što su te knjižnice instalirane i uključene u vaš projekt, vaš bi kod trebao izgledati otprilike poput isječka u nastavku. Imajte na umu da smo također uključili kod za postavljanje pinova za naše komponente.

#uključiti  //Prikaz knjižnice
#uključiti
#uključiti //Biblioteka temp sonde
#define OLED_RESET -1
Adafruit_SH1106 zaslon (OLED_RESET);
#define ONE_WIRE_BUS 15 //Pin žice podatkovne sonde za temperaturu
OneWire oneWire (ONE_WIRE_BUS); //Recite OneWireu koji pin koristimo
Senzori temperature Dallas (&oneWire); //OneWire upućivanje na temperaturu u Dallasu

Izgradnja funkcija

  • postavka praznine: Koristimo standard postaviti funkcija za inicijalizaciju našeg zaslona i naše temperaturne sonde.
  • praznina petlja: Naš standard petlja funkcija će se koristiti samo za pozivanje našeg Prikaz funkcija.
  • void Display: Dodali smo a Prikaz funkcija koja poziva našu Temp funkcionira i daje informacije našem zaslonu.
  • int Temp: Naš Temp funkcija se koristi za dobivanje očitanja temperature za naše Prikaz funkcija.

Nakon dovršetka, ovo bi trebalo izgledati kao isječak u nastavku.

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

Kodiranje OLED zaslona

Prije nego što možemo dodati kod u naše Prikaz funkciju, moramo biti sigurni da je OLED ploča inicijalizirana u našem postavka praznine funkcija. Prvo, koristimo a prikaz.početi naredba za pokretanje prikaza, nakon čega slijedi a display.clearDisplay naredbu kako biste bili sigurni da je zaslon čist.

void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C); //Promijenite na temelju vaše biblioteke prikaza
display.clearDisplay();
}

Odavde možemo dodati kod u naše Prikaz funkcija. Ovo počinje s drugim display.clearDisplay naredbu, prije deklariranja nove cjelobrojne varijable s vrijednošću koja poziva Temp funkciju (o tome ćemo govoriti kasnije). Zatim možemo koristiti ovu varijablu za prikaz temperature na zaslonu pomoću sljedećeg koda.

void Display() {
display.clearDisplay();
int intTemp = Temp(); //Poziva našu Temp funkciju
display.setTextSize (3); //Postavlja našu veličinu teksta
display.setTextColor (BIJELI); //Postavlja boju našeg teksta
display.setCursor (5, 5); //Postavlja poziciju našeg teksta na zaslonu
display.print (intTemp); //Ispisuje vrijednost koju daje funkcija Temp
display.drawCircle (44, 7, 3, BIJELI); //Nacrtava simbol stupnja
display.setCursor (50, 5);
display.print("C"); //Dodaje C kako bi označio da je naša temperatura u Celzijusima
}

Kodiranje temperaturne sonde DS18B20

Kao i naš zaslon, naša temperaturna sonda također treba kod za postavljanje za inicijalizaciju komponente.

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

Zatim, vrijeme je da programiramo samu sondu i moramo dodati kod u našu Temp funkcija. Prvo ćemo zatražiti temperaturu od naše sonde, nakon čega ćemo zabilježiti rezultat kao varijablu s plutanjem i pretvoriti ga u cijeli broj. Ako je ovaj proces uspješan, temperatura se vraća na Prikaz funkcija.

int Temp() {
senzori.requestTemperature(); // Pošaljite naredbu za dobivanje temperatura
float tempC = senzori.getTempCByIndex (0); //Ovo zahtijeva temperaturu u Celzijusima i dodjeljuje je float-u
int intTemp = (int) tempC; //Ovo pretvara float u cijeli broj
if (tempC != DEVICE_DISCONNECTED_C) //Provjerite je li naše očitanje radilo
{
vrati intTemp; //Vratite našu vrijednost temperature u funkciju Display
}
}

Dovršavanje

Na kraju, samo trebamo reći naše glavno petlja funkciju nazvati našu Prikaz funkcionirati sa svakim ciklusom koda, ostavljajući nam projekt koji izgleda ovako.

#uključiti  //Prikaz knjižnice
#uključiti
#uključiti //Biblioteka temp sonde
#define OLED_RESET -1
Adafruit_SH1106 zaslon (OLED_RESET);
#define ONE_WIRE_BUS 15 //Pin žice podatkovne sonde za temperaturu
OneWire oneWire (ONE_WIRE_BUS); //Recite OneWireu koji pin koristimo
Senzori temperature Dallas (&oneWire); //OneWire upućivanje na temperaturu u Dallasu
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
senzori.begin();
}
void loop() {
Prikaz(); //Poziva našu funkciju prikaza
}
void Display() {
display.clearDisplay();
int intTemp = Temp(); //Poziva našu Temp funkciju
display.setTextSize (3); //Postavlja našu veličinu teksta
display.setTextColor (BIJELI); //Postavlja boju našeg teksta
display.setCursor (5, 5); //Postavlja poziciju našeg teksta na zaslonu
display.print (intTemp); //Ispisuje vrijednost koju daje funkcija Temp
display.drawCircle (44, 7, 3, BIJELI); //Nacrtava simbol stupnja
display.setCursor (50, 5);
display.print("C"); //Dodaje C kako bi označio da je naša temperatura u Celzijusima
}
int Temp() {
senzori.requestTemperature(); // Pošaljite naredbu za dobivanje temperatura
float tempC = senzori.getTempCByIndex (0); //Ovo zahtijeva temperaturu u Celzijusima i dodjeljuje je float-u
int intTemp = (int) tempC; //Ovo pretvara float u cijeli broj
if (tempC != DEVICE_DISCONNECTED_C) //Provjerite je li naše očitanje radilo
{
vrati intTemp; //Vratite našu vrijednost temperature u funkciju Display
}
}

Izrada DIY digitalnog termometra

Ovaj bi projekt trebao biti zabavan i informativan, a ujedno vam dati priliku da napravite praktičan predmet. Dizajnirali smo ovaj kod kako bi bio što jednostavniji, ali ga možete koristiti kao temelj za kompliciraniji projekt dok učite.

15 sjajnih Arduino projekata za početnike

Zainteresirani ste za Arduino projekte, ali niste sigurni odakle početi? Ovi početnički projekti će vas naučiti kako započeti.

Pročitajte dalje

UdioCvrkutE-mail
Povezane teme
  • DIY
  • Arduino
  • Elektronika
O autoru
Samuel L. Garbett (Objavljeno 35 članaka)

Samuel je pisac o tehnologiji sa sjedištem u Ujedinjenom Kraljevstvu sa strašću za sve stvari DIY. Nakon što je pokrenuo poslove na području web razvoja i 3D ispisa, uz dugogodišnji rad kao pisac, Samuel nudi jedinstven uvid u svijet tehnologije. Usredotočujući se uglavnom na DIY tehničke projekte, ne voli ništa više od dijeljenja zabavnih i uzbudljivih ideja koje možete isprobati kod kuće. Izvan posla, Samuela se obično može zateći kako vozi bicikl, igra PC video igrice ili očajnički pokušava komunicirati sa svojim ljubimcem rakom.

Više od Samuela L. Garbett

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu