Obsah:

Bluetooth teploměr: 8 kroků
Bluetooth teploměr: 8 kroků

Video: Bluetooth teploměr: 8 kroků

Video: Bluetooth teploměr: 8 kroků
Video: 💊 Как быстро избавиться от заиканий и разрыва соединений Bluetooth устройств. Android 2024, Listopad
Anonim
Bluetooth teploměr
Bluetooth teploměr
Bluetooth teploměr
Bluetooth teploměr
Bluetooth teploměr
Bluetooth teploměr

Tento návod podrobně popisuje výrobu jednoduchého 2kanálového teploměru pomocí 100K termistorových sond, modulu Bluetooth a smartphonu. Modul Bluetooth je LightBlue Bean, který byl navržen tak, aby zjednodušil vývoj aplikace Bluetooth Low Energy pomocí známého prostředí Arduino pro programování modulu.

Poté, co jsem se na chvíli pokoušel zjistit, jak dostat data o teplotě z modulu Bluetooth do mého iPhone, našel jsem aplikaci s názvem EvoThings, která výrazně zjednodušila stránku vývoje aplikace projektu. Nemám počítač Mac (šokující, já vím!), Který omezuje moji schopnost vyvíjet aplikaci pro iPhone, a nemám čas dešifrovat nové nástroje Microsoft, které evidentně podporují vývoj napříč platformami pro iOS a Android. Udělal jsem několik aplikací ve stylu HTML5, ale jediný způsob, jak se dostat k datům Bluetooth, je prostřednictvím pluginů pro Cordova, které vypadaly jako větší výzva, než jsem měl čas. EvoThings poskytuje velmi snadno použitelnou sadu nástrojů, které proměnily výzvu Bluetooth-to-iPhone na dort. A mám rád dort!

Celkově jsem našel kombinaci Lightblue Bean a EvoThings jako velmi praktické řešení s nízkými časovými investicemi.

Krok 1: Věci, které budete potřebovat

Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat

Použil jsem komerčně dostupnou termistorovou sondu pro jeden kanál, protože jsem chtěl termistor utěsněný pro ponoření do kapalin. Pro druhý kanál jsem vyrobil základní sondu z termistoru, nějakého vodiče 26 a 3,5 mm konektoru pro sluchátka. Můžete libovolně používat libovolné termistory a můžete si vyrobit vlastní sondy například z tepelně vodivých epoxidových a plastových brček/míchadel na kávu. Následuje to, co jsem použil - nemá to být normativní seznam!

Hardware

  • 1 x 100K termistorové sondy. Model Extech TP890. Ty jsou běžně dostupné na ebay a amazonu.
  • 2 x 2,5 mm stereo konektory, které odpovídají 2,5 mm konektoru na sondách Extech. Zachytil jsem 3,5 mm konektory ze starého počítače, takže jsem odpojil zástrčku sondy Extech a nahradil ji 3,5 mm zástrčkami. Měli byste se tomu vyhnout, stačí použít 2,5 mm konektory nebo použít standardní stereofonní zástrčku 2,5 mm až 3,5 mm.
  • 100K termistorová kulička plus 26 měřicí vodič plus 3,5 mm stereo konektor, pokud si chcete vyrobit vlastní sondu. Pokud ne, kupte si druhou sondu Extech!
  • 1 x Lightblue Bean od Punch Through Designs. Toto je modul Bluetooth programovatelný jako vývojová deska Arduino. Modul je docela drahý, ale odstraňuje spoustu složitosti. Provozují kampaň Kickstarter pro zařízení příští generace, což by mohlo stát za zvážení.
  • 2 x 1/4W 100K odpory, které se používají k rozdělení referenčního napětí pro termistory. Použil jsem 5% odpory, ale odpory s vyšší tolerancí jsou obecně méně citlivé na teplotu a poskytnou lepší výkon. 1% je pro to dobrá hodnota tolerance.
  • Páječka a pájka
  • Nůžky na drát a některé malé délky 26 nebo 28 měřicího drátu.

Software a firmware

  • K programování fazole budete potřebovat aplikaci Bean Loader. Použil jsem windows, takže všechny odkazy budou specifické pro Windows. Vše, co potřebujete, abyste mohli začít s Beanem, včetně specifik Arduina, je k dispozici na webu LightBlueBean
  • Pracovní stůl EvoThings pro aplikaci pro chytré telefony je k dispozici zde. K dispozici je také veškerá dokumentace „Začínáme“. Je to velmi dobře zdokumentováno.

Krok 2: Obvodová a elektrická konstrukce

Obvodová a elektrická konstrukce
Obvodová a elektrická konstrukce
Obvodová a elektrická konstrukce
Obvodová a elektrická konstrukce
Obvodová a elektrická konstrukce
Obvodová a elektrická konstrukce

Termistor je odpor závislý na teplotě. Sonda Extech má negativní teplotní koeficient, což znamená, že s rostoucí teplotou odpor klesá. Hodnota odporu se měří jednoduchým obvodem, který vytváří dělič napětí s termistorem v jedné noze a pevným 100K odporem v druhé noze. Rozdělené napětí je přiváděno do analogového vstupního kanálu na fazole a vzorkováno ve firmwaru.

Abych vybudoval obvod, uklízel jsem 3,5mm audio konektory ze starého rozbitého PC. K určení dvou bodů na desce plošných spojů, které odpovídaly špičce a prvnímu pásu sondy, byl použit multimetr. Dráty byly připájeny k audio konektorům a Beanovi, jak je znázorněno na obrázcích. Zvukové konektory byly přilepeny k prototypu oblasti Bean pomocí oboustranné pásky. Páska, kterou jsem použil, je samolepicí páska pro automobilový průmysl, která vytváří velmi silné spojení mezi částmi vleku.

Krok 3: Koeficienty sondy

Koeficienty sondy
Koeficienty sondy

Jakkoli je sonda Extech běžná, Steinhart-Hartovy koeficienty nejsou publikovány nikde, kde bych je našel. Naštěstí existuje online kalkulačka, která určí koeficienty ze 3 měření teploty, které poskytnete.

To, co fólie, je základní postup, který jsem použil k dosažení koeficientů. Nezískáváte žádné body za styl, ale dost dobrý na to, abyste řekli +/- 1 stupeň s přesností (z mé strany totální thumbsuck)…. samozřejmě v závislosti na přesnosti referenčního teploměru a multimetru! Můj multimetr je levná jednotka značky bez názvu, kterou jsem koupil před mnoha lety, když byly peníze omezené. Peníze jsou stále těsné a stále fungují!

Ke kalibraci potřebujeme tři hodnoty odporu ze 3 teplot.

  • Téměř zmrazení přidáním ledu do sklenice vody a mícháním, dokud se teplota nestabilizuje. Jakmile je stabilizovaný, použijte multimetr k zaznamenání odporu sondy a referenční teploměr k zaznamenání teploty.
  • Nyní umístěte sondu do sklenice vody při pokojové teplotě, nechte sondu vyrovnat se s teplotou vody a zaznamenejte teplotu na referenčním teploměru a hodnotu odporu na multimetru.
  • Umístěte sondu do sklenice horké vody a zaznamenejte odpor.

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

Celý tento proces je trochu situace kuřat a vajec, protože potřebujete kalibrovaný teploměr pro záznam teploty a kalibrovaný multimetr pro záznam odporu. Chyby zde způsobí nepřesnost měření teploty, které provádíte, ale pro mé účely je +/- 1 stupeň více, než potřebuji.

Připojením těchto zaznamenaných hodnot do webové kalkulačky získáte následující:

obraz
obraz

Koeficienty (A, B a C) jsou zapojeny do Stenhart-Hartovy rovnice, aby se určila teplota ze vzorkované hodnoty odporu. Rovnice je definována jako (zdroj: wikipedia.com)

obraz
obraz

Kde T = teplota v Kelvinech

A, B a C jsou koeficienty Steinhart-Hartovy rovnice, které se snažíme určit R je odpor při teplotě T

Firmware provede tento výpočet.

Krok 4: Firmware

Firmware
Firmware
Firmware
Firmware

Napětí termistoru je vzorkováno, převedeno na teplotu a odesláno přes Bluetooth do aplikace EvoThings běžící na smartphonu.

K převodu napětí na hodnotu odporu uvnitř fazole se používá jednoduchá lineární rovnice. Odvození rovnice je poskytováno jako obrázek. Namísto převodu vzorkované hodnoty na napětí, protože jak ADC, tak vstupní napětí se vztahují na stejné napětí baterie, můžeme místo napětí použít hodnotu ADC. U 10bitového ADC Bean bude mít plné napětí baterie hodnotu ADC 1023, takže tuto hodnotu použijeme jako Vbat. Skutečná hodnota dělicího odporu je důležitým faktorem. Změřte skutečnou hodnotu dělicího odporu 100K a použijte naměřenou hodnotu v rovnici, abyste se vyhnuli zbytečnému zdroji chyb v důsledku tolerance odporu.

Jakmile je hodnota odporu vypočítána, hodnota odporu převedena na teplotu pomocí Steinhart-Hartovy rovnice. Tato rovnice je podrobně popsána na Wikipedii.

Protože máme 2 sondy, dávalo smysl zapouzdřit funkčnost sondy do třídy C ++.

Třída zapouzdřuje koeficienty Steinhart-Hartovy rovnice, hodnotu nominálního dělicího odporu a analogový port, ke kterému je připojen termistor. Jedna metoda, teplota (), převede hodnotu ADC na hodnotu odporu a poté pomocí Steinhart-Hartovy rovnice určí teplotu v Kelvinech. Návratová hodnota od vypočítané teploty odečte absolutní nulu (273,15 K), aby poskytla hodnotu ve stupních Celsia.

Síla Lightblue Bean je evidentní ve skutečnosti, že všechny funkce Bluetooth jsou v zásadě implementovány v 1 řádku kódu, který zapisuje naměřené hodnoty teploty do oblasti dat poškrábání v paměti Bluetooth.

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

Každá naměřená hodnota teploty je reprezentována plovákem, který zabírá 4 bajty. Oblast dat o poškrábání může obsahovat 20 bytů. Používáme pouze 12 z nich. K dispozici je 5 oblastí údajů o stírání, takže pomocí dat o stírání můžete přenést až 100 bajtů dat.

Základní tok událostí je:

  • Zkontrolujte, zda máme připojení Bluetooth
  • Pokud ano, odeberte teploty a zapište je do oblasti údajů o poškrábání
  • Spěte 200 ms a cyklus opakujte.

Pokud není připojen, firmware přepne čip ATMEGA328P na delší dobu do režimu spánku. Cyklus spánku je důležitý pro úsporu energie. Čip ATMEGA328P přejde do režimu nízké spotřeby a zůstane tam, dokud jej nepřeruší modul Bluetooth LBM313. LBM313 vygeneruje přerušení pro probuzení ATMEGA328P na konci požadované doby spánku nebo kdykoli je k Bean navázáno připojení Bluetooth. Funkce WakeOnConnect je povolena explicitním voláním Bean.enableWakeOnConnect (true) během instalace ().

Je důležité si uvědomit, že firmware bude fungovat s jakoukoli klientskou aplikací BLE. Jediné, co klient musí udělat, je odstranit teplotní bajty z datové banky a znovu je sestavit do čísel s plovoucí desetinnou čárkou pro zobrazení nebo zpracování. Nejjednodušší klientskou aplikací pro mě bylo použít EvoThings.

Krok 5: Aplikace pro smartphone

Aplikace pro chytré telefony
Aplikace pro chytré telefony

Ukázková aplikace Evo Things je velmi blízko tomu, co jsem potřeboval, jen s minimálním úsilím potřebným k přidání dalších zobrazovacích prvků k dokončení 3kanálového zařízení pro měření teploty.

Instalace a základní provoz platformy EvoThings je velmi dobře zdokumentován na webových stránkách Evo Things, takže nemá cenu to zde opakovat. Zde se budu zabývat pouze konkrétními změnami, které jsem provedl v jejich ukázkovém kódu, aby se zobrazily 3 kanály teplotních informací, extrahovaných z datové oblasti Bluetooth scratch.

Poté, co si nainstalujete EvoThings Workbench, najdete zde příklad Lightblue Bean (na 64bitových počítačích se systémem Windows):

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

Soubory index.html a app.js můžete nahradit soubory připojenými k tomuto kroku. Změny provedené v souboru jacascript extrahují 3 hodnoty teploty s plovoucí desetinnou čárkou z datové oblasti scratch a do vnitřního HTML nové prvky vytvořené v souboru HTML.

funkce onDataReadSuccess (data) {

var teplotaData = nový Float32Array (data);

var bytes = new Uint8Array (data);

var teplota = teplotaData [0];

console.log ('Teplota čtení:' + 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: Příloha

Ohrada
Ohrada
Ohrada
Ohrada
Ohrada
Ohrada
Ohrada
Ohrada

Pouzdro je jednoduchá 3D tištěná krabice. K vytvoření návrhu jsem použil Cubify Design, ale postačí jakýkoli program pro 3D modelování. Soubor STL je přiložen k vytištění vlastního. Pokud bych to měl udělat znovu, udělal bych stěny trochu silnější, než jsou nyní, a změnil bych design klipu, který drží desku na svém místě. Klipy se velmi snadno lámou, protože napětí je v rovině smae jako 3D tištěné vrstvy, což je nejslabší orientace pro 3D tištěné části. Stěny jsou velmi tenké, takže západkový mechanismus je trochu na slabé straně. Použil jsem čirou pásku, abych nechal krabici zavřenou, protože stěny byly příliš tenké - ne elegantní, ale funguje to!

Krok 7: Nastavení počítače a konfigurace Bluetooth

Nastavení počítače a konfigurace Bluetooth
Nastavení počítače a konfigurace Bluetooth

Cyklus vytváření a nahrávání firmwaru pro Bean se provádí přes Bluetooth. Současně může být pouze jedno aktivní připojení Bluetooth. Nástroj Bean Loader je k dispozici v obchodě Windows App Store

Základní cyklus, který používám ke spárování a připojení (a opravám a opětovnému připojení, když se něco pokazí), je následující: Z ovládacího panelu;/nastavení Bluetooth byste měli vidět následující obrazovku:

obraz
obraz

Nakonec okna hlásí „Připraveno ke spárování“. V tomto okamžiku můžete kliknout na ikonu Bean a po několika sekundách vás systém Windows vyzve k zadání přístupového kódu. Výchozí přístupový kód pro fazole je 00000

obraz
obraz

Pokud je heslo zadáno správně, systém Windows ukáže, že je zařízení správně připojeno. Abyste mohli Bean naprogramovat, musíte být v tomto stavu.

obraz
obraz

Jakmile budete spárováni a připojeni, použijte Bean Loader k načtení firmwaru do fazole. Zjistil jsem, že to selhává častěji než ne, a zdálo se, že to souvisí s blízkostí mého počítače. Přesuňte fazole, dokud nenajdete místo, které vám vyhovuje. Jsou chvíle, kdy nic nefunguje a Bean Loader navrhne zařízení znovu spárovat. Typickým opakováním procesu párování bude obnovení připojení. Před opětovným spárováním musíte „Odebrat zařízení“.

obraz
obraz

Operace Bean Loader je přímočará a na jejich webu dobře zdokumentovaná. Když je Bean Loader otevřený, zvolením položky nabídky „Program“otevřete dialogové okno pro procházení souboru Hex uvedeného v kroku firmwaru tohoto pokynu.

obraz
obraz

Jakmile je firmware načten, ZAVŘETE Bean Loader, aby došlo k přerušení spojení mezi Bean Loader a hardwarem Bean. Současně můžete mít pouze jedno připojení. Nyní otevřete pracovní stůl EvoThings a spusťte klienta EvoThings na smartphonu nebo tabletu.

obraz
obraz

Když kliknete na tlačítko „Spustit“, klient EvoThings automaticky načte html stránku teploměru. Kliknutím na tlačítko Připojit se připojíte k Bean a měli byste vidět zobrazené teploty. Úspěch!

Krok 8: Závěr

Závěr
Závěr

Pokud je vše správně sestaveno a nakonfigurováno, měli byste mít funkční systém, který vám umožní sledovat teploty pomocí 2 sond a také sledovat teplotu senzoru BMA250 na vývojové desce Bean. S EvoThings lze udělat více - právě jsem poškrábal povrch, takže toto experimentování nechávám na vás! Děkuji za přečtení! Pokud se něco pokazí, zanechte komentáře a já vám pomůžu, kde budu moci.

Doporučuje: