Obsah:
- Krok 1: Veci, ktoré budete potrebovať
- Krok 2: Obvodová a elektrická konštrukcia
- Krok 3: Koeficienty sondy
- Krok 4: Firmvér
- Krok 5: Aplikácia pre smartphone
- Krok 6: Príloha
- Krok 7: Nastavenia počítača a konfigurácia Bluetooth
- Krok 8: Záver
Video: Teplomer Bluetooth: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
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ť
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
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
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:
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)
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
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
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
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
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:
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
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.
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“.
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.
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.
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
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:
Svetelný teplomer - vitaminizované záhradné svetlo (eNANO De Jardin): 6 krokov
Svetelný teplomer - Vitaminizované záhradné svetlo (eNANO De Jardin): Vitamizované záhradné svetlo s arduino NANO a snímačom teploty BMP180. Naše skromné záhradné svetlo bude mať tajnú silu: bude schopné indikovať vonkajšiu teplotu pomocou farebného kódu a bliká. Jeho prevádzka je nasledovná: Je
Teplomer a vlhkomer Nixie s Arduino Nano: 6 krokov
Teplomer a vlhkomer Nixie s Arduino Nano: Ako stráviť nejaký čas zábavou a učením sa veľa na zosilňovačoch, jednožilových snímačoch, trubiciach Nixie, kódovaní Arduino. V tomto období sa od nás všetkých požaduje, aby sme zostali doma, aby sme ochránili seba aj ostatných pred COVID-19. Toto je najlepší čas na použitie
Teplomer na polievanie pizze Arduino: 7 krokov
Teplomer na polievanie pizze Arduino: Každý mal ten okamih, keď je príliš netrpezlivý a musí si vziať prvé sústo pizze čerstvé z rúry, aby mu rozpálilo strechu úst teplom slnečného žiarenia. Viem, že som tieto chvíle zažil a dokončujem
Používajte smartfón ako bezkontaktný teplomer / prenosný teplomer: 8 krokov (s obrázkami)
Používajte smartfón ako bezkontaktný teplomer / prenosný teplomer: Meranie telesnej teploty bezkontaktným / bezkontaktným teplomerom. Vytvoril som tento projekt, pretože Thermo Gun je teraz veľmi drahý, takže musím nájsť alternatívu k vlastnoručnému vyrobeniu. Cieľom je vytvoriť nízkorozpočtovú verziu. DodávkyMLX90614Ardu
Bezkontaktný infračervený teplomer na báze Arduina - IR teplomer využívajúci Arduino: 4 kroky
Bezkontaktný infračervený teplomer na báze Arduina | IR teplomer využívajúci Arduino: Ahoj chlapci, v tomto návode vyrobíme bezkontaktný teplomer pomocou arduina. Pretože niekedy je teplota kvapaliny/tuhej látky príliš vysoká alebo príliš nízka, je ťažké s ňou nadviazať kontakt a prečítať si ju. teplota potom v tomto scenári