Sadržaj:
- Korak 1: Stvari koje će vam trebati
- Korak 2: Strujna kola i električna konstrukcija
- Korak 3: Koeficijenti sonde
- Korak 4: Firmware
- Korak 5: Aplikacija za pametni telefon
- Korak 6: Ograđivanje
- Korak 7: Postavke računara i Bluetooth konfiguracija
- Korak 8: Zaključak
Video: Bluetooth termometar: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Ovo uputstvo detaljno opisuje izradu jednostavnog dvokanalnog termometra koristeći 100K termistorske sonde, Bluetooth modul i pametni telefon. Bluetooth modul je LightBlue Bean koji je dizajniran da pojednostavi razvoj Bluetooth aplikacije niske energije koristeći poznato Arduino okruženje za programiranje modula.
Nakon što sam neko vrijeme lutao pokušavajući smisliti kako prenijeti podatke o temperaturi iz Bluetooth modula na svoj iPhone, pronašao sam aplikaciju pod nazivom EvoThings koja je znatno pojednostavila razvojnu stranu aplikacije. Nemam Mac (šokantno znam!) Koji ograničava moju sposobnost razvoja iPhone aplikacije i nemam vremena za dešifriranje novih Microsoftovih alata koji očito podržavaju razvoj različitih platformi za iOS i Android. Uradio sam nekoliko aplikacija u stilu HTML5, ali jedini način da dođete do Bluetooth podataka je putem dodataka za Cordovu koji su mi izgledali kao veći izazov nego što sam imao vremena. EvoThings pruža skup alata koji se vrlo lako koristi i koji je izazov Bluetooth-a-iPhone pretvorio u odličnu šetnju. I ja volim tortu!
Sve u svemu, smatrao sam da je kombinacija Lightblue Bean i EvoThings vrlo praktično rješenje sa malim ulaganjem vremena.
Korak 1: Stvari koje će vam trebati
Koristio sam komercijalno dostupnu termistorsku sondu za jedan kanal jer sam htio da je termistor zapečaćen za uranjanje u tekućine. Za drugi kanal napravio sam osnovnu sondu od termistora, nekih 26 žica i 3,5 mm utikač za slušalice. Možete koristiti bilo koje termistore koje želite i možete napraviti vlastite sonde od toplinski provodljivih epoksidnih i plastičnih slamki/miješalica za kavu, na primjer. Ono što slijedi je ono što sam ja koristio - nije namjera da to bude propisana lista!
Hardver
- 1 x 100K termistorske sonde. Model Extech TP890. Obično su dostupni na ebayu i Amazonu.
- 2 x 2,5 mm stereo priključnice koje odgovaraju utikaču od 2,5 mm na Extech sondama. Izvukao sam priključke od 3,5 mm sa starog računara pa sam presekao utikač Extech sonde i zamenio ga utičnicama od 3,5 mm. Ovo biste trebali izbjeći, samo upotrijebite utičnice od 2,5 mm ili upotrijebite gotov adapter od 2,5 do 3,5 mm za stereo adapter.
- Zrno termistora od 100K plus žica od 26 mjerača i stereo utikač od 3,5 mm ako želite napraviti vlastitu sondu. Ako ne, kupite drugu Extech sondu!
- 1 x Lightblue Bean by Punch Through Designs. Ovo je Bluetooth modul koji se može programirati kao Arduino razvojna ploča. Modul je prilično skup, ali uklanja mnogo složenosti. Oni vode Kickstarter kampanju za uređaj sljedeće generacije o čemu bi vrijedilo razmisliti.
- 2 x 1/4W 100K otpornika koji se koriste za podjelu referentnog napona za termistore. Koristio sam otpornike od 5%, ali otpornici veće tolerancije općenito su manje osjetljivi na temperaturu i pružit će bolje performanse. 1% je dobra tolerancija za ovo.
- Lemilica i lemljenje
- Rezači žice i neke male dužine priključne žice promjera 26 ili 28.
Softver i firmver
- Za programiranje Bean -a potrebna vam je aplikacija Bean Loader. Koristio sam Windows pa će sve veze biti specifične za Windows. Sve što vam je potrebno za početak korištenja Bean -a, uključujući Arduino specifičnosti, dostupno je na web stranici LightBlueBean
- EvoThings radni sto za aplikaciju za pametne telefone dostupan je ovdje. Tamo je dostupna i sva dokumentacija za početak rada. Vrlo je dobro dokumentovano.
Korak 2: Strujna kola i električna konstrukcija
Termistor je otpornik ovisan o temperaturi. Extech sonda ima negativan temperaturni koeficijent što znači da se s povećanjem temperature otpor smanjuje. Vrijednost otpora mjeri se jednostavnim krugom koji stvara razdjelnik napona s termistorom u jednoj nozi i fiksnim otpornikom od 100K u drugoj. Podijeljeni napon se dovodi u analogni ulazni kanal na grafu i uzorkuje u firmveru.
Da bih izgradio krug, izvadio sam 3,5 mm audio priključke sa starog pokvarenog računara. Multimetar je korišten za određivanje dvije točke na PCB -u koje odgovaraju vrhu i prvom pojasu sonde. Žice su lemljene na audio priključcima i na grahu, kao što je prikazano na slikama. Audio priključci su zalijepljeni na prototip područja Bean -a pomoću dvostrane trake. Traka koju sam koristio je automobilska naljepnica koja stvara vrlo jaku vezu između dijelova za vuču.
Korak 3: Koeficijenti sonde
Koliko god je uobičajena Extech sonda, Steinhart-Hart koeficijenti nisu objavljeni nigdje što bih mogao pronaći. Srećom, postoji mrežni kalkulator koji će odrediti koeficijente iz 3 mjerenja temperature koje navedete.
Koje folije su osnovni postupak kojim sam došao do koeficijenata. Neće zaraditi bodove za stil, ali dovoljno dobar da vas natera da kažete +/- 1 stepen preciznosti (totalna suza s moje strane)…. ovisno o točnosti vašeg referentnog termometra i multimetra, naravno! Moj multimetar je jeftina bezimena marka koju sam kupio prije mnogo godina kad je novca bilo malo. Novac je još uvijek ograničen i još uvijek radi!
Za kalibraciju su nam potrebna tri očitanja otpora na 3 temperature.
- U blizini smrzavanja dodavanjem leda u čašu vode i miješanjem dok se temperatura ne stabilizuje. Nakon stabilizacije, upotrijebite multimetar za snimanje otpora sonde i referentni termometar za snimanje temperature.
- Sada stavite sondu u čašu vode na sobnoj temperaturi, pustite da se sonda izjednači s temperaturom vode i zabilježite temperaturu na referentnom termometru i očitanje otpora na vašem multimetru.
-
Stavite sondu u čašu vrele vode i zabilježite otpor.
Temperature Otpor 5.6 218K 21.0 97.1K 38.6 43.2
Cijeli ovaj proces je pomalo situacija s piletinom i jajima jer vam je potreban kalibrirani termometar za snimanje temperature i kalibrirani višemetar za snimanje otpora. Greške će ovdje dovesti do netočnosti u mjerenjima temperature koje napravite, ali za moje potrebe, +/- 1 stepen je više nego što mi treba.
Uključivanjem ovih zabilježenih vrijednosti u web kalkulator dobivate sljedeće:
Koeficijenti (A, B i C) su uključeni u Stenhart-Hartovu jednadžbu kako bi se odredila temperatura od uzorkovane vrijednosti otpora. Jednačina je definirana kao (izvor: wikipedia.com)
Gdje je T = temperatura u Kelvinima
A, B i C su Steinhart-Hart-ovi koeficijenti jednadžbe koje pokušavamo odrediti R je otpor na temperaturi T
Proračun će izvršiti firmver.
Korak 4: Firmware
Naponi termistora se uzorkuju, pretvaraju u temperaturu i šalju putem Bluetootha u aplikaciju EvoThings koja radi na pametnom telefonu.
Za pretvaranje napona u vrijednost otpora unutar Bean -a koristi se jednostavna linearna jednadžba. Izvođenje jednadžbe je prikazano kao slika. Umjesto pretvaranja uzorkovane vrijednosti u napon, budući da se i ADC i ulazni napon odnose na isti napon baterije, umjesto napona možemo koristiti vrijednost ADC -a. Za 10 -bitni Bean ADC, puni napon baterije rezultirat će vrijednošću ADC -a od 1023, pa tu vrijednost koristimo kao Vbat. Stvarna vrijednost razdjelnog otpornika važno je uzeti u obzir. Izmjerite stvarnu vrijednost otpornika razdjelnika od 100K i upotrijebite izmjerenu vrijednost u jednadžbi kako biste izbjegli nepotreban izvor greške zbog tolerancije otpornika.
Nakon što se izračuna vrijednost otpora, vrijednost otpora se pretvara u temperaturu pomoću Steinhart-Hartove jednadžbe. Ova jednadžba je detaljno opisana na Wikipediji.
Budući da imamo 2 sonde, bilo je logično inkapsulirati funkcionalnost sonde u C ++ klasu.
Ova klasa obuhvata Steinhart-Hart koeficijente jednadžbe, nominalnu vrijednost otpora razdjelnika i analogni priključak na koji je termistor spojen. Jedinstvena metoda, temperature (), pretvara vrijednost ADC-a u vrijednost otpora, a zatim koristi Steinhart-Hart-ovu jednadžbu za određivanje temperature u Kelvinu. Povratna vrijednost oduzima apsolutnu nulu (273,15 K) od izračunate temperature kako bi se dobila vrijednost u Celzijusima.
Snaga Lightblue Bean -a očita je u činjenici da je sva Bluetooth funkcija u osnovi implementirana u 1 red koda koji upisuje uzorkovane temperature u područje podataka o ogrebotini na Bluetooth memoriji.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & temperatura [0], 12);
Svaka vrijednost uzorkovane temperature predstavljena je plovkom koji zauzima 4 bajta. Područje podataka o grebanju može sadržavati 20 bajtova. Koristimo ih samo 12. Postoji 5 područja s podacima o grebanju tako da možete prenijeti do 100 bajtova podataka pomoću podataka o grebanju.
Osnovni tok događaja je:
- Provjerite imamo li Bluetooth vezu
- Ako je tako, uzorkujte temperature i upišite ih u područje podataka o ogrebotinama
- Spavajte 200 ms i ponovite ciklus.
Ako nije povezan, firmver stavlja ATMEGA328P čip u stanje mirovanja na duže vrijeme. Ciklus spavanja važan je za očuvanje energije. Čip ATMEGA328P prelazi u režim niske potrošnje energije i ostaje tamo sve dok ga ne prekine Bluetooth modul LBM313. LBM313 će generirati prekid kako bi probudio ATMEGA328P na kraju traženog perioda mirovanja ili kad god je uspostavljena Bluetooth veza s Bean -om. Funkcija WakeOnConnect je omogućena izričitim pozivanjem Bean.enableWakeOnConnect (true) tokom setup ().
Važno je napomenuti da će firmver raditi s bilo kojom BLE klijentskom aplikacijom. Sve što klijent treba učiniti je skinuti temperaturne bajtove iz banke podataka o grebanju i ponovno ih sastaviti u brojeve s pomičnim zarezom za prikaz ili obradu. Najlakša klijentska aplikacija za mene je bila korištenje EvoThings -a.
Korak 5: Aplikacija za pametni telefon
Primjer aplikacije Evo Things vrlo je blizu onoga što mi je trebalo uz samo male napore potrebne za dodavanje dodatnih elemenata prikaza za dovršetak trokanalnog uređaja za mjerenje temperature.
Instalacija i osnovni rad platforme EvoThings vrlo su dobro dokumentirani na web stranici Evo Things pa nema smisla ponavljati to ovdje. Ovdje ću pokriti samo posebne promjene koje sam napravio u njihovom uzorku koda za prikaz 3 kanala informacija o temperaturi, izdvojenih iz područja podataka o grebanju Bluetooth -a.
Nakon što instalirate EvoThings Workbench, ovdje ćete pronaći primjer Lightblue Bean -a (na Windows 64 -bitnim računarima):
ThisPC / Documents / EvothingsStudio_Win64_1. XX / Primjeri / Lightblue-bean-basic / app
Datoteke index.html i app.js možete zamijeniti datotekama priloženim ovom koraku. Promjene izvršene u jacascript datoteci izdvajaju 3 temperature temperature s pokretnim zarezom iz područja podataka o grebanju, te povećavaju unutarnji HTML novih elemenata stvorenih u HTML datoteci.
funkcija onDataReadSuccess (podaci) {
var temperatureData = novi Float32Array (podaci);
var bytes = new Uint8Array (podaci);
var temperature = temperatureData [0];
console.log ('Temperatura očitana:' + temperatura + '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 °";
}
Korak 6: Ograđivanje
Kućište je jednostavna 3D štampana kutija. Koristio sam Cubify Design za kreiranje dizajna, ali bilo koji program za 3D modeliranje bit će dovoljan. STL datoteka vam je priložena da biste sami ispisali. Kad bih to morao učiniti ponovo, učinio bih zidove malo debljima nego što su sada, i promijenio dizajn štipaljke koja drži ploču na mjestu. Isječci se vrlo lako lome jer je stres u ravnini malih dimenzija kao 3D štampani slojevi, što je najslabija orijentacija za 3D štampane dijelove. Zidovi su vrlo tanki pa je mehanizam za zatvaranje malo na slaboj strani. Koristio sam prozirnu traku da držim kutiju zatvorenu jer su zidovi bili previše slabi - nije elegantno, ali radi!
Korak 7: Postavke računara i Bluetooth konfiguracija
Ciklus izrade i otpremanja firmvera za Bean se odvija preko Bluetootha. Odjednom može biti samo jedna aktivna Bluetooth veza. Bean Loader je dostupan u Windows App Store -u
Osnovni ciklus koji koristim za uparivanje i povezivanje (i popravak i ponovno povezivanje kada stvari krenu naopako) je sljedeći: Sa kontrolne ploče;/Bluetooth postavke trebali biste vidjeti sljedeći ekran:
Na kraju će prozori prijaviti "Spremno za uparivanje". U ovom trenutku možete kliknuti na ikonu zrna i nakon nekoliko sekundi, Windows će od vas zatražiti da unesete lozinku. Zadana lozinka za grah je 00000
Ako je šifra unesena ispravno, Windows će pokazati da je uređaj pravilno povezan. Morate biti u ovom stanju da biste mogli programirati Bean.
Kada se uparite i povežete, upotrijebite Bean Loader za učitavanje firmvera u grah. Otkrio sam da ovo češće ne uspijeva i činilo se da je to povezano s blizinom mog računara. Pomičite Bean dok ne pronađete lokaciju koja vam odgovara. Postoje slučajevi kada ništa neće raditi i Bean Loader će predložiti ponovno uparivanje uređaja. Obično ponovni postupak uparivanja vraća vezu. Morate "Ukloniti uređaj" prije ponovnog uparivanja.
Operacija utovarivača graha jednostavna je i dobro dokumentirana na njihovoj web lokaciji. Dok je Bean Loader otvoren, odaberite stavku menija "Program" da biste otvorili dijalog za pretraživanje hex datoteke koja se nalazi u koraku firmvera ovog uputstva.
Nakon učitavanja firmvera, ZATVORITE Bean Loader tako da se veza između Bean Loader -a i Bean hardvera prekine. Možete imati samo jednu vezu odjednom. Sada otvorite radnu površinu EvoThings i pokrenite EvoThings klijenta na pametnom telefonu ili tabletu.
Kada pritisnete gumb "Pokreni", klijent EvoThings automatski će učitati html stranicu za termometar. Pritisnite dugme Connect za povezivanje sa Bean -om i trebali biste vidjeti prikazane temperature. Uspjeh!
Korak 8: Zaključak
Ako je sve pravilno izgrađeno i konfigurirano, trebali biste imati radni sistem koji će vam omogućiti praćenje temperatura s 2 sonde, kao i temperaturu BMA250 senzora na razvojnoj ploči Bean. Postoji još mnogo toga što se može učiniti s EvoThings -om - upravo sam izgrebao površinu pa ostavljam ovaj eksperiment za vas! Hvala na čitanju! Ako stvari krenu po zlu, ostavite komentare i ja ću vam pomoći gdje mogu.
Preporučuje se:
Svjetlosni termometar - vitaminizirano vrtno svjetlo (eNANO De Jardin): 6 koraka
Svjetlosni termometar - vitaminizirano vrtno svjetlo (eNANO De Jardin): Vitamizirano vrtno svjetlo sa arduino NANO -om i senzorom temperature BMP180. Naše skromno vrtno svjetlo imat će tajnu moć: moći će označiti vanjsku temperaturu pomoću koda boje i trepće. Njegov rad je sljedeći: To je
IOT pametni infracrveni termometar (COVID-19): 3 koraka
IOT pametni infracrveni termometar (COVID-19): Zbog ustanka COVID-a 2019. godine odlučili smo napraviti IOT pametni infracrveni termometar koji se povezuje sa pametnim uređajima kako bi prikazao zabilježenu temperaturu, ovo nije samo jeftinija alternativa, već i odlična nastavni modul za tehniku i IOT koji će
Koristite pametni telefon kao beskontaktni termometar / prijenosni termometar: 8 koraka (sa slikama)
Koristite pametni telefon kao beskontaktni termometar / prijenosni termometar: Mjerenje tjelesne temperature beskontaktnim / beskontaktnim poput termo pištolja. Napravio sam ovaj projekt jer je Thermo Gun sada jako skup, pa moram pronaći alternativu za izradu DIY -a. A svrha je napraviti s niskobudžetnom verzijom.SuppliesMLX90614Ardu
Infracrveni termometar na bazi Arduina - IR termometar na bazi Arduina: 4 koraka
Infracrveni termometar na bazi Arduina | Infracrveni termometar pomoću Arduina: Zdravo momci u ovim uputama napravit ćemo beskontaktni termometar pomoću arduina. Budući da je ponekad temperatura tekućine/krutine previsoka ili preniska, a onda je teško stupiti u kontakt s njom i pročitati je temperatura u tom prizoru
RuuviTag i PiZero W i Blinkt! termometar zasnovan na Bluetooth beacon -u: 3 koraka (sa slikama)
RuuviTag i PiZero W i Blinkt! termometar zasnovan na Bluetooth beacon -u: Ova instrukcija opisuje pristup čitanju podataka o temperaturi i vlažnosti iz RuuviTaga koristeći Bluetooth sa Raspberry Pi Zero W i za prikaz vrijednosti u binarnim brojevima na Pimoronijevom treptaju! pHAT.Ili kratko rečeno: kako izgraditi državu