Sadržaj:

Bluetooth termometar: 8 koraka
Bluetooth termometar: 8 koraka

Video: Bluetooth termometar: 8 koraka

Video: Bluetooth termometar: 8 koraka
Video: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Studeni
Anonim
Bluetooth termometar
Bluetooth termometar
Bluetooth termometar
Bluetooth termometar
Bluetooth termometar
Bluetooth termometar

Ovo uputstvo detaljno opisuje izradu jednostavnog dvokanalnog termometra pomoću 100K termistorskih sondi, Bluetooth modula i pametnog telefona. Bluetooth modul je LightBlue Bean koji je osmišljen kako bi pojednostavio razvoj Bluetooth aplikacije niske energije korištenjem poznatog Arduino okruženja 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 projekta. Nemam Mac (šokantno znam!) Koji ograničava moju sposobnost razvoja iPhone aplikacije, a nemam vremena za dešifriranje novih Microsoftovih alata koji očito podržavaju razvoj različitih platformi za iOS i Android. Napravio 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 vrlo jednostavan za korištenje koji je izazov Bluetooth-a-iPhone pretvorio u odličnu šetnju. I ja volim kolač!

Sveukupno sam smatrao da je kombinacija Lightblue Bean i EvoThings vrlo praktično rješenje s malim ulaganjem vremena.

Korak 1: Stvari koje će vam trebati

Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati
Stvari koje će vam trebati

Koristio sam komercijalno dostupnu termistorsku sondu za jedan kanal jer sam htio da je termistor zatvoren 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. Slobodno možete koristiti bilo koji termistor koji želite i možete napraviti vlastite sonde od toplinski vodljivih epoksidnih i plastičnih slamki/miješalica za kavu. Ono što slijedi je ono što sam ja koristio - to nije namjera da bude popis s propisima!

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 3,5 mm utičnice sa starog računala pa sam odrezao utikač Extech sonde i zamijenio ga utičnicama od 3,5 mm. To biste trebali izbjegavati, samo upotrijebite utičnice od 2,5 mm ili upotrijebite gotov adapter za stereo adapter od 2,5 mm do 3,5 mm.
  • Zrno termistora 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 5% otpornike, ali otpornici veće tolerancije općenito su manje osjetljivi na temperaturu i pružit će bolje performanse. Za to je dobra tolerancija 1%.
  • Lemilica i lemljenje
  • Rezači žice i neke male duljine priključne žice promjera 26 ili 28.

Softver i firmver

  • Za programiranje Bean -a trebat će vam 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
  • Radni stol EvoThings za aplikaciju za pametne telefone dostupan je ovdje. Tamo je dostupna i sva dokumentacija za početak rada. Vrlo je dobro dokumentirano.

Korak 2: Krug i električna konstrukcija

Krug i električna konstrukcija
Krug i električna konstrukcija
Krug i električna konstrukcija
Krug i električna konstrukcija
Krug i električna konstrukcija
Krug 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 100K otpornikom u drugoj. Podijeljeni napon dovodi se u analogni ulazni kanal na grahu i uzorkuje se u firmveru.

Da bih izgradio sklop, izvadio sam 3,5 mm audio priključke sa starog pokvarenog računala. Multimetar je korišten za određivanje dviju točaka na PCB -u koje odgovaraju vrhu i prvom pojasu sonde. Žice su lemljene na audio priključcima i na grah kao što je prikazano na slikama. Audio utičnice su zalijepljene na prototip područja graha 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

Koeficijenti sonde
Koeficijenti sonde

Koliko god bila uobičajena Extech sonda, Steinhart-Hart koeficijenti nisu objavljeni nigdje što sam mogao pronaći. Srećom, postoji mrežni kalkulator koji će odrediti koeficijente iz 3 mjerenja temperature koje navedete.https://www.thinksrs.com/downloads/programs/Therm%2…

Koje su folije osnovni postupak kojim sam došao do koeficijenata. Neće zaraditi bodove za stil, ali dovoljno dobar da možete reći da ste +/- 1 stupanj točni (s moje strane ukupno suženje palca)…. ovisno o točnosti vašeg referentnog termometra i multimetra, naravno! Moj multimetar je jeftina jedinica bez naziva marke 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 s 3 temperature.

  • U blizini smrzavanja dodavanjem leda u čašu vode i miješanjem dok se temperatura ne stabilizira. Kad se stabilizira, 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 svom višemetaru.
  • Stavite sondu u čašu vruće vode i zabilježite otpor.

    Temperatura Otpornost
    5.6 218 tisuća
    21.0 97,1K
    38.6 43.2

Cijeli ovaj proces pomalo je situacija s piletinom i jajima jer vam je potreban kalibrirani termometar za snimanje temperature i umjereni višemetar za snimanje otpora. Pogreške ovdje rezultirat će netočnošću mjerenja temperature koje napravite, ali za moje potrebe, +/- 1 stupanj je više nego što mi treba.

Uključivanjem ovih zabilježenih vrijednosti u web kalkulator dobivate sljedeće:

Slika
Slika

Koeficijenti (A, B i C) uključeni su u Stenhart-Hartovu jednadžbu kako bi se odredila temperatura od uzorkovane vrijednosti otpora. Jednadžba je definirana kao (izvor: wikipedia.com)

Slika
Slika

Gdje je T = temperatura u Kelvinima

A, B i C su koeficijenti Steinhart-Hartove jednadžbe koje pokušavamo odrediti R je otpor pri temperaturi T

Proračun će izvršiti ovaj izračun.

Korak 4: Firmware

Firmware
Firmware
Firmware
Firmware

Naponi termistora uzorkuju se, 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 pozivaju 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 otpornika razdjelnika važno je pitanje. Izmjerite stvarnu vrijednost 100K razdjelnog otpornika i upotrijebite izmjerenu vrijednost u jednadžbi kako biste izbjegli nepotreban izvor pogreške zbog tolerancije otpornika.

Nakon što se izračuna vrijednost otpora, vrijednost otpora pretvara se u temperaturu pomoću Steinhart-Hartove jednadžbe. Ova je jednadžba detaljno opisana na Wikipediji.

Budući da imamo 2 sonde, bilo je logično inkapsulirati funkcionalnost sonde u C ++ klasu.

Razred obuhvaća koeficijente Steinhart-Hartove jednadžbe, nazivnu vrijednost otpora razdjelnika i analogni priključak na koji je termistor spojen. Jedna 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 Celzijusu.

Snaga Lightblue Bean -a očita je u činjenici da je sva Bluetooth funkcija bitno implementirana u 1 redak koda koji zapisuje 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 ogrebotinama može sadržavati 20 bajtova. Koristimo ih samo 12. Postoji 5 područja s podacima o ogrebotinama pa možete prenijeti do 100 bajtova podataka pomoću podataka o ogrebotinama.

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 način rada 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 razdoblja spavanja ili kad god je uspostavljena Bluetooth veza s grahom. Funkcija WakeOnConnect je omogućena izričitim pozivanjem Bean.enableWakeOnConnect (true) tijekom 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.

Korak 5: Aplikacija za pametni telefon

Aplikacija za pametni telefon
Aplikacija za pametni telefon

Uzorak 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 obuhvatiti samo posebne promjene koje sam napravio u njihovom uzorku koda za prikaz 3 kanala informacija o temperaturi, izdvojenih iz Bluetooth podataka o grebanju.

Nakon što ste instalirali EvoThings Workbench, ovdje ćete pronaći primjer Lightblue Bean (na 64 -bitnim računalima sa sustavom Windows):

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 napravljene u jacascript datoteci izdvajaju 3 vrijednosti temperature s pomičnim zarezom koje tvore područje podataka o grebanju i 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 ('temperatura1'). innerHTML = temperatureData [1].toFixed (2) + "C °";

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

}

Korak 6: Ograđivanje

Kućište
Kućište
Kućište
Kućište
Kućište
Kućište
Kućište
Kućište

Kućište je jednostavna kutija s 3D printom. Koristio sam Cubify Design za stvaranje dizajna, ali bilo koji program za 3D modeliranje bit će dovoljan. STL datoteka je priložena za ispis vlastite. Kad bih to morao ponoviti, učinio bih zidove malo debljima nego što su sada i promijenio dizajn isječaka koji drži ploču na mjestu. Isječci se vrlo lako puknu jer je stres u ravnini smanjenog oblika kao 3D ispisani slojevi, što je najslabija orijentacija za 3D ispisane dijelove. Zidovi su vrlo tanki pa je mehanizam za zatvaranje malo na slaboj strani. Koristio sam prozirnu traku kako bih držao kutiju zatvorenom jer su zidovi bili previše slabi - nije elegantno, ali radi!

Korak 7: Postavke računala i Bluetooth konfiguracija

Postavke računala i Bluetooth konfiguracija
Postavke računala i Bluetooth konfiguracija

Ciklus izrade i prijenosa firmvera za Bean radi se putem Bluetootha. Odjednom može biti samo jedna aktivna Bluetooth veza. Bean Loader dostupan je u Windows App Storeu

Osnovni ciklus koji koristim za uparivanje i povezivanje (i popravak i ponovno povezivanje kad stvari krenu naopako) je sljedeći: S upravljačke ploče;/postavke Bluetooth, trebali biste vidjeti sljedeći zaslon:

Slika
Slika

Na kraju će prozori prijaviti "Spremno za uparivanje". U ovom trenutku možete kliknuti ikonu graha i nakon nekoliko sekundi Windows će od vas zatražiti da unesete zaporku. Zadana lozinka za grah je 00000

Slika
Slika

Ako je lozinka ispravno unesena, Windows će pokazati da je uređaj ispravno povezan. Morate biti u ovom stanju da biste mogli programirati grah.

Slika
Slika

Nakon što ste upareni i povezani, 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čunala. Pomičite Bean dok ne pronađete mjesto koje 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. Prije ponovnog uparivanja morate "Ukloniti uređaj".

Slika
Slika

Operacija utovarivača graha jednostavna je i dobro dokumentirana na njihovom web mjestu. Kad je Bean Loader otvoren, odaberite stavku izbornika "Program" za otvaranje dijaloga za pregledavanje šesterokutne datoteke navedene u koraku firmvera ove upute.

Slika
Slika

Nakon što se učita firmver, ZATVORITE Bean Loader tako da se prekine veza između Bean Loader -a i Bean hardvera. Možete imati samo jednu vezu odjednom. Sada otvorite radnu površinu EvoThings i pokrenite EvoThings klijenta na pametnom telefonu ili tabletu.

Slika
Slika

Kada pritisnete gumb "Pokreni", klijent EvoThings automatski će učitati html stranicu za termometar. Pritisnite gumb Connect za spajanje na Bean i trebali biste vidjeti prikazane temperature. Uspjeh!

Korak 8: Zaključak

Zaključak
Zaključak

Ako je sve pravilno izgrađeno i konfigurirano, trebali biste imati radni sustav koji će vam omogućiti praćenje temperatura s 2 sonde, kao i temperaturu BMA250 senzora na razvojnoj ploči Bean. EvoThings može učiniti još mnogo toga - upravo sam izgrebao površinu pa ovo eksperimentiranje ostavljam vama! Hvala na čitanju! Ako stvari krenu po zlu, ostavite komentare i ja ću vam pomoći gdje mogu.

Preporučeni: