Turinys:

„Bluetooth“termometras: 8 žingsniai
„Bluetooth“termometras: 8 žingsniai

Video: „Bluetooth“termometras: 8 žingsniai

Video: „Bluetooth“termometras: 8 žingsniai
Video: Namų dekoro pirkiniai iš Aliexpress iki 1,80€! 2024, Liepa
Anonim
„Bluetooth“termometras
„Bluetooth“termometras
„Bluetooth“termometras
„Bluetooth“termometras
„Bluetooth“termometras
„Bluetooth“termometras

Šioje instrukcijoje išsamiai aprašytas paprasto 2 kanalų termometro kūrimas naudojant 100K termistorių zondus, „Bluetooth“modulį ir išmanųjį telefoną. „Bluetooth“modulis yra „LightBlue Bean“, skirtas supaprastinti „Bluetooth Low Energy“programų kūrimą naudojant modulio programavimui pažįstamą „Arduino“aplinką.

Kurį laiką suklupęs bandydamas išsiaiškinti, kaip gauti temperatūros duomenis iš „Bluetooth“modulio į „iPhone“, radau programą, pavadintą „EvoThings“, kuri gerokai supaprastino programos kūrimo pusę. Aš neturiu „Mac“(žinau, šokiruojantis!), Kuris riboja mano galimybes kurti „iPhone“programą, ir neturiu laiko iššifruoti naujų „Microsoft“įrankių, kurie akivaizdžiai palaiko „iOS“ir „Android“skirtų platformų kūrimą. Aš padariau keletą HTML5 stiliaus programų, tačiau vienintelis būdas gauti „Bluetooth“duomenis yra naudojant „Cordova“papildinius, kurie atrodė labiau iššūkiai, nei turėjau laiko. „EvoThings“siūlo labai lengvai naudojamą įrankių rinkinį, kuris „Bluetooth“ir „iPhone“iššūkį pavertė keksiuku. O man pyragas patinka!

Apskritai man pasirodė, kad „Lightblue Bean“ir „EvoThings“derinys yra labai praktiškas sprendimas, reikalaujantis mažai laiko.

1 žingsnis: reikalingi dalykai

Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks

Vienam kanalui naudojau parduodamą termistoriaus zondą, nes norėjau, kad termistorius būtų uždarytas, kad būtų panardintas į skysčius. Antram kanalui aš padariau pagrindinį zondą iš termistoriaus, maždaug 26 dydžio laido ir 3,5 mm ausinių kištuko. Galite laisvai naudoti bet kokius norimus termistorius ir, pavyzdžiui, galite pasigaminti zondus iš šilumą laidžių epoksidinių ir plastikinių šiaudelių/kavos maišytuvų. Štai ką aš panaudojau - tai nėra nurodomasis sąrašas!

Techninė įranga

  • 1 x 100K termistoriaus zondai. Modelis „Extech TP890“. Jų dažniausiai galima rasti „ebay“ir „Amazon“.
  • 2 x 2,5 mm stereo lizdai, atitinkantys 2,5 mm kištuką ant „Extech“zondų. Iš seno kompiuterio išėmiau 3,5 mm lizdus, todėl nutraukiau „Extech“zondo kištuką ir pakeičiau jį 3,5 mm kištukais. Turėtumėte to vengti, tiesiog naudokite 2,5 mm lizdus arba naudokite nuo 2,5 iki 3,5 mm stereo adapterio kištuką.
  • 100K termistoriaus karoliukas ir 26 gabarito laidas bei 3,5 mm stereo kištukas, jei norite pasidaryti savo zondą. Jei ne, nusipirkite antrą „Extech“zondą!
  • 1 x šviesiai mėlyna pupelė pagal Punch Through Designs. Tai „Bluetooth“modulis, programuojamas kaip „Arduino“kūrimo plokštė. Modulis yra gana brangus, tačiau pašalina daug sudėtingumo. Jie vykdo naujos kartos įrenginio „Kickstarter“kampaniją, kurią galbūt verta apsvarstyti.
  • 2 x 1/4 W 100K rezistoriai, naudojami termistorių atskaitos įtampai padalyti. Aš naudojau 5% rezistorius, tačiau didesnės tolerancijos rezistoriai paprastai yra mažiau jautrūs temperatūrai ir užtikrins geresnius rezultatus. 1% yra gera tolerancijos vertė.
  • Lituoklis ir lituoklis
  • Vielos pjaustytuvai ir kai kurie maži 26 arba 28 gabaritų sujungimo laidai.

Programinė įranga ir programinė įranga

  • Norėdami programuoti „Bean“, jums reikės „Bean Loader“programos. Aš naudoju „Windows“, todėl visos nuorodos bus skirtos „Windows“. Viskas, ko jums reikia norint pradėti naudoti „Bean“, įskaitant „Arduino“specifikacijas, yra prieinama „LightBlueBean“svetainėje
  • Išmaniojo telefono programėlės „EvoThings“darbastalį rasite čia. Ten taip pat yra visa „darbo pradžios“dokumentacija. Tai labai gerai dokumentuota.

2 žingsnis: grandinės ir elektros konstrukcija

Grandinės ir elektros konstrukcija
Grandinės ir elektros konstrukcija
Grandinės ir elektros konstrukcija
Grandinės ir elektros konstrukcija
Grandinės ir elektros konstrukcija
Grandinės ir elektros konstrukcija

Termistorius yra nuo temperatūros priklausomas rezistorius. „Extech“zondo temperatūros koeficientas yra neigiamas, o tai reiškia, kad kylant temperatūrai, atsparumas mažėja. Pasipriešinimo vertė matuojama paprasta grandine, kuri sukuria įtampos daliklį su termistoriumi vienoje kojoje ir fiksuotu 100K rezistoriumi kitoje. Padalinta įtampa tiekiama į analoginį įvesties kanalą „Bean“ir imama iš programinės įrangos.

Norėdami sukurti grandinę, iš seno sugedusio kompiuterio išėmiau 3,5 mm garso lizdus. Multimetras buvo naudojamas norint nustatyti du PCB taškus, kurie atitiko zondo galiuką ir pirmąją juostą. Laidai buvo lituojami prie garso lizdų ir prie pupelės, kaip parodyta paveikslėliuose. Garso lizdai buvo priklijuoti prie pupelių prototipo naudojant dvipusę juostą. Naudota juosta yra automobilių klasės lipdukų juosta, kuri sukuria labai tvirtą ryšį tarp vilkimo dalių.

3 žingsnis: zondo koeficientai

Zondo koeficientai
Zondo koeficientai

Kaip įprastas „Extech“zondas, Steinharto-Harto koeficientai niekur neskelbiami. Laimei, yra internetinė skaičiuoklė, kuri nustatys koeficientus pagal 3 jūsų pateiktus temperatūros matavimus.

Kokios folijos yra pagrindinė procedūra, kurią naudoju, kad gaučiau koeficientus. Už stilių neuždirbsi taškų, bet pakankamai gerai, kad galėtum pasakyti +/- 1 laipsnio tikslumą (mano visas nykštukas)…. žinoma, priklausomai nuo jūsų etaloninio termometro ir multimetro tikslumo! Mano multimetras yra nebrangus prekės ženklas, kurį nusipirkau prieš daugelį metų, kai pinigai buvo menki. Pinigų vis dar trūksta ir jie vis dar veikia!

Norėdami kalibruoti, mums reikia trijų atsparumo rodmenų iš 3 temperatūrų.

  • Prie užšalimo pridedant ledo į stiklinę vandens ir maišant, kol temperatūra stabilizuojasi. Kai stabilizuosis, naudokite multimetrą zondo pasipriešinimui registruoti ir etaloninį termometrą temperatūrai registruoti.
  • Dabar įdėkite zondą į stiklinę vandens kambario temperatūroje, leiskite zondui susilyginti su vandens temperatūra ir užregistruokite temperatūrą savo etaloniniame termometre ir varžos rodmenis daugiametrėje.
  • Įdėkite zondą į stiklinę karšto vandens ir užrašykite atsparumą.

    Temperatūra Pasipriešinimas
    5.6 218 tūkst
    21.0 97,1 tūkst
    38.6 43.2

Visas šis procesas yra šiek tiek vištienos ir kiaušinių situacija, nes jums reikia kalibruoto termometro, kad būtų galima užregistruoti temperatūrą, ir kalibruoto kelių metrų, kad būtų užregistruotas atsparumas. Klaidos čia sukels netikslumą atliekant jūsų matuojamus temperatūros matavimus, bet mano tikslais +/- 1 laipsnis yra daugiau nei man reikia.

Prijungus šias įrašytas vertes į žiniatinklio skaičiuotuvą gaunami šie rezultatai:

Vaizdas
Vaizdas

Koeficientai (A, B ir C) yra prijungti prie Stenhart-Hart lygties, kad būtų galima nustatyti temperatūrą nuo atrinktos varžos vertės. Lygtis apibrėžiama kaip (šaltinis: wikipedia.com)

Vaizdas
Vaizdas

Kur T = temperatūra Kelvine

A, B ir C yra Steinharto-Harto lygties koeficientai, kuriuos bandome nustatyti R yra atsparumas temperatūrai T

Firmware atliks šį skaičiavimą.

4 žingsnis: programinė įranga

Firmware
Firmware
Firmware
Firmware

Termistoriaus įtampa imama, konvertuojama į temperatūrą ir „Bluetooth“ryšiu siunčiama į išmaniajame telefone veikiančią „EvoThings“programą.

Norėdami konvertuoti įtampą į pasipriešinimo vertę pupelėje, naudojama paprasta linijinė lygtis. Lygties išvestis pateikiama kaip vaizdas. Užuot konvertavę atrinktą vertę į įtampą, nes tiek ADC, tiek įėjimo įtampa yra susiję su ta pačia akumuliatoriaus įtampa, vietoj įtampos galime naudoti ADC vertę. Naudojant 10 bitų „Bean ADC“pilną akumuliatoriaus įtampą, ADC vertė bus 1023, todėl mes naudojame šią vertę kaip „Vbat“. Faktinė daliklio rezistoriaus vertė yra svarbus dalykas. Išmatuokite faktinę 100K daliklio rezistoriaus vertę ir naudokite išmatuotą vertę lygtyje, kad išvengtumėte nereikalingo klaidos šaltinio dėl rezistoriaus tolerancijos.

Kai pasipriešinimo vertė apskaičiuojama, pasipriešinimo vertė paverčiama temperatūra, naudojant Steinhart-Hart lygtį. Ši lygtis išsamiai aprašyta Vikipedijoje.

Kadangi turime 2 zondus, buvo prasminga zondo funkcionalumą įtraukti į C ++ klasę.

Klasė apima Steinharto-Harto lygties koeficientus, vardinę daliklio varžos vertę ir analoginį prievadą, prie kurio prijungtas termistorius. Naudojant vieną metodą, temperatūrą (), ADC vertė paverčiama pasipriešinimo verte, o paskui naudojama Steinharto-Harto lygtis temperatūrai Kelvine nustatyti. Grįžtama vertė iš apskaičiuotos temperatūros atima absoliučią nulį (273,15 K), kad gautų vertę Celsijaus laipsniais.

„Lightblue Bean“galia akivaizdi tuo, kad visos „Bluetooth“funkcijos iš esmės yra įdiegtos vienoje kodo eilutėje, kuri įrašo atrinktas temperatūros vertes į įbrėžtą duomenų sritį „Bluetooth“atmintyje.

Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) ir temperatūra [0], 12);

Kiekvieną atrinktą temperatūros vertę vaizduoja plūdė, kuri užima 4 baitus. Įbrėžimų duomenų sritis gali turėti 20 baitų. Mes naudojame tik 12 iš jų. Yra 5 įbrėžimų duomenų sritys, todėl naudodami įbrėžimų duomenis galėtumėte perkelti iki 100 baitų duomenų.

Pagrindinė įvykių eiga yra tokia:

  • Patikrinkite, ar turime „Bluetooth“ryšį
  • Jei taip, paimkite mėginio temperatūrą ir įrašykite ją į įbrėžimų duomenų sritį
  • Miegokite 200 ms ir pakartokite ciklą.

Jei neprijungtas, programinė įranga ilgą laiką užmigdo ATMEGA328P lustą. Miego ciklas yra svarbus energijos taupymui. ATMEGA328P lustas pereina į mažos galios režimą ir lieka ten, kol LBM313 „Bluetooth“modulis jį nutraukia. LBM313 sukurs pertrauką, kad pažadintų ATMEGA328P pasibaigus užmigdymo laikotarpiui arba kai „Bluetooth“ryšys bus prijungtas prie „Bean“. „WakeOnConnect“funkcija įgalinama aiškiai iškviečiant „Bean.enableWakeOnConnect“(tiesa) sąrankos metu ().

Svarbu pažymėti, kad programinė įranga veiks su bet kuria BLE kliento programa. Viskas, ką klientas turi padaryti, yra ištrinti temperatūros baitus iš įbrėžimų duomenų banko ir surinkti juos į slankiojo kablelio skaičius, kad būtų galima juos rodyti ar apdoroti. Lengviausia kliento programa man buvo naudoti „EvoThings“.

5 žingsnis: „Smartphone“programa

Išmaniojo telefono programa
Išmaniojo telefono programa

„Evo Things“pavyzdinė programa yra labai arti to, ko man reikėjo, tik nedidelėmis pastangomis, norint pridėti papildomų ekrano elementų, kad būtų užbaigtas 3 kanalų temperatūros matavimo įrenginys.

„EvoThings“platformos diegimas ir pagrindinis veikimas yra labai gerai dokumentuoti „Evo Things“svetainėje, todėl čia nėra jokios vertės tai kartoti. Čia aptarsiu tik konkrečius jų pavyzdžio kodo pakeitimus, kad būtų rodomi 3 temperatūros informacijos kanalai, išgauti iš „Bluetooth“įbrėžimų duomenų srities.

Įdiegę „EvoThings Workbench“, „Lightblue Bean“pavyzdį rasite čia (64 bitų „Windows“kompiuteriuose):

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

Failus index.html ir app.js galite pakeisti prie šio veiksmo pridėtais failais. „Jacascript“failo pakeitimai išskiria 3 slankiojo kablelio temperatūros reikšmes, kurios sudaro įbrėžimų duomenų sritį ir aukštesnį vidinį HTML elementą, sukurtą naujų failo elementų.

function onDataReadSuccess (duomenys) {

var temperatūraData = naujas „Float32Array“(duomenys);

var baitai = naujas Uint8Array (duomenys);

var temperatūra = temperatūraData [0];

console.log ('Temperatūros skaitymas:' + temperatūra + 'C');

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

document.getElementById ('temperatūra1'). internalHTML = temperatureData [1].toFixed (2) + "C °";

document.getElementById ('temperatūra2'). internalHTML = temperatureData [2].toFixed (2) + "C °";

}

6 žingsnis: gaubtas

Korpusas
Korpusas
Korpusas
Korpusas
Korpusas
Korpusas
Korpusas
Korpusas

Korpusas yra paprasta 3D spausdinta dėžutė. Kurdamas dizainą naudojau „Cubify Design“, tačiau pakaks bet kokios 3D modeliavimo programos. Pridedamas STL failas, kad galėtumėte spausdinti savo. Jei turėčiau tai padaryti, padarysiu sienas šiek tiek storesnes, nei yra dabar, ir pakeisčiau spaustuko dizainą, laikantį lentą. Sąvaržėlės labai lengvai lūžta, nes įtempimas yra smae plokštumoje, kaip 3D spausdinti sluoksniai, o tai yra silpniausia 3D spausdintų dalių orientacija. Sienos yra labai plonos, todėl fiksavimo mechanizmas yra šiek tiek silpnoje pusėje. Aš naudoju skaidrią juostą, kad dėžutė būtų uždaryta, nes sienos buvo per silpnos - ne elegantiškos, bet veikia!

7 veiksmas: kompiuterio nustatymai ir „Bluetooth“konfigūracija

Kompiuterio nustatymai ir „Bluetooth“konfigūracija
Kompiuterio nustatymai ir „Bluetooth“konfigūracija

„Bean“programinės įrangos kūrimo ir įkėlimo ciklas atliekamas naudojant „Bluetooth“. Vienu metu gali būti tik vienas aktyvus „Bluetooth“ryšys. Pupelių krautuvą galima įsigyti „Windows App Store“

Pagrindinis ciklas, kurį naudoju suporuoti ir prijungti (ir taisyti bei vėl prijungti, kai kas nors negerai) yra toks: Valdymo skydelyje;/„Bluetooth“nustatymai, turėtumėte pamatyti šį ekraną:

Vaizdas
Vaizdas

Galų gale „Windows“praneš „Paruošta susieti“. Šiuo metu galite spustelėti pupelės piktogramą ir po kelių sekundžių „Windows“paragins įvesti slaptažodį. Numatytasis pupelės slaptažodis yra 00000

Vaizdas
Vaizdas

Jei slaptažodis įvestas teisingai, „Windows“parodys, kad įrenginys tinkamai prijungtas. Jūs turite būti šioje būsenoje, kad galėtumėte programuoti pupelę.

Vaizdas
Vaizdas

Kai būsite suporuotas ir prijungtas, naudokite pupelių krautuvą, kad įkeltumėte programinę įrangą į pupelę. Pastebėjau, kad tai dažniausiai nepavyksta, ir tai buvo susiję su artumu mano kompiuteryje. Perkelkite pupelę, kol rasite sau tinkamą vietą. Yra atvejų, kai niekas neveiks, o pupelių krautuvas pasiūlys iš naujo suporuoti įrenginį. Paprastai pakartotinis susiejimo procesas atkurs ryšį. Prieš vėl suporuodami turite „Pašalinti įrenginį“.

Vaizdas
Vaizdas

Pupelių krautuvo operacija yra paprasta ir gerai dokumentuota jų svetainėje. Atidarę pupelių krautuvą, pasirinkite meniu punktą „Programa“, kad atidarytumėte dialogo langą ir naršytumėte „Hex“failą, pateiktą šios instrukcijos programinės įrangos žingsnyje.

Vaizdas
Vaizdas

Įkėlus programinę -aparatinę įrangą UŽDARYTI pupelių krautuvą, kad nutrūktų ryšys tarp pupelių krautuvo ir pupelių aparatūros. Vienu metu galite turėti tik vieną ryšį. Dabar atidarykite „EvoThings“darbo stalą ir paleiskite „EvoThings“klientą išmaniajame telefone ar planšetiniame kompiuteryje.

Vaizdas
Vaizdas

Spustelėjus mygtuką „Vykdyti“, „EvoThings“klientas automatiškai įkelia termometro html puslapį. Spustelėkite mygtuką „Prisijungti“, kad prisijungtumėte prie „Bean“, ir turėtumėte matyti rodomą temperatūrą. Sėkmė!

8 žingsnis: Išvada

Išvada
Išvada

Jei viskas pastatyta ir sukonfigūruota teisingai, turėtumėte turėti veikiančią sistemą, kuri leis jums stebėti temperatūrą 2 zondais, taip pat stebėti BMA250 jutiklio temperatūrą „Bean“kūrimo plokštėje. Su „EvoThings“galima nuveikti daugiau - ką tik subraižiau paviršių, todėl šį eksperimentą palieku jums! Ačiū, kad skaitote! Jei kažkas negerai, tiesiog palikite komentarus ir aš padėsiu, kur galėsiu.

Rekomenduojamas: