Kendin Yap Arduino termometrenizi oluşturmak, tamircilik becerilerinizi geliştirmenin eğlenceli ve pratik bir yoludur, ancak nereden başlamalısınız? Bir DS18B20 sıcaklık probu olan Arduino'yu döndürmeye giden kablolamayı ve kodlamayı araştırırken bize katılın. ve odalarda, akvaryumlarda ve hatta odalarda iyi çalışabilen hassas bir dijital termometreye bir OLED ekran açık havada.

Bir DIY Arduino Dijital Termometresi Yapmak İçin Neye İhtiyacınız Var?

Bu bileşenlerin tümü eBay ve Amazon gibi web sitelerinde bulunabilir.

Arduino Kurulu

Bu proje için 5V çıkışlı hemen hemen tüm Arduino'ları kullanabilirsiniz. Bitmiş termometremizin kompakt olması için bir Arduino Pro Micro kullanıyoruz, ancak bu proje için lehimlemeden kaçınmak istiyorsanız Arduino Uno gibi daha büyük bir tahta kullanabilirsiniz.

DS18B20 Sıcaklık Probu

DS18B20 sıcaklık sensörleri, küçük bağımsız sensörler, sensörler takılı PCB'ler veya uzun kablolarda su geçirmez problar olarak bulunabilir. Termometremizi bir akvaryum içinde kullanmamızı sağladığı için ikincisini seçtik, ancak DS18B20 sıcaklık sensörünün herhangi bir çeşidini seçebilirsiniz. Diğer sıcaklık sensörlerinden farklı olarak DS18B20'ler, LM35 sıcaklık sensörleri gibi seçeneklerden gelen analog sinyaller yerine Arduino'nuza doğrudan dijitale sinyal sağlar.

instagram viewer

OLED/LCD Ekran

Termometreniz için seçtiğiniz ekran, bitmiş ürün üzerinde büyük bir etkiye sahip olacaktır. Termometremiz için 1,3 inç I2C uyumlu monokrom beyaz OLED ekran seçtik, ancak I2C'yi desteklediği sürece istediğinizi seçebilirsiniz.

Ek Küçük Parçalar

  • 4.7K (kiloohm) direnç
  • 28 ila 22 AWG silikon/PVC yalıtımlı tel
  • Bir breadboard (lehim yapmak istemeyenler için isteğe bağlı)

Kendin Yap Termometrenizi Kablolama

Bu proje için kablolama, hayal edebileceğinizden çok daha basit. Yukarıdaki devre şemasını kullanarak çok az çabayla kendi DIY dijital termometrenizi oluşturabilirsiniz, ancak takip etmeyi kolaylaştırmak için aşağıdaki şemayı da kırdık.

DS18B20 Sıcaklık Probunu Kablolama

DS18B20 sıcaklık probunuzu doğru şekilde kablolamak bu proje için çok önemlidir ve daha önce bahsettiğimiz 4.7K direnci kullandığınızdan emin olmanız gerekir, aksi takdirde probunuz düzgün çalışmayacaktır. Prob üç kabloyla gelir: Toprak (genellikle siyah), VCC (genellikle kırmızı) ve Veri.

  • VCC, Arduino'nuzdaki 5V pinine bağlanır
  • Toprak, Arduino'nuzdaki bir GND pinine bağlanır
  • Veriler Arduino'nuzdaki herhangi bir dijital pime bağlanabilir (dijital pim 15'i seçtik)
  • Veri ve VCC kablolarının da 4.7K dirençle birbirine bağlanması gerekir.

I2C OLED Ekranını Kablolama

OLED ekranımız ve Arduino'muz arasında bir I2C bağlantısı kullandığımızdan, ekranımızı kullanmaya başlamadan önce yalnızca dört kabloyu bağlamamız gerekiyor: VCC, Ground, SDA ve SCL. Hemen hemen her modern Arduino'da yerleşik SDA ve SCL pinleri bulunur ve bu da 128'e kadar benzersiz I2C bileşenini tek bir karta bağlama yeteneği sağlar.

Arduino Pro Micro'muz dijital pin 2'de SDA ve dijital pin 3'te SCL'ye sahiptir, ancak başlamadan önce seçtiğiniz belirli kartın pinout şemasını aramanız gerekebilir.

  • VCC, Arduino'nuzdaki 5V pinine bağlanır
  • Toprak, Arduino'nuzdaki bir GND pinine bağlanır
  • SDA, Arduino'nuzdaki SDA pinine bağlanır
  • SCL, Arduino'nuzdaki SCL pinine bağlanır

Devrenizi Test Etme

Son kodu yazmaya başlamadan önce, yaptığınız devreyi test etmeniz çok önemlidir, ancak sahip olduğunuz devreyi test etmek için aşağıda tartışılan kütüphanelerle birlikte gelen örnek projeleri kullanabilirsiniz. yapılmış.

Sıcaklık Sensörünüzü ve OLED Ekranınızı Kodlama

Kendin Yap dijital termometrenizi kodlamak, onu kablolamaktan daha zordur, ancak bunu kolaylaştırmak için Arduino IDE kullanılabilir.

Doğru Kitaplıkları Seçme

  • OLED Ekran Kitaplığı: Adafruit_SH1106.h kitaplığını ekranımız için kullanıyoruz, çünkü bu kitaplığın birlikte çalışmak üzere tasarlandığı kitaplık bu. Diğer OLED ekranlar Adafruit_SSD1306.h kitaplığı gibi kendi kitaplıklarını kullanabilir ve genellikle ekranınızı aldığınız ürün sayfasından hangisine ihtiyacınız olduğunu öğrenebilirsiniz.
  • DS18B20 Sıcaklık Probu: Sıcaklık probumuz için iki kütüphaneye ihtiyacımız var. DallasTemperature.h, sıcaklık verilerini toplamak için ve OneWire.h, tek kablolu bağlantımızı mümkün kılmak için kullanılır.

Bu kitaplıklar kurulduktan ve projenize dahil edildikten sonra, kodunuz aşağıdaki parçaya benzemelidir. Bileşenlerimizin pinlerini ayarlamak için de kod eklediğimizi unutmayın.

#Dahil etmek  // Kitaplığı görüntüle
#Dahil etmek
#Dahil etmek //Sıcaklık araştırması kitaplığı
#define OLED_RESET -1
Adafruit_SH1106 ekranı (OLED_RESET);
#define ONE_WIRE_BUS 15 //Sıcaklık probu veri kablosu pini
OneWire oneWire (ONE_WIRE_BUS); // OneWire'a hangi pini kullandığımızı söyle
DallasSıcaklık sensörleri(&oneWire); // Dallas Sıcaklığına OneWire referansı

Fonksiyonları Oluşturma

  • geçersiz kurulum: Standart kullanıyoruz kurmak hem ekranımızı hem de sıcaklık probumuzu başlatma işlevi.
  • boşluk döngüsü: Bizim standartımız döngü fonksiyon sadece bizim çağırmak için kullanılacaktır. Görüntülemek işlev.
  • Boş Ekran: Bir ekledik Görüntülemek bizim çağıran fonksiyon Sıcaklık işlevi ve ekranımıza bilgi sağlar.
  • int Sıcaklık: Bizim Sıcaklık fonksiyonumuz için bir sıcaklık okuması almak için kullanılır. Görüntülemek işlev.

Tamamlandığında, bu aşağıdaki snippet gibi görünmelidir.

geçersiz kurulum() {
}
boşluk döngüsü () {
}
geçersiz Ekran() {
}
int Temp() {
}

OLED Ekranın Kodlanması

Kodumuza ekleyebilmemiz için önce Görüntülemek işlevi, OLED panelinin bizim cihazda başlatıldığından emin olmamız gerekir. geçersiz kurulum işlev. İlk olarak, bir kullanırız göster. başla ekranı başlatmak için komut, ardından bir display.clearDisplay Ekranın net olduğundan emin olmak için komut.

geçersiz kurulum() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C); // Ekran kitaplığınıza göre değiştirin
display.clearDisplay();
}

Buradan kodumuza ekleyebiliriz. Görüntülemek işlev. Bu başka biriyle başlar display.clearDisplay komutunu çağıran bir değere sahip yeni bir tamsayı değişkeni bildirmeden önce Sıcaklık işlevi (bunu daha sonra ele alacağız). Daha sonra, aşağıdaki kodu kullanarak ekrandaki sıcaklığı görüntülemek için bu değişkeni kullanabiliriz.

geçersiz Ekran() {
display.clearDisplay();
int intTemp = Temp(); // Temp fonksiyonumuzu çağırır
display.setTextSize (3); //Metin boyutunu ayarlar
display.setTextColor (BEYAZ); // Metin rengimizi ayarlar
display.setCursor (5, 5); // Ekrandaki metin konumumuzu ayarlar
display.print (intTemp); // Temp işlevi tarafından sağlanan değeri yazdırır
display.drawCircle (44, 7, 3, BEYAZ); //Bir derece sembolü çizer
display.setCursor (50, 5);
display.print("C"); //Sıcaklığımızın Santigrat cinsinden olduğunu belirtmek için C ekler
}

DS18B20 Sıcaklık Probunun Kodlanması

Ekranımız gibi, sıcaklık probumuz da bileşeni başlatmak için kurulum koduna ihtiyaç duyar.

geçersiz kurulum() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
sensörler.begin();
}

Ardından, sondanın kendisini programlamanın zamanı geldi ve programımıza kod eklememiz gerekiyor. Sıcaklık işlev. İlk olarak, sondamızdan sıcaklığı talep edeceğiz, ardından sonucu bir kayan değişken olarak kaydedip bir tamsayıya dönüştüreceğiz. Bu işlem başarılı olursa, sıcaklık tekrar Görüntülemek işlev.

int Temp() {
sensörler.requestTemperatures(); // Sıcaklıkları almak için komutu gönder
float tempC = sensor.getTempCByIndex (0); //Bu, sıcaklığı Celsius olarak ister ve onu bir şamandıraya atar
int intTemp = (int) sıcaklıkC; // Bu, kayan noktayı bir tam sayıya dönüştürür
if (tempC != DEVICE_DISCONNECTED_C) // Okumamızın işe yarayıp yaramadığını kontrol edin
{
dönüş intTemp; //Sıcaklık değerimizi Display fonksiyonuna döndür
}
}

Bitirmek

Son olarak, sadece ana fikrimizi söylememiz gerekiyor. döngü bizim çağırmak için işlev Görüntülemek kodun her döngüsünde işlev görür ve bize buna benzeyen bir proje bırakır.

#Dahil etmek  // Kitaplığı görüntüle
#Dahil etmek
#Dahil etmek //Sıcaklık araştırması kitaplığı
#define OLED_RESET -1
Adafruit_SH1106 ekranı (OLED_RESET);
#define ONE_WIRE_BUS 15 //Sıcaklık probu veri kablosu pini
OneWire oneWire (ONE_WIRE_BUS); // OneWire'a hangi pini kullandığımızı söyle
DallasSıcaklık sensörleri(&oneWire); // Dallas Sıcaklığına OneWire referansı
geçersiz kurulum() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
sensörler.begin();
}
boşluk döngüsü () {
Görüntülemek(); //Görüntüleme fonksiyonumuzu çağırır
}
geçersiz Ekran() {
display.clearDisplay();
int intTemp = Temp(); // Temp fonksiyonumuzu çağırır
display.setTextSize (3); //Metin boyutunu ayarlar
display.setTextColor (BEYAZ); // Metin rengimizi ayarlar
display.setCursor (5, 5); // Ekrandaki metin konumumuzu ayarlar
display.print (intTemp); // Temp işlevi tarafından sağlanan değeri yazdırır
display.drawCircle (44, 7, 3, BEYAZ); //Bir derece sembolü çizer
display.setCursor (50, 5);
display.print("C"); //Sıcaklığımızın Santigrat cinsinden olduğunu belirtmek için C ekler
}
int Temp() {
sensörler.requestTemperatures(); // Sıcaklıkları almak için komutu gönder
float tempC = sensor.getTempCByIndex (0); //Bu, sıcaklığı Celsius olarak ister ve onu bir şamandıraya atar
int intTemp = (int) sıcaklıkC; // Bu, kayan noktayı bir tam sayıya dönüştürür
if (tempC != DEVICE_DISCONNECTED_C) // Okumamızın işe yarayıp yaramadığını kontrol edin
{
dönüş intTemp; //Sıcaklık değerimizi Display fonksiyonuna döndür
}
}

Kendin Yap Dijital Termometre Oluşturma

Bu proje eğlenceli ve bilgilendirici olmalı, aynı zamanda size pratik bir ürün yapma şansı da vermeli. Bu kodu olabildiğince basit olacak şekilde tasarladık, ancak öğrendikçe daha karmaşık bir projenin temeli olarak kullanabilirsiniz.

Yeni Başlayanlar İçin 15 Harika Arduino Projesi

Arduino projeleriyle ilgileniyor ancak nereden başlayacağınızdan emin değil misiniz? Bu başlangıç ​​projeleri size nasıl başlayacağınızı öğretecek.

Sonrakini Oku

PaylaşCıvıldamakE-posta
İlgili konular
  • kendin yap
  • Arduino
  • Elektronik
Yazar hakkında
Samuel L. Garbett (35 Makale Yayınlandı)

Samuel, kendin yap ile ilgili her şeye tutkuyla bağlı, İngiltere merkezli bir teknoloji yazarıdır. Uzun yıllar yazar olarak çalışmanın yanı sıra web geliştirme ve 3D baskı alanlarında iş kuran Samuel, teknoloji dünyasına benzersiz bir bakış açısı sunuyor. Ağırlıklı olarak kendin yap teknolojisi projelerine odaklanarak, evde deneyebileceğiniz eğlenceli ve heyecan verici fikirleri paylaşmaktan başka bir şey sevmiyor. İş dışında, Samuel genellikle bisiklet sürerken, bilgisayar oyunları oynarken veya çaresizce evcil yengeciyle iletişim kurmaya çalışırken bulunabilir.

Samuel L.'dan Daha Fazla Garbett

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın