Cuprins:
- Pasul 1: Lucruri de care ai nevoie
- Pasul 2: Circuitul și construcția electrică
- Pasul 3: Coeficienții sondei
- Pasul 4: Firmware
- Pasul 5: aplicația pentru smartphone
- Pasul 6: incintă
- Pasul 7: Setări PC și Configurare Bluetooth
- Pasul 8: Concluzie
Video: Termometru Bluetooth: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Acest instructabil detalii despre realizarea unui termometru simplu pe 2 canale folosind sonde de termistor 100K, un modul Bluetooth și smartphone. Modulul Bluetooth este un LightBlue Bean care a fost conceput pentru a simplifica dezvoltarea aplicației Bluetooth Low Energy folosind mediul familiar Arduino pentru programarea modulului.
După ce m-am împiedicat o vreme să încerc să dau seama cum să obțin datele de temperatură de pe modulul Bluetooth pe iPhone-ul meu, am găsit o aplicație numită EvoThings care a simplificat considerabil partea de dezvoltare a aplicației a proiectului. Nu am un Mac (șocant știu!) Care îmi limitează capacitatea de a dezvolta o aplicație pentru iPhone și nu am timp să descifrez noile instrumente Microsoft care, evident, sprijină dezvoltarea pe mai multe platforme pentru iOS și Android. Am făcut mai multe aplicații în stil HTML5, dar singura modalitate de a accesa datele Bluetooth este prin intermediul pluginurilor pentru Cordova, care păreau a fi o provocare mai mare decât am avut timp. EvoThings oferă un set de instrumente foarte ușor de utilizat care a transformat provocarea Bluetooth-iPhone într-un tort. Și îmi place tortul!
În general, am găsit că combinația Lightblue Bean și EvoThings este o soluție foarte practică, cu investiții de timp reduse.
Pasul 1: Lucruri de care ai nevoie
Am folosit o sondă de termistor disponibilă comercial pentru un canal, deoarece am vrut termistorul sigilat pentru imersiune în lichide. Pentru cel de-al doilea canal, am realizat o sondă de bază dintr-un termistor, câteva sârme de calibru 26 și o mufă pentru căști de 3,5 mm. Sunteți liber să utilizați orice termistor doriți și vă puteți realiza propriile sonde din epoxidice conductoare termic și paie de plastic / agitatoare de cafea, de exemplu. Ceea ce urmează este ceea ce am folosit - nu intenționează să fie o listă prescriptivă!
Hardware
- 1 x sonde termistor 100K. Model Extech TP890. Acestea sunt disponibile în mod obișnuit pe eBay și Amazon.
- 2 mufe stereo de 2,5 mm care se potrivesc cu mufa de 2,5 mm de pe sondele Extech. Am scos mufele de 3,5 mm de pe un computer vechi, așa că am întrerupt sonda Extech și am înlocuit-o cu mufe de 3,5 mm. Ar trebui să evitați acest lucru, doar să folosiți mufe de 2,5 mm sau să utilizați un adaptor stereo de 2,5 mm până la 3,5 mm.
- Margină de termistor 100K plus sârmă de calibru 26 plus mufă stereo de 3,5 mm dacă doriți să vă creați propria sondă. Dacă nu, cumpărați o a doua sondă Extech!
- 1 x Lightblue Bean de la Punch Through Designs. Acesta este modulul Bluetooth programabil ca placă de dezvoltare Arduino. Modulul este cam scump, dar elimină multă complexitate. Ei desfășoară o campanie Kickstarter pentru dispozitivul de nouă generație, care ar putea fi demn de luat în considerare.
- 2 rezistențe 1 / 4W 100K care sunt utilizate pentru a împărți tensiunea de referință pentru termistori. Am folosit rezistențe de 5%, dar rezistențele cu toleranță mai mare sunt în general mai puțin sensibile la temperatură și vor oferi performanțe mai bune. 1% este o bună valoare de toleranță pentru aceasta.
- Fier de lipit și lipit
- Tăietoare de sârmă și unele lungimi mici de sârmă de conectare de calibru 26 sau 28.
Software și firmware
- Pentru programarea Bean, veți avea nevoie de aplicația Bean Loader. Am folosit Windows, astfel încât toate linkurile vor fi specifice Windows. Tot ce aveți nevoie pentru a începe să utilizați Bean, inclusiv specificul Arduino, este disponibil de pe site-ul LightBlueBean
- Bancul de lucru EvoThings pentru aplicația pentru smartphone este disponibil aici. Toată documentația „de început” este disponibilă și acolo. Este foarte bine documentat.
Pasul 2: Circuitul și construcția electrică
Un termistor este un rezistor dependent de temperatură. Sonda Extech are un coeficient de temperatură negativ, ceea ce înseamnă că, pe măsură ce temperatura crește, rezistența scade. Valoarea rezistenței este măsurată cu un circuit simplu care creează un divizor de tensiune cu termistorul într-un picior și un rezistor fix de 100K în celălalt. Tensiunea divizată este alimentată într-un canal de intrare analogică pe Bean și eșantionată în firmware.
Pentru a construi circuitul, am eliminat mufele audio de 3,5 mm de pe un computer vechi stricat. Un multimetru a fost folosit pentru a determina cele două puncte de pe PCB care corespundeau vârfului și primei benzi a sondei. Sârmele au fost lipite la mufele audio și la Bean așa cum se arată în imagini. Mufele audio au fost lipite de zona prototipului Bean folosind bandă dublă. Banda pe care am folosit-o este o bandă de autocolant de calitate auto, care creează o legătură foarte puternică între piesele de remorcare.
Pasul 3: Coeficienții sondei
Pe cât de comună este sonda Extech, coeficienții Steinhart-Hart nu sunt publicați nicăieri pe care să-i găsesc. Din fericire există un calculator online care va determina coeficienții din 3 măsurători de temperatură pe care le furnizați.
Ce urmări este procedura de bază pe care am folosit-o pentru a ajunge la coeficienți. Nu veți câștiga niciun punct pentru stil, dar suficient de bun pentru a vă ajuta să spuneți +/- 1 grad de precizie (un deget total de partea mea) … în funcție de precizia termometrului de referință și a multimetrului, desigur! Multimetrul meu este o unitate ieftină fără nume pe care am cumpărat-o acum mulți ani, când banii erau strânși. Banii sunt încă strânși și încă funcționează!
Pentru calibrare, avem nevoie de trei citiri de rezistență de la 3 temperaturi.
- Aproape de îngheț, adăugând gheață la un pahar de apă și agitând până când temperatura se stabilizează. Odată stabilizat, utilizați multimetrul pentru a înregistra rezistența sondei și termometrul de referință pentru a înregistra temperatura.
- Acum puneți sonda într-un pahar cu apă la temperatura camerei, lăsați sonda să se egalizeze cu temperatura apei și înregistrați temperatura pe termometrul de referință și citirea rezistenței pe multimetru.
-
Așezați sonda într-un pahar cu apă fierbinte și înregistrați rezistența.
Temperatura Rezistenţă 5.6 218K 21.0 97,1K 38.6 43.2
Întregul proces este o situație de pui și ouă, deoarece aveți nevoie de un termometru calibrat pentru a înregistra temperatura și de un multimetru calibrat pentru a înregistra rezistența. Erorile de aici vor avea ca rezultat inexactitatea măsurătorilor de temperatură pe care le faceți, dar în scopurile mele, +/- 1 grad este mai mult decât am nevoie.
Conectarea acestor valori înregistrate la calculatorul web produce următoarele:
Coeficienții (A, B și C) sunt conectați la ecuația Stenhart-Hart pentru a descuraja temperatura de la o valoare de rezistență eșantionată. Ecuația este definită ca (sursă: wikipedia.com)
Unde T = Temperatura în Kelvin
A, B și C sunt coeficienții de ecuație Steinhart-Hart pe care încercăm să îi determinăm R este rezistența la temperatura T
Firmware-ul va efectua acest calcul.
Pasul 4: Firmware
Tensiunile termistorului sunt prelevate, convertite la temperatură și trimise prin Bluetooth către aplicația EvoThings care rulează pe smartphone.
Pentru a converti tensiunea la o valoare de rezistență în interiorul Bean, se utilizează o ecuație liniară simplă. Derivarea ecuației este furnizată ca imagine. În loc să convertim valoarea eșantionată în tensiune, deoarece atât ADC cât și tensiunea de intrare sunt referite la aceeași tensiune a bateriei, putem folosi valoarea ADC în locul tensiunii. Pentru ADC Bean de 10 biți, tensiunea completă a bateriei va avea ca rezultat o valoare ADC de 1023, așa că vom folosi această valoare ca Vbat. Valoarea reală a rezistorului divizor este un aspect important. Măsurați valoarea reală a rezistorului de divizare 100K și utilizați valoarea măsurată în ecuație pentru a evita o sursă inutilă de eroare din cauza toleranței rezistorului.
Odată ce valoarea rezistenței este calculată, valoarea rezistenței convertită la temperatură utilizând ecuația Steinhart-Hart. Această ecuație este descrisă în detaliu pe Wikipedia.
Deoarece avem 2 probe, a avut sens să încapsulăm funcționalitatea sondei într-o clasă C ++.
Clasa încapsulează coeficienții de ecuație Steinhart-Hart, valoarea nominală a rezistenței divizorului și portul analogic la care este conectat termistorul. O singură metodă, temperature (), convertește valoarea ADC într-o valoare de rezistență și apoi folosește ecuația Steinhart-Hart pentru a determina temperatura în Kelvin. Valoarea returnată scade zero absolut (273,15 K) din temperatura calculată pentru a furniza valoarea în grade Celsius.
Puterea Lightblue Bean este evidentă prin faptul că toate funcționalitățile Bluetooth sunt implementate în esență într-o linie de cod care scrie valorile de temperatură eșantionate într-o zonă de date zero pe memoria Bluetooth.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t *) și temperatura [0], 12);
Fiecare valoare de temperatură eșantionată este reprezentată de un plutitor care ocupă 4 octeți. Zona de date zero poate conține 20 de octeți. Folosim doar 12 dintre ele. Există 5 zone de date zero, astfel încât să puteți transfera până la 100 de octeți de date folosind date zero.
Fluxul de bază al evenimentelor este:
- Verificați dacă avem o conexiune Bluetooth
- Dacă da, probați temperaturile și scrieți-le în zona de date de zgârieturi
- Adormiți 200 ms și repetați ciclul.
Dacă nu este conectat, firmware-ul pune cipul ATMEGA328P în repaus pentru o lungă perioadă de timp. Ciclul somnului este important pentru conservarea energiei. Cipul ATMEGA328P intră în modul de consum redus de energie și rămâne acolo până când este întrerupt de modulul Bluetooth LBM313. LBM313 va genera o întrerupere pentru a trezi ATMEGA328P la sfârșitul perioadei de somn solicitate sau ori de câte ori se face o conexiune Bluetooth la Bean. Funcționalitatea WakeOnConnect este activată apelând explicit Bean.enableWakeOnConnect (adevărat) în timpul configurării ().
Este important să rețineți că firmware-ul va funcționa cu orice aplicație client BLE. Tot ceea ce trebuie să facă clientul este să scoată octeții de temperatură din banca de date zero și să le reasambleze în numere în virgulă mobilă pentru afișare sau procesare. Cea mai ușoară aplicație client pentru mine a fost să folosesc EvoThings.
Pasul 5: aplicația pentru smartphone
Aplicația eșantion Evo Things este foarte aproape de ceea ce aveam nevoie, doar cu un efort minor necesar pentru a adăuga elemente de afișare suplimentare pentru a finaliza dispozitivul de măsurare a temperaturii pe 3 canale.
Instalarea și funcționarea de bază a platformei EvoThings sunt foarte bine documentate pe site-ul web Evo Things, deci nu există nicio valoare în a repeta acest lucru aici. Tot ce voi acoperi aici sunt modificările specifice pe care le-am făcut la codul de eșantionare pentru a afișa 3 canale de informații despre temperatură, extrase din zona de date Bluetooth zero.
După ce ați instalat EvoThings Workbench, veți găsi exemplul Lightblue Bean aici (pe computerele Windows pe 64 de biți):
ThisPC / Documents / EvothingsStudio_Win64_1. XX / Example / Lightblue-bean-basic / app
Puteți înlocui fișierele index.html și app.js cu fișierele atașate la acest pas. Modificările aduse fișierului jacascript extrag cele 3 valori ale temperaturii în virgulă mobilă din zona de date de zgârieturi și în sus HTML-ul interior al elementelor noi create în fișierul HTML.
funcția onDataReadSuccess (date) {
var temperatureData = nou Float32Array (date);
var octeți = nou Uint8Array (date);
var temperature = temperatureData [0];
console.log ('Citire temperatură:' + temperatură + '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 °";
}
Pasul 6: incintă
Carcasa este o cutie simplă tipărită 3D. Am folosit Cubify Design pentru a crea designul, dar orice program de modelare 3D va fi suficient. Fișierul STL este atașat pentru ca dvs. să îl tipăriți pe al dvs. Dacă ar fi trebuit să o fac, aș face pereții puțin mai groși decât sunt acum și aș schimba designul clemei care ține placa în loc. Clemele se rup foarte ușor deoarece stresul se află în planul smae ca straturi imprimate 3D, care este cea mai slabă orientare pentru piesele imprimate 3D. Pereții sunt foarte subțiri, astfel încât mecanismul de fixare este puțin pe partea slabă. Am folosit bandă transparentă pentru a păstra cutia închisă, deoarece pereții erau prea slabi - nu eleganți, dar funcționează!
Pasul 7: Setări PC și Configurare Bluetooth
Ciclul de construire și încărcare a firmware-ului pentru Bean se face prin Bluetooth. Nu poate exista decât o singură conexiune Bluetooth activă la un moment dat. Bean Loader este disponibil din Windows App Store
Ciclul de bază pe care îl folosesc pentru asocierea și conectarea (și repararea și reconectarea când lucrurile merg prost) este următorul: Din panoul de control; / Setări Bluetooth, ar trebui să vedeți următorul ecran:
În cele din urmă, ferestrele vor raporta „Gata de asociere”. În acest moment puteți face clic pe pictograma Bean și, după câteva secunde, Windows vă va solicita să introduceți o parolă. Parola implicită pentru bean este 00000
Dacă parola este introdusă corect, Windows va arăta că dispozitivul este conectat corect. Trebuie să vă aflați în această stare pentru a putea programa Bean.
Odată ce sunteți asociat și conectat, utilizați încărcătorul de fasole pentru a încărca firmware-ul pe fasole. Am constatat că acest lucru eșuează de cele mai multe ori și părea să fie legat de apropierea de computerul meu. Mutați Bean până când găsiți o locație care funcționează pentru dvs. Există momente în care nimic nu va funcționa și încărcătorul de fasole va sugera re-asocierea dispozitivului. În mod obișnuit, parcurgerea procesului de asociere va restabili conexiunea. Trebuie să „Eliminați dispozitivul” înainte de a împerechea din nou.
Operațiunea Bean Loader este simplă și bine documentată pe site-ul lor. Cu Bean Loader deschis, alegeți elementul de meniu „Program” pentru a deschide o casetă de dialog pentru a naviga la fișierul Hex furnizat în etapa de firmware a acestui instructable.
Odată ce firmware-ul este încărcat, ÎNCHIDEZ Bean Loader, astfel încât conexiunea dintre Bean Loader și hardware-ul Bean să fie întreruptă. Puteți avea o singură conexiune la un moment dat. Acum deschideți bancul de lucru EvoThings și porniți clientul EvoThings pe smartphone sau tabletă.
Când faceți clic pe butonul „Run”, clientul EvoThings va încărca automat pagina html pentru termometru. Faceți clic pe butonul Conectare pentru a vă conecta la Bean și ar trebui să vedeți temperaturile afișate. Succes!
Pasul 8: Concluzie
Dacă totul este construit și configurat corect, ar trebui să aveți un sistem de lucru care vă va permite să monitorizați temperaturile cu 2 sonde, precum și să monitorizați temperatura senzorului BMA250 de pe placa de dezvoltare Bean. Există mai multe lucruri care pot fi făcute cu EvoThings - tocmai am zgâriat suprafața, așa că vă las această experimentare! Mulțumesc pentru lectură! Dacă lucrurile merg prost, lasă doar comentarii și te voi ajuta acolo unde pot.
Recomandat:
Termometru luminos - lumină de grădină vitaminizată (eNANO De Jardin): 6 pași
Termometru luminos - Lumina de grădină vitaminizată (eNANO De Jardin): Lumina de grădină vitaminizată cu arduino NANO și un senzor de temperatură BMP180. Lumina noastră de grădină umilă va avea o putere secretă: va putea indica temperatura exterioară prin intermediul unui cod de culoare și Funcționarea sa este după cum urmează: Este
Termometru inteligent cu infraroșu IOT (COVID-19): 3 pași
Termometru inteligent cu infraroșu IOT (COVID-19): Datorită revoltei COVID din 2019, am decis să realizăm un termometru inteligent cu infraroșu IOT care să se conecteze la dispozitive inteligente pentru a arăta temperatura înregistrată, aceasta nu este doar o alternativă mai ieftină, ci și o mare modul de predare pentru tehnologie și IOT care
Utilizați smartphone-ul ca termometru fără contact / termometru portabil: 8 pași (cu imagini)
Utilizați telefonul inteligent ca termometru fără contact / termometru portabil: măsurarea temperaturii corpului cu un contact fără contact / ca un pistol termic. Am creat acest proiect deoarece Thermo Gun este acum foarte scump, așa că trebuie să primesc o alternativă pentru a face DIY. Și scopul este de a face cu versiune cu buget redus. Furnizează MLX90614Ardu
Termometru cu infraroșu fără contact pe bază de Arduino - Termometru IR folosind Arduino: 4 pași
Termometru cu infraroșu fără contact pe bază de Arduino | Termometru bazat pe IR folosind Arduino: Bună băieți, în acest instructables vom face un termometru fără contact folosind arduino. temperatura atunci în acel scenariu
RuuviTag și PiZero W și Blinkt! un termometru bazat pe baliza Bluetooth: 3 pași (cu imagini)
RuuviTag și PiZero W și Blinkt! un termometru pe bază de baliză Bluetooth: Acest instructiv descrie o abordare pentru citirea datelor de temperatură și umiditate dintr-un RuuviTag folosind Bluetooth cu un Raspberry Pi Zero W și pentru a afișa valorile în numere binare pe un clip Pimoroni! pHAT.Sau pentru a rezuma: cum să construiești o stare