Isi kandungan:

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

Instruksional ini memperincikan pembuatan termometer 2 saluran sederhana menggunakan probe termistor 100K, modul Bluetooth dan telefon pintar. Modul Bluetooth adalah LightBlue Bean yang dirancang untuk memudahkan pengembangan aplikasi Bluetooth Low Energy dengan menggunakan persekitaran Arduino yang sudah biasa untuk memprogram modul.

Setelah tersandung sebentar cuba mencari cara mendapatkan data suhu dari modul Bluetooth ke iPhone saya, saya menjumpai sebuah aplikasi bernama EvoThings yang mempermudahkan aspek pengembangan aplikasi projek. Saya tidak mempunyai Mac (mengejutkan saya tahu!) Yang membataskan kemampuan saya untuk mengembangkan aplikasi iPhone, dan saya tidak mempunyai masa untuk menguraikan alat Microsoft baru yang jelas menyokong pengembangan platform silang 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 kelihatan lebih sukar daripada yang saya ada. EvoThings menyediakan sekumpulan alat yang sangat mudah digunakan yang mengubah cabaran Bluetooth-ke-iPhone menjadi cakewalk. Dan saya suka kek!

Secara keseluruhan saya mendapati gabungan Lightblue Bean dan EvoThings menjadi penyelesaian yang sangat praktikal dengan pelaburan masa yang rendah.

Langkah 1: Perkara yang Anda Perlu

Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu

Saya menggunakan probistor termistor yang tersedia secara komersial untuk satu saluran kerana saya mahu termistor dimeteraikan untuk direndam ke dalam cecair. Untuk saluran kedua, saya membuat probe asas dari termistor, beberapa wayar 26 gauge dan palam fon kepala 3.5mm. Anda bebas menggunakan termistor yang anda mahukan dan anda boleh membuat penyiasat sendiri daripada epoksi konduktif termal dan sedotan plastik / pengadun kopi misalnya. Yang berikut adalah yang saya gunakan - ia tidak dimaksudkan untuk menjadi senarai preskriptif!

Perkakasan

  • Probe Thermistor 1 x 100K. Model Extech TP890. Ini biasanya terdapat di ebay dan amazon.
  • Jek stereo 2 x 2.5mm yang sesuai dengan palam 2.5mm pada probe Extech. Saya mencabut bicu 3.5mm dari komputer lama sehingga saya memotong plag dari probe Extech dan menggantinya dengan palam 3.5mm. Anda harus mengelakkan ini hanya menggunakan bicu 2.5mm, atau menggunakan palam penyesuai stereo 2.5mm hingga 3.5mm di luar rak.
  • Manik termistor 100K ditambah wayar tolok 26 ditambah steker stereo 3.5mm jika anda ingin membuat probe anda sendiri. Sekiranya tidak, beli probe Extech kedua!
  • 1 x Lightblue Bean by Punch Through Designs. Ini adalah modul Bluetooth yang dapat diprogramkan sebagai papan pengembangan Arduino. Modul ini agak mahal tetapi menghilangkan banyak kerumitan. Mereka menjalankan kempen Kickstarter untuk peranti generasi seterusnya yang mungkin patut dipertimbangkan.
  • 2 x 1 / 4W 100K perintang yang digunakan untuk membahagi voltan rujukan untuk termistor. Saya menggunakan perintang 5% tetapi perintang toleransi yang lebih tinggi umumnya kurang sensitif terhadap suhu dan akan memberikan prestasi yang lebih baik. 1% adalah nilai toleransi yang baik untuk ini.
  • Pateri dan pateri
  • Pemotong wayar dan beberapa wayar penyambungan tolok panjang 26 atau 28.

Perisian dan Firmware

  • Untuk memprogram Bean, anda memerlukan aplikasi Bean Loader. Saya telah menggunakan windows supaya semua pautan akan khusus untuk Windows. Semua yang anda perlukan untuk memulakan Bean termasuk spesifikasi Arduino boleh didapati dari laman LightBlueBean
  • Meja kerja EvoThings untuk aplikasi telefon pintar boleh didapati di sini. Semua dokumentasi "bermula" juga terdapat di sana. Ia didokumentasikan dengan baik.

Langkah 2: Pembinaan Litar dan Elektrik

Litar dan Pembinaan Elektrik
Litar dan Pembinaan Elektrik
Litar dan Pembinaan Elektrik
Litar dan Pembinaan Elektrik
Litar dan Pembinaan Elektrik
Litar dan Pembinaan Elektrik

Termistor adalah perintang bergantung pada suhu. Probe Extech mempunyai pekali suhu negatif yang bermaksud bahawa ketika suhu meningkat, rintangan menurun. Nilai rintangan diukur dengan litar sederhana yang membuat pembahagi voltan dengan termistor dalam satu kaki, dan perintang 100K tetap di bahagian lain. Voltan terbahagi dimasukkan ke saluran Analog Input pada Bean dan diambil sampel dalam firmware.

Untuk membina litar, saya mengorek bicu audio 3.5mm dari PC lama yang rosak. Multimeter digunakan untuk menentukan dua titik pada PCB yang sesuai dengan hujung dan jalur pertama probe. Kabel disolder ke bicu audio dan ke Bean seperti yang ditunjukkan dalam gambar. Soket audio terpaku pada kawasan prototaip Bean menggunakan pita dua sisi. Pita yang saya gunakan adalah pita decal gred automotif yang mewujudkan ikatan yang sangat kuat antara bahagian tunda.

Langkah 3: Pekali Probe

Pekali Probe
Pekali Probe

Sama seperti penyelidikan Extech, pekali Steinhart-Hart tidak diterbitkan di mana sahaja yang saya dapati. Nasib baik ada kalkulator dalam talian yang akan menentukan pekali dari 3 ukuran suhu yang anda berikan.https://www.thinksrs.com/downloads/programs/Therm%2…

Berikut adalah prosedur asas yang biasa saya gunakan untuk mencapai pekali. Tidak akan mendapat mata untuk gaya tetapi cukup baik untuk membuat anda mengatakan +/- 1 darjah tepat (jumlah jempol di pihak saya)…. bergantung pada ketepatan termometer rujukan anda dan multimeter tentu saja! Multimeter saya adalah unit jenama tanpa nama yang murah yang saya beli bertahun-tahun yang lalu ketika wang sudah habis. Wang masih ketat dan masih berfungsi!

Untuk menentukur, kita memerlukan tiga bacaan rintangan dari 3 suhu.

  • Hampir beku dengan menambahkan ais ke segelas air dan kacau sehingga suhu stabil. Setelah stabil, gunakan multi-meter untuk merakam rintangan probe dan termometer rujukan untuk merakam suhu.
  • Sekarang letakkan probe ke dalam segelas air pada suhu bilik, biarkan probe menyamakan dengan suhu air dan catat suhu pada termometer rujukan anda dan bacaan rintangan pada meter anda.
  • Letakkan probe ke dalam segelas air panas dan catatkan rintangan.

    Suhu Penentangan
    5.6 218K
    21.0 97.1K
    38.6 43.2

Seluruh proses ini adalah sedikit keadaan ayam dan telur kerana anda memerlukan termometer yang dikalibrasi untuk merakam suhu dan multi-meter yang dikalibrasi untuk merakam rintangan. Kesalahan di sini akan menyebabkan ketidaktepatan dalam pengukuran suhu yang anda buat tetapi untuk tujuan saya, +/- 1 darjah lebih daripada yang saya perlukan.

Memasukkan nilai yang direkodkan ini ke dalam kalkulator web menghasilkan yang berikut:

Imej
Imej

Pekali (A, B dan C) dimasukkan ke dalam persamaan Stenhart-Hart untuk menentukan suhu dari nilai rintangan sampel. Persamaan ditakrifkan sebagai (sumber: wikipedia.com)

Imej
Imej

Di mana T = Suhu di Kelvin

A, B dan C adalah pekali persamaan Steinhart-Hart yang kami cuba tentukan R adalah rintangan pada suhu T

Firmware akan melakukan pengiraan ini.

Langkah 4: Perisian firmware

Firmware
Firmware
Firmware
Firmware

Voltan termistor diambil sampel, diubah menjadi suhu dan dikirim melalui Bluetooth ke aplikasi EvoThings yang berjalan di telefon pintar.

Untuk menukar voltan ke nilai rintangan dalam Bean, digunakan persamaan linear sederhana. Pembentukan persamaan diberikan sebagai gambar. Daripada menukar nilai sampel ke voltan, kerana kedua-dua ADC dan voltan input dirujuk ke voltan bateri yang sama, kita dapat menggunakan nilai ADC dan bukannya voltan. Untuk 10bit Bean ADC, voltan bateri penuh akan menghasilkan nilai ADC 1023 jadi kami menggunakan nilai ini sebagai Vbat. Nilai sebenar perintang pembahagi adalah pertimbangan penting. Ukur nilai sebenar perintang pembahagi 100K dan gunakan nilai yang diukur dalam persamaan untuk mengelakkan sumber ralat yang tidak perlu kerana toleransi perintang.

Setelah nilai rintangan dikira, nilai rintangan ditukar menjadi suhu menggunakan persamaan Steinhart-Hart. Persamaan ini dijelaskan secara terperinci di Wikipedia.

Kerana kami mempunyai 2 probe, masuk akal untuk merangkum fungsi probe ke kelas C ++.

Kelas merangkumi pekali persamaan Steinhart-Hart, nilai rintangan pembahagi nominal dan port analog di mana termistor disambungkan. Kaedah tunggal, suhu (), menukar nilai ADC ke nilai rintangan dan kemudian menggunakan persamaan Steinhart-Hart untuk menentukan suhu di Kelvin. Nilai pulangan mengurangkan sifar mutlak (273.15K) dari suhu yang dikira untuk memberikan nilai dalam Celsius.

Kekuatan Lightblue Bean jelas dalam kenyataan bahawa semua fungsi Bluetooth pada dasarnya dilaksanakan dalam 1 baris kod yang menulis nilai suhu sampel ke kawasan data awal pada memori Bluetooth.

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

Setiap nilai suhu sampel ditunjukkan oleh apungan yang memakan masa 4 bait. Kawasan data calar boleh menahan 20 bait. Kami hanya menggunakan 12 daripadanya. Terdapat 5 kawasan data goresan sehingga Anda dapat memindahkan hingga 100 bait data menggunakan data awal.

Aliran asas peristiwa adalah:

  • Periksa untuk mengetahui sama ada kami mempunyai sambungan Bluetooth
  • Sekiranya ya, contoh suhu dan tuliskan ke kawasan data calar
  • Tidur 200ms dan ulangi kitaran.

Sekiranya tidak disambungkan, firmware meletakkan cip ATMEGA328P untuk tidur lama. Kitaran tidur penting untuk menjimatkan kuasa. Cip ATMEGA328P masuk ke mod kuasa rendah dan kekal di sana sehingga terganggu oleh modul Bluetooth LBM313. LBM313 akan menghasilkan gangguan untuk mengaktifkan ATMEGA328P pada akhir tempoh tidur yang diminta, atau setiap kali sambungan Bluetooth dibuat ke Bean. Fungsi WakeOnConnect diaktifkan dengan memanggil Bean.enableWakeOnConnect (benar) secara eksplisit semasa persediaan ().

Penting untuk diperhatikan bahawa firmware akan berfungsi dengan mana-mana aplikasi klien BLE. Yang perlu dilakukan oleh pelanggan adalah membuang byte suhu dari bank data awal dan memasangnya semula menjadi nombor titik terapung untuk paparan atau pemprosesan. Aplikasi pelanggan yang paling mudah bagi saya adalah menggunakan EvoThings.

Langkah 5: Aplikasi Telefon Pintar

Aplikasi Telefon Pintar
Aplikasi Telefon Pintar

Aplikasi contoh Evo Things sangat dekat dengan apa yang saya perlukan dengan hanya usaha kecil yang diperlukan untuk menambahkan elemen paparan tambahan untuk menyelesaikan peranti pengukuran suhu 3 saluran.

Pemasangan dan operasi asas platform EvoThings didokumentasikan dengan baik di laman web Evo Things sehingga tidak ada nilai mengulanginya di sini. Yang akan saya bahas di sini adalah perubahan khusus yang saya buat pada kod sampel mereka untuk memaparkan 3 saluran maklumat suhu, yang diekstrak dari kawasan data calar Bluetooth.

Selepas anda memasang Workbench EvoThings, anda akan mendapat contoh Lightblue Bean di sini (pada komputer Windows 64 bit):

Ini PC / Documents / EvothingsStudio_Win64_1. XX / Contoh / aplikasi Lightblue-bean-basic

Anda boleh mengganti fail index.html dan app.js dengan fail yang dilampirkan pada langkah ini. Perubahan yang dibuat pada file jacascript mengekstrak 3 nilai suhu titik terapung membentuk kawasan data awal, dan ke dalam HTML elemen baru yang dibuat dalam fail HTML.

fungsi onDataReadSuccess (data) {

var temperatureData = Float32Array baru (data);

var bytes = Uint8Array baru (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

Pagar
Pagar
Pagar
Pagar
Pagar
Pagar
Pagar
Pagar

Lampiran adalah kotak cetak 3D sederhana. Saya menggunakan Cubify Design untuk membuat reka bentuk tetapi mana-mana program pemodelan 3D akan mencukupi. Fail STL dilampirkan untuk anda mencetak sendiri. Sekiranya saya terpaksa melakukannya, saya akan membuat dinding sedikit lebih tebal daripada yang ada sekarang, dan mengubah reka bentuk klip yang memegang papan di tempatnya. Klip pecah dengan mudah kerana tekanan berada di satah smae kerana lapisan bercetak 3D, yang merupakan orientasi paling lemah untuk bahagian bercetak 3D. Dindingnya sangat tipis sehingga mekanisme snap sedikit di sisi yang lemah. Saya menggunakan pita yang jelas untuk memastikan kotak ditutup kerana dindingnya terlalu tipis - tidak elegan tetapi berfungsi!

Langkah 7: Tetapan PC dan Konfigurasi Bluetooth

Tetapan PC dan Konfigurasi Bluetooth
Tetapan PC dan Konfigurasi Bluetooth

Kitaran membina dan memuat naik firmware untuk Bean semuanya dilakukan melalui Bluetooth. Hanya ada satu sambungan Bluetooth aktif pada satu masa. Bean Loader boleh didapati dari Windows App Store

Kitaran asas yang saya gunakan untuk memasangkan dan menyambungkan (dan membaiki dan menyambung semula apabila berlaku sesuatu) adalah seperti berikut: Dari Panel Kawalan; / tetapan Bluetooth, anda akan melihat skrin berikut:

Imej
Imej

Akhirnya windows akan melaporkan "Siap berpasangan". Pada ketika ini anda dapat mengklik ikon Bean dan setelah beberapa saat, Windows akan meminta anda memasukkan kod laluan. Kod laluan lalai untuk kacang adalah 00000

Imej
Imej

Sekiranya kod laluan dimasukkan dengan betul, Windows akan menunjukkan bahawa peranti disambungkan dengan betul. Anda mesti berada dalam keadaan ini untuk dapat memprogram Bean.

Imej
Imej

Setelah anda dipasangkan dan disambungkan, gunakan Bean Loader untuk memuatkan firmware ke bean. Saya mendapati ini lebih kerap gagal dan nampaknya berkaitan dengan jarak dekat dengan komputer saya. Gerakkan Bean di sekitar sehingga anda menemui lokasi yang sesuai untuk anda. Ada kalanya tidak ada yang berfungsi dan Bean Loader akan menyarankan untuk memasangkan semula peranti. Biasanya melalui proses berpasangan sekali lagi akan memulihkan sambungan. Anda mesti "Keluarkan Peranti" sebelum memasangkan semula.

Imej
Imej

Operasi Bean Loader adalah mudah dan didokumentasikan dengan baik di laman web mereka. Dengan Bean Loader terbuka, pilih item menu "Program" untuk membuka dialog untuk melihat ke fail Hex yang disediakan dalam langkah firmware yang diarahkan ini.

Imej
Imej

Setelah firmware dimuat, TUTUP Bean Loader sehingga sambungan antara Bean Loader dan perkakasan Bean terputus. Anda hanya boleh mempunyai satu sambungan pada satu masa. Sekarang buka meja kerja EvoThings dan mulakan klien EvoThings pada telefon pintar atau tablet.

Imej
Imej

Apabila anda mengklik butang "Jalankan", pelanggan EvoThings akan memuatkan halaman html secara automatik untuk termometer. Klik butang Connect untuk menyambung ke Bean dan anda akan melihat suhu yang dipaparkan. Berjaya!

Langkah 8: Kesimpulannya

Kesimpulannya
Kesimpulannya

Sekiranya semuanya dibina dan dikonfigurasi dengan betul, anda harus mempunyai sistem kerja yang membolehkan anda memantau suhu dengan 2 probe, serta memantau suhu sensor BMA250 pada papan pengembangan Bean. Masih banyak yang boleh dilakukan dengan EvoThings - Saya baru sahaja menggaru permukaannya sehingga saya meninggalkan percubaan ini untuk anda! Terima kasih untuk membaca! Sekiranya ada masalah, tinggalkan komen dan saya akan membantu di mana saya boleh.

Disyorkan: