Përmbajtje:
- Hapi 1: Gjërat që ju nevojiten
- Hapi 2: Qarku dhe Ndërtimi Elektrik
- Hapi 3: Koeficientët e sondës
- Hapi 4: Firmware
- Hapi 5: Aplikacioni për smartphone
- Hapi 6: Mbyllja
- Hapi 7: Cilësimet e PC dhe Konfigurimi Bluetooth
- Hapi 8: Përfundimi
Video: Termometër Bluetooth: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Ky udhëzues detajon krijimin e një termometri të thjeshtë me 2 kanale duke përdorur sonda termistore 100K, një modul Bluetooth dhe smartphone. Moduli Bluetooth është një LightBlue Bean i cili është krijuar për të thjeshtuar zhvillimin e aplikacionit Bluetooth Low Energy duke përdorur mjedisin e njohur Arduino për programimin e modulit.
Pasi u pengova për një kohë duke u përpjekur të kuptoj se si të marr të dhënat e temperaturës nga moduli Bluetooth në iPhone tim, gjeta një aplikacion të quajtur EvoThings i cili thjeshtoi në mënyrë të konsiderueshme anën e zhvillimit të aplikacionit të projektit. Unë nuk kam një Mac (e tronditëse e di!) I cili kufizon aftësinë time për të zhvilluar një aplikacion iPhone dhe nuk kam kohë të deshifroj mjetet e reja të Microsoft -it të cilat me sa duket mbështesin zhvillimin e platformës së kryqëzuar për iOS dhe Android. Unë kam bërë disa aplikacione të stilit HTML5, por mënyra e vetme për të marrë të dhëna Bluetooth është përmes shtojcave për Cordova, të cilat dukeshin më shumë si një sfidë sesa kisha kohë. EvoThings siguron një grup mjetesh shumë të lehtë për t’u përdorur që e shndërruan sfidën Bluetooth-në-iPhone në një kek. Dhe më pëlqen torta!
Në përgjithësi, gjeta kombinimin e Lightblue Bean dhe EvoThings të jetë një zgjidhje shumë praktike me investime në kohë të ulët.
Hapi 1: Gjërat që ju nevojiten
Kam përdorur një sondë termistore komerciale të disponueshme për një kanal sepse doja që termistori të mbyllej për zhytje në lëngje. Për kanalin e dytë, bëra një sondë bazë nga një termistor, një tel 26 matës dhe një prizë kufje 3.5 mm. Ju jeni të lirë të përdorni çdo termistor që dëshironi dhe mund të bëni sondat tuaja nga epokside termike përçuese dhe kashtë plastike/përzierës kafeje për shembull. Ajo që vijon është ajo që kam përdorur - nuk ka për qëllim të jetë një listë urdhëruese!
Hardware
- 1 x Sondë termistori 100K. Modeli Extech TP890. Këto janë zakonisht të disponueshme në ebay dhe amazon.
- 2 priza stereo 2.5 mm e cila përputhet me prizën 2.5 mm në sondat Extech. Unë fshiva prizat 3.5 mm nga një kompjuter i vjetër kështu që e ndërpreva spinën e sondës Extech dhe e zëvendësova me priza 3.5 mm. Ju duhet ta shmangni këtë vetëm me një prizë 2.5mm, ose përdorni një prizë përshtatës stereo 2.5mm deri 3.5mm jashtë raftit.
- Rruaza 100K termistor plus tela 26 matës plus prizë stereo 3.5 mm nëse doni të bëni sondën tuaj. Nëse jo, blini një sondë të dytë Extech!
- 1 x Fasule Lightblue nga Punch Through Designs. Ky është moduli Bluetooth i programueshëm si një bord zhvillimi Arduino. Moduli është disi i kushtueshëm, por heq shumë kompleksitet. Ata po drejtojnë një fushatë Kickstarter për pajisjen e gjeneratës së ardhshme e cila mund të jetë me vlerë të merret parasysh.
- 2 rezistenca 1 x 1/4W 100K të cilat përdoren për të ndarë tensionin referues për termistorët. Kam përdorur rezistenca 5%, por rezistorët më të lartë të tolerancës janë përgjithësisht më pak të ndjeshëm ndaj temperaturës dhe do të ofrojnë performancë më të mirë. 1% është një vlerë e mirë tolerance për këtë.
- Saldim dhe saldim
- Prerëset e telave dhe disa gjatësi të vogla prej teli lidhës 26 ose 28 matës.
Softuer dhe Firmware
- Për programimin e Bean, do t'ju duhet aplikacioni Bean Loader. Unë kam përdorur dritare kështu që të gjitha lidhjet do të jenë specifike për Windows. Gjithçka që ju nevojitet për të filluar me Bean përfshirë specifikat e Arduino është në dispozicion nga faqja LightBlueBean
- Tavolina e punës EvoThings për aplikacionin e smartphone është në dispozicion këtu. I gjithë dokumentacioni i "fillimit" është gjithashtu i disponueshëm atje. Isshtë shumë mirë e dokumentuar.
Hapi 2: Qarku dhe Ndërtimi Elektrik
Një termistor është një rezistencë e varur nga temperatura. Sonda Extech ka një koeficient negativ të temperaturës që do të thotë se me rritjen e temperaturës, rezistenca zvogëlohet. Vlera e rezistencës matet me një qark të thjeshtë i cili krijon një ndarës të tensionit me termistorin në njërën këmbë, dhe një rezistencë fikse 100K në tjetrën. Tensioni i ndarë futet në një kanal Analog Input në Bean dhe merret mostra në firmware.
Për të ndërtuar qarkun, fshiva prizat audio 3.5 mm nga një kompjuter i vjetër i prishur. Një multimetër u përdor për të përcaktuar dy pikat në PCB që korrespondonin me majën dhe brezin e parë të sondës. Telat u ngjitën në prizat audio dhe në Bean siç tregohet në imazhe. Prizat audio ishin ngjitur në zonën prototip të Bean duke përdorur shirit të dyanshëm. Shiriti që kam përdorur është shirit dekalor i klasës automobilistike i cili krijon një lidhje shumë të fortë midis pjesëve të tërheqjes.
Hapi 3: Koeficientët e sondës
Sado e zakonshme të jetë sonda Extech, koeficientët Steinhart-Hart nuk publikohen askund ku mund të gjeja. Për fat të mirë ekziston një kalkulator online që do të përcaktojë koeficientët nga 3 matje të temperaturës që ju ofroni.
Çfarë pengon është procedura bazë që kam përdorur për të arritur te koeficientët. Nuk do të fitoj asnjë pikë për stilin, por aq e mirë sa të të bëjë të thuash +/- 1 shkallë të saktë (një gisht i madh nga ana ime)…. në varësi të saktësisë së termometrit tuaj të referencës dhe multimetrit natyrisht! Multimetri im është një njësi e lirë e markës pa emër që bleva shumë vite më parë kur paratë ishin të ngushta. Paraja është ende e ngushtë dhe ende punon!
Për të kalibruar, na duhen tre lexime të rezistencës nga 3 temperatura.
- Pranë ngrirjes duke shtuar akull në një gotë me ujë dhe duke e trazuar derisa temperatura të stabilizohet. Pasi të stabilizohet, përdorni multimetrin për të regjistruar rezistencën e sondës dhe termometrin referues për të regjistruar temperaturën.
- Tani vendoseni sondën në një gotë me ujë në temperaturën e dhomës, lejoni që sonda të barazohet me temperaturën e ujit dhe regjistroni temperaturën në termometrin tuaj referues dhe leximin e rezistencës në shumë metrin tuaj.
-
Vendoseni sondën në një gotë me ujë të nxehtë dhe regjistroni rezistencën.
Temperatura Rezistenca 5.6 218K 21.0 97.1K 38.6 43.2
I gjithë ky proces është pak si një situatë pule dhe veze pasi keni nevojë për një termometër të kalibruar për të regjistruar temperaturën dhe një shumë metër të kalibruar për të regjistruar rezistencën. Gabimet këtu do të rezultojnë në pasaktësi në matjet e temperaturës që bëni, por për qëllimet e mia, +/- 1 gradë është më shumë sesa më nevojitet.
Lidhja e këtyre vlerave të regjistruara në llogaritësin e internetit jep sa vijon:
Koeficientët (A, B dhe C) futen në ekuacionin Stenhart-Hart për të zbutur temperaturën nga një vlerë rezistence e mostruar. Ekuacioni përcaktohet si (burimi: wikipedia.com)
Ku T = Temperatura në Kelvin
A, B dhe C janë koeficientët e ekuacionit Steinhart-Hart që ne po përpiqemi të përcaktojmë R është rezistenca në temperaturën T
Firmware do të kryejë këtë llogaritje.
Hapi 4: Firmware
Tensionet e termistorit merren mostra, konvertohen në temperaturë dhe dërgohen përmes Bluetooth në aplikacionin EvoThings që funksionon në smartphone.
Për të shndërruar tensionin në një vlerë rezistence brenda Bean, përdoret një ekuacion i thjeshtë linear. Derivimi i ekuacionit ofrohet si një imazh. Në vend që të konvertohet vlera e mostrës në tension, meqenëse si ADC ashtu edhe voltazhi i hyrjes i referohen të njëjtit tension të baterisë, ne mund të përdorim vlerën ADC në vend të tensionit. Për ADB 10 -bit Bean, tensioni i plotë i baterisë do të rezultojë në një vlerë ADC prej 1023 kështu që ne e përdorim këtë vlerë si Vbat. Vlera aktuale e rezistencës ndarëse është një konsideratë e rëndësishme. Matni vlerën aktuale të rezistencës ndarëse 100K dhe përdorni vlerën e matur në ekuacion për të shmangur një burim gabimi të panevojshëm për shkak të tolerancës së rezistencës.
Pasi të llogaritet vlera e rezistencës, vlera e rezistencës shndërrohet në temperaturë duke përdorur ekuacionin Steinhart-Hart. Ky ekuacion përshkruhet në detaje në Wikipedia.
Meqenëse kemi 2 sonda, kishte kuptim të përfshijmë funksionalitetin e sondës në një klasë C ++.
Klasa përfshin koeficientët e ekuacionit Steinhart-Hart, vlerën nominale të rezistencës ndaj ndarësit dhe portën analoge me të cilën është lidhur termistori. Një metodë e vetme, temperatura (), konverton vlerën ADC në një vlerë rezistence dhe më pas përdor ekuacionin Steinhart-Hart për të përcaktuar temperaturën në Kelvin. Vlera e kthimit zbret zero absolute (273.15K) nga temperatura e llogaritur për të siguruar vlerën në Celsius.
Fuqia e Lightblue Bean është e qartë në faktin se i gjithë funksionaliteti Bluetooth është zbatuar në thelb në 1 rresht të kodit i cili shkruan vlerat e temperaturës së mostrës në një zonë të dhënash të gërvishtura në kujtesën Bluetooth.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & temperatura [0], 12);
Çdo vlerë e mostrës e temperaturës përfaqësohet nga një noton i cili merr 4 bajt. Zona e të dhënave të gërvishtjeve mund të mbajë 20 bajt. Ne përdorim vetëm 12 prej tyre. Ka 5 zona të të dhënave të gërvishtjeve, kështu që mund të transferoni deri në 100 bajt të dhëna duke përdorur të dhëna të para.
Rrjedha themelore e ngjarjeve është:
- Kontrolloni për të parë nëse kemi një lidhje Bluetooth
- Nëse është kështu, mostroni temperaturat dhe shkruajini ato në zonën e të dhënave të gërvishtjes
- Flini 200ms dhe përsëritni ciklin.
Nëse nuk është i lidhur, firmueri e vë çipin ATMEGA328P në gjumë për një kohë të gjatë. Cikli i gjumit është i rëndësishëm për ruajtjen e fuqisë. Çipi ATMEGA328P kalon në modalitetin e energjisë së ulët dhe qëndron atje derisa të ndërpritet nga moduli Bluetooth LBM313. LBM313 do të krijojë një ndërprerje për të zgjuar ATMEGA328P në fund të periudhës së kërkuar të gjumit, ose sa herë që bëhet një lidhje Bluetooth me Bean. Funksionaliteti WakeOnConnect aktivizohet duke thirrur në mënyrë eksplicite Bean.enableWakeOnConnect (e vërtetë) gjatë konfigurimit ().
Importantshtë e rëndësishme të theksohet se firmware do të punojë me çdo aplikacion të klientit BLE. E tëra që klienti duhet të bëjë është të heqë bajtët e temperaturës nga banka e të dhënave të gërvishtura dhe t'i rindërtojë ato në numra të pikave lundruese për shfaqje ose përpunim. Aplikacioni më i lehtë i klientit për mua ishte përdorimi i EvoThings.
Hapi 5: Aplikacioni për smartphone
Aplikacioni i mostrës Evo Things është shumë afër asaj që më duhej me vetëm një përpjekje të vogël të kërkuar për të shtuar elementët shtesë të ekranit për të përfunduar pajisjen e matjes së temperaturës me 3 kanale.
Instalimi dhe funksionimi themelor i platformës EvoThings është shumë mirë i dokumentuar në faqen e internetit të Evo Things kështu që nuk ka vlerë ta përsërisim këtu. E tëra që do të mbuloj këtu janë ndryshimet specifike që kam bërë në kodin e tyre të mostrës për të shfaqur 3 kanale të informacionit të temperaturës, të nxjerra nga zona e të dhënave të gërvishtjes Bluetooth.
Pasi të keni instaluar EvoThings Workbench, do të gjeni shembullin Lightblue Bean këtu (në kompjuterët Windows 64 bit):
ThisPC / Documents / EvothingsStudio_Win64_1. XX / Shembuj / Lightblue-bean-basic / app
Ju mund të zëvendësoni skedarët index.html dhe app.js me skedarët e bashkangjitur në këtë hap. Ndryshimet e bëra në skedarin jacascript nxjerrin 3 vlerat e temperaturës së pikës lundruese nga zona e të dhënave të gërvishtjes dhe nga HTML e brendshme e elementeve të rinj të krijuar në skedarin HTML.
funksion onDataReadSuccess (të dhëna) {
var temperatureData = new Float32Array (të dhëna);
var bytes = Uint8Array i ri (të dhëna);
var temperatura = temperatureData [0];
console.log ('Temperatura e lexuar:' + temperatura + 'C');
document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0].tëFiksuara (2) + "C °";
document.getElementById ('temperature1'). innerHTML = temperatureData [1].të Fiksuara (2) + "C °";
document.getElementById ('temperature2'). innerHTML = temperatureData [2].të Fiksuara (2) + "C °";
}
Hapi 6: Mbyllja
Mbulimi është një kuti e thjeshtë e printuar 3D. Kam përdorur Cubify Design për të krijuar modelin, por çdo program modelimi 3D do të jetë i mjaftueshëm. Skedari STL është i bashkangjitur që ju të printoni tuajin. Nëse do të më duhej ta bëja përsëri, do t'i bëja muret pak më të trashë se tani dhe do të ndryshoja modelin e kapëses që mban tabelën në vend. Klipet prishen shumë lehtë sepse stresi është në rrafshin smae si shtresa të printuara 3D, i cili është orientimi më i dobët për pjesët e printuara 3D. Muret janë shumë të hollë, kështu që mekanizmi i kapjes është pak në anën e dobët. Kam përdorur shirit të qartë për ta mbajtur kutinë të mbyllur sepse muret ishin shumë të dobëta - jo elegante, por funksionon!
Hapi 7: Cilësimet e PC dhe Konfigurimi Bluetooth
Cikli i ndërtimit dhe ngarkimit të firmware për Bean është bërë i gjithi përmes Bluetooth. Mund të ketë vetëm një lidhje aktive Bluetooth në të njëjtën kohë. Bean Loader është në dispozicion nga Windows App Store
Cikli bazë që përdor për të çiftuar dhe lidhur (dhe riparuar dhe rilidhur kur gjërat shkojnë keq) është si më poshtë: Nga Paneli i Kontrollit;/cilësimet Bluetooth, duhet të shihni ekranin e mëposhtëm:
Përfundimisht dritaret do të raportojnë "Gati për çiftim". Në këtë pikë mund të klikoni në ikonën Bean dhe pas disa sekondash, Windows do t'ju kërkojë të futni një kodkalim. Kodi i parazgjedhur për fasule është 00000
Nëse fjalëkalimi është futur saktë, Windows do të tregojë që pajisja është e lidhur siç duhet. Ju duhet të jeni në këtë gjendje në mënyrë që të jeni në gjendje të programoni Bean.
Pasi të jeni çiftuar dhe lidhur, përdorni Bean Loader për të ngarkuar firmuerin në fasule. Kam gjetur se kjo dështonte më shpesh sesa jo dhe dukej se lidhej me afërsinë me kompjuterin tim. Lëvizni Bean përreth derisa të gjeni një vend që funksionon për ju. Ka raste kur asgjë nuk do të funksionojë dhe Bean Loader do të sugjerojë ri-çiftimin e pajisjes. Zakonisht kalimi i procesit të çiftimit përsëri do të rivendosë lidhjen. Duhet të "Hiqni pajisjen" para se të çiftoni përsëri.
Operacioni Bean Loader është i rreptë dhe i dokumentuar mirë në faqen e tyre. Me Bean Loader të hapur, zgjidhni artikullin e menysë "Program" për të hapur një dialog për të shfletuar skedarin Hex të dhënë në hapin e firmuerit të këtij udhëzuesi.
Pasi të jetë ngarkuar firmueri, Mbyllni ngarkuesin e fasuleve në mënyrë që lidhja midis ngarkuesit të fasuleve dhe pajisjes së fasule të bjerë. Mund të keni vetëm një lidhje në të njëjtën kohë. Tani hapni tryezën e punës EvoThings dhe filloni klientin EvoThings në smartphone ose tabletë.
Kur klikoni butonin "Run", klienti EvoThings automatikisht do të ngarkojë faqen html për termometrin. Klikoni butonin Lidhu për t'u lidhur me Bean dhe duhet të shihni temperaturat e shfaqura. Sukses!
Hapi 8: Përfundimi
Nëse gjithçka është ndërtuar dhe konfiguruar saktë, duhet të keni një sistem pune i cili do t'ju lejojë të monitoroni temperaturat me 2 sonda, si dhe të monitoroni temperaturën e sensorit BMA250 në tabelën e zhvillimit Bean. Mund të bëhet më shumë me EvoThings - sapo kam gërvishtur sipërfaqen, kështu që këtë eksperimentim e lë për ju! Faleminderit per leximin! Nëse gjërat shkojnë keq, thjesht lini komente dhe unë do t'ju ndihmoj ku të mundem.
Recommended:
Termometër ndriçues - Drita e Vitamizuar e Kopshtit (eNANO De Jardin): 6 hapa
Termometër ndriçues - Drita e Vitamizuar e Kopshtit (eNANO De Jardin): Drita e vitaminizuar e kopshtit me arduino NANO dhe një sensor të temperaturës BMP180. Drita jonë e thjeshtë e kopshtit do të ketë një fuqi sekrete: do të jetë në gjendje të tregojë temperaturën e jashtme me anë të një kodi ngjyrash dhe vezullimi. Funksionimi i tij është si më poshtë: ishtë
Termometër IOT Smart Infrared (COVID-19): 3 hapa
Termometër IOT Smart Infrared (COVID-19): Për shkak të kryengritjes COVID të vitit 2019, ne vendosëm të bëjmë një Termometër IOT Smart Infrared që lidhet me pajisjet inteligjente për të treguar temperaturën e regjistruar, kjo nuk është vetëm një alternativë më e lirë, por edhe një shkëlqyer modul mësimor për teknologji dhe IOT që w
Si të bëni një termometër duke përdorur Arduino dhe LM35: 6 hapa
Si të bëni një termometër duke përdorur Arduino dhe LM35: Sot do t'ju tregoj se si të bëni një termometër me sensorë të temperaturës Arduino dhe LM35, ekran LCD, në një pjatë të lidhur së bashku me tela. Ajo do të tregojë temperaturën në Celsius dhe Fahrenheit. Ne Vëzhguar
Përdorni telefonin inteligjent si termometër pa kontakt / termometër portativ: 8 hapa (me fotografi)
Përdorni telefonin inteligjent si termometër pa kontakt / termometër portativ: Matni temperaturën e trupit me jo-kontakt / pa kontakt si një armë termo. Unë e krijova këtë projekt sepse Thermo Gun tani është shumë i shtrenjtë, kështu që duhet të marr alternativë për të bërë DIY. Dhe qëllimi është të bëni me një version të ulët buxhetor. FurnizimetMLX90614Ardu
RuuviTag dhe PiZero W dhe Blinkt! një termometër i bazuar në fener Bluetooth: 3 hapa (me fotografi)
RuuviTag dhe PiZero W dhe Blinkt! një termometër i bazuar në fener Bluetooth: Ky udhëzues përshkruan një qasje për të lexuar të dhënat e temperaturës dhe lagështisë nga një RuuviTag duke përdorur Bluetooth me një Raspberry Pi Zero W dhe për të shfaqur vlerat në numra binarë në një ndezje Pimoroni! pHAT. Ose për ta thënë shkurt: si të ndërtojmë një shtet