Sisällysluettelo:
- Vaihe 1: Tarvitsemasi asiat
- Vaihe 2: Piiri- ja sähkörakentaminen
- Vaihe 3: Koetinkerroimet
- Vaihe 4: Laiteohjelmisto
- Vaihe 5: Älypuhelinsovellus
- Vaihe 6: Kotelo
- Vaihe 7: Tietokoneen asetukset ja Bluetooth -määritykset
- Vaihe 8: Johtopäätös
Video: Bluetooth -lämpömittari: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tässä ohjeessa kerrotaan yksinkertaisen 2 -kanavaisen lämpömittarin valmistamisesta käyttäen 100K termistorianturia, Bluetooth -moduulia ja älypuhelinta. Bluetooth -moduuli on LightBlue Bean, joka on suunniteltu yksinkertaistamaan Bluetooth Low Energy -sovellusten kehittämistä käyttämällä tuttua Arduino -ympäristöä moduulin ohjelmointiin.
Kun olen kompastellut jonkin aikaa yrittäen selvittää, kuinka saada lämpötilatiedot Bluetooth -moduulista iPhoneen, löysin EvoThings -nimisen sovelluksen, joka yksinkertaisti huomattavasti sovelluksen kehittämispuolen. Minulla ei ole Mac -tietokonetta (järkyttävää tiedän!), Joka rajoittaa kykyäni kehittää iPhone -sovellusta, eikä minulla ole aikaa tulkita uusia Microsoft -työkaluja, jotka ilmeisesti tukevat eri alustojen kehittämistä iOS: lle ja Androidille. Olen tehnyt useita HTML5 -tyylisiä sovelluksia, mutta ainoa tapa päästä käsiksi Bluetooth -tietoihin on Cordovan laajennusten kautta, mikä näytti enemmän haasteelta kuin minulla oli aikaa. EvoThings tarjoaa erittäin helppokäyttöisen työkalusarjan, joka muutti Bluetooth-iPhone-haasteen kakkukaareksi. Ja tykkään kakusta!
Kaiken kaikkiaan Lightblue Beanin ja EvoThingsin yhdistelmä oli erittäin käytännöllinen ratkaisu, joka vie vähän aikaa.
Vaihe 1: Tarvitsemasi asiat
Käytin kaupallisesti saatavilla olevaa termistorianturia yhdelle kanavalle, koska halusin, että termistori suljetaan nesteisiin upottamista varten. Toista kanavaa varten tein perusanturin termistorista, noin 26 -mittaisesta johdosta ja 3,5 mm: n kuulokeliittimestä. Voit vapaasti käyttää mitä tahansa haluamiasi termistoreita ja voit tehdä omia mittapäitäsi esimerkiksi lämpöä johtavista epoksi- ja muovipillistä/kahvisekoittajista. Seuraavassa käytin sitä - sitä ei ole tarkoitettu ohjeelliseksi luetteloksi!
Laitteisto
- 1 x 100K termistorianturit. Malli Extech TP890. Nämä ovat yleisesti saatavilla ebay ja amazon.
- 2 x 2,5 mm stereoliitintä, jotka sopivat Extech -anturien 2,5 mm: n pistokkeeseen. Poistin 3,5 mm: n liittimet vanhasta tietokoneesta, joten katkaisin Extech -anturin pistokkeen ja korvasin sen 3,5 mm: n liittimillä. Sinun tulisi välttää tätä käyttämällä vain 2,5 mm: n liittimiä tai 2,5-3,5 mm: n stereosovitinpistoketta.
- 100K termistorihelmi plus 26 mittajohto ja 3,5 mm stereopistoke, jos haluat tehdä oman anturin. Jos ei, osta toinen Extech -anturi!
- 1 x vaaleansininen papu Punch Through -malleista. Tämä on Bluetooth -moduuli, joka voidaan ohjelmoida Arduino -kehityskortiksi. Moduuli on melko kallis, mutta se poistaa paljon monimutkaisuutta. Heillä on käynnissä Kickstarter -kampanja seuraavan sukupolven laitteelle, joka saattaa olla harkitsemisen arvoista.
- 2 x 1/4 W 100K vastukset, joita käytetään termistorien vertailujännitteen jakamiseen. Käytin 5% vastuksia, mutta suuremman toleranssin vastukset ovat yleensä vähemmän lämpöherkkiä ja tarjoavat paremman suorituskyvyn. 1% on hyvä toleranssi tähän.
- Juotin ja juote
- Lankaleikkurit ja jotkut pienet 26 tai 28 mittaisen kytkentäjohdon pituudet.
Ohjelmisto ja laiteohjelmisto
- Pavun ohjelmointiin tarvitset Bean Loader -sovelluksen. Olen käyttänyt ikkunoita, joten kaikki linkit ovat Windows -erityisiä. Kaikki mitä tarvitset Beanin käytön aloittamiseen, mukaan lukien Arduinon yksityiskohdat, on saatavana LightBlueBean -sivustolta
- Älypuhelinsovelluksen EvoThings -työpöytä löytyy täältä. Kaikki "aloitus" -dokumentaatio on saatavilla myös siellä. Se on hyvin dokumentoitu.
Vaihe 2: Piiri- ja sähkörakentaminen
Termistori on lämpötilasta riippuva vastus. Extech -anturilla on negatiivinen lämpötilakerroin, mikä tarkoittaa, että lämpötilan noustessa vastus pienenee. Vastusarvo mitataan yksinkertaisella piirillä, joka luo jännitteenjakajan, jonka toisessa jalassa on termistori ja toisessa kiinteä 100K vastus. Jaettu jännite syötetään Beanin analogiseen tulokanavaan ja näytteistetään laiteohjelmistosta.
Piirin rakentamiseksi kaivoin 3,5 mm: n ääniliittimet vanhasta rikkoutuneesta tietokoneesta. Yleismittaria käytettiin määrittämään kaksi piirilevyn pistettä, jotka vastasivat koettimen kärkeä ja ensimmäistä nauhaa. Johdot juotettiin ääniliitäntöihin ja Beaniin kuvien mukaisesti. Ääniliittimet kiinnitettiin Beanin prototyyppialueelle kaksipuolisella teipillä. Käytetty teippi on autolaatuista tarrateippiä, joka luo erittäin vahvan siteen hinausosien väliin.
Vaihe 3: Koetinkerroimet
Niin yleistä kuin Extech-anturi on, Steinhart-Hart-kertoimia ei julkaista missään, mitä voisin löytää. Onneksi on olemassa online -laskin, joka määrittää kertoimet kolmen antamasi lämpötilamittauksen perusteella.
Mikä foillows on perusmenettely, jolla käytin kertoimia. Ei ansaitse pisteitä tyylistä, mutta tarpeeksi hyvä, jotta voit sanoa +/- 1 asteen tarkkuuden (täydellinen peukalo minulta)…. tietysti referenssilämpömittarin ja yleismittarin tarkkuudesta riippuen! Yleismittarini on halpa nimettömän merkkinen yksikkö, jonka ostin monta vuotta sitten, kun raha oli niukkaa. Rahaa on edelleen vähän ja se toimii edelleen!
Kalibrointia varten tarvitsemme kolme vastuslukemaa 3 lämpötilasta.
- Lähes jäätyminen lisäämällä jäätä lasilliseen vettä ja sekoittamalla, kunnes lämpötila vakiintuu. Kun vakiintunut, rekisteröi monimetrillä anturin vastus ja vertailulämpömittari lämpötilan mittaamiseksi.
- Aseta anturi nyt lasilliseen vettä huoneenlämpötilassa, anna anturin tasaantua veden lämpötilan kanssa ja kirjaa lämpötila vertailulämpömittariin ja vastuslukema monimittariin.
-
Aseta anturi lasilliseen kuumaa vettä ja kirjaa vastus.
Lämpötila Vastus 5.6 218 000 21.0 97,1 tuhatta 38.6 43.2
Tämä koko prosessi on vähän kanan ja munan tilanne, koska tarvitset kalibroidun lämpömittarin lämpötilan tallentamiseen ja kalibroidun monimetrin vastuksen mittaamiseen. Tässä olevat virheet johtavat tekemiesi lämpötilamittausten epätarkkuuteen, mutta minun tarkoituksessani +/- 1 aste on enemmän kuin tarvitsen.
Näiden tallennettujen arvojen liittäminen web -laskimeen tuottaa seuraavaa:
Kertoimet (A, B ja C) kytketään Stenhart-Hartin yhtälöön lämpötilan määrittämiseksi näytteenottovastuksen arvosta. Yhtälö määritellään (lähde: wikipedia.com)
Missä T = lämpötila Kelvinissä
A, B ja C ovat Steinhart-Hart-yhtälökertoimia, joita yritämme määrittää R on vastus lämpötilassa T
Laiteohjelmisto suorittaa tämän laskelman.
Vaihe 4: Laiteohjelmisto
Termistorijännitteet otetaan näytteitä, muunnetaan lämpötilaksi ja lähetetään Bluetoothin kautta älypuhelimessa toimivaan EvoThings -sovellukseen.
Jännitteen muuntamiseksi Beanin vastusarvoon käytetään yksinkertaista lineaarista yhtälöä. Yhtälön johtaminen esitetään kuvana. Otetun arvon muuntamisen sijaan jännitteeksi, koska sekä ADC että tulojännite viittaavat samaan akun jännitteeseen, voimme käyttää ADC -arvoa jännitteen sijasta. 10 -bittisessä Bean ADC: ssä täysi akun jännite johtaa ADC -arvoon 1023, joten käytämme tätä arvoa Vbatina. Jakajavastuksen todellinen arvo on tärkeä näkökohta. Mittaa 100K -jakajan vastuksen todellinen arvo ja käytä mitattua arvoa yhtälössä välttääksesi vastuksen toleranssista johtuvan tarpeettoman virheen.
Kun vastusarvo on laskettu, vastusarvo muunnetaan lämpötilaksi käyttämällä Steinhart-Hart-yhtälöä. Tämä yhtälö on kuvattu yksityiskohtaisesti Wikipediassa.
Koska meillä on kaksi anturia, oli järkevää kapseloida anturin toiminnot C ++ -luokkaan.
Luokka sisältää Steinhart-Hart-yhtälökertoimet, jakajan nimellisvastuksen arvon ja analogisen portin, johon termistori on kytketty. Yksi menetelmä, lämpötila (), muuntaa ADC-arvon vastusarvoksi ja käyttää sitten Steinhart-Hart-yhtälöä Kelvinin lämpötilan määrittämiseen. Palautusarvo vähentää absoluuttisen nollan (273,15 K) lasketusta lämpötilasta, jolloin saadaan Celsius -arvo.
Vaaleansinisen pavun teho näkyy siinä, että kaikki Bluetooth -toiminnot on toteutettu olennaisesti yhdellä koodirivillä, joka kirjoittaa näytteenotetut lämpötila -arvot Bluetooth -muistin raaputusalueelle.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & lämpötila [0], 12);
Jokaista näytteistettyä lämpötila -arvoa edustaa kelluva, joka vie 4 tavua. Raaputusdatalle voi mahtua 20 tavua. Käytämme vain 12 niistä. Naarmuuntumisalueita on viisi, joten voit siirtää jopa 100 tavua dataa naarmuuntumistiedon avulla.
Tapahtumien perusvirta on:
- Tarkista, onko meillä Bluetooth -yhteys
- Jos näin on, ota näytteiden lämpötilat ja kirjoita ne raaputusdatalle
- Nuku 200 ms ja toista sykli.
Jos laite ei ole yhteydessä, laiteohjelmisto laittaa ATMEGA328P -sirun nukkumaan pitkään. Unisykli on tärkeä virran säästämiseksi. ATMEGA328P -siru siirtyy virransäästötilaan ja pysyy siellä, kunnes LBM313 -Bluetooth -moduuli keskeyttää sen. LBM313 luo keskeytyksen herättääkseen ATMEGA328P: n pyydetyn uniajan jälkeen tai aina kun Bluetooth -yhteys muodostetaan Beaniin. WakeOnConnect -toiminto otetaan käyttöön kutsumalla nimenomaisesti Bean.enableWakeOnConnect (true) asennuksen aikana ().
On tärkeää huomata, että laiteohjelmisto toimii minkä tahansa BLE -asiakassovelluksen kanssa. Asiakkaan tarvitsee vain poistaa lämpötilat tavuista tyhjästä tietokannasta ja koota ne uudelleen liukulukuiksi näytettäväksi tai käsiteltäväksi. Helpoin asiakassovellus minulle oli EvoThingsin käyttö.
Vaihe 5: Älypuhelinsovellus
Evo Things -näytesovellus on hyvin lähellä sitä, mitä tarvitsin, ja tarvitsin vain vähän vaivaa lisätäksesi lisäelementtejä 3 -kanavaisen lämpötilan mittauslaitteen suorittamiseksi.
EvoThings -alustan asennus ja perustoiminnot on dokumentoitu erittäin hyvin Evo Things -verkkosivustolla, joten sen toistaminen täällä ei ole arvokasta. Tässä kerron vain niistä muutoksista, jotka tein heidän näytekoodissaan näyttääkseen kolme lämpötilatietojen kanavaa, jotka on otettu Bluetooth -tyhjästä tietoalueelta.
Kun olet asentanut EvoThings Workbenchin, löydät Lightblue Bean -esimerkin täältä (Windows 64 -bittisissä tietokoneissa):
ThisPC / Documents / EvothingsStudio_Win64_1. XX / Examples / Lightblue-bean-basic / app
Voit korvata index.html- ja app.js -tiedostot tähän vaiheeseen liitetyillä tiedostoilla. Jacascript -tiedostoon tehdyt muutokset poimivat 3 liukuluku -lämpötila -arvoa, jotka muodostavat raaputusdatan alueen ja ylöspäin HTML -tiedostoon luotujen uusien elementtien sisäisen HTML -koodin.
function onDataReadSuccess (data) {
var temperatureData = uusi Float32Array (data);
var tavua = uusi Uint8Array (data);
var lämpötila = lämpötilaData [0];
console.log ('Lämpötilan lukema:' + lämpötila + 'C');
document.getElementById ('lämpötilaAmbient'). internalHTML = temperatureData [0].toFixed (2) + "C °";
document.getElementById ('lämpötila1'). internalHTML = temperatureData [1].toFixed (2) + "C °";
document.getElementById ('lämpötila2'). internalHTML = temperatureData [2].toFixed (2) + "C °";
}
Vaihe 6: Kotelo
Kotelo on yksinkertainen 3D -painettu laatikko. Käytin Cubify Designia suunnittelun luomiseen, mutta mikä tahansa 3D -mallinnusohjelma riittää. STL -tiedosto on liitetty, jotta voit tulostaa oman. Jos minun olisi tehtävä se uudelleen, tekisin seinistä hieman paksumpia kuin ne ovat nyt ja muuttaisin leikkeen muotoilua, joka pitää levyn paikallaan. Leikkeet katkeavat erittäin helposti, koska 3D -tulostetut kerrokset ovat smae -tasossa, mikä on heikoin suunta 3D -tulostetuille osille. Seinät ovat hyvin ohuita, joten napsautusmekanismi on hieman heikolla puolella. Käytin kirkasta teippiä pitämään laatikko suljettuna, koska seinät olivat liian heikkoja - ei tyylikkäitä, mutta se toimii!
Vaihe 7: Tietokoneen asetukset ja Bluetooth -määritykset
Beanin laiteohjelmiston rakentamis- ja lataussykli suoritetaan Bluetoothin kautta. Aktiivinen Bluetooth -yhteys voi olla vain yksi kerrallaan. Pavunkuormaaja on saatavana Windows App Storesta
Perusjakso, jota käytän pariliitoksen muodostamiseen ja yhteyden muodostamiseen (ja korjaamiseen ja yhteyden muodostamiseen uudelleen, kun asiat menevät pieleen) on seuraava: Ohjauspaneelista;/Bluetooth -asetukset, sinun pitäisi nähdä seuraava näyttö:
Lopulta Windows ilmoittaa "Valmis pariksi". Tässä vaiheessa voit napsauttaa Pavun kuvaketta ja muutaman sekunnin kuluttua Windows pyytää sinua antamaan salasanan. Pavun oletussalasana on 00000
Jos salasana syötetään oikein, Windows näyttää, että laite on liitetty oikein. Sinun on oltava tässä tilassa voidaksesi ohjelmoida Bean.
Kun olet muodostanut pariliitoksen ja muodostanut yhteyden, lataa papuohjelmisto papukahvilla. Huomasin tämän epäonnistuvan useammin kuin ei ja se näytti liittyvän tietokoneeni läheisyyteen. Siirrä papua ympäri, kunnes löydät itsellesi sopivan paikan. On aikoja, jolloin mikään ei toimi, ja papukuormaaja ehdottaa laitteen pariliitoksen muodostamista uudelleen. Tyypillisesti pariliitosprosessin suorittaminen uudelleen palauttaa yhteyden. Sinun on poistettava laite ennen pariliitoksen muodostamista uudelleen.
Pavunkuormaajan toiminta on suoraviivaista ja hyvin dokumentoitua heidän sivustollaan. Kun Bean Loader on auki, valitse "Program" -valikkokohta avataksesi valintaikkunan, jossa voit selata tämän ohjeen laiteohjelmavaiheessa olevaa Hex -tiedostoa.
Kun laiteohjelmisto on ladattu, SULJE pavunkuormaaja niin, että yhteys papukuormaajan ja papulaitteiston välillä katkeaa. Sinulla voi olla vain yksi yhteys kerrallaan. Avaa nyt EvoThings -työpöytä ja käynnistä EvoThings -asiakas älypuhelimella tai tabletilla.
Kun napsautat "Suorita" -painiketta, EvoThings -asiakas lataa automaattisesti lämpömittarin html -sivun. Muodosta yhteys papuun napsauttamalla Yhdistä -painiketta ja lämpötilat tulevat näkyviin. Menestys!
Vaihe 8: Johtopäätös
Jos kaikki on rakennettu ja konfiguroitu oikein, sinulla pitäisi olla toimiva järjestelmä, jonka avulla voit seurata lämpötiloja kahdella anturilla sekä seurata Bean -kehityskortin BMA250 -anturin lämpötilaa. EvoThingsilla voidaan tehdä enemmän - olen juuri raapinut pintaa, joten jätän tämän kokeilun sinulle! Kiitos lukemisesta! Jos asiat menevät pieleen, jätä kommentit, niin autan missä voin.
Suositeltava:
Kannettava Bluetooth 2.1 Boombox: 16 vaihetta (kuvilla)
Kannettava Bluetooth 2.1 Boombox: Hei kaikki! Tässä rakenteessa päätin keksiä kannettavan Bluetooth -boomboxin, jossa olisi ladattava akku ja erinomainen suorituskyky. Tämä kaiutin perustuu Paul Carmodyn Isetta -kaiutinrakenteeseen, jonka olen muokannut hieman mukautumaan
Kannettava Bluetooth -kaiutin - MKBoom DIY Kit: 5 vaihetta (kuvilla)
Kannettava Bluetooth -kaiutin | MKBoom DIY Kit: Hei kaikille! Niin hyvä palata jälleen yhteen kaiutinprojektin kanssa pitkän tauon jälkeen. Minä ajattelin sitä
Bluetooth -kuulokkeiden muuntaminen Bluetooth -kaiuttimiksi: 5 vaihetta
Bluetooth-kuulokkeiden muuntaminen Bluetooth-kaiuttimiksi: Kuulokkeeni ei enää saa virtaa itsestään, vaan virta kytketään vain, kun liitän micro-USB-liittimen latautumaan, akku on jo tyhjä ja yksi kaiuttimista ei toimi. Mutta Bluetooth toimii edelleen ilman ongelmia. Tänään näytän
Muunna Bluetooth -kuulokkeet langallisiksi Bluetooth -kuulokkeiksi: 5 vaihetta (kuvilla)
Muunna Bluetooth -kuulokkeet langallisiksi Bluetooth -kuulokkeiksi: Tänään kerron sinulle, miten voit tehdä tai muuntaa omat langalliset Bluetooth -kuulokkeet
Muunna Bluetooth -kuulokkeet langallisiksi Bluetooth -kuulokkeiksi: 6 vaihetta
Muunna Bluetooth -kuulokkeet langallisiksi Bluetooth -kuulokkeiksi: Tänään kerron sinulle, miten voit tehdä tai muuntaa omat langalliset Bluetooth -kuulokkeet