İçindekiler:

Bluetooth Termometre: 8 Adım
Bluetooth Termometre: 8 Adım

Video: Bluetooth Termometre: 8 Adım

Video: Bluetooth Termometre: 8 Adım
Video: iPhone'da kesinlikle yapmanız gereken ayarlar! #shorts 2024, Temmuz
Anonim
Bluetooth Termometre
Bluetooth Termometre
Bluetooth Termometre
Bluetooth Termometre
Bluetooth Termometre
Bluetooth Termometre

Bu talimat, 100K termistör probları, bir Bluetooth modülü ve akıllı telefon kullanan basit bir 2 kanallı termometrenin yapımını detaylandırıyor. Bluetooth modülü, modülü programlamak için tanıdık Arduino ortamını kullanarak Bluetooth Düşük Enerji uygulama geliştirmeyi basitleştirmek için tasarlanmış bir LightBlue Bean'dir.

Bluetooth modülünden iPhone'uma sıcaklık verilerinin nasıl alınacağını bulmaya çalışırken bir süre tökezledikten sonra, projenin uygulama geliştirme tarafını önemli ölçüde basitleştiren EvoThings adlı bir uygulama buldum. Bir iPhone uygulaması geliştirme yeteneğimi sınırlayan bir Mac'im yok (biliyorum şok edici!) ve iOS ve Android için platformlar arası geliştirmeyi açıkça destekleyen yeni Microsoft araçlarını deşifre edecek zamanım yok. Birkaç HTML5 tarzı uygulama yaptım, ancak Bluetooth verilerine ulaşmanın tek yolu, Cordova için zamanım olduğundan daha zor görünen eklentiler. EvoThings, Bluetooth'tan iPhone'a mücadeleyi bir oyuncağı haline getiren, kullanımı çok kolay bir araç seti sağlar. Ve pastayı severim!

Genel olarak Lightblue Bean ve EvoThings kombinasyonunu düşük zaman yatırımıyla çok pratik bir çözüm olarak buldum.

Adım 1: İhtiyacınız Olan Şeyler

İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler

Bir kanal için piyasada bulunan bir termistör probu kullandım çünkü termistörün sıvılara daldırılması için sızdırmaz olmasını istedim. İkinci kanal için bir termistörden, 26 gauge telden ve 3,5 mm kulaklık fişinden temel bir prob yaptım. İstediğiniz termistörü kullanmakta özgürsünüz ve örneğin termal olarak iletken epoksi ve plastik pipet/kahve karıştırıcılardan kendi problarınızı yapabilirsiniz. Aşağıda kullandığım şey - kuralcı bir liste olması amaçlanmamıştır!

Donanım

  • 1 x 100K Termistör probları. Extech TP890 modeli. Bunlar genellikle ebay ve amazon'da bulunur.
  • Extech problarındaki 2,5 mm fişe uyan 2 x 2,5 mm Stereo jak. Eski bir bilgisayardan 3,5 mm jakları temizledim, bu yüzden Extech probunun fişini kestim ve 3,5 mm fişlerle değiştirdim. Bundan kaçınmalısınız, sadece 2,5 mm jaklar kullanın veya kullanıma hazır 2,5 mm ila 3,5 mm stereo adaptör fişi kullanın.
  • Kendi sondanızı yapmak istiyorsanız 100K termistör boncuğu artı 26 gauge tel artı 3,5 mm stereo fiş. Değilse, ikinci bir Extech probu satın alın!
  • 1 x Açık Mavi Fasulye Punch Through Tasarımlar. Bu, Arduino geliştirme kartı olarak programlanabilen Bluetooth modülüdür. Modül biraz pahalı ama çok fazla karmaşıklığı ortadan kaldırıyor. Yeni nesil cihaz için dikkate değer olabilecek bir Kickstarter kampanyası yürütüyorlar.
  • Termistörler için referans voltajını bölmek için kullanılan 2 adet 1/4W 100K direnç. %5 direnç kullandım ancak daha yüksek toleranslı dirençler genellikle sıcaklığa daha az duyarlıdır ve daha iyi performans sağlar. %1 bunun için iyi bir tolerans değeridir.
  • Havya ve lehim
  • Tel kesiciler ve bazı küçük uzunluklarda 26 veya 28 gauge bağlantı teli.

Yazılım ve Bellenim

  • Bean'i programlamak için Bean Loader uygulamasına ihtiyacınız olacak. Windows kullandım, böylece tüm bağlantılar Windows'a özel olacak. Bean'e başlamak için ihtiyacınız olan, Arduino özellikleri dahil olmak üzere her şey LightBlueBean sitesinde mevcuttur.
  • Akıllı telefon uygulaması için EvoThings çalışma tezgahı burada mevcuttur. Tüm "başlangıç" belgeleri de orada mevcuttur. Çok iyi belgelenmiştir.

Adım 2: Devre ve Elektrik Yapısı

Devre ve Elektrik Yapısı
Devre ve Elektrik Yapısı
Devre ve Elektrik Yapısı
Devre ve Elektrik Yapısı
Devre ve Elektrik Yapısı
Devre ve Elektrik Yapısı

Bir termistör, sıcaklığa bağlı bir dirençtir. Extech probunun negatif bir sıcaklık katsayısı vardır, bu da sıcaklık arttıkça direncin azaldığı anlamına gelir. Direnç değeri, bir ayağında termistör, diğerinde sabit 100K direnç ile gerilim bölücü oluşturan basit bir devre ile ölçülür. Bölünmüş voltaj, Bean üzerindeki bir Analog Giriş kanalına beslenir ve bellenimde örneklenir.

Devreyi kurmak için eski bir bilgisayardan 3,5 mm ses jaklarını temizledim. PCB üzerinde probun ucuna ve ilk bandına karşılık gelen iki noktayı belirlemek için bir multimetre kullanıldı. Teller, resimlerde gösterildiği gibi ses jaklarına ve Bean'e lehimlenmiştir. Ses jakları, çift taraflı bant kullanılarak Bean'in prototip alanına yapıştırıldı. Kullandığım bant, çekme parçaları arasında çok güçlü bir bağ oluşturan otomotiv sınıfı çıkartma bandıdır.

Adım 3: Prob Katsayıları

Prob Katsayıları
Prob Katsayıları

Extech sondası ne kadar yaygın olsa da, Steinhart-Hart katsayıları bulabildiğim hiçbir yerde yayınlanmıyor. Neyse ki, sağladığınız 3 sıcaklık ölçümünden katsayıları belirleyecek çevrimiçi bir hesap makinesi var.https://www.thinksrs.com/downloads/programs/Therm%2…

Folyolar, katsayılara ulaşmak için kullandığım temel prosedürdür. Tarz için herhangi bir puan kazanmayacak, ancak +/- 1 derece doğru (benim açımdan tam bir başparmak) demenizi sağlayacak kadar iyi…. referans termometrenizin ve multimetrenizin doğruluğuna bağlı olarak elbette! Multimetrem, yıllar önce param kısıtlıyken aldığım isimsiz ucuz bir marka ünite. Para hala sıkı ve hala çalışıyor!

Kalibre etmek için 3 sıcaklıktan üç direnç okumasına ihtiyacımız var.

  • Bir bardak suya buz ekleyerek ve sıcaklık stabilize olana kadar karıştırarak donmaya yakın. Stabilize edildikten sonra, probun direncini kaydetmek için multimetreyi ve sıcaklığı kaydetmek için referans termometreyi kullanın.
  • Şimdi probu oda sıcaklığındaki bir bardak suya yerleştirin, probun su sıcaklığı ile eşitlenmesine izin verin ve sıcaklığı referans termometrenize ve direnç okumasını multimetrenize kaydedin.
  • Probu bir bardak sıcak suya koyun ve direnci kaydedin.

    Sıcaklık Direnç
    5.6 218K
    21.0 97.1K
    38.6 43.2

Sıcaklığı kaydetmek için kalibre edilmiş bir termometreye ve direnci kaydetmek için kalibre edilmiş bir multimetreye ihtiyacınız olduğundan, tüm bu süreç biraz tavuk ve yumurta durumudur. Buradaki hatalar yaptığınız sıcaklık ölçümlerinde yanlışlık oluşmasına neden olacaktır ama benim açımdan +/- 1 derece ihtiyacımdan fazla.

Bu kaydedilen değerleri web hesaplayıcıya taktığınızda aşağıdakiler elde edilir:

resim
resim

Katsayılar (A, B ve C), sıcaklığı örneklenmiş bir direnç değerinden belirlemek için Stenhart-Hart denklemine eklenir. Denklem şu şekilde tanımlanır (kaynak: wikipedia.com)

resim
resim

Nerede T = Kelvin cinsinden Sıcaklık

A, B ve C, belirlemeye çalıştığımız Steinhart-Hart denklem katsayılarıdır R, T sıcaklığındaki dirençtir.

Firmware bu hesaplamayı yapacaktır.

Adım 4: Bellenim

bellenim
bellenim
bellenim
bellenim

Termistör voltajları örneklenir, sıcaklığa dönüştürülür ve Bluetooth aracılığıyla akıllı telefonda çalışan EvoThings uygulamasına gönderilir.

Bean içindeki gerilimi bir direnç değerine dönüştürmek için basit bir doğrusal denklem kullanılır. Denklemin türetilmesi bir görüntü olarak sağlanır. Örneklenen değeri voltaja dönüştürmek yerine hem ADC hem de giriş voltajı aynı akü voltajına referans verildiğinden voltaj yerine ADC değerini kullanabiliriz. 10bit Bean ADC için tam akü voltajı 1023 ADC değerine neden olacağından bu değeri Vbat olarak kullanıyoruz. Bölücü direncin gerçek değeri önemli bir husustur. 100K bölücü direncin gerçek değerini ölçün ve direnç toleransından kaynaklanan gereksiz bir hata kaynağından kaçınmak için denklemdeki ölçülen değeri kullanın.

Direnç değeri hesaplandıktan sonra, direnç değeri Steinhart-Hart denklemi kullanılarak sıcaklığa dönüştürülür. Bu denklem Wikipedia'da ayrıntılı olarak açıklanmıştır.

2 sondamız olduğu için, araştırma işlevini bir C++ sınıfına yerleştirmek mantıklıydı.

Sınıf, Steinhart-Hart denklem katsayılarını, nominal bölücü direnç değerini ve termistörün bağlı olduğu analog portu kapsar. Tek bir yöntem olan sıcaklık(), ADC değerini bir direnç değerine dönüştürür ve ardından Kelvin cinsinden sıcaklığı belirlemek için Steinhart-Hart denklemini kullanır. Dönüş değeri, Celsius cinsinden değeri sağlamak için hesaplanan sıcaklıktan mutlak sıfırı (273.15K) çıkarır.

Lightblue Bean'in gücü, tüm Bluetooth işlevselliğinin esas olarak, örneklenen sıcaklık değerlerini Bluetooth belleğindeki bir sıfırdan veri alanına yazan 1 satırlık kodda uygulanması gerçeğinde belirgindir.

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

Örneklenen her sıcaklık değeri, 4 bayt alan bir şamandıra ile temsil edilir. Sıfırdan veri alanı 20 bayt tutabilir. Sadece 12 tanesini kullanıyoruz. 5 çalışma veri alanı vardır, böylece sıfırdan veri kullanarak 100 bayta kadar veri aktarabilirsiniz.

Olayların temel akışı:

  • Bluetooth bağlantımız olup olmadığını kontrol edin
  • Öyleyse, sıcaklıkları örnekleyin ve bunları sıfırdan veri alanına yazın
  • 200ms uyuyun ve döngüyü tekrarlayın.

Bağlı değilse, üretici yazılımı ATMEGA328P yongasını uzun süre uyku moduna geçirir. Uyku döngüsü, gücü korumak için önemlidir. ATMEGA328P yongası düşük güç moduna geçer ve LBM313 Bluetooth modülü tarafından kesintiye uğrayana kadar orada kalır. LBM313, istenen uyku süresinin sonunda veya Bean'e bir Bluetooth bağlantısı yapıldığında ATMEGA328P'yi uyandırmak için bir kesinti oluşturacaktır. WakeOnConnect işlevi, setup() sırasında açıkça Bean.enableWakeOnConnect(true) çağrılarak etkinleştirilir.

Bellenimin herhangi bir BLE istemci uygulamasıyla çalışacağını unutmamak önemlidir. Müşterinin tek yapması gereken, sıcaklık baytlarını sıfırdan veri bankasından çıkarmak ve bunları görüntüleme veya işleme için kayan nokta sayılarına yeniden birleştirmek. Benim için en kolay istemci uygulaması EvoThings'i kullanmaktı.

Adım 5: Akıllı Telefon Uygulaması

Akıllı Telefon Uygulaması
Akıllı Telefon Uygulaması

Evo Things örnek uygulaması, 3 kanallı sıcaklık ölçüm cihazını tamamlamak için ek ekran öğeleri eklemek için gereken çok az çabayla ihtiyacım olan şeye çok yakın.

EvoThings platformunun kurulumu ve temel çalışması Evo Things web sitesinde çok iyi belgelenmiştir, bu yüzden burada tekrar etmenin bir değeri yoktur. Burada ele alacağım tek şey, Bluetooth çizik veri alanından çıkarılan 3 kanal sıcaklık bilgisini görüntülemek için örnek kodlarında yaptığım belirli değişikliklerdir.

EvoThings Workbench'i kurduktan sonra, Lightblue Bean örneğini burada bulacaksınız (Windows 64 bit bilgisayarlarda):

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

index.html ve app.js dosyalarını bu adıma eklenen dosyalarla değiştirebilirsiniz. Jacascript dosyasında yapılan değişiklikler, çizik veri alanından 3 kayan nokta sıcaklık değerini ve HTML dosyasında oluşturulan yeni öğelerin iç HTML'sini çıkarır.

function onDataReadSuccess(veri) {

var sıcaklıkData = new Float32Array(data);

var bytes = new Uint8Array(veri);

var sıcaklık = sıcaklıkData[0];

konsol.log('Sıcaklık okuması: ' + sıcaklık + ' C');

document.getElementById('temperatureAmbient').innerHTML = sıcaklıkData[0].toFixed(2) + " C°";

document.getElementById('temperature1').innerHTML = sıcaklıkData[1].toFixed(2) + " C°";

document.getElementById('temperature2').innerHTML = sıcaklıkData[2].toFixed(2) + " C°";

}

6. Adım: Muhafaza

muhafaza
muhafaza
muhafaza
muhafaza
muhafaza
muhafaza
muhafaza
muhafaza

Muhafaza, basit bir 3D baskılı kutudur. Tasarımı oluşturmak için Cubify Design'ı kullandım ancak herhangi bir 3D modelleme programı yeterli olacaktır. Kendi dosyanızı yazdırmanız için STL dosyası eklenmiştir. Tekrar yapmak zorunda kalsaydım, duvarları şimdi olduğundan biraz daha kalın yapar ve tahtayı yerinde tutan klips tasarımını değiştirirdim. Klipler çok kolay kırılır, çünkü stres 3B yazdırılan parçalar için en zayıf yön olan 3B yazdırılan katmanlar olarak küçük düzlemdedir. Duvarlar çok ince olduğu için geçme mekanizması biraz zayıf. Duvarlar çok zayıf olduğu için kutuyu kapalı tutmak için şeffaf bant kullandım - zarif değil ama işe yarıyor!

7. Adım: Bilgisayar Ayarları ve Bluetooth Yapılandırması

PC Ayarları ve Bluetooth Yapılandırması
PC Ayarları ve Bluetooth Yapılandırması

Bean için ürün yazılımı oluşturma ve yükleme döngüsünün tamamı Bluetooth üzerinden yapılır. Aynı anda yalnızca bir etkin Bluetooth bağlantısı olabilir. Bean Loader, Windows App Store'dan edinilebilir

Eşleştirmek ve bağlanmak (ve işler ters gittiğinde onarmak ve yeniden bağlanmak) için kullandığım temel döngü aşağıdaki gibidir: Kontrol Panelinden;/Bluetooth ayarlarından, aşağıdaki ekranı görmelisiniz:

resim
resim

Sonunda pencereler "Eşleşmeye hazır" olarak bildirecektir. Bu noktada Bean simgesine tıklayabilirsiniz ve birkaç saniye sonra Windows sizden bir parola girmenizi isteyecektir. Fasulye için varsayılan şifre 00000'dır.

resim
resim

Parola doğru girilirse, Windows aygıtın doğru şekilde bağlandığını gösterecektir. Bean'i programlayabilmek için bu durumda olmalısınız.

resim
resim

Eşleştirilip bağlandıktan sonra, bellenimi fasulyeye yüklemek için Bean Loader'ı kullanın. Bunun daha sık başarısız olduğunu gördüm ve bilgisayarıma yakınlıkla ilgili görünüyordu. Size uygun bir yer bulana kadar Bean'i hareket ettirin. Hiçbir şeyin işe yaramayacağı ve Bean Loader'ın cihazı yeniden eşleştirmeyi önereceği zamanlar vardır. Tipik olarak eşleştirme işleminden tekrar geçmek, bağlantıyı geri yükleyecektir. Yeniden eşleştirmeden önce "Cihazı Kaldır" yapmalısınız.

resim
resim

Fasulye Yükleyici işlemi basittir ve sitelerinde iyi belgelenmiştir. Bean Loader açıkken, bu talimatın üretici yazılımı adımında sağlanan Hex dosyasına göz atmak için bir iletişim kutusu açmak için "Program" menü öğesini seçin.

resim
resim

Bellenim yüklendikten sonra, Bean Loader ile Bean donanımı arasındaki bağlantının kesilmesi için Bean Loader'ı KAPATIN. Bir seferde yalnızca bir bağlantınız olabilir. Şimdi EvoThings tezgahını açın ve akıllı telefon veya tablette EvoThings istemcisini başlatın.

resim
resim

"Çalıştır" düğmesini tıkladığınızda, EvoThings istemcisi termometre için html sayfasını otomatik olarak yükleyecektir. Bean'e bağlanmak için Bağlan düğmesine tıklayın ve görüntülenen sıcaklıkları görmelisiniz. Başarı!

Adım 8: Sonuç

Çözüm
Çözüm

Her şey doğru bir şekilde kurulur ve yapılandırılırsa, Bean geliştirme kartındaki BMA250 sensörünün sıcaklığını izlemenin yanı sıra 2 prob ile sıcaklıkları izlemenizi sağlayacak bir çalışma sisteminiz olmalıdır. EvoThings ile yapılabilecek daha çok şey var - Ben sadece yüzeyi çizdim, bu yüzden bu deneyi size bırakıyorum! Okuduğunuz için teşekkürler! İşler ters giderse, yorum bırakın, elimden geldiğince yardımcı olacağım.

Önerilen: