Mündəricat:

Bluetooth Termometr: 8 addım
Bluetooth Termometr: 8 addım

Video: Bluetooth Termometr: 8 addım

Video: Bluetooth Termometr: 8 addım
Video: Bluetooth 8-Channel relay control ( Fan and Light ) board (with Android App) 2024, Iyul
Anonim
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr
Bluetooth termometr

Bu təlimat, 100K termistor probları, Bluetooth modulu və ağıllı telefondan istifadə edərək sadə 2 kanallı bir termometrin hazırlanmasını ətraflı izah edir. Bluetooth modulu, modulu proqramlaşdırmaq üçün tanış Arduino mühitindən istifadə etməklə Bluetooth Aşağı Enerji tətbiqinin inkişafını asanlaşdırmaq üçün hazırlanmış bir LightBlue Bean -dir.

Bir müddət büdrədikdən sonra Bluetooth modulundan temperatur məlumatlarını iPhone -a necə çatdıracağımı anlamağa çalışdıqdan sonra, layihənin tətbiq inkişaf tərəfini xeyli asanlaşdıran EvoThings adlı bir tətbiq tapdım. Bir iPhone tətbiqini inkişaf etdirmə qabiliyyətimi məhdudlaşdıran bir Mac (bildiyim şok edici!) Yoxdur və iOS və Android üçün açıq platforma inkişafını dəstəkləyən yeni Microsoft vasitələrini deşifr etməyə vaxtım yoxdur. Bir neçə HTML5 üslubunda tətbiq etdim, ancaq Bluetooth məlumatlarını əldə etməyin yeganə yolu, vaxtımdan daha çətin görünən Cordova üçün plaginlərdir. EvoThings, Bluetooth-dan iPhone-a meydan oxuyan bir döngəyə çevrilən çox asan bir alət dəsti təqdim edir. Və tortu sevirəm!

Ümumiyyətlə, Lightblue Bean və EvoThings birləşməsini az vaxt sərmayəsi ilə çox praktik bir həll olaraq gördüm.

Addım 1: Ehtiyac duyacağınız şeylər

Ehtiyac duyacağınız şeylər
Ehtiyac duyacağınız şeylər
Ehtiyac duyacağınız şeylər
Ehtiyac duyacağınız şeylər
Ehtiyac duyacağınız şeylər
Ehtiyac duyacağınız şeylər

Bir kanal üçün ticari olaraq mövcud olan bir termistor probu istifadə etdim, çünki termistorun mayelərə batırılması üçün möhürlənmiş olmasını istədim. İkinci kanal üçün, bir termistordan, təxminən 26 ölçü telindən və 3,5 mm qulaqlıq fişindən əsas bir zond hazırladım. İstədiyiniz hər hansı bir termistoru istifadə etməkdə sərbəstsiniz və məsələn, termal keçirici epoksi və plastik çubuqlardan/qəhvə qarışdırıcılarından öz problarınızı hazırlaya bilərsiniz. Aşağıdakılar istifadə etdiyim şeydir - bu, müəyyən bir siyahı olmaq üçün nəzərdə tutulmayıb!

Avadanlıq

  • 1 x 100K termistor probu. Model Extech TP890. Bunlar ümumiyyətlə ebay və amazonda mövcuddur.
  • Extech problarının 2.5mm fişinə uyğun olan 2 x 2.5 mm Stereo jak. Köhnə bir kompüterdən 3,5 mm -lik yuvaları götürdüm, buna görə Extech probunun fişini kəsdim və onu 3,5 mm -lik fişlərlə əvəz etdim. Bunun qarşısını almaq üçün sadəcə 2,5 mm-lik jaklardan istifadə etməlisiniz və ya 2,5 mm-dən 3,5 mm-ə qədər stereo adapter fişindən istifadə etməlisiniz.
  • 100K termistor boncuk və 26 ölçmə teli plus 3,5 mm stereo fiş, öz zondunuzu etmək istəyirsinizsə. Əks təqdirdə, ikinci bir Extech zondu alın!
  • 1 x Lightblue Fasulye ilə Dizaynlar Arasında. Bu, Arduino inkişaf lövhəsi olaraq proqramlaşdırıla bilən Bluetooth moduludur. Modul olduqca bahalıdır, lakin bir çox mürəkkəbliyi aradan qaldırır. Növbəti nəsil cihaz üçün düşünməyə dəyər ola biləcək bir Kickstarter kampaniyası aparırlar.
  • Termistorlar üçün istinad gərginliyini bölmək üçün istifadə olunan 2 x 1/4W 100K rezistorlar. 5% rezistor istifadə etdim, lakin daha yüksək tolerantlıq rezistorları ümumiyyətlə daha az həssasdır və daha yaxşı performans təmin edəcək. 1% bunun üçün yaxşı bir tolerantlıq dəyəridir.
  • Lehimləmə dəmir və lehim
  • Tel kəsicilər və bəzi kiçik uzunluqlarda 26 və ya 28 kalibrli tel.

Proqram və Firmware

  • Bean proqramlaşdırmaq üçün Bean Loader tətbiqinə ehtiyacınız olacaq. Windows istifadə etdim, buna görə bütün bağlantılar Windows -a xas olacaq. Arduino xüsusiyyətləri də daxil olmaqla Bean ilə başlamaq üçün lazım olan hər şeyi LightBlueBean saytından əldə edə bilərsiniz.
  • Smartfon tətbiqi üçün EvoThings tezgahı burada mövcuddur. Bütün "işə başlamaq" sənədləri də orada mövcuddur. Çox yaxşı sənədləşdirilmişdir.

Addım 2: Dövrə və Elektrik Quruluşu

Dövrə və Elektrik Tikintisi
Dövrə və Elektrik Tikintisi
Dövrə və Elektrik Tikintisi
Dövrə və Elektrik Tikintisi
Dövrə və Elektrik Tikintisi
Dövrə və Elektrik Tikintisi

Termistor, temperaturdan asılı olan bir rezistordur. Extech probu mənfi bir temperatur əmsalına malikdir, yəni temperatur artdıqca müqavimət azalır. Müqavimət dəyəri, bir ayağında termistor, digərində isə sabit 100K rezistorlu bir gərginlik bölücü yaradan sadə bir dövrə ilə ölçülür. Bölünmüş gərginlik Bean üzərindəki Analog Giriş kanalına verilir və firmware -də nümunə götürülür.

Dövrəni qurmaq üçün köhnə qırıq bir PC -dən 3.5 mm -lik audio jakları təmizlədim. PCB -də probun ucuna və birinci bandına uyğun olan iki nöqtəni təyin etmək üçün bir multimetr istifadə edilmişdir. Tellər, görüntülərdə göstərildiyi kimi audio jaklara və Fasulye lehimlənmişdir. Audio jaklar iki tərəfli lent istifadə edərək Bean prototip sahəsinə yapışdırıldı. İstifadə etdiyim bant, yedək hissələri arasında çox möhkəm bir bağ yaradan avtomobil dərəcəli dekal bantdır.

Addım 3: Prob əmsalları

Prob əmsalları
Prob əmsalları

Extech zondu kimi ümumi olduğu kimi, Steinhart-Hart əmsalları tapa biləcəyim heç bir yerdə yayımlanmır. Xoşbəxtlikdən təmin etdiyiniz 3 temperatur ölçməsindən əmsalları təyin edəcək bir onlayn kalkulyator var.

Əmsallara gəlmək üçün istifadə etdiyim əsas prosedur nədir. Stil baxımından heç bir xal qazanmayacaqsınız, amma +/- 1 dərəcə dəqiq söyləməyiniz üçün kifayət qədər yaxşı (mənim tərəfimdən ümumi barmaq ucu)…. İstinad termometrinizin və multimetrinizin dəqiqliyindən asılı olaraq! Mənim multimetrim uzun illər əvvəl pul sıx olduğu zaman aldığım ucuz bir marka olmayan vahiddir. Pul hələ də sıxdır və hələ də işləyir!

Kalibrləmə üçün 3 temperaturdan üç müqavimət göstəricisi lazımdır.

  • Bir stəkan suya buz əlavə edərək temperatur sabitləşənə qədər qarışdıraraq donmağa yaxınlaşın. Sabitləşdikdən sonra, probun müqavimətini və temperaturu qeyd etmək üçün istinad termometrini qeyd etmək üçün çox metrdən istifadə edin.
  • İndi probu otaq temperaturunda bir stəkan suya qoyun, probun suyun istiliyinə bərabər olmasına icazə verin və temperaturu referans termometrinizə və çox metrinizdəki müqavimət göstəricisini qeyd edin.
  • Probu bir stəkan isti suya qoyun və müqaviməti qeyd edin.

    Temperatur Müqavimət
    5.6 218K
    21.0 97.1K
    38.6 43.2

İstiliyi qeyd etmək üçün kalibrlənmiş bir termometrə və müqaviməti qeyd etmək üçün kalibrli bir çox metrə ehtiyacınız olduğu üçün bütün bu proses bir az toyuq və yumurta vəziyyətidir. Buradakı səhvlər, etdiyiniz temperatur ölçmələrində qeyri-dəqiqliklə nəticələnəcək, amma məqsədlərimə görə +/- 1 dərəcə ehtiyacımdan çoxdur.

Bu qeyd olunan dəyərləri veb kalkulyatoruna qoşmaq aşağıdakıları verir:

Şəkil
Şəkil

İstifadə olunan müqavimət dəyərindən temperaturun qarşısını almaq üçün əmsallar (A, B və C) Stenhart-Hart tənliyinə daxil edilir. Tənlik aşağıdakı kimi təyin olunur (mənbə: wikipedia.com)

Şəkil
Şəkil

Harada T = Kelvində temperatur

A, B və C, R temperaturun müqavimətini təyin etməyə çalışdığımız Steinhart-Hart tənlik əmsallarıdır.

Firmware bu hesablamanı yerinə yetirəcək.

Addım 4: Firmware

Firmware
Firmware
Firmware
Firmware

Termistor gərginliyi nümunə götürülür, istiliyə çevrilir və Bluetooth vasitəsilə smartfonda işləyən EvoThings tətbiqinə göndərilir.

Gərginliyi Bean içərisində bir müqavimət dəyərinə çevirmək üçün sadə bir xətti tənlik istifadə olunur. Tənliyin tərtib edilməsi bir şəkil olaraq verilir. Nümunə alınan dəyəri gərginliyə çevirmək əvəzinə, həm ADC, həm də giriş gərginliyi eyni batareya gərginliyinə istinad edildiyindən, gərginlik yerinə ADC dəyərindən istifadə edə bilərik. 10bit Bean ADC üçün, tam batareya gərginliyi 1023 ADC dəyəri ilə nəticələnəcək, buna görə də bu dəyəri Vbat olaraq istifadə edirik. Bölücü rezistorun həqiqi dəyəri vacib bir məqamdır. 100K bölücü müqavimətinin həqiqi dəyərini ölçün və rezistor tolerantlığı səbəbindən lazımsız bir səhv mənbəyindən qaçmaq üçün tənlikdəki ölçülmüş dəyəri istifadə edin.

Müqavimət dəyəri hesablandıqda, müqavimət dəyəri Steinhart-Hart tənliyi ilə istiliyə çevrilir. Bu tənlik Vikipediyada ətraflı təsvir edilmişdir.

2 probumuz olduğuna görə, prob funksiyasını C ++ sinfinə daxil etmək məntiqlidir.

Sinif, Steinhart-Hart tənlik əmsallarını, nominal bölücü müqavimət dəyərini və termistorun bağlandığı analog portu əhatə edir. Tək bir üsul, temperatur (), ADC dəyərini müqavimət dəyərinə çevirir və sonra Kelvindəki temperaturu təyin etmək üçün Steinhart-Hart tənliyindən istifadə edir. Gəlir dəyəri, Selsi dəyərini təmin etmək üçün hesablanmış temperaturdan mütləq sıfır (273.15K) çıxır.

Lightblue Bean -in gücü, bütün Bluetooth funksionallığının, nümunə götürülmüş temperatur dəyərlərini Bluetooth yaddaşındakı cızıq məlumat sahəsinə yazan 1 kod sətrində həyata keçirilməsində aydındır.

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

Nümunə alınan hər bir temperatur dəyəri 4 bayt tutan bir şamandıra ilə təmsil olunur. Sıfır məlumat sahəsi 20 bayt tuta bilər. Onlardan yalnız 12 -dən istifadə edirik. Çizilmə məlumatlarından istifadə edərək 100 bayta qədər məlumat ötürə biləcəyiniz üçün 5 cızma məlumat sahəsi var.

Hadisələrin əsas axını belədir:

  • Bluetooth bağlantımızın olub olmadığını yoxlayın
  • Əgər belədirsə, temperaturu nümunə edin və cızıq məlumat sahəsinə yazın
  • 200 ms yatın və dövrəni təkrarlayın.

Bağlı deyilsinizsə, firmware ATMEGA328P çipini uzun müddət yuxuya qoyur. Gücün qorunması üçün yuxu dövrü vacibdir. ATMEGA328P çipi aşağı güc rejiminə keçir və LBM313 Bluetooth modulu tərəfindən kəsilənə qədər orada qalır. LBM313, ATMEGA328P -ni tələb olunan yuxu müddətinin sonunda və ya Bean -a Bluetooth bağlantısı edildikdə oyatmaq üçün bir fasilə yaradacaq. WakeOnConnect funksiyası, quraşdırma () zamanı Bean.enableWakeOnConnect (doğru) çağırılması ilə aktivləşdirilir.

Firmware -nin hər hansı bir BLE müştəri tətbiqi ilə işləyəcəyini qeyd etmək vacibdir. Müştərinin etməsi lazım olan şey, temperatur baytlarını sıfırdan məlumat bankından çıxarmaq və onları göstərmək və ya emal etmək üçün üzən nöqtə nömrələrinə yenidən yığmaqdır. Mənim üçün ən asan müştəri tətbiqi EvoThings istifadə etmək idi.

Addım 5: Smartphone Tətbiqi

Smartfon Tətbiqi
Smartfon Tətbiqi

Evo Things nümunə tətbiqi, 3 kanallı temperatur ölçmə cihazını tamamlamaq üçün əlavə ekran elementləri əlavə etmək üçün lazım olan cüzi səylə ehtiyac duyduğuma çox yaxındır.

EvoThings platformasının quraşdırılması və əsas işi Evo Things veb saytında çox yaxşı sənədləşdirilmişdir, buna görə də burada təkrarlamağın heç bir dəyəri yoxdur. Burada izah edəcəyim hər şey, Bluetooth cızma məlumat sahəsindən çıxarılan 3 kanal məlumatı göstərmək üçün nümunə kodlarında etdiyim xüsusi dəyişikliklərdir.

EvoThings Workbench qurduqdan sonra burada Lightblue Bean nümunəsini tapacaqsınız (Windows 64 bit kompüterlərdə):

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

İndex.html və app.js fayllarını bu addıma əlavə edilmiş fayllarla əvəz edə bilərsiniz. Jakascript sənədində edilən dəyişikliklər, 3 üzən nöqtə temperatur dəyərlərini cızma məlumat sahəsindən və HTML faylında yaradılan yeni elementlərin daxili HTML -dən çıxarır.

onDataReadSuccess funksiyası (data) {

var temperaturData = yeni Float32Array (məlumatlar);

var bayt = yeni Uint8Array (məlumatlar);

var temperatur = temperaturData [0];

console.log ('Temperatur oxunur:' + temperatur + 'C');

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

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

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

}

Addım 6: Qapaq

Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə

Kassa sadə 3D çap qutusudur. Dizayn yaratmaq üçün Cubify Design -dan istifadə etdim, amma hər hansı bir 3D modelləşdirmə proqramı kifayət edər. Öz sənədinizi çap etməyiniz üçün STL faylı əlavə edilmişdir. Bunu təkrar etməli olsaydım, divarları indikindən bir qədər daha qalın edər və lövhəni yerində saxlayan klip dizaynını dəyişərdim. Kliplər çox asanlıqla qırılır, çünki 3D çaplı hissələr üçün ən zəif oriyentasiya olan 3D çaplı təbəqələr olduğu üçün gərginlik smae müstəvisindədir. Duvarlar çox incədir, buna görə də bağlama mexanizmi zəif tərəfdədir. Qutunu bağlı saxlamaq üçün şəffaf lentdən istifadə etdim, çünki divarlar çox incə idi - zərif deyil, amma işləyir!

Addım 7: PC Ayarları və Bluetooth Konfiqurasiyası

PC Ayarları və Bluetooth Konfiqurasiyası
PC Ayarları və Bluetooth Konfiqurasiyası

Bean üçün firmware qurma və yükləmə dövrü hamısı Bluetooth üzərindən aparılır. Bir anda yalnız bir aktiv Bluetooth bağlantısı ola bilər. Bean Loader Windows App Store -dan əldə edilə bilər

Cütləşdirmək və bağlamaq üçün istifadə etdiyim əsas dövr (və işlər düz getmədikdə təmir və yenidən əlaqə qurmaq) aşağıdakı kimidir: İdarəetmə Panelindən;/Bluetooth parametrlərində aşağıdakı ekranı görməlisiniz:

Şəkil
Şəkil

Nəhayət, pəncərələrdə "Cütləşməyə hazırıq" bildiriləcək. Bu nöqtədə Bean simgesini vura bilərsiniz və bir neçə saniyədən sonra Windows bir parol daxil etməyinizi istəyəcək. Fasulye üçün standart keçid kodu 00000 -dir

Şəkil
Şəkil

Şifrə düzgün daxil edildikdə, Windows cihazın düzgün bağlandığını göstərəcəkdir. Bean proqramlaşdırmaq üçün bu vəziyyətdə olmalısınız.

Şəkil
Şəkil

Cütləşdikdən və bağlandıqdan sonra, firmware -ni fasulyəyə yükləmək üçün Bean Loader -dən istifadə edin. Bunun daha tez -tez uğursuz olduğunu gördüm və kompüterimə yaxınlığımla əlaqəli olduğu ortaya çıxdı. Sizin üçün uyğun bir yer tapana qədər Bean ətrafında gəzin. Bəzən heç bir şeyin işləməyəcəyi və Bean Loader cihazın yenidən cütləşməsini təklif edər. Adətən yenidən cütləşmə prosesindən keçmək əlaqəni bərpa edəcək. Yenidən qoşmadan əvvəl "Cihazı Sil" etməlisiniz.

Şəkil
Şəkil

Bean Loader əməliyyatı çox sadədir və saytlarında yaxşı sənədləşdirilmişdir. Bean Loader açıq olduqda, bu təlimatın firmware addımında təqdim olunan Hex faylına baxmaq üçün bir dialoq açmaq üçün "Proqram" menyu maddəsini seçin.

Şəkil
Şəkil

Firmware yükləndikdən sonra Bean Loader ilə Bean Loader və Bean aparatı arasındakı əlaqə kəsiləcək şəkildə bağlayın. Bir anda yalnız bir əlaqə qura bilərsiniz. İndi EvoThings iş tezgahını açın və smartfonda və ya tabletdə EvoThings müştərisini işə salın.

Şəkil
Şəkil

"Çalış" düyməsini tıkladığınızda, EvoThings müştəri avtomatik olaraq termometr üçün html səhifəsini yükləyəcək. Bean'a qoşulmaq üçün Bağlan düyməsini basın və göstərilən temperaturları görməlisiniz. Uğur!

Addım 8: Nəticə

Nəticə
Nəticə

Hər şey düzgün qurulub və konfiqurasiya olunarsa, 2 probla temperaturları izləməyə, həmçinin Bean inkişaf lövhəsindəki BMA250 sensorunun temperaturunu izləməyə imkan verən iş sisteminiz olmalıdır. EvoThings ilə edilə biləcək daha çox şey var - yalnız səthi cızmışam, bu təcrübəni sizin üçün buraxıram! Oxuduğunuz üçün təşəkkürlər! Hər şey yolunda getmirsə, şərh yazın və bacardığım yerə kömək edim.

Tövsiyə: