Tartalomjegyzék:
- 1. lépés: A szükséges dolgok
- 2. lépés: Az áramkör és az elektromos konstrukció
- 3. lépés: Szonda -együtthatók
- 4. lépés: Firmware
- 5. lépés: Okostelefonos alkalmazás
- 6. lépés: Melléklet
- 7. lépés: A számítógép beállításai és a Bluetooth konfigurálása
- 8. lépés: Következtetés
Videó: Bluetooth hőmérő: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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ó
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
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:
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)
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
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
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
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
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:
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
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.
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.
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.
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.
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
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:
Fényes hőmérő - vitaminozott kerti fény (eNANO De Jardin): 6 lépés
Fényes hőmérő - vitaminozott kerti lámpa (eNANO De Jardin): Vitaminizált kerti lámpa arduino NANO -val és BMP180 hőmérséklet -érzékelővel. Szerény kerti lámpánk titkos erővel bír: színkóddal jelzi a külső hőmérsékletet villog. Működése a következő: Ez
IOT intelligens infravörös hőmérő (COVID-19): 3 lépés
IOT intelligens infravörös hőmérő (COVID-19): A 2019-es COVID-felkelés miatt úgy döntöttünk, hogy elkészítünk egy IOT intelligens infravörös hőmérőt, amely okoseszközökhöz csatlakoztatva mutatja a rögzített hőmérsékletet, ez nemcsak olcsóbb alternatíva, hanem nagyszerű oktatási modul a technikához és az IOT -hoz, amely
Nixie hőmérő és higrométer Arduino Nano -val: 6 lépés
Nixie hőmérő és higrométer az Arduino Nano -val: Hogyan töltsön el egy kis időt szórakozva és tanuljon sokat a boost konvertereken, egy vezetékes érzékelőkön, Nixie csöveken, Arduino kódoláson. Ebben az időszakban mindannyiunkat megkérünk, hogy maradjunk otthon, hogy megvédjük magunkat és másokat a a COVID-19. Ez a legjobb alkalom arra, hogy használja
Arduino alapú érintésmentes infravörös hőmérő - IR alapú hőmérő Arduino használatával: 4 lépés
Arduino alapú érintésmentes infravörös hőmérő | IR alapú hőmérő Arduino használatával: Sziasztok, ebben az útmutatóban, érintésmentes hőmérőt készítünk arduino segítségével. Mivel néha a folyadék/szilárd anyag hőmérséklete túl magas vagy alacsony, majd nehéz kapcsolatba lépni vele és elolvasni ilyenkor a hőmérséklet
RuuviTag és PiZero W és Blinkt! Bluetooth jelzőfényes hőmérő: 3 lépés (képekkel)
RuuviTag és PiZero W és Blinkt! Bluetooth Beacon -alapú hőmérő: Ez az utasítás leír egy módszert, amellyel a RuuviTag -ról Bluetooth és Raspberry Pi Zero W segítségével olvashatók a hőmérséklet- és páratartalom -adatok, és az értékek bináris számokban jeleníthetők meg egy Pimoroni -villogón! pHAT. Vagy röviden: hogyan lehet államot építeni