- Reikalingi komponentai
- MAX30205 su „Arduino“ - grandinės schema
- Sąsaja „Arduino“ su MAX30205 kūno temperatūros jutikliu
- MAX30205 programavimas su „Arduino“
- „Arduino“ kūno temperatūros matuoklis - testavimas
Medicinoje ar klinikoje žmogaus kūno temperatūros matavimas yra svarbus parametras nustatant bet kurio asmens sveikatos būklę. Tačiau yra daugybė būdų, kaip pajusti temperatūrą, tačiau ne viskas tiksliai atitinka klinikinės termometrijos specifikacijas. MAX30205 temperatūros jutiklis yra specialiai sukurtas šiai programai. Atkreipkite dėmesį, kad šis jutiklis nėra bekontaktis temperatūros jutiklis. Jei ieškote bekontakčio IR temperatūros matavimo, patikrinkite MLX90614 termometrą, kurį sukūrėme anksčiau.
Šiame projekte mes sujungsime MAX30205 žmogaus kūno temperatūros jutiklį, kurį galima lengvai susieti su fitneso juosta arba naudoti medicinos tikslams. Mes naudosime „Arduino Nano“ kaip pagrindinį mikrokontrolerio bloką, taip pat naudosime 7 segmentų ekranus, kad parodytumėme temperatūrą Farenheitu. Kai žinosite, kaip naudoti jutiklį, galite jį naudoti bet kurioje iš jūsų pageidaujamų programų, taip pat galite patikrinti šį „Arduino Smartwatch“ projektą, kuris kartu su MAX30205 gali būti naudojamas asmenų temperatūros stebėjimui.
Reikalingi komponentai
- „Arduino NANO“
- „7-Seg“ rodo bendrą katodą - 3 vnt
- 74HC595 - 3 vnt
- 680R rezistorius - 24vnt
- MAX30205 modulių plokštė
- 5 V maitinimo šaltinis
- Bandomoji Lenta
- Daugybė kabliukų
- „Arduino IDE“
- Mikro USB laidas
MAX30205 su „Arduino“ - grandinės schema
Visa grandinės schema, skirta „ Arduino“ prijungti prie kūno temperatūros jutiklio MAX30205, parodyta žemiau. Grandinė yra labai paprasta, bet kadangi mes naudojome 7 segmentų ekranus, tai atrodo šiek tiek sudėtinga. 7 segmentų ekranai su „Arduino“ yra puikus būdas parodyti savo vertę didelę ir šviesią su labai mažomis sąnaudomis. Bet jei norite, šias vertes galite rodyti ir OLED ar LCD.
„Arduino Nano“ yra sujungtas su trimis 74HC595. Trys 74HC595 yra kaskadiniai, kad būtų išsaugoti papildomi „Arduino Nano“ išvesties kaiščiai, skirti sujungti tris 7 segmentų ekranus. Anksčiau mes naudojome 74HC595 su „Arduino“ daugelyje kitų projektų, tokių kaip „Arduino Clock“, „LED Board Display“, „Arduino“ gyvačių žaidimas ir kt.
„MAX30205“ modulio plokštei reikalingi papildomi rezistoriai, nes ji bendrauja su I2C protokolu. Tačiau nedaugeliui modulių plokščių nereikia papildomo traukimo, nes prisitraukimo rezistoriai jau yra modulio viduje. Todėl reikia patvirtinti, ar modulio plokštėje yra vidiniai traukimo rezistoriai, ar papildomai reikia išorinio traukimo. Šiame projekte naudojama plokštė jau turi įmontuotus traukimo rezistorius modulio plokštės viduje.
Sąsaja „Arduino“ su MAX30205 kūno temperatūros jutikliu
Čia naudojamas jutiklis yra MAX30205 iš maksimalaus integruoto. MAX30205 temperatūros jutiklis tiksliai matuoja temperatūrą 0,1 ° C tikslumu (nuo 37 ° C iki 39 ° C). Jutiklis veikia su I2C protokolu.
Modulio plokštė gali dirbti su 5 arba 3,3 V įtampa. Tačiau plokštė sukonfigūruota naudoti su 5 V darbine įtampa. Jame taip pat yra loginio lygio perjungiklis, nes pats jutiklis palaiko didžiausią 3,3 V įtampą kaip su maitinimu ar duomenų perdavimu susijusius tikslus.
Išvestyje trys 74HC595, 8 bitų poslinkio registrai naudojami norint susieti tris 7 segmentų ekranus su „Arduino NANO“. Kaiščių schema gali būti parodyta žemiau esančiame paveikslėlyje-
74HC595 kaiščių aprašymą galima pamatyti žemiau esančioje lentelėje-
QA - QH yra duomenų išvesties kaiščiai, susieti su 7 segmentų ekranais. Kadangi trys 74HC595 yra kaskadiniai, pirmojo poslinkio registro duomenų įvesties kaištis (PIN14) bus prijungtas prie „Arduino NANO“, o nuoseklaus duomenų išvesties kaištis pateiks duomenis į kitą pamainų registrą. Šis nuoseklusis duomenų ryšys bus tęsiamas iki trečiojo 74HC595.
MAX30205 programavimas su „Arduino“
Visą šios mokymo programos programą rasite šio puslapio apačioje. Šis kodas paaiškinamas taip. Pirmiausia įtraukiame standartinį „Arduino I2C“ bibliotekos antraštės failą.
# įtraukti
Pirmiau pateiktoje eilutėje bus „Arduino“ sukurta biblioteka iš „Protocentral“. Ši biblioteka turi svarbias funkcijas bendraujant su MAX30205 jutikliu. Biblioteka paimta iš žemiau pateiktos „GitHub“ nuorodos-
https://github.com/protocentral/ProtoCentral_MAX30205
Importavę biblioteką, mes apibrėžiame MAX30205 objekto duomenis, kaip parodyta žemiau-
#include "Protocentral_MAX30205.h" MAX30205 tempSensor;
Kitos dvi eilutės yra svarbios norint nustatyti parametrus. Žemiau nurodyta linija pateiks temperatūrą Farenheitu, jei ji bus teisinga. Norint rodyti rezultatą pagal Celsijų, eilutę reikia nustatyti klaidingą.
const bool fahrenheittemp = tiesa; // Aš rodau temperatūrą Farenheitu, jei norite parodyti temperatūrą Celsijaus, padarykite šį kintamąjį klaidingą.
Jei aparatinėje įrangoje naudojami įprasti 7 segmentų katodo tipo ekranai, reikia sukonfigūruoti žemiau eilutės. Padarykite tai klaidinga, jei naudojamas bendras anodas.
const bool commonCathode = true; // Aš naudoju „Common Cathode 7segment“, jei naudojate „common Anode“, tada pakeiskite vertę į „false“. const byte digit_pattern = {// 74HC595 Išorinis ryšys su 7 segmentų ekranu. Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7, // 7 0b11111110, // 8 0b11110110, // 9 0b11101110, A 0b00111110, // b 0b00011010, // C 0b01111010, // d 0b10011110, E 0b10001110, F 0b00000001 //. };
Aukščiau pateiktas masyvas naudojamas 7 segmentų ekranų skaitmeniniam šablonui saugoti.
Sąrankos funkcijoje, nustačius 74HC595 kaiščių kaiščių režimus, inicijuojamas I2C protokolas ir temperatūros jutiklio rodmenys.
void setup () {// įdėkite čia savo sąrankos kodą, kad jis būtų paleistas vieną kartą: // nustatykite nuoseklųjį prievadą 9600 Serial.begin (9600); vėlavimas (1000); // nustatykite 74HC595 valdymo kaištį kaip išvesties pinMode (latchPin, OUTPUT); // ST_CP iš 74HC595 pinMode (clkPin, OUTPUT); // SH_CP iš 74HC595 pinMode (dtPin, OUTPUT); // DS of 74HC595 // inicializuoti „I2C Libs Wire.begin ()“; // pradėti MAX30205 temperatūrą nuskaityti nuolatiniu režimu, aktyviuoju režimu tempSensor.begin (); }
Kontūre temperatūrą nuskaito funkcija tempSensor.getTemperature () ir ji saugoma kintamajame kintamajame, pavadintame temp . Po to, jei pasirenkamas Farenheito temperatūros režimas, duomenys konvertuojami iš Celsijaus į Farenheitą. Tada trys skaitmenys iš konvertuotų užfiksuotų temperatūros duomenų yra dar atskiriami į tris atskirus skaitmenis. Norėdami tai padaryti, naudojamos žemiau esančios kodų eilutės:
// saperatas 3 skaitmenys nuo esamos temperatūros (pvz., jei temp = 31,23c,) int dispDigit1 = (int) temp / 10; // skaitmuo1 3 int dispDigit2 = (int) temp% 10; // skaitmuo2 1 int dispDigit3 = (temp * 10) - ((int) temp * 10); // skaitmuo3 2
Dabar atskiri trys skaitmenys siunčiami į 7 segmentų ekranus, naudojant 74HC595 poslinkio registrus. Kadangi LSB pirmą kartą į trečiąjį 7 segmentų ekraną rodė per trečiąjį 74HC595, pirmiausia perduodamas 3 skaitmuo. Norėdami tai padaryti, užfiksuotas kaištis traukiamas žemai ir funkcija „ shiftOut“ () pateikia duomenis 74HC595 ;
Lygiai taip pat likę antrasis ir pirmasis skaitmenys taip pat siunčiami į atitinkamą 74HC595, taigi likę du 7 segmentų ekranai. Išsiuntus visus duomenis, užrakto kaištis atleidžiamas ir pakeliamas aukštai, kad būtų patvirtinta duomenų perdavimo pabaiga. Atitinkamus kodus galite pamatyti žemiau -
// rodyti skaitmenis į 3, 7 segmento ekraną. digitalWrite (latchPin, LOW); if (commonCathode == true) {shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern-digit_pattern); // 1. (skaitmuo + DP) shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); } else {shiftOut (dtPin, clkPin, LSBFIRST, ~ (digit_pattern)); shiftOut (dtPin, clkPin, LSBFIRST, ~ (skaitmeninis_pattern-skaitmeninis_pattern)); // 1. (skaitmuo + DP) shiftOut (dtPin, clkPin, LSBFIRST, ~ (skaitmeninis_pattern)); } digitalWrite (latchPin, HIGH);
„Arduino“ kūno temperatūros matuoklis - testavimas
Grandinė sukonstruota iš dviejų skydinių rinkinių, kaip matote žemiau. Kai uždedame pirštą ant jutiklio, temperatūra yra suvokiama ir išvestis rodoma 7 segmentų ekrane, čia vertė yra 92,1 * F.
Išsamų projekto darbą galite rasti žemiau esančiame vaizdo įraše. Tikiuosi, kad jums patiko kurti projektą ir sužinojote ką nors naudingo. Jei turite klausimų, palikite juos komentarų skiltyje žemiau arba naudokitės mūsų forumais.