Mundarija:

Bluetooth termometr: 8 qadam
Bluetooth termometr: 8 qadam

Video: Bluetooth termometr: 8 qadam

Video: Bluetooth termometr: 8 qadam
Video: 7 в 1 Офигенный прибор Тестер качества воды PH/TDS/EC/ORP/Salinity /S/Temp 2024, Noyabr
Anonim
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr

Bu ko'rsatma 100K termistorli problar, Bluetooth moduli va smartfon yordamida oddiy 2 kanalli termometrni yasashni batafsil ko'rsatib beradi. Bluetooth moduli - bu LightBlue Bean, u modulni dasturlash uchun tanish Arduino muhitidan foydalanib, Bluetooth kam energiyali ilovalarni ishlab chiqishni soddalashtirish uchun mo'ljallangan.

Bir muncha vaqt qoqilib, Bluetooth modulidan iPhone -ga harorat ma'lumotlarini qanday olishni bilishga urinib ko'rganimdan so'ng, men EvoThings nomli ilovani topdim, bu esa loyihaning ilovalarni ishlab chiqish qismini ancha soddalashtirdi. Menda iPhone ilovasini ishlab chiqish qobiliyatini cheklaydigan Mac yo'q (men bilaman, hayratlanarli!) Va men iOS va Android uchun o'zaro faoliyat platformalarni ishlab chiqishni qo'llab -quvvatlaydigan yangi Microsoft vositalarini tushunishga vaqtim yo'q. Men HTML5 uslubidagi bir nechta dasturlarni qildim, lekin Bluetooth ma'lumotlarini olishning yagona yo'li - bu Cordova uchun plaginlar, bu men uchun vaqtdan ko'ra qiyinroq edi. EvoThings Bluetooth-dan iPhone-ga bo'lgan tortishuvni tortishish joyiga aylantiradigan juda qulay vositalar to'plamini taqdim etadi. Va men kekni yaxshi ko'raman!

Umuman olganda, Lightblue Bean va EvoThings kombinatsiyasini juda kam vaqt sarflanadigan juda amaliy echim deb topdim.

1 -qadam: Sizga kerak bo'lgan narsalar

Sizga kerak bo'ladigan narsalar
Sizga kerak bo'ladigan narsalar
Sizga kerak bo'ladigan narsalar
Sizga kerak bo'ladigan narsalar
Sizga kerak bo'ladigan narsalar
Sizga kerak bo'ladigan narsalar

Men bitta kanal uchun sotiladigan termistorli probni ishlatardim, chunki men termistorni suyuqlikka botirish uchun muhrlangan bo'lishini xohlardim. Ikkinchi kanal uchun men termistordan, 26 o'lchagichli simdan va 3,5 mm eshitish vositasi vilkasidan asosiy prob qildim. Siz xohlagan har qanday termistorni ishlatishingiz mumkin va siz issiqlik o'tkazuvchi epoksi va plastmassa somonlar/qahva aralashtirgichlaridan o'z zondlaringizni yasashingiz mumkin. Men foydalangan narsadan keyin nima bo'ladi - bu retsept bo'yicha ro'yxat emas!

Uskuna

  • 1 x 100K termistorli problar. Model Extech TP890. Ular odatda ebay va amazonda mavjud.
  • Extech problaridagi 2,5 mm vilkaga mos keladigan 2 x 2,5 mm stereo uyasi. Men eski kompyuterdan 3,5 mm raz'emni olib tashladim, shuning uchun Extech probining vilkasini kesib, uni 3,5 mm vilkalar bilan almashtirdim. Buning oldini olish uchun faqat 2,5 mm raz'emlardan foydalaning yoki 2,5 mm dan 3,5 mm gacha stereo adapter vilkasini ishlating.
  • 100K termistorli boncuk va 26 o'lchagichli sim va 3,5 mm stereo vilka, agar siz o'zingiz prob qilmoqchi bo'lsangiz. Aks holda, ikkinchi Extech probini sotib oling!
  • 1 x Lightblue Bean - dizayn orqali punch. Bu Bluetooth moduli, Arduino ishlab chiqish paneli sifatida dasturlashtirilishi mumkin. Modul juda qimmat, lekin u juda ko'p murakkablikni yo'q qiladi. Ular o'ylab ko'rishga arziydigan keyingi avlod qurilmalari uchun Kickstarter kampaniyasini o'tkazmoqdalar.
  • Termistorlar uchun mos yozuvlar kuchlanishni bo'lish uchun ishlatiladigan 2 x 1/4 Vt 100K rezistorlar. Men 5% rezistorlardan foydalanardim, lekin yuqori bardoshli qarshilik odatda past haroratga sezgir va yaxshi ishlashni ta'minlaydi. Buning uchun 1% yaxshi bardoshlik qiymatidir.
  • Lehimlash temir va lehim
  • Sim kesgichlar va 26 yoki 28 kalibrli simlarning kichik uzunliklari.

Dasturiy ta'minot va dasturiy ta'minot

  • Bean dasturlash uchun sizga Bean Loader ilovasi kerak bo'ladi. Men derazalarni ishlatganman, shuning uchun barcha havolalar Windowsga xos bo'ladi. Bean bilan ishlashni boshlash uchun kerak bo'lgan hamma narsani, shu jumladan Arduino -ning o'ziga xos xususiyatlarini LightBlueBean saytida topish mumkin.
  • Smartfonlar uchun EvoThings dastgohi bu erda mavjud. Hamma "boshlash" hujjatlari u erda ham mavjud. Bu juda yaxshi hujjatlashtirilgan.

2 -qadam: O'chirish va elektr inshootlari

O'chirish va elektr inshootlari
O'chirish va elektr inshootlari
O'chirish va elektr inshootlari
O'chirish va elektr inshootlari
O'chirish va elektr inshootlari
O'chirish va elektr inshootlari

Termistor - bu haroratga bog'liq qarshilik. Extech probi salbiy harorat koeffitsientiga ega, ya'ni harorat oshishi bilan qarshilik kamayadi. Qarshilik qiymati oddiy zanjir bilan o'lchanadi, u bir oyog'ida termistorli kuchlanish bo'luvchi, ikkinchisida 100K qattiq rezistor hosil qiladi. Ajratilgan kuchlanish Bean -dagi analog kirish kanaliga uzatiladi va dasturiy ta'minotda namuna olinadi.

Zanjirni qurish uchun men eski singan kompyuterdan 3,5 mm audio jaklarni oldim. PCBda probning uchi va birinchi bandiga mos keladigan ikkita nuqtani aniqlash uchun multimetr ishlatilgan. Rasmlarda ko'rsatilgandek, simlar audio jaklarga va Beanga lehimlangan. Audio jaklar ikki tomonlama lenta yordamida Bean prototipiga yopishtirilgan. Men ishlatgan lenta - bu avtomobil qismidagi dekalli tasma bo'lib, u tortish qismlari o'rtasida juda mustahkam bog'lanish hosil qiladi.

3 -qadam: Tekshirish koeffitsientlari

Tekshirish koeffitsientlari
Tekshirish koeffitsientlari

Extech tekshiruvi qanchalik keng tarqalgan bo'lsa, men topa oladigan joyda Steynxart-Xart koeffitsientlari e'lon qilinmaydi. Yaxshiyamki, siz ko'rsatadigan 3 ta harorat o'lchovlari koeffitsientlarini aniqlaydigan onlayn kalkulyator mavjud.

Men qanday koeffitsientlarga etib keldim - asosiy protsedura. Uslub uchun hech qanday ball topa olmaysiz, lekin +/- 1 daraja aniq aytishga imkon beradigan darajada yaxshi (men bosh barmog'im bilan) …. mos yozuvlar termometr va multimetr aniqligiga qarab! Mening multimetrim-bu ko'p yillar oldin, pul juda qattiq bo'lgan paytda sotib olingan, noma'lum brend. Pul hali ham qattiq va u hali ham ishlaydi!

Kalibrlash uchun bizga 3 ta haroratdan uchta qarshilik ko'rsatkichi kerak.

  • Sovuqqa yaqin, bir stakan suvga muz qo'shing va harorat barqaror bo'lguncha aralashtiring. Stabillashgandan so'ng, probning qarshiligini va haroratni qayd qilish uchun mos yozuvlar termometrini o'lchash uchun ko'p metrdan foydalaning.
  • Endi probni xona haroratida bir stakan suvga qo'ying, probni suv harorati bilan tenglashtirishga ruxsat bering va haroratni mos yozuvlar termometriga va ko'p metrli qarshilik ko'rsatkichini yozib oling.
  • Probni bir stakan issiq suvga joylashtiring va qarshilikni yozib oling.

    Harorat Qarshilik
    5.6 218K
    21.0 97,1 ming
    38.6 43.2

Bu butun jarayon tovuq va tuxum holatidir, chunki sizga haroratni yozib olish uchun kalibrlangan termometr va qarshilikni yozib olish uchun kalibrlangan ko'p metr kerak. Bu erdagi xatolar haroratni o'lchashda noaniqlikka olib keladi, lekin mening maqsadim uchun +/- 1 daraja kerak bo'lgandan ko'ra ko'proq.

Veb -kalkulyatorga yozilgan qiymatlarni qo'shish quyidagilarni beradi:

Rasm
Rasm

Haroratni namunaviy qarshilik qiymatidan qaytarish uchun koeffitsientlar (A, B va C) Stenxart-Xart tenglamasiga ulangan. Tenglama quyidagicha aniqlanadi (manba: wikipedia.com)

Rasm
Rasm

Bu erda T = Kelvindagi harorat

A, B va C-biz aniqlashga harakat qilayotgan Staynxart-Xart tenglamasi koeffitsientlari, R-T haroratidagi qarshilik.

Dasturiy ta'minot bu hisobni amalga oshiradi.

4 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot

Termistor kuchlanishlari namuna olinadi, haroratga o'tkaziladi va Bluetooth orqali smartfonda ishlaydigan EvoThings ilovasiga yuboriladi.

Volanni Bean ichidagi qarshilik qiymatiga aylantirish uchun oddiy chiziqli tenglama ishlatiladi. Tenglamaning chiqarilishi tasvir sifatida berilgan. Namuna olingan qiymatni kuchlanishga o'tkazish o'rniga, ADC ham, kirish voltaji ham bir xil batareya zo'riqishida ko'rsatiladi, biz kuchlanish o'rniga ADC qiymatidan foydalanishimiz mumkin. 10 bitli Bean ADC uchun batareyaning to'liq zo'riqishi ADC qiymatining 1023 qiymatiga olib keladi, shuning uchun biz bu qiymatni Vbat sifatida ishlatamiz. Ajratuvchi qarshilikning haqiqiy qiymati muhim ahamiyatga ega. 100K bo'luvchi rezistorning haqiqiy qiymatini o'lchang va qarshilik bardoshliligi tufayli keraksiz xato manbasini oldini olish uchun tenglamadagi o'lchangan qiymatdan foydalaning.

Qarshilik qiymati hisoblangach, qarshilik qiymati Shteynxart-Xart tenglamasi yordamida haroratga aylanadi. Bu tenglama Vikipediyada batafsil tasvirlangan.

Bizda 2 ta prob borligi sababli, prob funktsiyalarini C ++ sinfiga kiritish mantiqan to'g'ri keldi.

Bu sinf Shtaynxart-Xart tenglamali koeffitsientlarini, nominal bo'luvchi qarshilik qiymatini va termistor ulangan analog portni o'z ichiga oladi. Yagona usul, harorat (), ADC qiymatini qarshilik qiymatiga aylantiradi va keyin Kelvindagi haroratni aniqlash uchun Shtaynxart-Xart tenglamasidan foydalanadi. Qaytish qiymati Selsiy bo'yicha qiymatni ta'minlash uchun hisoblangan haroratdan mutlaq nolni (273,15K) chiqaradi.

Lightblue Bean -ning kuchi shundan dalolat beradiki, Bluetooth -ning barcha funktsiyalari asosan 1 -qatorli kodda amalga oshiriladi, u namunaviy harorat qiymatlarini Bluetooth xotirasidagi ma'lumotlar chizish maydoniga yozadi.

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

Har bir tanlangan harorat qiymati 4 baytni egallaydigan float bilan ifodalanadi. Ma'lumotlar chizish maydoni 20 baytni o'z ichiga olishi mumkin. Biz ulardan faqat 12 tasidan foydalanmoqdamiz. 5 ta chizish ma'lumotlari maydoni mavjud, shuning uchun siz skretch ma'lumotlari yordamida 100 baytgacha ma'lumotlarni uzatishingiz mumkin.

Voqealarning asosiy oqimi:

  • Bluetooth aloqasi bor yoki yo'qligini tekshiring
  • Agar shunday bo'lsa, haroratni namuna oling va ularni chizilgan ma'lumotlar maydoniga yozing
  • 200ms uxlang va tsiklni takrorlang.

Agar ulanmagan bo'lsa, dasturiy ta'minot ATMEGA328P chipini uzoq vaqt uxlab qoladi. Quvvatni tejash uchun uyqu davri muhim ahamiyatga ega. ATMEGA328P chipi past quvvat rejimiga o'tadi va LBM313 Bluetooth moduli uzilmaguncha u erda qoladi. LBM313 ATMEGA328P -ni talab qilinadigan uyqu muddati oxirida yoki Bean -ga Bluetooth ulanishi bilan uyg'otish uchun uzilish hosil qiladi. WakeOnConnect funksiyasi Bean.enableWakeOnConnect (rost) ni aniq chaqirish orqali yoqiladi ().

Shuni ta'kidlash kerakki, dasturiy ta'minot har qanday BLE mijoz dasturida ishlaydi. Mijoz qilish kerak bo'lgan yagona narsa - bu ma'lumotlar baytidan harorat baytlarini olib tashlash va ularni ko'rsatish yoki qayta ishlash uchun suzuvchi nuqta raqamlariga yig'ish. Men uchun eng oson mijoz ilovasi EvoThings -dan foydalanish edi.

5 -qadam: Smartfon ilovasi

Smartfon uchun dastur
Smartfon uchun dastur

Evo Things namuna ilovasi 3 kanalli haroratni o'lchash moslamasini to'ldirish uchun qo'shimcha displey elementlarini qo'shish uchun zarur bo'lgan ozgina harakat bilan menga kerak bo'lgan narsaga juda yaqin.

EvoThings platformasining o'rnatilishi va asosiy ishlashi Evo Things veb -saytida juda yaxshi hujjatlashtirilgan, shuning uchun bu erda buni takrorlashning ma'nosi yo'q. Bu erda men Bluetooth kodli ma'lumotlar maydonidan olingan harorat ma'lumotlarining 3 kanalini ko'rsatish uchun ularning namunaviy kodiga kiritilgan aniq o'zgarishlarni keltiraman.

EvoThings Workbench -ni o'rnatganingizdan so'ng, bu erda Lightblue Bean misolini topasiz (Windows 64 bitli kompyuterlarda):

ThisPC / Documents / EvothingsStudio_Win64_1. XX / Examples / Lightblue-bean-basic / ilova

Index.html va app.js fayllarini ushbu qadamga biriktirilgan fayllar bilan almashtirish mumkin. Jakascript fayliga kiritilgan o'zgartirishlar 3 ta suzuvchi nuqta harorati qiymatini chiqaradi va HTML faylida yaratilgan yangi elementlarning ichki HTML -ni oshiradi.

onDataReadSuccess funksiyasi (ma'lumotlar) {

var temperaturData = yangi Float32Array (ma'lumotlar);

var bayt = yangi Uint8Array (ma'lumotlar);

var temperaturasi = temperatureData [0];

console.log ('Harorat o'qiladi:' + harorat + 'C');

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

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

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

}

6 -qadam: mahkamlash

Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama

Korpus oddiy 3D bosilgan quti. Men dizaynni yaratish uchun Cubify Design -dan foydalandim, lekin har qanday 3D modellashtirish dasturi etarli bo'ladi. Siz o'zingiz chop etishingiz uchun STL fayli biriktirilgan. Agar buni qilishim kerak bo'lsa, men devorlarni hozirgidan ko'ra qalinroq qilib, taxtani joyida ushlab turadigan klip dizaynini o'zgartirgan bo'lardim. Kliplar osonlikcha uzilib ketadi, chunki bosim 3D tekis bosilgan qismlarga bo'linadi, bu 3D bosilgan qismlar uchun eng zaif yo'nalishdir. Devorlari juda nozik, shuning uchun burilish mexanizmi zaif tomonda. Men qutini yopiq ushlab turish uchun aniq lentani ishlatardim, chunki devorlar juda nozik edi - nafis emas, lekin u ishlaydi!

7 -qadam: Kompyuter sozlamalari va Bluetooth konfiguratsiyasi

Kompyuter sozlamalari va Bluetooth konfiguratsiyasi
Kompyuter sozlamalari va Bluetooth konfiguratsiyasi

Bean uchun dasturiy ta'minotni yaratish va yuklash jarayoni Bluetooth orqali amalga oshiriladi. Bir vaqtning o'zida faqat bitta faol Bluetooth ulanishi bo'lishi mumkin. Bean Loader Windows App Store -da mavjud

Men ulash va ulash (va ishlar noto'g'ri ketganda ta'mirlash va qayta ulash) uchun ishlatadigan asosiy tsikl quyidagicha: Boshqarish panelidan;/Bluetooth sozlamalarida siz quyidagi ekranni ko'rishingiz kerak:

Rasm
Rasm

Oxir -oqibat, derazalarda "Juftlikka tayyormiz" degan xabar paydo bo'ladi. Bu vaqtda siz Bean belgisini bosishingiz mumkin va bir necha soniyadan so'ng Windows sizdan parolni kiritishingizni so'raydi. Fasol uchun standart parol - 00000

Rasm
Rasm

Agar parol to'g'ri kiritilgan bo'lsa, Windows qurilmaning to'g'ri ulanganligini ko'rsatadi. Bean dasturlash uchun siz shu holatda bo'lishingiz kerak.

Rasm
Rasm

Siz bog'langan va ulanganingizdan so'ng, Bean Loader -dan foydalanib, dasturiy ta'minotni fasolga yuklang. Men buni tez -tez muvaffaqiyatsiz deb topdim va bu mening kompyuterimga yaqinligi bilan bog'liq edi. Sizga mos keladigan joyni topmaguningizcha, Beanni harakatlantiring. Ba'zida hech narsa ishlamaydi va Bean Loader qurilmani qayta ulashni taklif qiladi. Odatda, qayta ulanish jarayonidan o'tish ulanishni tiklaydi. Qayta ulashdan oldin "Qurilmani olib tashlash" kerak.

Rasm
Rasm

Bean Loader operatsiyasi juda sodda va ularning saytida yaxshi hujjatlashtirilgan. Bean Loader ochiq bo'lsa, dasturning dasturiy ta'minot bosqichida taqdim etilgan Hex faylini ko'rish uchun dialog oynasini ochish uchun "Dastur" menyusini tanlang.

Rasm
Rasm

Dasturiy ta'minot yuklangandan so'ng, Bean Loader -ni Yoping, shunda Bean Loader va Bean apparatining aloqasi uziladi. Siz bir vaqtning o'zida faqat bitta ulanishni o'rnatishingiz mumkin. Endi EvoThings ish stolini oching va smartfon yoki planshetda EvoThings mijozini ishga tushiring.

Rasm
Rasm

"Ishga tushirish" tugmachasini bosganingizda, EvoThings mijozi termometr uchun html sahifasini avtomatik ravishda yuklaydi. Bean -ga ulanish uchun Ulanish tugmasini bosing va siz haroratni ko'rasiz. Muvaffaqiyat!

8 -qadam: Xulosa

Xulosa
Xulosa

Agar hamma narsa to'g'ri qurilgan va sozlangan bo'lsa, sizda 2 prob bilan haroratni kuzatish, shuningdek, Bean ishlab chiqarish panelidagi BMA250 sensori haroratini kuzatish imkonini beradigan ishchi tizim bo'lishi kerak. EvoThings bilan yana ko'p ishlarni qilish mumkin - men shunchaki sirtini qirib tashladim, shuning uchun bu tajribani siz uchun qoldiraman! O'qiganingiz uchun tashakkur! Agar biror narsa noto'g'ri bo'lsa, sharhlaringizni qoldiring va men qo'limdan kelganicha yordam beraman.

Tavsiya: