Satura rādītājs:

Bluetooth termometrs: 8 soļi
Bluetooth termometrs: 8 soļi

Video: Bluetooth termometrs: 8 soļi

Video: Bluetooth termometrs: 8 soļi
Video: Крутой ОБЗОР Беспроводной термометр для мяса Meater Plus Липован Grillex 2024, Jūlijs
Anonim
Bluetooth termometrs
Bluetooth termometrs
Bluetooth termometrs
Bluetooth termometrs
Bluetooth termometrs
Bluetooth termometrs

Šajā pamācībā sīki aprakstīts vienkārša divu kanālu termometra izgatavošana, izmantojot 100K termistoru zondes, Bluetooth moduli un viedtālruni. Bluetooth modulis ir LightBlue Bean, kas tika izstrādāts, lai vienkāršotu Bluetooth Low Energy lietotņu izstrādi, moduļa programmēšanai izmantojot pazīstamo Arduino vidi.

Kādu laiku klupdams, mēģinot izdomāt, kā iegūt datus par temperatūru no Bluetooth moduļa uz manu iPhone, es atradu lietotni ar nosaukumu EvoThings, kas ievērojami vienkāršoja projekta lietotņu izstrādes pusi. Man nav Mac (es zinu šokējoši!), Kas ierobežo manas iespējas izstrādāt iPhone lietotni, un man nav laika atšifrēt jaunos Microsoft rīkus, kas acīmredzami atbalsta iOS un Android starpplatformu izstrādi. Esmu izveidojis vairākas HTML5 stila lietotnes, taču vienīgais veids, kā iegūt Bluetooth datus, ir Cordova spraudņi, kas izskatījās vairāk kā izaicinājums, nekā man bija laiks. EvoThings nodrošina ļoti viegli lietojamu rīku komplektu, kas Bluetooth-iPhone izaicinājumu pārvērta par kūku. Un man garšo kūka!

Kopumā es atklāju, ka Lightblue Bean un EvoThings kombinācija ir ļoti praktisks risinājums ar mazām investīcijām.

1. darbība: lietas, kas jums būs nepieciešamas

Vajadzīgās lietas
Vajadzīgās lietas
Vajadzīgās lietas
Vajadzīgās lietas
Vajadzīgās lietas
Vajadzīgās lietas

Vienam kanālam es izmantoju tirdzniecībā pieejamu termistora zondi, jo vēlējos, lai termistors būtu noslēgts, lai to iegremdētu šķidrumos. Otrajam kanālam es izveidoju pamata zondi no termistora, apmēram 26 gabarīta stieples un 3,5 mm austiņu spraudņa. Jūs varat brīvi izmantot jebkuru vēlamo termistoru, un jūs varat izgatavot savas zondes, piemēram, no siltumvadošas epoksīda un plastmasas salmiņiem/kafijas maisītājiem. Tālāk es izmantoju to - tas nav paredzēts kā normatīvs saraksts!

Aparatūra

  • 1 x 100K termistora zondes. Modelis Extech TP890. Tie parasti ir pieejami ebay un amazon.
  • 2 x 2,5 mm stereo ligzdas, kas atbilst 2,5 mm spraudnim uz Extech zondēm. Es no vecā datora izņēmu 3,5 mm ligzdas, tāpēc es nogriezu Extech zondes kontaktdakšu un nomainīju to ar 3,5 mm kontaktdakšām. Jums vajadzētu izvairīties no tā, vienkārši izmantojiet 2,5 mm ligzdas vai izmantojiet no 2,5 mm līdz 3,5 mm stereo adaptera kontaktdakšu.
  • 100K termistora lodīte plus 26 gabarīta vads plus 3,5 mm stereo spraudnis, ja vēlaties izveidot savu zondi. Ja nē, iegādājieties otru Extech zondi!
  • 1 x gaiši zila pupiņa ar Punch Through Designs. Šis ir Bluetooth modulis, kas programmējams kā Arduino izstrādes dēlis. Modulis ir diezgan dārgs, taču tas novērš daudz sarežģītības. Viņi vada Kickstarter kampaņu nākamās paaudzes ierīcei, par ko varētu būt vērts padomāt.
  • 2 x 1/4W 100K rezistori, ko izmanto, lai sadalītu atsauces spriegumu termistoriem. Es izmantoju 5% rezistorus, bet lielākas pielaides rezistori parasti ir mazāk jutīgi pret temperatūru un nodrošinās labāku veiktspēju. 1% tam ir laba pielaides vērtība.
  • Lodāmurs un lodēt
  • Stiepļu griezēji un daži nelieli 26 vai 28 gabarītu savienojuma stieples garumi.

Programmatūra un programmaparatūra

  • Pupas programmēšanai jums būs nepieciešama lietotne Pupiņu iekrāvējs. Esmu izmantojis logus, tāpēc visas saites būs specifiskas Windows. Viss, kas jums nepieciešams, lai sāktu darbu ar Bean, ieskaitot Arduino specifiku, ir pieejams vietnē LightBlueBean
  • EvoThings darbagalds viedtālruņa lietotnei ir pieejams šeit. Tur ir pieejama arī visa “darba sākšanas” dokumentācija. Tas ir ļoti labi dokumentēts.

2. solis: ķēdes un elektriskā konstrukcija

Ķēde un elektriskā konstrukcija
Ķēde un elektriskā konstrukcija
Ķēde un elektriskā konstrukcija
Ķēde un elektriskā konstrukcija
Ķēde un elektriskā konstrukcija
Ķēde un elektriskā konstrukcija

Termistors ir no temperatūras atkarīgs rezistors. Extech zondei ir negatīvs temperatūras koeficients, kas nozīmē, ka, paaugstinoties temperatūrai, pretestība samazinās. Pretestības vērtību mēra ar vienkāršu shēmu, kas izveido sprieguma dalītāju ar termistoru vienā kājā un fiksētu 100K rezistoru otrā. Sadalītais spriegums tiek ievadīts Bean analogās ieejas kanālā un tiek atlasīts programmaparatūrā.

Lai izveidotu ķēdi, es no vecā salauztā datora izņēmu 3,5 mm audio ligzdas. Lai noteiktu divus PCB punktus, kas atbilst zondes galam un pirmajai joslai, tika izmantots multimetrs. Vadi tika pielodēti pie audio ligzdām un pie pupiņas, kā parādīts attēlos. Audio ligzdas tika pielīmētas pie pupiņu prototipa zonas, izmantojot divpusēju lenti. Lente, kuru izmantoju, ir automobiļu klases uzlīmes lente, kas rada ļoti spēcīgu saikni starp vilkšanas detaļām.

3. darbība: zondes koeficienti

Zondes koeficienti
Zondes koeficienti

Tikpat izplatīta kā Extech zonde, Steinhart-Hart koeficienti netiek publicēti nekur, ko es varētu atrast. Par laimi ir tiešsaistes kalkulators, kas noteiks koeficientus no 3 jūsu norādītajiem temperatūras mērījumiem.

Kādas pamatnes ir pamata procedūra, ko izmantoju, lai sasniegtu koeficientus. Par stilu nenopelnīsiet nevienu punktu, bet pietiekami labi, lai jūs varētu pateikt +/- 1 grādu precizitāti (pilnīgs īkšķis no manas puses)…. protams, atkarībā no jūsu atsauces termometra un multimetra precizitātes! Mans multimetrs ir lēta zīmola vienība bez nosaukuma, kuru es nopirku pirms daudziem gadiem, kad nauda bija ierobežota. Nauda joprojām ir ierobežota, un tā joprojām darbojas!

Lai kalibrētu, mums ir nepieciešami trīs pretestības rādījumi no 3 temperatūrām.

  • Tuvu sasalšanai, pievienojot ledus glāzei ūdens un maisot, līdz temperatūra stabilizējas. Kad stabilizējies, izmantojiet multimetru, lai reģistrētu zondes pretestību, un atsauces termometru, lai reģistrētu temperatūru.
  • Tagad ievietojiet zondi istabas temperatūras ūdens glāzē, ļaujiet zondei izlīdzināties ar ūdens temperatūru un ierakstiet temperatūru savā atsauces termometrā un pretestības rādījumu multimetrā.
  • Ievietojiet zondi karstā ūdens glāzē un reģistrējiet pretestību.

    Temperatūra Pretestība
    5.6 218 tūkstoši
    21.0 97,1 tūkst
    38.6 43.2

Viss šis process ir nedaudz vistas un olu situācija, jo jums ir nepieciešams kalibrēts termometrs, lai reģistrētu temperatūru, un kalibrēts daudzmetrs, lai reģistrētu pretestību. Šeit pieļautās kļūdas radīs neprecizitāti jūsu veiktajos temperatūras mērījumos, bet manos nolūkos +/- 1 grāds ir vairāk nekā man nepieciešams.

Pievienojot šīs ierakstītās vērtības tīmekļa kalkulatorā, iegūstat sekojošo:

Attēls
Attēls

Koeficienti (A, B un C) ir pievienoti Stenhart-Hart vienādojumam, lai noteiktu temperatūru no parauga pretestības vērtības. Vienādojums ir definēts kā (avots: wikipedia.com)

Attēls
Attēls

Kur T = temperatūra Kelvinos

A, B un C ir Steinhart-Hart vienādojuma koeficienti, kurus mēs cenšamies noteikt R ir pretestība temperatūrā T

Programmatūra veiks šo aprēķinu.

4. solis: programmaparatūra

Programmaparatūra
Programmaparatūra
Programmaparatūra
Programmaparatūra

Termistoru spriegumi tiek ņemti no parauga, pārvērsti temperatūrā un, izmantojot Bluetooth, tiek nosūtīti uz lietotni EvoThings, kas darbojas viedtālrunī.

Lai pārveidotu spriegumu par pretestības vērtību pupiņās, tiek izmantots vienkāršs lineārs vienādojums. Vienādojuma atvasinājums tiek sniegts kā attēls. Tā vietā, lai pārvērstu izlases vērtību spriegumā, jo gan ADC, gan ieejas spriegums ir saistīti ar to pašu akumulatora spriegumu, sprieguma vietā mēs varam izmantot ADC vērtību. 10 bitu Bean ADC gadījumā pilna akumulatora sprieguma rezultātā ADC vērtība būs 1023, tāpēc mēs izmantojam šo vērtību kā Vbat. Sadalītāja rezistora faktiskā vērtība ir svarīgs apsvērums. Izmēriet 100K dalītāja rezistora faktisko vērtību un izmantojiet izmērīto vērtību vienādojumā, lai izvairītos no nevajadzīga kļūdu avota rezistora pielaides dēļ.

Kad pretestības vērtība ir aprēķināta, pretestības vērtība tiek pārvērsta temperatūrā, izmantojot Steinhart-Hart vienādojumu. Šis vienādojums ir sīki aprakstīts Vikipēdijā.

Tā kā mums ir 2 zondes, bija jēga zondes funkcionalitāti iekapsulēt C ++ klasē.

Klase ietver Steinhart-Hart vienādojuma koeficientus, dalītāja nominālo pretestības vērtību un analogo portu, kuram ir pievienots termistors. Viena metode, temperatūra (), pārveido ADC vērtību pretestības vērtībā un pēc tam izmanto Šteinharta-Hārta vienādojumu, lai noteiktu temperatūru Kelvinos. Atgriešanās vērtība no aprēķinātās temperatūras atņem absolūto nulli (273,15K), lai iegūtu vērtību pēc Celsija.

Gaiši zilās pupiņas jauda ir acīmredzama faktā, ka visas Bluetooth funkcijas būtībā ir ieviestas vienā koda rindā, kas parauga temperatūras vērtības raksta Bluetooth atmiņas nesaskrāpētajā datu apgabalā.

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

Katru parauga temperatūras vērtību attēlo pludiņš, kas aizņem 4 baitus. Skrāpējumu datu apgabalā var būt 20 baiti. Mēs izmantojam tikai 12 no tiem. Ir 5 nulles datu apgabali, lai jūs varētu pārsūtīt līdz 100 baitiem datu, izmantojot nulles datus.

Notikumu pamatplūsma ir šāda:

  • Pārbaudiet, vai mums ir Bluetooth savienojums
  • Ja tā, izlasiet temperatūru un ierakstiet to datu laukā
  • Gulēt 200 ms un atkārtot ciklu.

Ja nav izveidots savienojums, programmaparatūra ATMEGA328P mikroshēmu ilgstoši iemidzina. Miega cikls ir svarīgs enerģijas taupīšanai. ATMEGA328P mikroshēma pāriet mazjaudas režīmā un paliek tur, līdz to pārtrauc LBM313 Bluetooth modulis. LBM313 radīs pārtraukumu, lai pamodinātu ATMEGA328P pieprasītā miega perioda beigās vai ikreiz, kad tiek izveidots Bluetooth savienojums ar pupiņu. WakeOnConnect funkcionalitāti iespējo, iestatīšanas laikā () nepārprotami izsaucot Bean.enableWakeOnConnect (true).

Ir svarīgi atzīmēt, ka programmaparatūra darbosies ar jebkuru BLE klienta lietojumprogrammu. Viss, kas klientam ir jādara, ir noņemt temperatūras baitus no nulles datu bankas un salikt tos peldošā komata skaitļos, lai tos parādītu vai apstrādātu. Vienkāršākā klienta lietotne man bija izmantot EvoThings.

5. darbība: viedtālruņa lietotne

Viedtālruņa lietotne
Viedtālruņa lietotne

Evo Things parauga lietotne ir ļoti tuvu tam, kas man bija vajadzīgs, tikai ar nelielu piepūli, lai pievienotu papildu displeja elementus, lai pabeigtu 3 kanālu temperatūras mērīšanas ierīci.

EvoThings platformas uzstādīšana un pamatdarbība ir ļoti labi dokumentēta Evo Things tīmekļa vietnē, tāpēc nav nekādas vērtības to atkārtot šeit. Šeit es apskatīšu tikai konkrētās izmaiņas, ko es veicu to parauga kodā, lai parādītu 3 temperatūras informācijas kanālus, kas iegūti no Bluetooth nulles datu apgabala.

Pēc EvoThings Workbench instalēšanas Lightblue Bean piemēru atradīsit šeit (Windows 64 bitu datoros):

ŠīPC / Documents / EvothingsStudio_Win64_1. XX / Piemēri / Lightblue-bean-basic / app

Failus index.html un app.js varat aizstāt ar failiem, kas pievienoti šai darbībai. Jacascript failā veiktās izmaiņas izvelk 3 peldošā komata temperatūras vērtības, kas veido datu laukumu un augšup HTML failā izveidoto jauno elementu iekšējo HTML.

function onDataReadSuccess (dati) {

var temperatūraData = jauns Float32Array (dati);

var baiti = jauns Uint8Array (dati);

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

console.log ('Temperatūras rādījumi:' + 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. darbība: iežogojums

Korpuss
Korpuss
Korpuss
Korpuss
Korpuss
Korpuss
Korpuss
Korpuss

Korpuss ir vienkārša 3D drukāta kaste. Lai izveidotu dizainu, es izmantoju Cubify Design, taču pietiks ar jebkuru 3D modelēšanas programmu. STL fails ir pievienots, lai jūs varētu izdrukāt savu. Ja man tas būtu jādara vairāk, es padarītu sienas nedaudz biezākas, nekā tās ir tagad, un mainītu skavas dizainu, kas tur plāksni vietā. Skavas ļoti viegli salūst, jo 3D drukātajiem slāņiem ir smae plakne, kas ir vājākā orientācija 3D drukātajām daļām. Sienas ir ļoti plānas, tāpēc fiksācijas mehānisms ir nedaudz vājā pusē. Es izmantoju caurspīdīgu lenti, lai kaste būtu aizvērta, jo sienas bija pārāk vājas - ne elegantas, bet darbojas!

7. darbība: datora iestatījumi un Bluetooth konfigurācija

Datora iestatījumi un Bluetooth konfigurācija
Datora iestatījumi un Bluetooth konfigurācija

Pupiņas programmaparatūras veidošanas un augšupielādes cikls tiek veikts, izmantojot Bluetooth. Vienlaikus var būt tikai viens aktīvs Bluetooth savienojums. Pupiņu iekrāvējs ir pieejams vietnē Windows App Store

Pamata cikls, ko izmantoju, lai savienotu pārī un izveidotu savienojumu (un labotu un atkārtoti izveidotu savienojumu, ja kaut kas noiet greizi), ir šāds: Vadības panelī;/Bluetooth iestatījumi, jums vajadzētu redzēt šādu ekrānu:

Attēls
Attēls

Galu galā logi parādīs ziņojumu "Gatavs savienošanai pārī". Šajā brīdī jūs varat noklikšķināt uz pupiņu ikonas, un pēc dažām sekundēm Windows piedāvās ievadīt piekļuves kodu. Pupiņas noklusējuma piekļuves kods ir 00000

Attēls
Attēls

Ja piekļuves kods ir ievadīts pareizi, sistēma Windows parādīs, ka ierīce ir pareizi pievienota. Jums ir jābūt šajā stāvoklī, lai varētu programmēt pupiņu.

Attēls
Attēls

Kad esat izveidojis pārī savienojumu un izveidojis savienojumu, izmantojiet pupiņu iekrāvēju, lai pupiņā ielādētu programmaparatūru. Es atklāju, ka tas biežāk neizdodas, un šķiet, ka tas ir saistīts ar datora tuvumu. Pārvietojiet pupiņu, līdz atrodat sev piemērotu vietu. Ir reizes, kad nekas nedarbosies, un pupiņu iekrāvējs ieteiks pārī savienot ierīci. Parasti atkārtota savienošanas procesa atjaunošana atjaunos savienojumu. Pirms pārī savienošanas pārī ir jāizņem “Ierīce”.

Attēls
Attēls

Pupiņu iekrāvēja darbība ir vienkārša un labi dokumentēta viņu vietnē. Kad pupiņu iekrāvējs ir atvērts, izvēlieties izvēlnes vienumu "Programma", lai atvērtu dialoglodziņu, lai pārlūkotu Hex failu, kas norādīts šīs instrukcijas programmaparatūras solī.

Attēls
Attēls

Kad programmaparatūra ir ielādēta, aizveriet pupiņu iekrāvēju, lai pārtrauktu savienojumu starp pupiņu iekrāvēju un pupiņu aparatūru. Vienlaikus var izveidot tikai vienu savienojumu. Tagad atveriet EvoThings darbagaldu un viedtālrunī vai planšetdatorā palaidiet EvoThings klientu.

Attēls
Attēls

Noklikšķinot uz pogas "Palaist", EvoThings klients automātiski ielādēs termometra html lapu. Noklikšķiniet uz pogas Savienot, lai izveidotu savienojumu ar pupiņu, un jums vajadzētu redzēt temperatūru. Veiksmi!

8. solis: Secinājums

Secinājums
Secinājums

Ja viss ir pareizi uzbūvēts un konfigurēts, jums vajadzētu būt darba sistēmai, kas ļaus jums kontrolēt temperatūru ar 2 zondēm, kā arī uzraudzīt BMA250 sensora temperatūru uz pupiņu izstrādes paneļa. Ar EvoThings var paveikt vairāk - es tikko saskrāpēju virsmu, tāpēc atstāju šo eksperimentu jums! Paldies, ka izlasījāt! Ja kaut kas noiet greizi, vienkārši atstājiet komentārus, un es palīdzēšu, kur varu.

Ieteicams: