Tartalomjegyzék:

Bluetooth hőmérő: 8 lépés
Bluetooth hőmérő: 8 lépés

Videó: Bluetooth hőmérő: 8 lépés

Videó: Bluetooth hőmérő: 8 lépés
Videó: Universal Media Station 6,8" Bluetooth iGo primo 2024, Július
Anonim
Bluetooth hőmérő
Bluetooth hőmérő
Bluetooth hőmérő
Bluetooth hőmérő
Bluetooth hőmérő
Bluetooth hőmérő

Ez az utasítás részletesen leírja egy egyszerű 2 csatornás hőmérő készítését 100K termisztoros szondák, Bluetooth modul és okostelefon segítségével. A Bluetooth modul egy LightBlue Bean, amelyet úgy terveztek, hogy egyszerűsítse a Bluetooth Low Energy alkalmazásfejlesztést azáltal, hogy a modul programozásához az ismerős Arduino környezetet használja.

Miután egy darabig botorkáltam, és megpróbáltam kitalálni, hogyan juthatom el a hőmérsékleti adatokat a Bluetooth modulból az iPhone készülékemhez, találtam egy EvoThings nevű alkalmazást, amely jelentősen leegyszerűsítette a projekt alkalmazásfejlesztési oldalát. Nincs Mac -em (tudom, hogy megdöbbentő!), Ami korlátozza az iPhone -alkalmazások fejlesztésének képességét, és nincs időm megfejteni azokat az új Microsoft -eszközöket, amelyek nyilvánvalóan támogatják az iOS és Android platformok közötti fejlesztést. Több HTML5 stílusú alkalmazást is csináltam, de az egyetlen módja a Bluetooth -adatok elérésének a Cordova beépülő moduljain keresztül, amelyek több kihívásnak tűntek, mint amennyi időm volt. Az EvoThings egy nagyon könnyen használható eszközkészletet biztosít, amely a Bluetooth-iPhone kihívást tortajárássá változtatta. És szeretem a tortát!

Összességében a Lightblue Bean és az EvoThings kombinációját nagyon praktikus megoldásnak tartottam, kevés időbefektetéssel.

1. lépés: A szükséges dolgok

Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz

Kereskedelmi forgalomban kapható termisztor szondát használtam egy csatornához, mert azt akartam, hogy a termisztor le legyen zárva, hogy folyadékba merítse. A második csatornához készítettem egy alap szondát egy termisztorból, egy 26 -os vezetékből és egy 3,5 mm -es fejhallgató -csatlakozóból. Szabadon használhat bármilyen kívánt termisztorot, és saját szondákat készíthet például hővezető epoxi és műanyag szívószálakból/kávékeverőkből. A következőkben azt használtam - ez nem kötelező előírás!

Hardver

  • 1 x 100K termisztor szonda. Modell Extech TP890. Ezek általában elérhetőek az ebay -en és az amazonon.
  • 2 x 2,5 mm -es sztereó csatlakozó, amely megfelel az Extech szondák 2,5 mm -es dugójának. Egy régi számítógépről 3,5 mm -es aljzatokat szedtem ki, így levágtam az Extech szonda dugóját, és 3,5 mm -es dugókra cseréltem. Kerülje ezt, csak használjon 2,5 mm-es aljzatokat, vagy használjon 2,5 mm-től 3,5 mm-es sztereó adapter dugót.
  • 100K termisztor gyöngy plusz 26 méretű vezeték és 3,5 mm -es sztereó dugó, ha saját szondát szeretne készíteni. Ha nem, vásároljon második Extech szondát!
  • 1 x világoskék bab a Punch Through Designs által. Ez a Bluetooth modul Arduino fejlesztőlapként programozható. A modul drága, de sok bonyolultságot eltávolít. Kickstarter kampányt folytatnak a következő generációs eszközhöz, amelyet érdemes megfontolni.
  • 2 x 1/4W 100K ellenállás, amelyek a termisztorok referenciafeszültségének megosztására szolgálnak. 5% -os ellenállásokat használtam, de a nagyobb tűrésű ellenállások általában kevésbé érzékenyek a hőmérsékletre, és jobb teljesítményt nyújtanak. 1% jó toleranciaérték erre.
  • Forrasztópáka és forrasztópáka
  • Drótvágók és néhány kis hosszúságú, 26 vagy 28 méretű csatlakozóhuzal.

Szoftver és firmware

  • A Bean programozásához szüksége lesz a Bean Loader alkalmazásra. Windows -t használtam, így minden link Windows -specifikus lesz. Minden, ami a Bean használatához szükséges, beleértve az Arduino specifikációit is, elérhető a LightBlueBean webhelyről
  • Az okostelefonos alkalmazás EvoThings munkapadja itt érhető el. Az összes "kezdő" dokumentáció ott is elérhető. Nagyon jól dokumentált.

2. lépés: Az áramkör és az elektromos konstrukció

Az áramkör és az elektromos szerkezet
Az áramkör és az elektromos szerkezet
Az áramkör és az elektromos szerkezet
Az áramkör és az elektromos szerkezet
Az áramkör és az elektromos szerkezet
Az áramkör és az elektromos szerkezet

A termisztor hőmérsékletfüggő ellenállás. Az Extech szonda negatív hőmérsékleti együtthatóval rendelkezik, ami azt jelenti, hogy a hőmérséklet növekedésével az ellenállás csökken. Az ellenállás értékét egy egyszerű áramkörrel mérik, amely feszültségosztót hoz létre az egyik lábában lévő termisztorral, a másikban pedig egy fix 100K ellenállással. Az osztott feszültséget egy analóg bemeneti csatornába táplálják a babon, és mintát vesznek a firmware -ben.

Az áramkör felépítéséhez 3,5 mm -es audiocsatlakozókat vettem ki egy régi törött PC -ből. Multiméterrel határoztuk meg a PCB azon két pontját, amelyek a szonda csúcsának és első sávjának feleltek meg. A vezetékeket az audiocsatlakozókhoz és a Bean -hez forrasztották, amint a képeken látható. Az audiocsatlakozókat kétoldalas szalaggal rögzítették a bab prototípusához. Az általam használt szalag autóipari matrica szalag, amely nagyon erős kötést hoz létre a vontató alkatrészek között.

3. lépés: Szonda -együtthatók

Szonda együtthatók
Szonda együtthatók

Amilyen gyakori az Extech-szonda, a Steinhart-Hart-együtthatókat sehol nem teszik közzé. Szerencsére van egy online számológép, amely az Ön által megadott három hőmérsékletmérésből határozza meg az együtthatókat.

Milyen aljzat az alap eljárás, amellyel az együtthatókhoz jutottam. Nem kap pontot a stílusért, de elég jó ahhoz, hogy +/- 1 fokos pontosságot mondjon (teljes hülyeség részemről)…. természetesen a referencia hőmérő és multiméter pontosságától függően! A multiméterem egy olcsó névtelen márkaegység, amelyet sok évvel ezelőtt vásároltam, amikor a pénz szűkös volt. A pénz továbbra is szűkös és működik!

A kalibráláshoz három ellenállás -leolvasásra van szükségünk 3 hőmérsékletről.

  • Fagypont közelében jég hozzáadásával egy pohár vízhez, és addig keverjük, amíg a hőmérséklet stabilizálódik. Miután stabilizálódott, a multiméterrel rögzítse a szonda ellenállását, és a referencia-hőmérővel rögzítse a hőmérsékletet.
  • Most helyezze a szondát egy pohár vízbe szobahőmérsékleten, hagyja, hogy a szonda kiegyenlítődjön a víz hőmérsékletével, és jegyezze fel a hőmérsékletet a referencia-hőmérőre, és az ellenállási értéket a multiméterre.
  • Helyezze a szondát egy pohár forró vízbe, és jegyezze fel az ellenállást.

    Hőfok Ellenállás
    5.6 218K
    21.0 97,1 ezer
    38.6 43.2

Ez az egész folyamat egy kicsit csirke és tojás helyzet, mivel szüksége van egy kalibrált hőmérőre a hőmérséklet rögzítéséhez, és egy kalibrált multiméterre az ellenállás rögzítéséhez. Az itt előforduló hibák pontatlanságot eredményeznek az Ön által végzett hőmérsékletmérésekben, de a célom szerint a +/- 1 fok több, mint amire szükségem van.

Ha ezeket a rögzített értékeket a webes számológéphez csatlakoztatja, a következőket kapja:

Kép
Kép

Az együtthatók (A, B és C) be vannak dugva a Stenhart-Hart egyenletbe, hogy meghatározzák a hőmérsékletet a mintavételi ellenállás értékéből. Az egyenletet a következőképpen definiálják (forrás: wikipedia.com)

Kép
Kép

Ahol T = hőmérséklet Kelvinben

A, B és C a Steinhart-Hart egyenlet együtthatói, amelyeket megpróbálunk meghatározni R az ellenállás T hőmérsékleten

A firmware elvégzi ezt a számítást.

4. lépés: Firmware

Firmware
Firmware
Firmware
Firmware

A termisztor feszültségeit mintavételezik, hőmérsékletre konvertálják és Bluetooth -on keresztül elküldik az okostelefonon futó EvoThings alkalmazásba.

A feszültségnek a babon belüli ellenállási értékre való átalakításához egyszerű lineáris egyenletet használnak. Az egyenlet levezetését képként adjuk meg. Ahelyett, hogy a mintavételezett értéket feszültségre konvertálnánk, mivel mind az ADC, mind a bemeneti feszültség azonos akkumulátorfeszültségre vonatkozik, a feszültség helyett az ADC értékét használhatjuk. A 10 bites Bean ADC esetében a teljes akkumulátorfeszültség 1023 ADC értéket eredményez, ezért ezt az értéket Vbat -ként használjuk. Az elosztó ellenállás tényleges értéke fontos szempont. Mérje meg a 100K osztóellenállás tényleges értékét, és használja a mért értéket az egyenletben, hogy elkerülje az ellenállás tűréséből adódó szükségtelen hibaforrást.

Az ellenállási érték kiszámítása után az ellenállási értéket a Steinhart-Hart egyenlet segítségével alakítják hőmérsékletre. Ezt az egyenletet részletesen leírja a Wikipédia.

Mivel 2 szondánk van, ésszerű volt a szonda működését C ++ osztályba foglalni.

Az osztály magában foglalja a Steinhart-Hart egyenlet együtthatóit, a névleges osztóellenállást és az analóg portot, amelyhez a termisztor csatlakozik. Egyetlen módszer, a hőmérséklet (), átalakítja az ADC értékét ellenállás értékké, majd a Steinhart-Hart egyenletet használja a Kelvin hőmérséklet meghatározásához. A visszatérési érték kivonja az abszolút nullát (273,15 K) a számított hőmérsékletből, hogy Celsius -értéket kapjon.

A Lightblue Bean ereje nyilvánvaló abban a tényben, hogy az összes Bluetooth funkció lényegében egy kódsorban van megvalósítva, amely a mintavételi hőmérsékletértékeket a Bluetooth memória karcolt adatterületére írja.

Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & hőmérséklet [0], 12);

Minden mintavételi hőmérsékleti értéket egy úszó ábrázol, amely 4 bájtot foglal el. A karcolt adatterület 20 bájtot tartalmazhat. Csak 12 -et használunk közülük. 5 karcolt adatterület található, így akár 100 bájtnyi adatot is átvihet a semmiből származó adatok használatával.

Az események alapvető folyamata:

  • Ellenőrizze, hogy van -e Bluetooth -kapcsolatunk
  • Ha igen, vegyen mintavételi hőmérsékletet, és írja be a karcolt adatterületre
  • Aludjon 200 ms -ot, és ismételje meg a ciklust.

Ha nincs csatlakoztatva, a firmware hosszú ideig alvó állapotba helyezi az ATMEGA328P chipet. Az alvási ciklus fontos az energiatakarékosság szempontjából. Az ATMEGA328P chip alacsony fogyasztású üzemmódba kapcsol, és ott marad, amíg az LBM313 Bluetooth modul meg nem szakítja. Az LBM313 megszakítást generál, hogy felébressze az ATMEGA328P készüléket a kért alvási időszak végén, vagy amikor Bluetooth kapcsolat jön létre a babbal. A WakeOnConnect funkciót a Bean.enableWakeOnConnect (true) beállítási () során kifejezett hívásával engedélyezi.

Fontos megjegyezni, hogy a firmware bármely BLE kliensalkalmazással működik. Az ügyfélnek mindössze annyit kell tennie, hogy eltávolítja a hőmérsékleti bájtokat a karcolt adatbankból, és újra összeállítja őket lebegőpontos számokká megjelenítés vagy feldolgozás céljából. A legegyszerűbb kliens alkalmazás számomra az EvoThings használata volt.

5. lépés: Okostelefonos alkalmazás

Okostelefonos alkalmazás
Okostelefonos alkalmazás

Az Evo Things mintaalkalmazás nagyon közel áll ahhoz, amire szükségem volt, csak kis erőfeszítéssel, hogy hozzáadhassam a további kijelzőelemeket a 3 csatornás hőmérsékletmérő eszköz befejezéséhez.

Az EvoThings platform telepítése és alapvető működése nagyon jól dokumentált az Evo Things weboldalán, így nincs értelme ezt megismételni. Itt csak azokat a konkrét változtatásokat fogom ismertetni, amelyeket a mintakódjukon hajtottam végre, hogy megjelenítsem a 3 hőmérsékleti információcsatornát, amelyek a Bluetooth karcolásos adatterületéből származnak.

Az EvoThings Workbench telepítése után a Lightblue Bean példát itt találja (Windows 64 bites számítógépeken):

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

Az index.html és az app.js fájlokat lecserélheti az ehhez a lépéshez csatolt fájlokkal. A jacascript fájlban végrehajtott módosítások kibontják a 3 lebegőpontos hőmérsékleti értéket a semmiből származó adatterületen, és felfelé a HTML fájlban létrehozott új elemek belső HTML -jén.

function onDataReadSuccess (adatok) {

var temperatureData = új Float32Array (adatok);

var bytes = new Uint8Array (adatok);

var hőmérséklet = hőmérsékletData [0];

console.log ('Hőmérséklet leolvasás:' + hőmérséklet + 'C');

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

document.getElementById ('hőmérséklet1'). internalHTML = temperatureData [1].toFixed (2) + "C °";

document.getElementById ('hőmérséklet2'). internalHTML = temperatureData [2].toFixed (2) + "C °";

}

6. lépés: Melléklet

Burkolat
Burkolat
Burkolat
Burkolat
Burkolat
Burkolat
Burkolat
Burkolat

A ház egyszerű 3D nyomtatott doboz. A tervezéshez a Cubify Design -ot használtam, de minden 3D -s modellező program elegendő. Az STL fájl csatolva van a saját nyomtatásához. Ha át kéne végeznem, akkor a falakat kicsit vastagabbá tenném, mint most, és megváltoztatnám a táblát a helyén tartó csíptetőt. A klipek nagyon könnyen eltörhetnek, mivel a stressz az SMA síkban van, mint a 3D nyomtatott rétegek, ami a 3D nyomtatott alkatrészek leggyengébb tájolása. A falak nagyon vékonyak, így a rögzítő mechanizmus kissé a gyenge oldalon található. Átlátszó szalagot használtam a doboz zárva tartásához, mert a falak túl gyengék voltak - nem elegánsak, de működnek!

7. lépés: A számítógép beállításai és a Bluetooth konfigurálása

PC beállítások és Bluetooth konfiguráció
PC beállítások és Bluetooth konfiguráció

A Bean firmware készítési és feltöltési ciklusa Bluetooth -on keresztül történik. Egyszerre csak egy aktív Bluetooth -kapcsolat lehet. A Babbetöltő a Windows App Store -ból érhető el

Az alapvető ciklus, amelyet a párosításhoz és a csatlakozáshoz (valamint javításhoz és újracsatlakozáshoz használok, ha baj történik) a következő: A Vezérlőpulton;/Bluetooth beállítások, a következő képernyőt kell látnia:

Kép
Kép

Végül az ablakok a "Párosításra kész" üzenetet jelenítik meg. Ezen a ponton rákattinthat a Bab ikonra, és néhány másodperc múlva a Windows kéri a jelszó megadását. A bab alapértelmezett jelszava 00000

Kép
Kép

Ha a jelszót helyesen adta meg, a Windows megmutatja, hogy az eszköz megfelelően van csatlakoztatva. Ebben az állapotban kell lennie ahhoz, hogy be tudja programozni a babot.

Kép
Kép

A párosítás és a csatlakozás után töltse be a babtöltő segítségével a firmware -t a babhoz. Azt tapasztaltam, hogy ez gyakrabban meghiúsul, és úgy tűnik, hogy a számítógép közelségéhez kapcsolódik. Mozgassa a babot, amíg meg nem találja az Önnek megfelelő helyet. Vannak esetek, amikor semmi sem fog működni, és a Babbetöltő javasolni fogja az eszköz új párosítását. Általában a párosítási folyamat ismételt elvégzése visszaállítja a kapcsolatot. A párosítás előtt el kell távolítania az eszközt.

Kép
Kép

A Babrakodó művelet egyszerű és jól dokumentált a webhelyükön. Ha a Babbetöltő nyitva van, válassza a "Program" menüpontot, és nyisson meg egy párbeszédablakot, amelyben tallózhat az utasítás utasítása szerinti firmware lépésben megadott Hex fájlban.

Kép
Kép

A firmware betöltése után ZÁRJA be a babbetöltőt, hogy megszűnjön a kapcsolat a babbetöltő és a bab hardver között. Egyszerre csak egy kapcsolat lehet. Most nyissa meg az EvoThings munkaasztalt, és indítsa el az EvoThings klienst okostelefonon vagy táblagépen.

Kép
Kép

Amikor a "Futtatás" gombra kattint, az EvoThings kliens automatikusan betölti a hőmérő html oldalát. Kattintson a Csatlakozás gombra a babhoz való csatlakozáshoz, és látni fogja a megjelenített hőmérsékletet. Siker!

8. lépés: Következtetés

Következtetés
Következtetés

Ha minden megfelelően van felépítve és konfigurálva, akkor rendelkeznie kell egy működő rendszerrel, amely lehetővé teszi a hőmérséklet mérését 2 szondával, valamint a BMA250 érzékelő hőmérsékletét a Bean fejlesztő táblán. Az EvoThings segítségével még sok minden más is elvégezhető - most karcoltam fel a felületet, így ezt a kísérletet nektek hagyom! Köszönöm, hogy elolvasta! Ha rosszul mennek a dolgok, hagyjon megjegyzéseket, és ahol tudok, segítek.

Ajánlott: