Termometer Digital
Anggota:
Clement (2501961123)
Michael Angelo Chandra (2540131481)
Kenny Christiano Alvarez (2540119482)
John Lukito (2540124223)
Suhu ruangan menjadi salah satu aspek yang penting untuk beberapa tempat dan pekerjaan. Tempat tempat seperti laboratorium, rumah sakit dan beberapa industri yang harus terus melakukan monitoring terhadap suhu ruangan agar kualitas produknya terjaga tentunya sangat membutuhkan suatu alat pengukur suhu ruangan yang akurat. Apabila pengukuran suhu ruangan tidak akurat, kerugian secara ekonomi dapat terjadi karena menurunnya kualitas produk dan bahkan dapat menyebabkan kerusakan secara total.
Monitoring suhu ruangan di rumah sakit tentunya sangat amat penting untuk menjaga kualitas obat-obatan dan beberapa jenis cairan seperti vaksin dan lainnya. Suhu yang melampaui atau berada di bawah batas dapat memicu kerusakan produk dan dapat membahayakan nyawa. Oleh karena itu, orang orang yang bekerja di beberapa tempat ini harus mendata dan melakukan monitoring terhadap suhu ruangan secara jelih dan berkala.
Supplies
- FPGA
- Xilinx Vivado
- B to Micro-B Adapter
Solusi
Termometer yang digunakan seringkali merupakan termometer analog yang dapat memicu error dalam pembacaan suhu ruangan. Termometer analog juga seringkali membutuhkan waktu yang lama untuk memperlihatkan perubahan suhu yang terjadi. Untuk menyelesaikan masalah diatas. Pada instructables ini, kami sudah merancang sebuah alat pendeteksi suhu yang bersifat digital dengan berbasis FPGA. Termometer yang kami rancang dapat mengukur suhu dengan akurasi sampai dengan tiga angka di belakang koma dan dapat mengukur suhu secara cepat.
Objektif
Tujuan kami adalah menciptakan suatu alat prototype thermometer digital dengan menggunakan board FPGA. Kami juga ingin membuat thermometer digital yang dapat mengukur suhu secara akurat, cepat dan meminimalisir error dalam pembacaan suhu ruangan.
Kami berupaya agar pengguna yang akan sering melakukan pembacaan terhadap suatu suhu ruangan tidak perlu lagi melakukan pengecekkan suhu ruangan secara manual atau dengan menggunakan thermometer analog.
Block Diagram
Pada pembuatan prototyping alat, kami membuat desain skematik kasar dari alat yang ingin kami ciptakan dengan mengandalkan alat-alat yang sudah ada. Kami menggunakan dua komponen yang sangat penting untuk merancang alat kami yaitu, FPGA Board Nexys A7 100T dan sensor suhu ADT7420. Sensor suhu ADT7420 sudah termasuk di dalam FPGA Board yang kami gunakan.
Kemudian kami mulai melakukan riset mengenai penggunaan sensor suhu ADT7420, dimulai dengan melakukan riset dari datasheet dan pengaplikasiannya kepada FPGA Board yang kami gunakan.
Setelah memahami komponen-komponen yang akan digunakan, kami lanjut ke tahap coding dengan menggunakan bahasa pemrograman VHDL. Setelah kami berhasil melakukan implementasi coding, kami menguji alat kami dan melakukan pengambilan data.
Berikut kami tampilkan dokumentasi-dokumentasi pengerjaan kami, baik secara software maupun hardware.
Metodologi
Pada pembuatan prototyping alat, kami membuat desain skematik kasar dari alat yang ingin kami ciptakan dengan mengandalkan alat-alat yang sudah ada. Kami menggunakan dua komponen yang sangat penting untuk merancang alat kami yaitu, FPGA Board Nexys A7 100T dan sensor suhu ADT7420. Sensor suhu ADT7420 sudah termasuk di dalam FPGA Board yang kami gunakan.
Kemudian kami mulai melakukan riset mengenai penggunaan sensor suhu ADT7420, dimulai dengan melakukan riset dari datasheet dan pengaplikasiannya kepada FPGA Board yang kami gunakan.
Setelah memahami komponen-komponen yang akan digunakan, kami lanjut ke tahap coding dengan menggunakan bahasa pemrograman VHDL. Setelah kami berhasil melakukan implementasi coding, kami menguji alat kami dan melakukan pengambilan data.
Berikut kami tampilkan dokumentasi-dokumentasi pengerjaan kami, baik secara software maupun hardware.
Schematic
Hasil skematik dari coding yang kami implementasikan adalah seperti pada gambar di atas. Jika dilihat dari skematik di atas, terdapat dua input yaitu “sys_clk” dan “rst”. Sys_clk terhubung dengan clock internal dari FPGA Nexys A7 100-T yang bernilai 100MHz, lalu rst terhubung dengan toggle switch yang dapat menerima input dari pengguna.
Kedua input tersebut dibutuhkan untuk melakukan mengendalikan komponen
“TempSensorCtl”. “TempSensorCtl” merupakan sebuah komponen yang mengendalikan komunikasi antara sensor suhu ADT7420 dengan “TMP_SCL” dan “TMP_SDA” dan suhu yang didapatkan akan dialihkan ke komponen “Display_Master” untuk diproses agar dapat menampilkan suhu pada 7 segment display.
Output yang akan dihasilkan oleh “Display_Master” adalah “Common_A_Selected” untuk mengendalikan common anode yang aktif 7 segment display pada FPGA board yang kami gunakan. Kemudian, “Seven_Seg_Decoded” akan mengendalikan segmen mana saja yang akan menyala dari 7 segment display.
Alat
Diatas adalah gambar alat prototype kami yang kami rancang dengan menggunakan FPGA Board. Sesuai yang tadi sudah disebut, sensor suhu ADT7420 sudah tertanam di dalam board FPGA. Setelah itu, terdapat 7 segment display yang berfungsi untuk menampilkan suhu yang telah dibaca oleh sensor.
Flowchart
Diatas adalah gambar dari flowchart cara kerja alat kami.
Code
Berikut kami lampirkan code VHDL dalam bentuk link Google Drive dan link GithHub yang dapat didownload dan diakses .
GitHub VHDL Temperature Sensor Tempera
Display Master
Display master merupakan code yang berfungsi untuk “memanggil” component-component yang mana component tersebut merupakan bagian-bagian dari code yang akan disatukan pada laman Display Master. Fungsi utamanya adalah layaknya suatu void yang digunakan untuk “memanggil” function.
Display Logic
Display Logic merupakan salah satu bagian component yang berfungsi sebagai fungsi penampil munculnya suhu yang telah didapat dari sensor suhu. Di dalam display logic, terdapat code yang berfungsi untuk melakukan pengoperasian seperti Two’s Complement, Double Dabble, dan pengoperasian tiga angka dibelakang koma yang kemudian akan ditampilkan ke 7 segment display.
Ring Counter 8 Bit
Code ini berfungsi untuk melakukan konfigurasi Ring Counter. Kami menggunakan Ring Counter agar dapat menampilkan angka pada 7 segment display dan ring counter berfungsi untuk menampilkan angka-angka tersebut secara satu per satu.
Display Clock
Display Clock merupakan code yang berfungsi untuk menghasilkan clock lebih rendah dibandingkan clock internal board FPGA yang kami gunakan untuk menjalankan display seven segment.
Seven Segment Decoder
Code Seven Segment Decoder berfungsi untuk menentukan angka atau huruf apa saja yang ingin ditampilkan. Pada alat kami, kami ingin menampilkan angka dari 0-9, tanda negatif (-), huruf “C” dan tampilan kosong (blank).
Tempera
Code ini berfungsi layaknya seperti Master utama yang menghubungkan antar code agar dapat saling bekerja satu sama lain. Cara kerjanya pun mirip seperti Display Master yang telah dibahas di atas. Code Tempera akan “memanggil” code lainnya agar dapat terhubung dan bekerja satu sama lain. Code ini juga digunakan untuk menentukan input serta output utama.
TempSensorCtl
Code TempSensorCtl ini berfungsi untuk mengendalikan komunikasi antara chip ADT7420 dengan chip FPGA Artix-7 pada board. Oleh karena itu, TempSensorCtl akan memanggil code TWICtl untuk menghasilkan dna menerima signal komunikasi. Selain itu chip ini juga akan mengubah data dari chip ADT7420 menjadi bentuk yang dapat dibaca oleh code display
TWICtl
Code TWICtl ini berfungsi untuk menghasilkan dan menerima signal komunikasi dengan chip ADT7420 berdasarkan perintah TempSensorCtl.
Data
Evaluasi Dan Kesimpulan
Implementasi pembuatan termometer digital dengan Board FPGA dapat bekerja dengan presisi tiga angka di belakang koma. Perubahan suhu ruangan menyebabkan perubahan display suhu juga di seven segment display
Saran
- Membuat casing luar untuk termometer digital.
- Menambahkan decimal point agar lebih mudah dibaca.
- Menambahkan symbol derajat agar pengguna tidak bingung saat membaca.
Referensi
(Digilent, 2019). Diambil dari: https://digilent.com/reference/_media/reference/programmable-logic/nexys-a7/nexys-a7_rm.pdf
(Analog Devices, 2017). Diambil dari:
https://www.analog.com/media/en/technical-documentation/data-sheets/adt7420.pdf
(Digilent, 2018). Diambil dari:
https://github.com/Digilent/Nexys-4-DDR-OOB
Datasheet
Video Penjelasan
QR Code Video Penjelasan