Kazalo:

Bluetooth termometer: 8 korakov
Bluetooth termometer: 8 korakov

Video: Bluetooth termometer: 8 korakov

Video: Bluetooth termometer: 8 korakov
Video: Метеостанция Xiaomi Mijia Thermometer 2 ► УМНЫЙ термометр-гигрометр СЯОМИ / Hygrothermograph 2 2024, November
Anonim
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer

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

Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
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

Vezje in električna konstrukcija
Vezje in električna konstrukcija
Vezje in električna konstrukcija
Vezje in električna konstrukcija
Vezje in električna konstrukcija
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

Koeficienti sonde
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:

Slika
Slika

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)

Slika
Slika

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

Vdelana programska oprema
Vdelana programska oprema
Vdelana programska oprema
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

Aplikacija za pametni telefon
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
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
Ohišje
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

Nastavitve računalnika in konfiguracija Bluetooth
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:

Slika
Slika

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

Slika
Slika

Če je geslo pravilno vneseno, bo Windows pokazal, da je naprava pravilno povezana. Če želite programirati Bean, morate biti v tem stanju.

Slika
Slika

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".

Slika
Slika

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.

Slika
Slika

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.

Slika
Slika

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

Zaključek
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: