Membangun termometer Arduino DIY Anda adalah cara yang menyenangkan dan praktis untuk mengembangkan keterampilan mengutak-atik Anda, tetapi dari mana Anda harus memulai? Bergabunglah dengan kami saat kami mempelajari pengkabelan dan pengkodean yang digunakan untuk mengubah Arduino, probe suhu DS18B20, dan layar OLED menjadi termometer digital presisi yang dapat bekerja dengan baik di ruangan, tangki ikan, dan bahkan di luar rumah.
Apa yang Anda Butuhkan untuk Membuat Termometer Digital Arduino DIY?
Semua komponen ini dapat ditemukan di situs web seperti eBay dan Amazon.
Papan Arduino
Anda dapat menggunakan hampir semua Arduino dengan output 5V untuk proyek ini. Kami menggunakan Arduino Pro Micro sehingga termometer jadi kami ringkas, tetapi Anda dapat menggunakan papan yang lebih besar seperti Arduino Uno jika Anda ingin menghindari penyolderan untuk proyek ini.
Pemeriksaan Suhu DS18B20
Sensor suhu DS18B20 dapat ditemukan sebagai sensor kecil yang berdiri sendiri, PCB dengan sensor terpasang, atau sebagai probe tahan air pada kabel panjang. Kami memilih yang terakhir, karena ini memungkinkan kami untuk menggunakan termometer kami di dalam tangki ikan, tetapi Anda dapat memilih varian apa pun dari sensor suhu DS18B20. Tidak seperti jenis sensor suhu lainnya, DS18B20 memberikan sinyal langsung ke digital ke Arduino Anda, bukan sinyal analog yang berasal dari opsi seperti sensor suhu LM35.
Layar OLED/LCD
Tampilan yang Anda pilih untuk termometer Anda akan berdampak besar pada produk jadi. Kami memilih layar OLED putih monokrom 1,3 inci yang kompatibel dengan I2C untuk termometer kami, tetapi Anda dapat memilih apa pun yang Anda suka asalkan mendukung I2C.
Bagian Kecil Tambahan
- 4.7K (kiloohm) resistor
- 28 hingga 22 AWG silikon / kawat berisolasi PVC
- Papan tempat memotong roti (opsional bagi mereka yang tidak ingin menyolder)
Menghubungkan Termometer DIY Anda
Pengkabelan untuk proyek ini jauh lebih sederhana dari yang Anda bayangkan. Dengan menggunakan diagram sirkuit di atas, Anda dapat membuat termometer digital DIY Anda sendiri dengan sedikit usaha, tetapi kami juga telah memecah diagram di bawah ini agar lebih mudah diikuti.
Menghubungkan Probe Suhu DS18B20
Pengkabelan probe suhu DS18B20 Anda dengan benar sangat penting untuk proyek ini, dan Anda perlu memastikan bahwa Anda menggunakan resistor 4.7K yang kami sebutkan sebelumnya atau probe Anda tidak akan berfungsi dengan baik. Probe dilengkapi dengan tiga kabel: Ground (biasanya hitam), VCC (biasanya merah), dan Data.
- VCC terhubung ke pin 5V di Arduino Anda
- Ground terhubung ke pin GND di Arduino Anda
- Data dapat terhubung ke pin digital apa pun di Arduino Anda (kami memilih pin digital 15)
- Kabel Data dan VCC juga perlu dihubungkan satu sama lain dengan resistor 4.7K
Menghubungkan Layar OLED I2C
Karena kami menggunakan koneksi I2C antara layar OLED kami dan Arduino kami, kami hanya perlu menghubungkan empat kabel sebelum kami dapat mulai menggunakan layar kami: VCC, Ground, SDA, dan SCL. Hampir setiap Arduino modern memiliki pin SDA dan SCL built-in, memberikan kemampuan untuk menghubungkan hingga 128 komponen I2C unik ke satu papan.
Arduino Pro Micro kami memiliki SDA pada pin digital 2 dan SCL pada pin digital 3, tetapi Anda mungkin perlu mencari diagram pinout dari papan tertentu yang telah Anda pilih sebelum memulai.
- VCC terhubung ke pin 5V di Arduino Anda
- Ground terhubung ke pin GND di Arduino Anda
- SDA terhubung ke pin SDA di Arduino Anda
- SCL terhubung ke pin SCL di Arduino Anda
Menguji Sirkuit Anda
Sangat penting bahwa Anda menguji sirkuit yang telah Anda buat sebelum Anda mulai menulis kode akhir untuk itu, tapi Anda dapat menggunakan proyek contoh yang disertakan dengan perpustakaan yang dibahas di bawah ini untuk menguji sirkuit yang Anda miliki dibuat.
Mengkodekan Sensor Suhu & Tampilan OLED Anda
Mengkodekan termometer digital DIY Anda lebih sulit daripada memasangnya, tetapi Arduino IDE dapat digunakan untuk membuatnya lebih mudah.
Memilih Perpustakaan yang Benar
- Perpustakaan Tampilan OLED: Kami menggunakan perpustakaan Adafruit_SH1106.h untuk tampilan kami, karena ini adalah perpustakaan yang dirancang untuk digunakan. Tampilan OLED lainnya dapat menggunakan perpustakaan mereka sendiri, seperti perpustakaan Adafruit_SSD1306.h, dan Anda biasanya dapat mengetahui mana yang Anda butuhkan dari halaman produk tempat Anda mendapatkan tampilan Anda.
- Pemeriksaan Suhu DS18B20: Kami membutuhkan dua perpustakaan untuk pemeriksaan suhu kami. DallasTemperature.h digunakan untuk mengumpulkan data suhu, dan OneWire.h untuk memungkinkan koneksi kabel tunggal kami.
Setelah pustaka ini dipasang dan disertakan dalam proyek Anda, kode Anda akan terlihat seperti cuplikan di bawah ini. Perhatikan bahwa kami juga menyertakan kode untuk mengatur pin untuk komponen kami.
#termasuk //Tampilkan perpustakaan
#termasuk
#termasuk //Perpustakaan penyelidikan suhu
#define OLED_RESET -1
Tampilan Adafruit_SH1106 (OLED_RESET);
#define ONE_WIRE_BUS 15 //Pin kabel data probe suhu
OneWire oneWire (ONE_WIRE_BUS); //Beri tahu OneWire pin mana yang kita gunakan
Sensor suhu Dallas(&oneWire); //Referensi OneWire ke Suhu Dallas
Membangun Fungsi
- batalkan pengaturan: Kami menggunakan standar mempersiapkan berfungsi untuk menginisialisasi tampilan dan pemeriksaan suhu kita.
- lingkaran kosong: Standar kami lingkaran fungsi hanya akan digunakan untuk memanggil kami Menampilkan fungsi.
- tampilan batal: Kami telah menambahkan Menampilkan fungsi yang memanggil kami suhu berfungsi dan memberikan informasi ke tampilan kami.
- int Suhu: Kita suhu fungsi digunakan untuk mendapatkan pembacaan suhu untuk. kami Menampilkan fungsi.
Setelah selesai, ini akan terlihat seperti cuplikan di bawah ini.
batalkan pengaturan() {
}
lingkaran kosong() {
}
kosong Tampilan() {
}
int Suhu() {
}
Mengkodekan Tampilan OLED
Sebelum kita dapat menambahkan kode ke Menampilkan fungsi, kita perlu memastikan panel OLED diinisialisasi di batalkan pengaturan fungsi. Pertama, kita menggunakan tampilan.mulai perintah untuk memulai tampilan, diikuti oleh a display.clearDisplay perintah untuk memastikan tampilan jelas.
batalkan pengaturan() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C); //Ubah berdasarkan perpustakaan tampilan Anda
tampilan.clearDisplay();
}
Dari sini, kita dapat menambahkan kode ke Menampilkan fungsi. Ini dimulai dengan yang lain display.clearDisplay perintah, sebelum mendeklarasikan variabel integer baru dengan nilai yang memanggil suhu fungsi (kita akan membahas ini nanti). Kami kemudian dapat menggunakan variabel ini untuk menampilkan suhu pada layar menggunakan kode berikut.
kosong Tampilan() {
tampilan.clearDisplay();
int intTemp = Suhu(); //Memanggil fungsi Temp kami
display.setTextSize (3); //Menyetel ukuran teks kita
display.setTextColor (PUTIH); //Menyetel warna teks kita
display.setCursor (5, 5); //Menyetel posisi teks kita di layar
display.print (intTemp); //Mencetak nilai yang disediakan oleh fungsi Temp
display.drawCircle (44, 7, 3, PUTIH); //Menggambar simbol derajat
display.setCursor (50, 5);
tampilan.print("C"); //Menambahkan C untuk menunjukkan bahwa suhu kita dalam Celcius
}
Mengkodekan Pemeriksaan Suhu DS18B20
Seperti tampilan kami, pemeriksaan suhu kami juga membutuhkan kode pengaturan untuk menginisialisasi komponen.
batalkan pengaturan() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
tampilan.clearDisplay();
sensor.mulai();
}
Selanjutnya, saatnya memprogram probe itu sendiri, dan kita perlu menambahkan kode ke suhu fungsi. Pertama, kami akan meminta suhu dari probe kami, diikuti dengan merekam hasilnya sebagai variabel float dan mengubahnya menjadi integer. Jika proses ini berhasil, suhu dikembalikan ke Menampilkan fungsi.
int Suhu() {
sensor.requestTemperatures(); // Kirim perintah untuk mendapatkan suhu
float tempC = sensor.getTempCByIndex (0); //Ini meminta suhu dalam Celcius dan menetapkannya ke float
int intTemp = (int)tempC; //Ini mengubah float menjadi integer
if (tempC != DEVICE_DISCONNECTED_C) //Periksa apakah pembacaan kita berhasil
{
kembali intTemp; //Kembalikan nilai suhu kita ke fungsi Tampilan
}
}
Menyelesaikan
Akhirnya, kita hanya perlu memberi tahu induk kita lingkaran fungsi untuk memanggil kami Menampilkan fungsi dengan setiap siklus kode, meninggalkan kita dengan proyek yang terlihat seperti ini.
#termasuk //Tampilkan perpustakaan
#termasuk
#termasuk //Perpustakaan penyelidikan suhu
#define OLED_RESET -1
Tampilan Adafruit_SH1106 (OLED_RESET);
#define ONE_WIRE_BUS 15 //Pin kabel data probe suhu
OneWire oneWire (ONE_WIRE_BUS); //Beri tahu OneWire pin mana yang kita gunakan
Sensor suhu Dallas(&oneWire); //Referensi OneWire ke Suhu Dallas
batalkan pengaturan() {
display.begin (SH1106_SWITCHCAPVCC, 0x3C);
tampilan.clearDisplay();
sensor.mulai();
}
lingkaran kosong() {
Menampilkan(); //Memanggil fungsi tampilan kami
}
kosong Tampilan() {
tampilan.clearDisplay();
int intTemp = Suhu(); //Memanggil fungsi Temp kami
display.setTextSize (3); //Menyetel ukuran teks kita
display.setTextColor (PUTIH); //Menyetel warna teks kita
display.setCursor (5, 5); //Menyetel posisi teks kita di layar
display.print (intTemp); //Mencetak nilai yang disediakan oleh fungsi Temp
display.drawCircle (44, 7, 3, PUTIH); //Menggambar simbol derajat
display.setCursor (50, 5);
tampilan.print("C"); //Menambahkan C untuk menunjukkan bahwa suhu kita dalam Celcius
}
int Suhu() {
sensor.requestTemperatures(); // Kirim perintah untuk mendapatkan suhu
float tempC = sensor.getTempCByIndex (0); //Ini meminta suhu dalam Celcius dan menetapkannya ke float
int intTemp = (int)tempC; //Ini mengubah float menjadi integer
if (tempC != DEVICE_DISCONNECTED_C) //Periksa apakah pembacaan kita berhasil
{
kembali intTemp; //Kembalikan nilai suhu kita ke fungsi Tampilan
}
}
Membangun Termometer Digital DIY
Proyek ini harus menyenangkan dan informatif, sekaligus memberi Anda kesempatan untuk membuat barang praktis. Kami telah merancang kode ini sesederhana mungkin, tetapi Anda dapat menggunakannya sebagai dasar untuk proyek yang lebih rumit saat Anda belajar.
Tertarik dengan proyek Arduino tetapi tidak yakin harus mulai dari mana? Proyek pemula ini akan mengajari Anda cara memulai.
Baca Selanjutnya
- buatan sendiri
- Arduino
- Elektronik
Samuel adalah penulis teknologi yang berbasis di Inggris dengan hasrat untuk semua hal DIY. Memulai bisnis di bidang pengembangan web dan pencetakan 3D, serta bekerja sebagai penulis selama bertahun-tahun, Samuel menawarkan wawasan unik tentang dunia teknologi. Berfokus terutama pada proyek teknologi DIY, dia tidak lebih dari berbagi ide menyenangkan dan menarik yang dapat Anda coba di rumah. Di luar pekerjaan, Samuel biasanya dapat ditemukan bersepeda, bermain video game PC, atau berusaha mati-matian untuk berkomunikasi dengan kepiting peliharaannya.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan