Kazalo:
- Korak: Stvari, ki jih boste potrebovali
- 2. korak: Vezje in električna konstrukcija
- 3. korak: Koeficienti sonde
- 4. korak: Vdelana programska oprema
- 5. korak: aplikacija za pametni telefon
- 6. korak: ohišje
- 7. korak: Nastavitve računalnika in konfiguracija Bluetooth
- 8. korak: Zaključek
Video: Bluetooth termometer: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta navodila podrobno opisujejo izdelavo preprostega dvokanalnega termometra s 100K termistorskimi sondami, modulom Bluetooth in pametnim telefonom. Modul Bluetooth je LightBlue Bean, ki je bil zasnovan za poenostavitev razvoja aplikacije Bluetooth z nizko porabo energije z uporabo znanega okolja Arduino za programiranje modula.
Ko sem se nekaj časa spotaknil in poskušal ugotoviti, kako podatke o temperaturi iz modula Bluetooth prenesti v svoj iPhone, sem našel aplikacijo z imenom EvoThings, ki je precej poenostavila razvojno stran aplikacije. Nimam računalnika Mac (šokantno vem!), Ki omejuje mojo sposobnost razvoja aplikacije za iPhone, in nimam časa za dešifriranje novih Microsoftovih orodij, ki očitno podpirajo razvoj različnih platform za iOS in Android. Naredil sem več aplikacij v slogu HTML5, vendar je edini način za dostop do podatkov Bluetooth prek vtičnikov za Cordovo, ki so bili videti bolj izziv, kot sem imel časa. EvoThings ponuja zelo enostaven za uporabo nabor orodij, ki so izziv Bluetooth-iPhone spremenila v odličen sprehod. In torta mi je všeč!
Na splošno se mi je zdela kombinacija Lightblue Bean in EvoThings zelo praktična rešitev z nizkimi časovnimi naložbami.
Korak: Stvari, ki jih boste potrebovali
Za en kanal sem uporabil komercialno dostopno termistorsko sondo, ker sem želel, da je termistor zapečaten za potopitev v tekočine. Za drugi kanal sem naredil osnovno sondo iz termistorja, nekaj žice 26 merilnikov in 3,5 mm vtič za slušalke. Uporabljate lahko katere koli želene termistorje in lahko na primer izdelate lastne sonde iz toplotno prevodnih epoksidnih in plastičnih slamic/mešalnikov za kavo. Sledilo je tisto, kar sem uporabil - ni mišljen kot predpisujoč seznam!
Strojna oprema
- 1 x 100K termistorske sonde. Model Extech TP890. Te so običajno na voljo na ebayu in Amazonu.
- 2 x 2,5 mm stereo vtičnice, ki ustrezajo 2,5 mm vtiču na sondah Extech. Iz starega računalnika sem pobral 3,5 -milimetrske vtičnice, zato sem vtič iz sonde Extech odrezal in zamenjal s 3,5 -milimetrskimi vtiči. Izogibajte se temu, samo uporabite 2,5-milimetrske vtičnice ali uporabite vgrajen stereo vtič od 2,5 do 3,5 mm.
- 100K termistorska kroglica plus 26 -milimetrska žica in 3,5 -milimetrski stereo vtič, če želite narediti svojo sondo. Če ne, kupite drugo sondo Extech!
- 1 x Lightblue Bean by Punch Through Designs. To je modul Bluetooth, ki ga je mogoče programirati kot razvojno ploščo Arduino. Modul je sicer precej drag, vendar odpravlja veliko zapletenosti. Izvajajo kampanjo Kickstarter za napravo naslednje generacije, ki bi jo bilo vredno razmisliti.
- 2 x 1/4W 100K upori, ki se uporabljajo za deljenje referenčne napetosti termistorjev. Uporabil sem 5% uporov, vendar so upora z večjo toleranco na splošno manj občutljivi na temperaturo in bodo zagotovili boljše delovanje. Za to je dobra toleranca 1%.
- Spajkalnik in spajkanje
- Rezalniki žice in nekaj majhnih dolžin priključne žice 26 ali 28.
Programska in vdelana programska oprema
- Za programiranje Bean -a potrebujete aplikacijo Bean Loader. Uporabil sem okna, zato bodo vse povezave specifične za Windows. Vse, kar potrebujete za začetek uporabe Bean -a, vključno s posebnostmi Arduina, je na voljo na spletnem mestu LightBlueBean
- Delovna miza EvoThings za aplikacijo za pametne telefone je na voljo tukaj. Tam je na voljo tudi vsa dokumentacija za začetek. Je zelo dobro dokumentirano.
2. korak: Vezje in električna konstrukcija
Termistor je temperaturno odvisen upor. Sonda Extech ima negativen temperaturni koeficient, kar pomeni, da se z naraščanjem temperature upor zmanjšuje. Vrednost upora se meri s preprostim vezjem, ki ustvari delilnik napetosti s termistorjem na eni nogi in fiksnim uporom 100K na drugi. Razdeljena napetost se vnese v analogni vhodni kanal na beanu in vzorči v vdelani programski opremi.
Za izdelavo vezja sem iz starega pokvarjenega računalnika pobral 3,5 -milimetrske avdio priključke. Z multimetrom smo določili dve točki na tiskanem vezju, ki ustrezata konici in prvemu pasu sonde. Žice so bile spajkane na avdio priključke in na Bean, kot je prikazano na slikah. Zvočni priključki so bili z dvostranskim trakom pritrjeni na prototipno območje zrna. Trak, ki sem ga uporabil, je avtomobilski lepilni trak, ki ustvarja zelo močno vez med vlečnimi deli.
3. korak: Koeficienti sonde
Tako pogosta kot sonda Extech, Steinhart-Hart koeficienti niso objavljeni nikjer, kar bi lahko našel. Na srečo obstaja spletni kalkulator, ki bo določil koeficiente iz treh meritev temperature, ki jih posredujete.
Katere folije so osnovni postopek, s katerim sem prišel do koeficientov. Ne bo zaslužil nobene točke za slog, ampak dovolj dober, da boš lahko rekel +/- 1 stopinjo natančno (skupni odtis palca z moje strani)…. odvisno od natančnosti vašega referenčnega termometra in multimetra seveda! Moj multimeter je poceni enota brez imena, ki sem jo kupil pred mnogimi leti, ko je bilo denarja malo. Denarja je še vedno malo in še vedno deluje!
Za kalibracijo potrebujemo tri odpornosti od 3 temperatur.
- Blizu zmrzovanja z dodajanjem ledu v kozarec vode in mešanjem, dokler se temperatura ne stabilizira. Ko se stabilizira, z večmetrom zabeležite upor sonde, referenčni termometer pa za snemanje temperature.
- Zdaj postavite sondo v kozarec vode pri sobni temperaturi, pustite, da se sonda izenači s temperaturo vode in zabeležite temperaturo na referenčnem termometru in odpornost na večmetru.
-
Sondo postavite v kozarec tople vode in zabeležite upor.
Temperatura Odpornost 5.6 218 tisoč 21.0 97,1 tisoč 38.6 43.2
Celoten postopek je nekoliko podoben položaju piščanca in jajc, saj za snemanje temperature potrebujete umerjen termometer in umerjen večmeter za zapis upora. Napake tukaj povzročijo netočnost pri meritvah temperature, ki jih naredite, vendar je za moje namene +/- 1 stopinja več, kot potrebujem.
Če te zapisane vrednosti priključite v spletni kalkulator, dobite naslednje:
Koeficiente (A, B in C) vključimo v Stenhart-Hartovo enačbo, da določimo temperaturo iz vzorčene vrednosti upora. Enačba je definirana kot (vir: wikipedia.com)
Kjer je T = temperatura v Kelvinih
A, B in C so koeficienti Steinhart-Hartove enačbe, ki jih poskušamo določiti R je upor pri temperaturi T
Vdelana programska oprema bo izvedla ta izračun.
4. korak: Vdelana programska oprema
Napetosti termistorjev se vzorčijo, pretvorijo v temperaturo in pošljejo prek povezave Bluetooth v aplikacijo EvoThings, ki deluje na pametnem telefonu.
Za pretvorbo napetosti v vrednost upora znotraj Bean -a se uporablja preprosta linearna enačba. Izvod enačbe je podan kot slika. Namesto da bi vzorčeno vrednost pretvorili v napetost, saj se tako ADC kot vhodna napetost sklicujeta na isto napetost akumulatorja, lahko namesto napetosti uporabimo vrednost ADC. Za 10 -bitni Bean ADC bo polna napetost akumulatorja povzročila vrednost ADC 1023, zato to vrednost uporabljamo kot Vbat. Dejanska vrednost delilnega upora je pomemben dejavnik. Izmerite dejansko vrednost delitelnega upora 100K in uporabite izmerjeno vrednost v enačbi, da se izognete nepotrebnemu viru napak zaradi tolerance upora.
Ko se vrednost upora izračuna, se vrednost upora pretvori v temperaturo z uporabo Steinhart-Hartove enačbe. Ta enačba je podrobno opisana na Wikipediji.
Ker imamo 2 sondi, je bilo smiselno inkapsulirati funkcionalnost sonde v razred C ++.
Razred zajema koeficiente Steinhart-Hartove enačbe, nazivno vrednost upora upornika in analogna vrata, na katera je priključen termistor. Ena metoda, temperatura (), pretvori vrednost ADC v vrednost upora in nato uporabi Steinhart-Hartovo enačbo za določanje temperature v Kelvinu. Vrnjena vrednost od izračunane temperature odšteje absolutno ničlo (273,15 K), da se zagotovi vrednost v Celziju.
Moč Lightblue Bean je očitna v dejstvu, da je vsa funkcionalnost Bluetooth v bistvu izvedena v 1 vrstici kode, ki zapiše vzorčene vrednosti temperature v podatkovno območje praske v pomnilniku Bluetooth.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & temperatura [0], 12);
Vsaka vzorčena vrednost temperature je predstavljena s plavajočo vrednostjo, ki zavzame 4 bajte. Področje podatkov o praskah lahko vsebuje 20 bajtov. Uporabljamo jih le 12. Obstaja 5 področij podatkov o praskah, tako da lahko s pomočjo podatkov o praskah prenesete do 100 bajtov podatkov.
Osnovni tok dogodkov je:
- Preverite, ali imamo povezavo Bluetooth
- Če je tako, vzorčite temperature in jih zapišite v območje s praskami
- Spite 200 ms in ponovite cikel.
Če ni priključena, vdelana programska oprema za dolgo časa zaspi čip ATMEGA328P. Cikel spanja je pomemben za ohranjanje energije. Čip ATMEGA328P preide v način nizke porabe in ostane tam, dokler ga ne prekine modul Bluetooth LBM313. LBM313 bo ustvaril prekinitev, da bi prebudil ATMEGA328P ob koncu zahtevanega obdobja spanja ali kadar koli je vzpostavljena povezava Bluetooth z Bean. Funkcionalnost WakeOnConnect je omogočena z izrecnim klicem Bean.enableWakeOnConnect (true) med nastavitvijo ().
Pomembno je omeniti, da bo vdelana programska oprema delovala s katero koli odjemalsko aplikacijo BLE. Odjemalec mora le odstraniti temperaturne bajte iz podatkovne zbirke prask in jih znova sestaviti v številke s plavajočo vejico za prikaz ali obdelavo. Najlažja odjemalska aplikacija zame je bila uporaba EvoThings.
5. korak: aplikacija za pametni telefon
Vzorčna aplikacija Evo Things je zelo blizu tistemu, kar sem potreboval, le z majhnimi napori, potrebnimi za dodajanje dodatnih elementov zaslona za dokončanje 3 -kanalne naprave za merjenje temperature.
Namestitev in osnovno delovanje platforme EvoThings sta zelo dobro dokumentirana na spletnem mestu Evo Things, zato tega ni vredno ponavljati. Vse, kar bom tukaj zajel, so posebne spremembe, ki sem jih naredil v njihovi vzorčni kodi za prikaz 3 kanalov informacij o temperaturi, izvlečenih iz podatkovnega območja praske Bluetooth.
Ko namestite delovno mizo EvoThings, boste tukaj našli primer Lightblue Bean (v 64 -bitnih računalnikih Windows):
Ta aplikacija / Documents / EvothingsStudio_Win64_1. XX / Primeri / Lightblue-bean-basic / app
Datoteki index.html in app.js lahko zamenjate z datotekami, priloženimi temu koraku. Spremembe v datoteki jacascript izvlečejo 3 vrednosti temperature s plavajočo vejico, ki tvorijo območje podatkov o praskah in navzgor po notranjem HTML -ju novih elementov, ustvarjenih v datoteki HTML.
funkcija onDataReadSuccess (podatki) {
var temperatureData = nov Float32Array (podatki);
var bytes = nov Uint8Array (podatki);
var temperatura = temperatureData [0];
console.log ('Temperatura odčitana:' + temperatura + 'C');
document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0].toFixed (2) + "C °";
document.getElementById ('temperatura1'). innerHTML = temperatureData [1].toFixed (2) + "C °";
document.getElementById ('temperature2'). innerHTML = temperatureData [2].toFixed (2) + "C °";
}
6. korak: ohišje
Ohišje je preprosta 3D natisnjena škatla. Za oblikovanje sem uporabil Cubify Design, vendar bo zadostoval kateri koli program za 3D modeliranje. Datoteka STL je priložena, da natisnete svojo. Če bi moral to narediti znova, bi naredil stene nekoliko debelejše, kot so zdaj, in spremenil obliko sponke, ki drži desko na mestu. Posnetki se zelo zlahka zlomijo, ker je stres v ravnini majhnosti kot 3D natisnjene plasti, kar je najšibkejša orientacija za 3D tiskane dele. Stene so zelo tanke, zato je zaskočni mehanizem malo na šibki strani. Uporabil sem čist trak, da sem zaprl škatlo, ker so bile stene preveč šibke - ne elegantno, vendar deluje!
7. korak: Nastavitve računalnika in konfiguracija Bluetooth
Cikel izdelave in nalaganja vdelane programske opreme za Bean poteka prek povezave Bluetooth. Hkrati je lahko samo ena aktivna povezava Bluetooth. Bean Loader je na voljo v trgovini Windows App Store
Osnovni cikel, ki ga uporabljam za seznanjanje in povezovanje (ter popravilo in ponovno povezovanje, ko gre kaj narobe), je naslednji: Na nadzorni plošči;/nastavitve Bluetooth bi morali videti naslednji zaslon:
Sčasoma bodo okna poročala »Pripravljeno za seznanjanje«. Na tej točki lahko kliknete ikono Bean in po nekaj sekundah vas bo Windows pozval, da vnesete geslo. Privzeta gesla za fižol je 00000
Če je geslo pravilno vneseno, bo Windows pokazal, da je naprava pravilno povezana. Če želite programirati Bean, morate biti v tem stanju.
Ko ste seznanjeni in povezani, z vstaviteljem fižola naložite vdelano programsko opremo v fižol. Ugotovil sem, da to pogosteje ne uspe in se zdi, da je to povezano z bližino mojega računalnika. Premikajte Bean naokoli, dokler ne najdete lokacije, ki vam ustreza. Obstajajo časi, ko nič ne bo delovalo in Bean Loader bo predlagal ponovno seznanitev naprave. Običajno ponovni postopek seznanjanja obnovi povezavo. Pred ponovnim seznanjanjem morate "odstraniti napravo".
Operacija Bean Loader je preprosta in dobro dokumentirana na njihovem spletnem mestu. Ko je program Bean Loader odprt, izberite element menija "Program", da odprete pogovorno okno in poiščete datoteko Hex, ki je navedena v koraku vdelane programske opreme tega navodila.
Ko je vdelana programska oprema naložena, ZAPRITE Bean Loader, tako da povezava med Bean Loader in strojno opremo Bean prekinete. Naenkrat imate lahko samo eno povezavo. Zdaj odprite delovno mizo EvoThings in zaženite odjemalca EvoThings na pametnem telefonu ali tabličnem računalniku.
Ko kliknete gumb "Zaženi", bo odjemalec EvoThings samodejno naložil stran html za termometer. Kliknite gumb Connect (Poveži se), da se povežete z Bean -om in prikazale bi se prikazane temperature. Uspeh!
8. korak: Zaključek
Če je vse pravilno sestavljeno in konfigurirano, morate imeti delujoč sistem, ki vam bo omogočal spremljanje temperatur z dvema sondama ter spremljanje temperature senzorja BMA250 na razvojni plošči Bean. Z EvoThings lahko storite še več - pravkar sem opraskal površino, zato ta eksperiment prepuščam vam! Hvala za branje! Če gre kaj narobe, pustite komentarje in pomagal bom, kjer lahko.
Priporočena:
Svetlobni termometer - vitaminizirana vrtna svetloba (eNANO De Jardin): 6 korakov
Svetlobni termometer - vitaminizirana vrtna luč (eNANO De Jardin): Vitamizirana vrtna svetilka z arduino NANO in temperaturnim senzorjem BMP180. Naša skromna vrtna luč bo imela skrivno moč: z barvno oznako bo lahko označila zunanjo temperaturo Utripa. Njegovo delovanje je naslednje:
Nixie termometer in higrometer z Arduino Nano: 6 korakov
Nixie termometer in higrometer z Arduino Nano: Kako preživeti nekaj časa ob zabavi in se veliko naučiti o pretvornikih za povečanje, enožičnih senzorjih, Nixie ceveh, kodiranju Arduino. V tem obdobju moramo vsi ostati doma, da zaščitimo sebe in druge pred COVID-19. To je najboljši čas za uporabo s
Arduino termometer za pico: 7 korakov
Arduino termometer za prelivanje pice: Vsak je imel tisti trenutek, ko je bil preveč neučakan in mora vzeti tisti prvi zalogaj sveže pice iz pečice, samo da bi mu ob vročini tisoč sonca opekel streho. Vem, da sem imel te trenutke in končno
Uporabite pametni telefon kot brezkontaktni termometer / prenosni termometer: 8 korakov (s slikami)
Uporabite pametni telefon kot brezkontaktni termometer / prenosni termometer: Merjenje telesne temperature z brezkontaktnim / brezkontaktnim kot termo pištola. Ta projekt sem ustvaril, ker je Thermo Gun zdaj zelo drag, zato moram dobiti alternativo za izdelavo DIY. Namen je izdelati z nizko proračunsko različico
Brezkontaktni infrardeči termometer na osnovi Arduino - IR termometer na osnovi Arduina: 4 koraki
Brezkontaktni infrardeči termometer na osnovi Arduino | IR -termometer z uporabo Arduina: Pozdravljeni fantje, v tem navodilu bomo naredili brezkontaktni termometer z arduinom. Ker je včasih temperatura tekočine/trdne snovi previsoka ali prenizka, potem pa je težko priti v stik z njo in prebrati temperatura v tem prizorju