Obsah:

Teplomer Bluetooth: 8 krokov
Teplomer Bluetooth: 8 krokov

Video: Teplomer Bluetooth: 8 krokov

Video: Teplomer Bluetooth: 8 krokov
Video: PID регулятор, bluetooth термометр RAPT и теплообменный диск для Brewzilla 4 -го поколения 2024, November
Anonim
Bluetooth teplomer
Bluetooth teplomer
Bluetooth teplomer
Bluetooth teplomer
Bluetooth teplomer
Bluetooth teplomer

Tento návod podrobne popisuje výrobu jednoduchého 2 -kanálového teplomera pomocou 100K termistorových sond, modulu Bluetooth a smartfónu. Modul Bluetooth je LightBlue Bean, ktorý bol navrhnutý tak, aby zjednodušil vývoj aplikácií Bluetooth s nízkou spotrebou energie pomocou známeho prostredia Arduino na programovanie modulu.

Potom, čo som sa chvíľu potuloval a snažil som sa zistiť, ako dostať údaje o teplote z modulu Bluetooth do svojho iPhone, som našiel aplikáciu s názvom EvoThings, ktorá výrazne zjednodušila stránku vývoja aplikácie v projekte. Nemám počítač Mac (šokujúce, viem!), Ktorý obmedzuje moju schopnosť vyvíjať aplikáciu pre iPhone, a nemám čas dešifrovať nové nástroje spoločnosti Microsoft, ktoré evidentne podporujú vývoj viacerých platforiem pre iOS a Android. Urobil som niekoľko aplikácií v štýle HTML5, ale jediný spôsob, ako sa dostať k údajom Bluetooth, je prostredníctvom doplnkov pre Cordova, ktoré vyzerali ako väčšia výzva, než na akú som mal čas. EvoThings poskytuje veľmi ľahko použiteľnú sadu nástrojov, ktoré z výzvy Bluetooth-iPhone urobili koláčový koláč. A mám rada tortu!

Celkovo som považoval kombináciu Lightblue Bean a EvoThings za veľmi praktické riešenie s nízkymi časovými investíciami.

Krok 1: Veci, ktoré budete potrebovať

Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať
Veci, ktoré budete potrebovať

Na jeden kanál som použil komerčne dostupnú termistorovú sondu, pretože som chcel, aby bol termistor zapečatený na ponorenie do kvapalín. Pre druhý kanál som vyrobil základnú sondu z termistora, drôtu s priemerom 26 a 3,5 mm konektora pre slúchadlá. Môžete slobodne použiť akékoľvek požadované termistory a môžete si vyrobiť vlastné sondy napríklad z tepelne vodivých epoxidových a plastových slamiek/miešadiel na kávu. Nasleduje to, čo som použil - nemá to byť normatívny zoznam!

Hardvér

  • 1 x 100K sondy termistora. Model Extech TP890. Tie sú bežne dostupné na ebay a amazone.
  • 2 x 2,5 mm stereo konektory, ktoré zodpovedajú 2,5 mm konektoru na sondách Extech. Vybral som 3,5 mm konektory zo starého počítača, a tak som odpojil zástrčku sondy Extech a nahradil ju 3,5 mm konektormi. Mali by ste sa tomu vyhnúť, stačí použiť 2,5 mm konektory alebo štandardný 2,5 mm až 3,5 mm stereofónny adaptér.
  • 100K termistorová perlička plus drôt 26 meradla plus 3,5 mm stereo konektor, ak si chcete vyrobiť vlastnú sondu. Ak nie, kúpte si druhú sondu Extech!
  • 1 x fazuľa Lightblue od spoločnosti Punch Through Designs. Toto je modul Bluetooth programovateľný ako vývojová doska Arduino. Modul je dosť drahý, ale odstraňuje veľa zložitosti. Vedú kampaň Kickstarter pre zariadenie ďalšej generácie, ktoré by mohlo stáť za zváženie.
  • 2 x 1/4W 100K odpory, ktoré sa používajú na rozdelenie referenčného napätia pre termistory. Použil som 5% odpory, ale odpory s vyššou toleranciou sú spravidla menej citlivé na teplotu a poskytnú lepší výkon. 1% je na to dobrá hodnota tolerancie.
  • Spájkovačka a spájkovačka
  • Nôž na drôt a niekoľko malých dĺžok 26 alebo 28 meracieho drôtu.

Softvér a firmvér

  • Na programovanie fazule budete potrebovať aplikáciu Bean Loader. Použil som windows, takže všetky odkazy budú špecifické pre Windows. Všetko, čo potrebujete na začiatok s Beanom, vrátane špecifikácií pre Arduino, je k dispozícii na webe LightBlueBean
  • Pracovný stôl EvoThings pre aplikáciu pre smartfóny je k dispozícii tu. K dispozícii je tiež všetka dokumentácia „Začíname“. Je to veľmi dobre zdokumentované.

Krok 2: Obvodová a elektrická konštrukcia

Obvodová a elektrická konštrukcia
Obvodová a elektrická konštrukcia
Obvodová a elektrická konštrukcia
Obvodová a elektrická konštrukcia
Obvodová a elektrická konštrukcia
Obvodová a elektrická konštrukcia

Termistor je odpor závislý od teploty. Sonda Extech má negatívny teplotný koeficient, čo znamená, že so zvyšovaním teploty odpor klesá. Hodnota odporu sa meria jednoduchým obvodom, ktorý vytvára delič napätia s termistorom v jednej nohe a pevným 100K odporom v druhej nohe. Rozdelené napätie je privádzané do analógového vstupného kanála na zariadení Bean a vzorkované vo firmvéri.

Na vybudovanie obvodu som odstránil 3,5 mm zvukové konektory zo starého pokazeného počítača. Na určenie dvoch bodov na DPS, ktoré zodpovedali špičke a prvému pásu sondy, bol použitý multimetr. Káble boli spájkované k audio konektorom a k Beanovi, ako je znázornené na obrázkoch. Zvukové konektory boli prilepené k prototypu oblasti Bean pomocou obojstrannej pásky. Páska, ktorú som použil, je samolepiaca páska pre automobilový priemysel, ktorá vytvára veľmi silné spojenie medzi časťami vleku.

Krok 3: Koeficienty sondy

Koeficienty sondy
Koeficienty sondy

Keďže je sonda Extech bežná, Steinhart-Hartove koeficienty nie sú publikované nikde, kde by som to mohol nájsť. Našťastie existuje online kalkulačka, ktorá určí koeficienty z 3 meraní teploty, ktoré poskytnete.

To, čo fólie, je základný postup, ktorý som použil na dosiahnutie koeficientov. Nezískate žiadne body za štýl, ale dosť dobré na to, aby ste povedali presnosť +/- 1 stupeň (z mojej strany úplná špička)…. samozrejme v závislosti od presnosti referenčného teplomera a multimetra! Môj multimetr je lacná značková jednotka bez názvu, ktorú som kúpil pred mnohými rokmi, keď boli peniaze obmedzené. Peniaze sú stále obmedzené a stále fungujú!

Na kalibráciu potrebujeme tri hodnoty odporu z 3 teplôt.

  • Blízko bodu mrazu pridaním ľadu do pohára vody a miešaním, kým sa teplota nestabilizuje. Po stabilizácii pomocou multimetra zaznamenajte odpor sondy a referenčný teplomer na zaznamenanie teploty.
  • Teraz umiestnite sondu do pohára vody pri izbovej teplote, nechajte sondu vyrovnať sa s teplotou vody a zaznamenajte teplotu na referenčný teplomer a hodnotu odporu na multimetri.
  • Vložte sondu do pohára horúcej vody a zaznamenajte odpor.

    Teplota Odpor
    5.6 218 tis
    21.0 97,1 tis
    38.6 43.2

Celý tento proces je trochu situácia s kuracím mäsom a vajíčkom, pretože potrebujete kalibrovaný teplomer na zaznamenávanie teploty a kalibrovaný multimetr na zaznamenávanie odporu. Chyby tu budú mať za následok nepresnosť meraní teploty, ktoré robíte, ale na moje účely je +/- 1 stupeň viac, ako potrebujem.

Pripojením týchto zaznamenaných hodnôt do webovej kalkulačky získate nasledujúce výsledky:

Obrázok
Obrázok

Koeficienty (A, B a C) sú zapojené do Stenhartovej-Hartovej rovnice na určenie teploty zo vzorkovanej hodnoty odporu. Rovnica je definovaná ako (zdroj: wikipedia.com)

Obrázok
Obrázok

Kde T = teplota v Kelvinoch

A, B a C sú koeficienty Steinhart-Hartovej rovnice, ktoré sa pokúšame určiť R je odpor pri teplote T

Firmvér vykoná tento výpočet.

Krok 4: Firmvér

Firmvér
Firmvér
Firmvér
Firmvér

Napätie termistora sa vzorkuje, prevádza na teplotu a odosiela cez Bluetooth do aplikácie EvoThings bežiacej na smartfóne.

Na prevod napätia na hodnotu odporu v rámci fazule sa používa jednoduchá lineárna rovnica. Odvodenie rovnice je poskytnuté ako obrázok. Namiesto prevodu vzorkovanej hodnoty na napätie, pretože ADC aj vstupné napätie sa vzťahujú na rovnaké napätie batérie, môžeme namiesto napätia použiť hodnotu ADC. Pri 10bitovom ADC Bean bude mať plné napätie batérie za následok hodnotu ADC 1023, takže túto hodnotu používame ako Vbat. Skutočná hodnota deliaceho odporu je dôležitým faktorom. Zmerajte skutočnú hodnotu deliaceho odporu 100K a použite nameranú hodnotu v rovnici, aby ste sa vyhli zbytočnému zdroju chýb kvôli tolerancii odporu.

Akonáhle je hodnota odporu vypočítaná, hodnota odporu prevedená na teplotu pomocou Steinhartovej-Hartovej rovnice. Táto rovnica je podrobne popísaná na Wikipédii.

Pretože máme 2 sondy, malo zmysel zapracovať funkčnosť sondy do triedy C ++.

Trieda zapuzdruje koeficienty Steinhart-Hartovej rovnice, nominálnu hodnotu odporu deliča a analógový port, ku ktorému je pripojený termistor. Jedna metóda, teplota (), prevádza hodnotu ADC na hodnotu odporu a potom na určenie teploty v Kelvinoch používa Steinhart-Hartovu rovnicu. Návratná hodnota odpočíta od vypočítanej teploty absolútnu nulu (273,15 kB), aby poskytla hodnotu v stupňoch Celzia.

Sila Lightblue Bean je evidentná v skutočnosti, že všetky funkcie Bluetooth sú v zásade implementované v 1 riadku kódu, ktorý zapisuje namerané hodnoty teploty do oblasti údajov poškriabania v pamäti Bluetooth.

Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & teplota [0], 12);

Každá nameraná hodnota teploty je reprezentovaná plavákom, ktorý zaberá 4 bajty. Úložná oblasť údajov môže mať 20 bajtov. Používame iba 12 z nich. Existuje 5 oblastí údajov o stieraní, takže pomocou údajov o stieraní môžete preniesť až 100 bajtov údajov.

Základný tok udalostí je:

  • Skontrolujte, či máme pripojenie Bluetooth
  • Ak je to tak, ukážte teploty a zapíšte ich do oblasti údajov o škrabancoch
  • Spite 200 ms a cyklus zopakujte.

Ak nie je pripojený, firmvér uvedie čip ATMEGA328P na dlhý spánok. Cyklus spánku je dôležitý pre úsporu energie. Čip ATMEGA328P prejde do režimu nízkej spotreby a zostane tam, kým ho nevyruší modul Bluetooth LBM313. LBM313 vygeneruje prerušenie na prebudenie ATMEGA328P na konci požadovanej doby spánku alebo vždy, keď sa s Beanom spojí Bluetooth. Funkcia WakeOnConnect je povolená explicitným volaním Bean.enableWakeOnConnect (true) počas inštalácie ().

Je dôležité si uvedomiť, že firmvér bude fungovať s akoukoľvek klientskou aplikáciou BLE. Jediné, čo klient musí urobiť, je odstrániť bajty teploty zo záložnej dátovej banky a znova ich zostaviť na čísla s pohyblivou rádovou čiarkou na zobrazenie alebo spracovanie. Najľahšou klientskou aplikáciou pre mňa bolo použiť EvoThings.

Krok 5: Aplikácia pre smartphone

Aplikácia pre smartfóny
Aplikácia pre smartfóny

Ukážková aplikácia Evo Things je veľmi blízko tomu, čo som potreboval, s vynaložením minimálneho úsilia na pridanie ďalších zobrazovacích prvkov na dokončenie 3 -kanálového zariadenia na meranie teploty.

Inštalácia a základné fungovanie platformy EvoThings je na webovej stránke Evo Things veľmi dobre zdokumentované, takže nemá zmysel to tu opakovať. Tu sa budem venovať iba konkrétnym zmenám, ktoré som vykonal v ich ukážkovom kóde, aby sa zobrazili 3 kanály informácií o teplote, extrahovaných z oblasti údajov o škrabancoch Bluetooth.

Po nainštalovaní pracovného stola EvoThings nájdete príklad Lightblue Bean tu (na 64 -bitových počítačoch Windows):

ThisPC / Documents / EvothingsStudio_Win64_1. XX / examples / Lightblue-bean-basic / app

Súbory index.html a app.js môžete nahradiť súbormi pripojenými k tomuto kroku. Zmeny vykonané v súbore jacascript extrahujú 3 hodnoty teploty s pohyblivou rádovou čiarkou z oblasti údajov o škrabancoch a do vnútorného HTML nových prvkov vytvorených v súbore HTML.

funkcia onDataReadSuccess (údaje) {

var temperatureData = nový Float32Array (údaje);

var bytes = new Uint8Array (údaje);

var teplota = teplotaDáta [0];

console.log ('Teplota čítaná:' + teplota + 'C');

document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0].toFixed (2) + "C °";

document.getElementById ('teplota1'). innerHTML = teplotaData [1].toFixed (2) + "C °";

document.getElementById ('teplota2'). innerHTML = teplotaData [2].toFixed (2) + "C °";

}

Krok 6: Príloha

Ohrada
Ohrada
Ohrada
Ohrada
Ohrada
Ohrada
Ohrada
Ohrada

Krabica je jednoduchá 3D tlačená krabica. Na vytvorenie návrhu som použil Cubify Design, ale postačí akýkoľvek program pre 3D modelovanie. Súbor STL je priložený k vytlačeniu vlastného. Ak by som to mal urobiť znova, urobil by som steny o niečo hrubšími, ako sú teraz, a zmenil by som dizajn klipu, ktorý drží dosku na svojom mieste. Klipy sa veľmi ľahko lámu, pretože napätie je v rovine smae, pretože 3D tlačené vrstvy sú najslabšou orientáciou pre 3D tlačené diely. Steny sú veľmi tenké, takže západkový mechanizmus je trochu na slabšej strane. Na zatvorenie škatule som použil čistú pásku, pretože steny boli príliš tenké - nie elegantné, ale funguje to!

Krok 7: Nastavenia počítača a konfigurácia Bluetooth

Nastavenia počítača a konfigurácia Bluetooth
Nastavenia počítača a konfigurácia Bluetooth

Cyklus zostavovania a odosielania firmvéru pre Bean sa vykonáva cez Bluetooth. Naraz môže byť iba jedno aktívne pripojenie Bluetooth. Nástroj Bean Loader je k dispozícii v obchode Windows App Store

Základný cyklus, ktorý používam na párovanie a pripojenie (a opravu a opätovné pripojenie, keď sa niečo pokazí), je nasledujúci: Na ovládacom paneli;/nastavenia Bluetooth by ste mali vidieť nasledujúcu obrazovku:

Obrázok
Obrázok

Nakoniec okná nahlásia „Pripravené na párovanie“. V tomto mieste môžete kliknúť na ikonu fazule a po niekoľkých sekundách vás systém Windows vyzve na zadanie prístupového kódu. Predvolený prístupový kód pre fazuľa je 00000

Obrázok
Obrázok

Ak je prístupový kód zadaný správne, systém Windows zobrazí, že je zariadenie správne pripojené. V tomto stave musíte byť, aby ste mohli programovať fazuľa.

Obrázok
Obrázok

Akonáhle budete spárovaní a pripojení, použite nástroj Bean Loader na načítanie firmvéru do fazule. Zistil som, že to zlyháva častejšie ako ne, a zdá sa, že to súvisí s blízkosťou môjho počítača. Presuňte Beana, kým nenájdete miesto, ktoré vám vyhovuje. Sú chvíle, keď nič nefunguje a Bean Loader navrhne zariadenie znova spárovať. Pripojenie sa obnoví spravidla opätovným absolvovaním procesu párovania. Pred opätovným párovaním musíte „Odstrániť zariadenie“.

Obrázok
Obrázok

Operácia nakladača fazule je priamočiara a dobre zdokumentovaná na ich webe. Pri otvorenom nástroji Bean Loader zvoľte položku ponuky „Program“a otvorí sa dialógové okno s cieľom vyhľadať súbor Hex uvedený v kroku firmvéru tohto pokynu.

Obrázok
Obrázok

Po načítaní firmvéru ZATVORTE Bean Loader, aby sa prerušilo spojenie medzi Bean Loader a hardvérom Bean. Naraz môžete mať iba jedno pripojenie. Teraz otvorte pracovný stôl EvoThings a spustite klienta EvoThings na smartfóne alebo tablete.

Obrázok
Obrázok

Keď kliknete na tlačidlo „Spustiť“, klient EvoThings automaticky načíta stránku html teplomera. Kliknutím na tlačidlo Pripojiť sa pripojíte k fazuli a mali by ste vidieť zobrazené teploty. Úspech!

Krok 8: Záver

Záver
Záver

Ak je všetko postavené a nakonfigurované správne, mali by ste mať funkčný systém, ktorý vám umožní monitorovať teploty 2 sondami a tiež monitorovať teplotu senzora BMA250 na vývojovej doske Bean. S EvoThings sa dá urobiť viac - práve som poškriabal povrch, takže toto experimentovanie nechávam na vás! Vďaka za prečítanie! Ak sa niečo pokazí, zanechajte komentár a ja pomôžem, kde môžem.

Odporúča: