Tee-se-itse Arduino-lämpömittarin rakentaminen on hauska ja käytännöllinen tapa kehittää taitojasi, mutta mistä sinun pitäisi aloittaa? Liity joukkoomme, kun perehdymme johdotukseen ja koodaukseen, joka liittyy Arduinon, DS18B20-lämpötila-anturin, kääntämiseen, ja OLED-näytöstä tarkka digitaalinen lämpömittari, joka toimii hyvin huoneissa, akvaarioissa ja jopa ulkona.
Mitä tarvitset digitaalisen Arduino-lämpömittarin tekemiseen?
Kaikki nämä komponentit löytyvät verkkosivustoilta, kuten eBay ja Amazon.
Arduino-levy
Voit käyttää tähän projektiin melkein mitä tahansa Arduinoa, jossa on 5 V ulostulo. Käytämme Arduino Pro Microa, jotta valmis lämpömittarimme on kompakti, mutta voit käyttää suurempaa levyä, kuten Arduino Unoa, jos haluat välttää juottamista tässä projektissa.
Lämpötila-anturi DS18B20
DS18B20 lämpötila-anturit löytyvät pieninä erillisinä antureina, piirilevyinä antureilla tai vesitiiviinä antureina pitkissä johtimissa. Valitsimme jälkimmäisen, koska sen avulla voimme käyttää lämpömittariamme akvaariossa, mutta voit valita minkä tahansa muunnelman DS18B20 lämpötila-anturista. Toisin kuin muun tyyppiset lämpötila-anturit, DS18B20s tarjoavat suoran digitaalisen signaalin Arduinollesi analogisten signaalien sijaan, jotka tulevat lisävarusteista, kuten LM35-lämpötila-antureista.
OLED/LCD-näyttö
Lämpömittarillesi valitsemallasi näytöllä on suuri vaikutus valmiiseen tuotteeseen. Valitsimme lämpömittariamme 1,3 tuuman I2C-yhteensopivan yksivärisen valkoisen OLED-näytön, mutta voit valita mitä haluat, kunhan se tukee I2C: tä.
Muita pieniä osia
- 4,7K (kiloohmin) vastus
- 28-22 AWG silikoni/PVC-eristetty johto
- Leipälauta (valinnainen niille, jotka eivät halua juottaa)
Tee-se-itse-lämpömittarin johdotus
Tämän projektin johdotus on paljon yksinkertaisempaa kuin voisi kuvitella. Yllä olevaa kytkentäkaaviota käyttämällä voit luoda oman tee-se-itse-digitaalilämpömittarin pienellä vaivalla, mutta olemme myös hajottaneet alla olevan kaavion, jotta sitä olisi helpompi seurata.
Lämpötila-anturin DS18B20 johdotus
DS18B20-lämpötila-anturin johdotus oikein on tämän projektin kannalta elintärkeää, ja sinun on varmistettava, että käytät aiemmin mainitsemaamme 4,7K vastusta tai anturisi ei toimi kunnolla. Anturin mukana tulee kolme johtoa: maadoitus (yleensä musta), VCC (yleensä punainen) ja data.
- VCC liitetään Arduinosi 5 V: n nastaan
- Maa kytkeytyy Arduinosi GND-nastaan
- Data voidaan yhdistää mihin tahansa Arduinosi digitaaliseen nastaan (valitsimme digitaalisen nastan 15)
- Data- ja VCC-johdot on myös kytkettävä toisiinsa 4,7K vastuksella
I2C OLED -näytön johdotus
Koska käytämme I2C-yhteyttä OLED-näytömme ja Arduinon välillä, meidän on kytkettävä vain neljä johtoa, ennen kuin voimme aloittaa näytön käytön: VCC, Ground, SDA ja SCL. Melkein jokaisessa modernissa Arduinossa on sisäänrakennetut SDA- ja SCL-nastat, jotka mahdollistavat jopa 128 ainutlaatuisen I2C-komponentin yhdistämisen yhdelle piirilevylle.
Arduino Pro Microssamme on SDA digitaalisessa nastassa 2 ja SCL digitaalisessa nastassa 3, mutta sinun on ehkä etsittävä valitsemasi levyn liitäntäkaaviota ennen aloittamista.
- VCC liitetään Arduinosi 5 V: n nastaan
- Maa kytkeytyy Arduinosi GND-nastaan
- SDA muodostaa yhteyden Arduinosi SDA-nastan kanssa
- SCL muodostaa yhteyden Arduinosi SCL-nastan kanssa
Testaa piiriäsi
On tärkeää, että testaat tekemäsi piirin ennen kuin alat kirjoittaa sille lopullista koodia, mutta voit käyttää alla käsiteltyjen kirjastojen mukana tulevia esimerkkiprojekteja testataksesi piiriäsi tehty.
Lämpötila-anturin ja OLED-näytön koodaaminen
Digitaalisen lämpömittarin koodaus on hankalampaa kuin sen kytkeminen, mutta Arduino IDE: tä voidaan käyttää tähän helpottamaan.
Oikeiden kirjastojen valitseminen
- OLED-näyttökirjasto: Käytämme näytössämme Adafruit_SH1106.h-kirjastoa, koska tämä on kirjasto, jonka kanssa se on suunniteltu toimimaan. Muut OLED-näytöt voivat käyttää omia kirjastojaan, kuten Adafruit_SSD1306.h-kirjastoa, ja voit yleensä selvittää tarvitsemasi kirjaston tuotesivulta, josta sait näyttösi.
- DS18B20 lämpötila-anturi: Tarvitsemme kaksi kirjastoa lämpötila-anturiamme varten. DallasTemperature.h: tä käytetään lämpötilatietojen keräämiseen ja OneWire.h: tä mahdollistamaan yksijohdinyhteys.
Kun nämä kirjastot on asennettu ja sisällytetty projektiisi, koodisi pitäisi näyttää jotain alla olevan katkelman kaltaista. Huomaa, että olemme myös sisällyttäneet koodin komponenttiemme nastojen asettamiseen.
#sisältää //Näytä kirjasto
#sisältää
#sisältää //Temp anturikirjasto
#define OLED_RESET -1
Adafruit_SH1106-näyttö (OLED_RESET);
#define ONE_WIRE_BUS 15 //Lämpöanturin datalangan nasta
OneWire oneWire (ONE_WIRE_BUS); //Kerro OneWirelle, mitä nastaa käytämme
DallasLämpötila-anturit (&oneWire); //OneWire-viittaus Dallasin lämpötilaan
Toimintojen rakentaminen
- tyhjä asetus: Käytämme standardia perustaa toiminto alustaa sekä näytön että lämpötila-anturin.
- tyhjä silmukka: Meidän standardimme silmukka -toimintoa käytetään vain soittamiseen Näyttö toiminto.
- tyhjä näyttö: Olemme lisänneet a Näyttö toiminto, joka kutsuu meidän Temp toimintoa ja antaa tietoa näytöllemme.
- int Temp: Meidän Temp -toimintoa käytetään lämpötilalukeman saamiseen Näyttö toiminto.
Kun olet valmis, tämän pitäisi näyttää alla olevan katkelman kalta.
void setup() {
}
void loop() {
}
void Display() {
}
int Temp() {
}
OLED-näytön koodaus
Ennen kuin voimme lisätä koodin meidän Näyttö -toimintoa, meidän on varmistettava, että OLED-paneeli on alustettu tyhjä asetus toiminto. Ensin käytämme a display.begin -komento käynnistääksesi näytön, ja sen jälkeen a display.clearNäyttö -komento varmistaaksesi, että näyttö on selkeä.
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C); //Muuta näyttökirjastosi perusteella
display.clearNäyttö();
}
Tästä eteenpäin voimme lisätä koodia meidän Näyttö toiminto. Tämä alkaa toisesta display.clearNäyttö -komento ennen uuden kokonaislukumuuttujan ilmoittamista arvolla, joka kutsuu Temp -toiminto (käsittelemme tämän myöhemmin). Pystymme sitten käyttämään tätä muuttujaa näyttämään lämpötilaa näytöllä seuraavan koodin avulla.
void Display() {
display.clearNäyttö();
int intTemp = Temp(); //Kutsuu Temp-funktiota
display.setTextSize (3); //Asettaa tekstin koon
display.setTextColor (VALKOINEN); //Asettaa tekstin värin
display.setCursor (5, 5); //Asettaa tekstin sijainnin näytöllä
display.print (intTemp); //Tulostaa Temp-funktion antaman arvon
display.drawCircle (44, 7, 3, VALKOINEN); //Piirtää astesymbolin
display.setCursor (50, 5);
display.print("C"); //Lisää C osoittamaan, että lämpötilamme on celsiusasteina
}
DS18B20-lämpötila-anturin koodaaminen
Kuten näyttömme, myös lämpötila-anturimme tarvitsee asennuskoodin komponentin alustamiseksi.
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearNäyttö();
sensors.begin();
}
Seuraavaksi on aika ohjelmoida itse anturi, ja meidän on lisättävä koodi omaan Temp toiminto. Ensin pyydämme lämpötilaa anturiltamme, minkä jälkeen tallennamme tuloksen float-muuttujaksi ja muunnamme sen kokonaisluvuksi. Jos tämä prosessi onnistuu, lämpötila palautetaan Näyttö toiminto.
int Temp() {
sensors.requestTemperatures(); // Lähetä komennon lämpötilat
float tempC = sensors.getTempCByIndex (0); //Tämä pyytää lämpötilaa celsiusasteina ja määrittää sen floatille
int intTemp = (int) tempC; //Tämä muuntaa floatin kokonaisluvuksi
if (tempC != DEVICE_DISCONNECTED_C) //Tarkista, toimiko lukemamme
{
palauttaa intTemp; //Palauta lämpötila-arvomme näyttötoimintoon
}
}
Viimeistellä
Lopuksi meidän on vain kerrottava pääasiamme silmukka toiminto soittaa meille Näyttö funktio jokaisella koodijaksolla, jolloin meille jää tältä näyttävä projekti.
#sisältää //Näytä kirjasto
#sisältää
#sisältää //Temp anturikirjasto
#define OLED_RESET -1
Adafruit_SH1106-näyttö (OLED_RESET);
#define ONE_WIRE_BUS 15 //Lämpöanturin datalangan nasta
OneWire oneWire (ONE_WIRE_BUS); //Kerro OneWirelle, mitä nastaa käytämme
DallasLämpötila-anturit (&oneWire); //OneWire-viittaus Dallasin lämpötilaan
void setup() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearNäyttö();
sensors.begin();
}
void loop() {
Näyttö(); //Kutsuu näyttötoimintoamme
}
void Display() {
display.clearNäyttö();
int intTemp = Temp(); //Kutsuu Temp-funktiota
display.setTextSize (3); //Asettaa tekstin koon
display.setTextColor (VALKOINEN); //Asettaa tekstin värin
display.setCursor (5, 5); //Asettaa tekstin sijainnin näytöllä
display.print (intTemp); //Tulostaa Temp-funktion antaman arvon
display.drawCircle (44, 7, 3, VALKOINEN); //Piirtää astesymbolin
display.setCursor (50, 5);
display.print("C"); //Lisää C osoittamaan, että lämpötilamme on celsiusasteina
}
int Temp() {
sensors.requestTemperatures(); // Lähetä komennon lämpötilat
float tempC = sensors.getTempCByIndex (0); //Tämä pyytää lämpötilaa celsiusasteina ja määrittää sen floatille
int intTemp = (int) tempC; //Tämä muuntaa floatin kokonaisluvuksi
if (tempC != DEVICE_DISCONNECTED_C) //Tarkista, toimiko lukemamme
{
palauttaa intTemp; //Palauta lämpötila-arvomme näyttötoimintoon
}
}
Digitaalisen lämpömittarin rakentaminen itse
Tämän projektin tulee olla hauska ja informatiivinen, mutta samalla antaa sinulle mahdollisuus tehdä käytännöllinen esine. Olemme suunnitelleet tämän koodin mahdollisimman yksinkertaiseksi, mutta voit käyttää sitä monimutkaisemman projektin perustana oppiessasi.
Oletko kiinnostunut Arduino-projekteista, mutta et ole varma mistä aloittaa? Nämä aloittelijaprojektit opettavat sinulle, kuinka pääset alkuun.
Lue Seuraava
- tee-se-itse
- Arduino
- Elektroniikka

Samuel on Iso-Britanniassa toimiva teknologiakirjoittaja, joka on intohimoinen kaikkeen tee-se-itse-asioihin. Perustettuaan yrityksiä verkkokehityksen ja 3D-tulostuksen aloilla sekä työskennellyt useiden vuosien ajan kirjailijana, Samuel tarjoaa ainutlaatuisen näkemyksen teknologian maailmaan. Hän keskittyy pääasiassa tee-se-itse-tekniikkaprojekteihin, ja hän ei rakasta muuta kuin hauskojen ja jännittävien ideoiden jakamista, joita voit kokeilla kotona. Työn ulkopuolella Samuel voidaan yleensä tavata pyöräilemässä, pelaamassa PC-videopelejä tai yrittämässä epätoivoisesti kommunikoida lemmikkirapunsa kanssa.
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi