Daftar Isi:

Termometer Bluetooth: 8 Langkah
Termometer Bluetooth: 8 Langkah

Video: Termometer Bluetooth: 8 Langkah

Video: Termometer Bluetooth: 8 Langkah
Video: Метеостанция Xiaomi Mijia Thermometer 2 ► УМНЫЙ термометр-гигрометр СЯОМИ / Hygrothermograph 2 2024, November
Anonim
Termometer Bluetooth
Termometer Bluetooth
Termometer Bluetooth
Termometer Bluetooth
Termometer Bluetooth
Termometer Bluetooth

Instruksi ini merinci pembuatan termometer 2 saluran sederhana menggunakan probe termistor 100K, modul Bluetooth, dan smartphone. Modul Bluetooth adalah LightBlue Bean yang dirancang untuk menyederhanakan pengembangan aplikasi Bluetooth Low Energy dengan menggunakan lingkungan Arduino yang sudah dikenal untuk memprogram modul.

Setelah tersandung beberapa saat mencoba mencari cara untuk mendapatkan data suhu dari modul Bluetooth ke iPhone saya, saya menemukan aplikasi bernama EvoThings yang sangat menyederhanakan sisi pengembangan aplikasi proyek. Saya tidak memiliki Mac (mengejutkan saya tahu!) yang membatasi kemampuan saya untuk mengembangkan aplikasi iPhone, dan saya tidak punya waktu untuk menguraikan alat Microsoft baru yang ternyata mendukung pengembangan lintas platform untuk iOS dan Android. Saya telah melakukan beberapa aplikasi gaya HTML5 tetapi satu-satunya cara untuk mendapatkan data Bluetooth adalah melalui plugin untuk Cordova yang tampaknya lebih menantang daripada waktu yang saya miliki. EvoThings menyediakan seperangkat alat yang sangat mudah digunakan yang mengubah tantangan Bluetooth-ke-iPhone menjadi cakewalk. Dan saya suka kue!

Secara keseluruhan, saya menemukan kombinasi Lightblue Bean dan EvoThings sebagai solusi yang sangat praktis dengan investasi waktu yang rendah.

Langkah 1: Hal-hal yang Anda Butuhkan

Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan
Hal yang Anda Butuhkan

Saya menggunakan probe termistor yang tersedia secara komersial untuk satu saluran karena saya ingin termistor disegel untuk pencelupan ke dalam cairan. Untuk saluran kedua, saya membuat probe dasar dari termistor, beberapa kabel pengukur 26 dan colokan headphone 3,5 mm. Anda bebas menggunakan termistor apa pun yang Anda inginkan dan Anda dapat membuat probe sendiri dari epoksi konduktif termal dan sedotan plastik/pengaduk kopi misalnya. Berikut ini adalah apa yang saya gunakan - ini tidak dimaksudkan sebagai daftar preskriptif!

Perangkat keras

  • 1 x 100K Termistor probe. Model Extech TP890. Ini biasanya tersedia di ebay dan amazon.
  • 2 x 2.5mm Stereo jack yang cocok dengan steker 2.5mm pada probe Extech. Saya memulung jack 3.5mm dari komputer lama jadi saya memotong steker dari probe Extech dan menggantinya dengan colokan 3.5mm. Anda harus menghindari ini dengan hanya menggunakan jack 2.5mm, atau menggunakan steker adaptor stereo 2.5mm hingga 3.5mm yang tersedia.
  • Manik termistor 100K plus kawat pengukur 26 plus steker stereo 3,5mm jika Anda ingin membuat probe sendiri. Jika tidak, beli probe Extech kedua!
  • 1 x Lightblue Bean dengan Desain Punch Through. Ini adalah modul Bluetooth yang dapat diprogram sebagai papan pengembangan Arduino. Modul ini agak mahal tetapi menghilangkan banyak kerumitan. Mereka menjalankan kampanye Kickstarter untuk perangkat generasi berikutnya yang mungkin layak dipertimbangkan.
  • 2 x 1/4W 100K resistor yang digunakan untuk membagi tegangan referensi untuk termistor. Saya menggunakan resistor 5% tetapi resistor toleransi yang lebih tinggi umumnya kurang sensitif terhadap suhu dan akan memberikan kinerja yang lebih baik. 1% adalah nilai toleransi yang baik untuk ini.
  • Besi solder dan solder
  • Pemotong kawat dan beberapa kawat hookup berukuran 26 atau 28 berukuran kecil.

Perangkat Lunak dan Firmware

  • Untuk memprogram Bean, Anda memerlukan aplikasi Bean Loader. Saya telah menggunakan windows sehingga semua tautan akan khusus untuk Windows. Semua yang Anda butuhkan untuk memulai dengan Bean termasuk spesifikasi Arduino tersedia dari situs LightBlueBean
  • Meja kerja EvoThings untuk aplikasi smartphone tersedia di sini. Semua dokumentasi "memulai" juga tersedia di sana. Ini didokumentasikan dengan sangat baik.

Langkah 2: Sirkuit dan Konstruksi Listrik

Sirkuit dan Konstruksi Listrik
Sirkuit dan Konstruksi Listrik
Sirkuit dan Konstruksi Listrik
Sirkuit dan Konstruksi Listrik
Sirkuit dan Konstruksi Listrik
Sirkuit dan Konstruksi Listrik

Termistor adalah resistor yang bergantung pada suhu. Probe Extech memiliki koefisien suhu negatif yang berarti bahwa saat suhu meningkat, resistansi menurun. Nilai resistansi diukur dengan rangkaian sederhana yang menciptakan pembagi tegangan dengan termistor di satu kaki, dan resistor 100K tetap di kaki lainnya. Tegangan yang dibagi dimasukkan ke dalam saluran Input Analog pada Bean dan diambil sampelnya dalam firmware.

Untuk membangun sirkuit, saya memulung jack audio 3,5 mm dari PC lama yang rusak. Multimeter digunakan untuk menentukan dua titik pada PCB yang sesuai dengan ujung dan pita pertama probe. Kabel disolder ke jack audio dan ke Bean seperti yang ditunjukkan pada gambar. Soket audio ditempelkan ke area prototipe Bean menggunakan selotip dua sisi. Pita yang saya gunakan adalah pita stiker kelas otomotif yang menciptakan ikatan yang sangat kuat antara bagian derek.

Langkah 3: Uji Koefisien

Koefisien Penyelidikan
Koefisien Penyelidikan

Seperti biasa seperti probe Extech, koefisien Steinhart-Hart tidak dipublikasikan di mana pun yang bisa saya temukan. Untungnya ada kalkulator online yang akan menentukan koefisien dari 3 pengukuran suhu yang Anda berikan.

Berikut ini adalah prosedur dasar yang saya gunakan untuk sampai pada koefisien. Tidak akan mendapatkan poin apa pun untuk gaya tetapi cukup baik untuk membuat Anda mengatakan +/- 1 derajat akurat (total thumbsuck di pihak saya) …. tergantung pada keakuratan termometer dan multimeter referensi Anda tentu saja! Multimeter saya adalah unit murah tanpa merek yang saya beli bertahun-tahun yang lalu ketika uang sedang ketat. Uang masih ketat dan masih berfungsi!

Untuk mengkalibrasi, kita membutuhkan tiga pembacaan resistansi dari 3 suhu.

  • Mendekati titik beku dengan menambahkan es ke dalam segelas air dan diaduk sampai suhu stabil. Setelah stabil, gunakan multimeter untuk mencatat resistansi probe dan termometer referensi untuk merekam suhu.
  • Sekarang tempatkan probe ke dalam segelas air pada suhu kamar, biarkan probe menyamakan dengan suhu air dan catat suhu pada termometer referensi Anda dan pembacaan resistansi pada multi-meter Anda.
  • Tempatkan probe ke dalam segelas air panas dan catat hambatannya.

    Suhu Perlawanan
    5.6 218K
    21.0 97.1K
    38.6 43.2

Seluruh proses ini sedikit seperti situasi ayam dan telur karena Anda memerlukan termometer yang dikalibrasi untuk mencatat suhu dan multi-meter yang dikalibrasi untuk merekam resistansi. Kesalahan di sini akan mengakibatkan ketidakakuratan dalam pengukuran suhu yang Anda buat tetapi untuk tujuan saya, +/- 1 derajat lebih dari yang saya butuhkan.

Memasukkan nilai-nilai yang direkam ini ke dalam kalkulator web menghasilkan yang berikut:

Gambar
Gambar

Koefisien (A, B dan C) dihubungkan ke persamaan Stenhart-Hart untuk menentukan suhu dari nilai resistansi sampel. Persamaan didefinisikan sebagai (sumber: wikipedia.com)

Gambar
Gambar

Dimana T = Suhu dalam Kelvin

A, B dan C adalah koefisien persamaan Steinhart-Hart kita mencoba untuk menentukan R adalah hambatan pada suhu T

Firmware akan melakukan perhitungan ini.

Langkah 4: Firmware

Firmware
Firmware
Firmware
Firmware

Tegangan termistor diambil sampelnya, diubah menjadi suhu dan dikirim melalui Bluetooth ke aplikasi EvoThings yang berjalan di smartphone.

Untuk mengubah tegangan menjadi nilai resistansi dalam Bean, digunakan persamaan linier sederhana. Derivasi persamaan disediakan sebagai gambar. Alih-alih mengubah nilai sampel menjadi tegangan, karena ADC dan tegangan input direferensikan ke tegangan baterai yang sama, kita dapat menggunakan nilai ADC sebagai ganti tegangan. Untuk ADC Kacang 10bit, tegangan baterai penuh akan menghasilkan nilai ADC 1023 jadi kami menggunakan nilai ini sebagai Vbat. Nilai sebenarnya dari resistor pembagi merupakan pertimbangan penting. Ukur nilai sebenarnya dari resistor pembagi 100K dan gunakan nilai terukur dalam persamaan untuk menghindari sumber kesalahan yang tidak perlu karena toleransi resistor.

Setelah nilai resistansi dihitung, nilai resistansi diubah menjadi suhu menggunakan persamaan Steinhart-Hart. Persamaan ini dijelaskan secara rinci di Wikipedia.

Karena kami memiliki 2 probe, masuk akal untuk mengenkapsulasi fungsionalitas probe ke dalam kelas C++.

Kelas merangkum koefisien persamaan Steinhart-Hart, nilai resistansi pembagi nominal dan port analog yang termistor terhubung. Sebuah metode tunggal, temperatur(), mengubah nilai ADC menjadi nilai resistansi dan kemudian menggunakan persamaan Steinhart-Hart untuk menentukan temperatur dalam Kelvin. Nilai kembalian mengurangi nol mutlak (273.15K) dari suhu yang dihitung untuk memberikan nilai dalam Celcius.

Kekuatan Lightblue Bean terbukti dalam kenyataan bahwa semua fungsi Bluetooth pada dasarnya diimplementasikan dalam 1 baris kode yang menulis nilai suhu sampel ke area data awal pada memori Bluetooth.

Bean.setScratchData(TEMPERATURE_SCRATCH_IDX, (uint8_t*)&temperature[0], 12);

Setiap nilai suhu sampel diwakili oleh float yang membutuhkan 4 byte. Area data awal dapat menampung 20 byte. Kami hanya menggunakan 12 dari mereka. Ada 5 area data awal sehingga Anda dapat mentransfer hingga 100 byte data menggunakan data awal.

Alur dasar acara adalah:

  • Periksa untuk melihat apakah kami memiliki koneksi Bluetooth
  • Jika demikian, sampel suhu dan tuliskan ke area data awal
  • Tidur 200 ms dan ulangi siklus.

Jika tidak terhubung, firmware akan membuat chip ATMEGA328P tertidur untuk waktu yang lama. Siklus tidur penting untuk menghemat daya. Chip ATMEGA328P masuk ke mode daya rendah dan tetap di sana sampai terganggu oleh modul Bluetooth LBM313. LBM313 akan menghasilkan interupsi untuk membangunkan ATMEGA328P pada akhir periode tidur yang diminta, atau setiap kali koneksi Bluetooth dibuat ke Bean. Fungsionalitas WakeOnConnect diaktifkan dengan memanggil Bean.enableWakeOnConnect(true) secara eksplisit selama penyiapan().

Penting untuk dicatat bahwa firmware akan bekerja dengan aplikasi klien BLE apa pun. Yang perlu dilakukan klien adalah menghapus byte suhu dari bank data awal dan memasangnya kembali menjadi angka floating point untuk ditampilkan atau diproses. Aplikasi klien termudah bagi saya adalah menggunakan EvoThings.

Langkah 5: Aplikasi Ponsel Cerdas

Aplikasi Ponsel Cerdas
Aplikasi Ponsel Cerdas

Aplikasi sampel Evo Things sangat mendekati apa yang saya butuhkan dengan hanya sedikit usaha yang diperlukan untuk menambahkan elemen tampilan tambahan untuk menyelesaikan perangkat pengukuran suhu 3 saluran.

Instalasi dan pengoperasian dasar platform EvoThings didokumentasikan dengan sangat baik di situs web Evo Things sehingga tidak ada gunanya mengulanginya di sini. Semua yang akan saya bahas di sini adalah perubahan spesifik yang saya buat pada kode sampelnya untuk menampilkan 3 saluran informasi suhu, yang diekstraksi dari area data awal Bluetooth.

Setelah Anda menginstal EvoThings Workbench, Anda akan menemukan contoh Lightblue Bean di sini (pada komputer Windows 64 bit):

ThisPC\Documents\EvothingsStudio_Win64_1. XX\Examples\Lightblue-bean-basic\app

Anda dapat mengganti file index.html dan app.js dengan file yang dilampirkan pada langkah ini. Perubahan yang dilakukan pada file jacascript mengekstrak 3 nilai suhu titik mengambang dari area data awal, dan meningkatkan HTML bagian dalam dari elemen baru yang dibuat dalam file HTML.

function onDataReadSuccess(data) {

var temperatureData = new Float32Array(data);

var byte = new Uint8Array(data);

var suhu = suhuData[0];

console.log('Suhu dibaca: ' + suhu + ' C');

document.getElementById('temperatureAmbient').innerHTML = temperatureData[0].toFixed(2) + " C°";

document.getElementById('temperature1').innerHTML = temperatureData[1].toFixed(2) + " C°";

document.getElementById('temperature2').innerHTML = temperatureData[2].toFixed(2) + " C°";

}

Langkah 6: Kandang

Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran

Enclosure adalah kotak cetak 3D sederhana. Saya menggunakan Cubify Design untuk membuat desain tetapi program pemodelan 3D apa pun sudah cukup. File STL terlampir untuk Anda cetak sendiri. Jika saya harus melakukannya lagi, saya akan membuat dinding sedikit lebih tebal dari sekarang, dan mengubah desain klip yang menahan papan di tempatnya. Klip sangat mudah pecah karena tekanan berada di bidang kecil seperti lapisan cetakan 3D, yang merupakan orientasi terlemah untuk bagian cetakan 3D. Dindingnya sangat tipis sehingga mekanisme jepretnya sedikit di sisi yang lemah. Saya menggunakan selotip bening untuk menutup kotak karena dindingnya terlalu tipis - tidak elegan tetapi berhasil!

Langkah 7: Pengaturan PC dan Konfigurasi Bluetooth

Pengaturan PC dan Konfigurasi Bluetooth
Pengaturan PC dan Konfigurasi Bluetooth

Siklus pembuatan dan pengunggahan firmware untuk Bean semuanya dilakukan melalui Bluetooth. Hanya ada satu koneksi Bluetooth aktif dalam satu waktu. Bean Loader tersedia dari Windows App Store

Siklus dasar yang saya gunakan untuk memasangkan dan menyambungkan (dan memperbaiki dan menyambungkan kembali jika terjadi kesalahan) adalah sebagai berikut: Dari Panel Kontrol;/Pengaturan Bluetooth, Anda akan melihat layar berikut:

Gambar
Gambar

Akhirnya windows akan melaporkan "Siap dipasangkan". Pada titik ini Anda dapat mengklik ikon Bean dan setelah beberapa detik, Windows akan meminta Anda untuk memasukkan kode sandi. Kode sandi default untuk kacang adalah 00000

Gambar
Gambar

Jika kode sandi dimasukkan dengan benar, Windows akan menunjukkan bahwa perangkat terhubung dengan benar. Anda harus dalam kondisi ini agar dapat memprogram Bean.

Gambar
Gambar

Setelah Anda dipasangkan dan terhubung, gunakan Bean Loader untuk memuat firmware ke kacang. Saya menemukan ini gagal lebih sering daripada tidak dan tampaknya terkait dengan kedekatan dengan komputer saya. Pindahkan Bean sampai Anda menemukan lokasi yang cocok untuk Anda. Ada kalanya tidak ada yang berfungsi dan Bean Loader akan menyarankan pemasangan ulang perangkat. Biasanya melalui proses pairing lagi akan memulihkan koneksi. Anda harus "Hapus Perangkat" sebelum memasangkan kembali.

Gambar
Gambar

Operasi Bean Loader berjalan lurus dan didokumentasikan dengan baik di situs mereka. Dengan Bean Loader terbuka, pilih item menu "Program" untuk membuka dialog untuk menelusuri file Hex yang disediakan dalam langkah firmware dari instruksi ini.

Gambar
Gambar

Setelah firmware dimuat, TUTUP Bean Loader sehingga koneksi antara Bean Loader dan perangkat keras Bean terputus. Anda hanya dapat memiliki satu koneksi dalam satu waktu. Sekarang buka meja kerja EvoThings dan mulai klien EvoThings di smartphone atau tablet.

Gambar
Gambar

Saat Anda mengklik tombol "Jalankan", klien EvoThings akan secara otomatis memuat halaman html untuk termometer. Klik tombol Connect untuk menghubungkan ke Bean dan Anda akan melihat suhu ditampilkan. Kesuksesan!

Langkah 8: Kesimpulan

Kesimpulan
Kesimpulan

Jika semuanya dibangun dan dikonfigurasi dengan benar, Anda harus memiliki sistem kerja yang memungkinkan Anda memantau suhu dengan 2 probe, serta memantau suhu sensor BMA250 pada papan pengembangan Bean. Masih banyak yang bisa dilakukan dengan EvoThings - Saya baru saja menggores permukaannya, jadi saya serahkan eksperimen ini untuk Anda! Terima kasih sudah membaca! Jika ada yang salah, tinggalkan komentar dan saya akan membantu di mana saya bisa.

Direkomendasikan: