Sisällysluettelo:

Bluetooth -lämpömittari: 8 vaihetta
Bluetooth -lämpömittari: 8 vaihetta

Video: Bluetooth -lämpömittari: 8 vaihetta

Video: Bluetooth -lämpömittari: 8 vaihetta
Video: Бесплатное Видеонаблюдение.Будет ли работать камера без ОБЛАКА? 2024, Heinäkuu
Anonim
Bluetooth -lämpömittari
Bluetooth -lämpömittari
Bluetooth -lämpömittari
Bluetooth -lämpömittari
Bluetooth -lämpömittari
Bluetooth -lämpömittari

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

Tarvitsemasi asiat
Tarvitsemasi asiat
Tarvitsemasi asiat
Tarvitsemasi asiat
Tarvitsemasi asiat
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

Piiri- ja sähkörakentaminen
Piiri- ja sähkörakentaminen
Piiri- ja sähkörakentaminen
Piiri- ja sähkörakentaminen
Piiri- ja sähkörakentaminen
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

Mittapään kertoimet
Mittapään kertoimet

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:

Kuva
Kuva

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)

Kuva
Kuva

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

Laiteohjelmisto
Laiteohjelmisto
Laiteohjelmisto
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

Älypuhelinsovellus
Ä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
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
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

PC -asetukset ja Bluetooth -määritykset
PC -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ö:

Kuva
Kuva

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

Kuva
Kuva

Jos salasana syötetään oikein, Windows näyttää, että laite on liitetty oikein. Sinun on oltava tässä tilassa voidaksesi ohjelmoida Bean.

Kuva
Kuva

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.

Kuva
Kuva

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.

Kuva
Kuva

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.

Kuva
Kuva

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

Johtopäätös
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: