Innholdsfortegnelse:

Bluetooth -termometer: 8 trinn
Bluetooth -termometer: 8 trinn

Video: Bluetooth -termometer: 8 trinn

Video: Bluetooth -termometer: 8 trinn
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Juli
Anonim
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer
Bluetooth termometer

Denne instruksen beskriver hvordan du lager et enkelt 2 -kanals termometer ved hjelp av 100K termistorsonder, en Bluetooth -modul og smarttelefon. Bluetooth -modulen er en LightBlue Bean som er designet for å forenkle utviklingen av Bluetooth Low Energy -appen ved å bruke det kjente Arduino -miljøet for programmering av modulen.

Etter å ha snublet rundt en stund for å finne ut hvordan jeg kan få temperaturdataene fra Bluetooth -modulen til min iPhone, fant jeg en app som heter EvoThings som forenklet apputviklingssiden av prosjektet betraktelig. Jeg har ikke en Mac (sjokkerende jeg vet!) Som begrenser min evne til å utvikle en iPhone -app, og jeg har ikke tid til å tyde de nye Microsoft -verktøyene som tydeligvis støtter plattformutvikling for iOS og Android. Jeg har gjort flere apps i HTML5 -stil, men den eneste måten å få tilgang til Bluetooth -data er gjennom plugins for Cordova som så ut som en større utfordring enn jeg hadde tid til. EvoThings gir et veldig brukervennlig sett med verktøy som gjorde Bluetooth-til-iPhone-utfordringen til en cakewalk. Og jeg liker kake!

Totalt sett syntes jeg at kombinasjonen av Lightblue Bean og EvoThings var en veldig praktisk løsning med lavtidsinvestering.

Trinn 1: Ting du trenger

Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger

Jeg brukte en kommersielt tilgjengelig termistorsonde for en kanal fordi jeg ønsket at termistoren var forseglet for nedsenking i væsker. For den andre kanalen lagde jeg en grunnprobe fra en termistor, litt 26 gauge ledning og en 3,5 mm hodetelefonkontakt. Du kan bruke alle termistorer du ønsker, og du kan lage dine egne sonder fra termisk ledende epoxy og plastrør/kafferør. Det som følger er det jeg brukte - det er ikke ment å være en foreskrivende liste!

Maskinvare

  • 1 x 100K termistorsonder. Modell Extech TP890. Disse er ofte tilgjengelige på eBay og Amazon.
  • 2 x 2,5 mm stereokontakter som matcher 2,5 mm pluggen på Extech -sonder. Jeg fjernet 3,5 mm -kontakter fra en gammel datamaskin, så jeg kuttet pluggen av Extech -sonden og byttet den ut med 3,5 mm plugger. Du bør unngå dette, bare bruk 2,5 mm-kontakter, eller bruk en 2,5 mm til 3,5 mm stereoadapterplugg fra hyllen.
  • 100K termistorkule pluss 26 gauge ledning pluss 3,5 mm stereokontakt hvis du vil lage din egen sonde. Hvis ikke, kjøp en ekstra Extech -sonde!
  • 1 x Lightblue Bean av Punch Through Designs. Dette er Bluetooth -modulen som kan programmeres som et Arduino -utviklingsbord. Modulen er ganske dyr, men den fjerner mye kompleksitet. De kjører en Kickstarter -kampanje for neste generasjons enhet som kan være verdt å vurdere.
  • 2 x 1/4W 100K motstander som brukes til å dele referansespenningen for termistorene. Jeg brukte 5% motstander, men motstander med høyere toleranse er generelt mindre temperaturfølsomme og gir bedre ytelse. 1% er en god toleranseverdi for dette.
  • Loddejern og loddetinn
  • Trådkuttere og noen små lengder på 26 eller 28 gauge tilkoblingstråd.

Programvare og fastvare

  • For å programmere Bean trenger du Bean Loader -appen. Jeg har brukt windows, så alle lenker vil være Windows -spesifikke. Alt du trenger for å komme i gang med Bean inkludert Arduino -spesifikasjonene er tilgjengelig fra LightBlueBean -siden
  • EvoThings arbeidsbenk for smarttelefonappen er tilgjengelig her. All "komme i gang" -dokumentasjon er også tilgjengelig der. Det er veldig godt dokumentert.

Trinn 2: Kretsen og elektrisk konstruksjon

Kretsen og elektrisk konstruksjon
Kretsen og elektrisk konstruksjon
Kretsen og elektrisk konstruksjon
Kretsen og elektrisk konstruksjon
Kretsen og elektrisk konstruksjon
Kretsen og elektrisk konstruksjon

En termistor er en temperaturavhengig motstand. Extech -sonden har en negativ temperaturkoeffisient som betyr at når temperaturen øker, reduseres motstanden. Motstandsverdien måles med en enkel krets som skaper en spenningsdeler med termistoren i det ene benet, og en fast 100K motstand i det andre. Den delte spenningen mates inn i en analog inngangskanal på bønnen og samples i fastvaren.

For å bygge kretsen fjernet jeg 3,5 mm lydkontakter fra en gammel ødelagt PC. Et multimeter ble brukt til å bestemme de to punktene på kretskortet som tilsvarte spissen og det første båndet til sonden. Ledninger ble loddet til lydkontaktene og til bønnen som vist på bildene. Lydkontaktene satt fast på prototypeområdet til bønnen ved hjelp av dobbeltsidig tape. Tapen jeg brukte er bildekalerstape som skaper et veldig sterkt bånd mellom slepedelene.

Trinn 3: Probe -koeffisienter

Probe -koeffisienter
Probe -koeffisienter

Så vanlig som Extech-sonden er, blir ikke Steinhart-Hart-koeffisientene publisert noen steder jeg kunne finne. Heldigvis er det en online kalkulator som bestemmer koeffisientene fra 3 temperaturmålinger du gir.

Hvilke folier er den grunnleggende prosedyren jeg brukte for å komme til koeffisientene. Vil ikke tjene noen poeng for stil, men bra nok til å få deg til å si +/- 1 graders nøyaktighet (totalt tommeltrekk fra min side)…. avhengig av nøyaktigheten til ditt referansetermometer og multimeter selvfølgelig! Multimeteret mitt er en billig merkevareenhet uten navn jeg kjøpte for mange år siden da pengene var knappe. Pengene er fortsatt stramme og det fungerer fortsatt!

For å kalibrere trenger vi tre motstandsmålinger fra 3 temperaturer.

  • Nær frysing ved å tilsette is til et glass vann og røre til temperaturen stabiliseres. Når den er stabilisert, bruker du multimåleren til å registrere motstanden til sonden og referansetermometeret for å registrere temperaturen.
  • Plasser nå sonden i et glass vann ved romtemperatur, la sonden utjevne seg med vanntemperaturen og registrer temperaturen på referansetermometeret og motstandsavlesningen på multimeteren din.
  • Legg sonden i et glass varmt vann og registrer motstanden.

    Temperatur Motstand
    5.6 218K
    21.0 97,1 tusen
    38.6 43.2

Hele denne prosessen er litt av en kylling og egg situasjon siden du trenger et kalibrert termometer for å registrere temperaturen og en kalibrert multimeter for å registrere motstanden. Feil her vil resultere i unøyaktighet i temperaturmålingene du gjør, men for mine formål er +/- 1 grad mer enn jeg trenger.

Å koble disse registrerte verdiene til webkalkulatoren gir følgende:

Bilde
Bilde

Koeffisientene (A, B og C) kobles til Stenhart-Hart-ligningen for å bestemme temperaturen fra en prøvetatt motstandsverdi. Ligningen er definert som (kilde: wikipedia.com)

Bilde
Bilde

Hvor T = Temperatur i Kelvin

A, B og C er Steinhart-Hart-ligningskoeffisientene vi prøver å bestemme R er motstanden ved temperatur T

Fastvaren vil utføre denne beregningen.

Trinn 4: Fastvare

Fastvare
Fastvare
Fastvare
Fastvare

Termistorspenningene samples, konverteres til temperatur og sendes via Bluetooth til EvoThings -appen som kjører på smarttelefonen.

For å konvertere spenningen til en motstandsverdi i Bean, brukes en enkel lineær ligning. Avledningen av ligningen er gitt som et bilde. I stedet for å konvertere den samplede verdien til spenning, siden både ADC og inngangsspenningen refereres til samme batterispenning, kan vi bruke ADC -verdien i stedet for spenningen. For 10bit Bean ADC vil full batterispenning resultere i en ADC -verdi på 1023, så vi bruker denne verdien som Vbat. Den faktiske verdien av skillemotstanden er en viktig faktor. Mål den faktiske verdien av 100K -skillemotstanden og bruk den målte verdien i ligningen for å unngå en unødvendig feilkilde på grunn av motstandstoleranse.

Når motstandsverdien er beregnet, konverteres motstandsverdien til temperatur ved bruk av Steinhart-Hart-ligningen. Denne ligningen er beskrevet i detalj på Wikipedia.

Fordi vi har 2 sonder, var det fornuftig å kapsle sondefunksjonaliteten til en C ++ - klasse.

Klassen innkapsler Steinhart-Hart-ligningskoeffisientene, den nominelle divideringsmotstandsverdien og den analoge porten som termistoren er koblet til. En enkelt metode, temperatur (), konverterer ADC-verdien til en motstandsverdi og bruker deretter Steinhart-Hart-ligningen for å bestemme temperaturen i Kelvin. Returverdien trekker absolutt null (273,15K) fra den beregnede temperaturen for å gi verdien i Celsius.

Kraften til Lightblue Bean er tydelig i det faktum at all Bluetooth -funksjonalitet i hovedsak er implementert i en kode linje som skriver de samplede temperaturverdiene til et skrape dataområde på Bluetooth -minnet.

Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & temperatur [0], 12);

Hver utvalgte temperaturverdi er representert med en flyter som tar opp 4 byte. Skrapedataområdet kan inneholde 20 byte. Vi bruker bare 12 av dem. Det er 5 skrape dataområder, slik at du kan overføre opptil 100 byte med data ved hjelp av skrappedata.

Den grunnleggende hendelsesflyten er:

  • Sjekk om vi har en Bluetooth -tilkobling
  • Prøv i så fall temperaturer og skriv dem til skrape -dataområdet
  • Sov 200 ms og gjenta syklusen.

Hvis den ikke er tilkoblet, setter fastvaren ATMEGA328P -brikken i dvale i lang tid. Søvnsyklusen er viktig for å spare strøm. ATMEGA328P -brikken går i laveffektmodus og forblir der til den blir avbrutt av LBM313 Bluetooth -modulen. LBM313 vil generere et avbrudd for å vekke ATMEGA328P på slutten av søvnperioden du har bedt om, eller når det opprettes en Bluetooth -tilkobling til bønnen. WakeOnConnect -funksjonaliteten aktiveres ved eksplisitt å ringe Bean.enableWakeOnConnect (true) under oppsettet ().

Det er viktig å merke seg at fastvaren fungerer med alle BLE -klientprogrammer. Alt klienten trenger å gjøre er å fjerne temperaturbyte fra skrapedatabanken og sette dem sammen til flytende tall for visning eller behandling. Den enkleste klientappen for meg var å bruke EvoThings.

Trinn 5: Smartphone -app

Smartphone -app
Smartphone -app

Evo Things -prøveappen er veldig nær det jeg trengte, med bare en liten innsats som kreves for å legge til de ekstra displayelementene for å fullføre 3 -kanals temperaturmåleenhet.

Installasjonen og grunnleggende driften av EvoThings -plattformen er veldig godt dokumentert på Evo Things -nettstedet, så det er ingen verdi å gjenta det her. Alt jeg vil dekke her er de spesifikke endringene jeg gjorde i prøvekoden for å vise tre kanaler med temperaturinformasjon, hentet fra Bluetooth -skrape -dataområdet.

Etter at du har installert EvoThings Workbench, finner du Lightblue Bean -eksemplet her (på Windows 64 -biters datamaskiner):

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

Du kan erstatte index.html- og app.js -filene med filene som er vedlagt dette trinnet. Endringene som ble gjort i jacascript -filen trekker ut de tre flytende temperaturverdiene fra scratch dataområdet og opp den indre HTML -en til nye elementer som er opprettet i HTML -filen.

function onDataReadSuccess (data) {

var temperatureData = new Float32Array (data);

var bytes = new Uint8Array (data);

var temperatur = temperaturData [0];

console.log ('Temperaturlesning:' + temperatur + 'C');

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

document.getElementById ('temperature1'). innerHTML = temperatureData [1].toFixed (2) + "C °";

document.getElementById ('temperature2'). innerHTML = temperatureData [2].toFixed (2) + "C °";

}

Trinn 6: Vedlegg

Innhegning
Innhegning
Innhegning
Innhegning
Innhegning
Innhegning
Innhegning
Innhegning

Kapslingen er en enkel 3D -trykt eske. Jeg brukte Cubify Design til å lage designet, men ethvert 3D -modelleringsprogram vil være tilstrekkelig. STL -filen er vedlagt slik at du kan skrive ut din egen. Hvis jeg måtte gjøre det om, ville jeg gjort veggene litt tykkere enn de er nå, og endret klippdesignet som holder brettet på plass. Klippene brytes veldig lett fordi stresset er i smae -planet som 3D -trykte lag, som er den svakeste orienteringen for 3D -trykte deler. Veggene er veldig tynne, slik at snapmekanismen er litt på den svake siden. Jeg brukte klar tape for å holde boksen lukket fordi veggene var for spinkle - ikke elegant, men det fungerer!

Trinn 7: PC -innstillinger og Bluetooth -konfigurasjon

PC -innstillinger og Bluetooth -konfigurasjon
PC -innstillinger og Bluetooth -konfigurasjon

Fastvareoppbyggings- og opplastingssyklusen for Bean utføres over Bluetooth. Det kan bare være én aktiv Bluetooth -tilkobling om gangen. Bønnelasteren er tilgjengelig fra Windows App Store

Den grunnleggende syklusen jeg bruker til å koble til og koble til (og reparere og koble til igjen når ting går galt) er som følger: Fra kontrollpanelet;/Bluetooth -innstillinger, bør du se følgende skjermbilde:

Bilde
Bilde

Etter hvert vil Windows rapportere "Klar til paring". På dette tidspunktet kan du klikke på Bean -ikonet, og etter noen sekunder vil Windows be deg om å angi et passord. Standard passord for bønnen er 00000

Bilde
Bilde

Hvis passordet er angitt riktig, viser Windows at enheten er riktig tilkoblet. Du må være i denne tilstanden for å kunne programmere bønnen.

Bilde
Bilde

Når du er paret og tilkoblet, bruker du bønnelaster til å laste fastvaren til bønnen. Jeg fant ut at dette mislyktes oftere enn ikke, og det så ut til å være relatert til nærheten til datamaskinen min. Flytt bønnen rundt til du finner et sted som fungerer for deg. Det er tider når ingenting vil fungere, og bønnelasteren vil foreslå å koble enheten på nytt. Vanligvis gjenoppretter tilkoblingen å gå gjennom sammenkoblingsprosessen igjen. Du må "Fjern enheten" før du kobler den på nytt.

Bilde
Bilde

Bønnelasteroperasjonen er grei og godt dokumentert på nettstedet deres. Med bønnelasteren åpen, velg menypunktet "Program" for å åpne en dialogboks for å bla til Hex -filen som ble levert i fastvaretrinnet i denne instruksjonsboken.

Bilde
Bilde

Når fastvaren er lastet, lukker du bønnelasteren slik at forbindelsen mellom bønnelaster og bønnemaskinvaren brytes. Du kan bare ha én tilkobling om gangen. Åpne nå EvoThings -arbeidsbenken og start EvoThings -klienten på smarttelefonen eller nettbrettet.

Bilde
Bilde

Når du klikker på "Kjør" -knappen, laster EvoThings -klienten automatisk html -siden for termometeret. Klikk på Koble -knappen for å koble til bønnen, og du bør se temperaturer. Suksess!

Trinn 8: Konklusjon

Konklusjon
Konklusjon

Hvis alt er bygget og konfigurert riktig, bør du ha et fungerende system som lar deg overvåke temperaturer med 2 sonder, samt overvåke temperaturen til BMA250 -sensoren på Bean -utviklingsbrettet. Det er mer som kan gjøres med EvoThings - jeg har nettopp skrapt på overflaten, så jeg overlater dette eksperimentet til deg! Takk for at du leste! Hvis ting går galt, er det bare å legge igjen kommentarer, så hjelper jeg deg der jeg kan.

Anbefalt: