- అవసరమైన భాగాలు
- ఆర్డునో - సర్క్యూట్ రేఖాచిత్రంతో MAX30205
- MAX30205 శరీర ఉష్ణోగ్రత సెన్సార్తో ఆర్డునోను ఇంటర్ఫేసింగ్
- ఆర్డునోతో MAX30205 ప్రోగ్రామింగ్
- Arduino శరీర ఉష్ణోగ్రత మీటర్ - పరీక్ష
వైద్య లేదా క్లినికల్ అనువర్తనాల కోసం, ఏదైనా వ్యక్తి యొక్క ఆరోగ్య పరిస్థితిని నిర్ణయించడానికి మానవ శరీర ఉష్ణోగ్రతను కొలవడం ఒక ముఖ్యమైన పారామితి. అయినప్పటికీ, ఉష్ణోగ్రతను గ్రహించడానికి చాలా మార్గాలు ఉన్నాయి కాని క్లినికల్ థర్మోమెట్రీ స్పెసిఫికేషన్లను తీర్చడానికి ప్రతిదానికీ ఖచ్చితత్వం లేదు. MAX30205 ఉష్ణోగ్రత సెన్సార్ ఈ అనువర్తనం కోసం ప్రత్యేకంగా రూపొందించబడింది. ఈ సెన్సార్ కాంటాక్ట్లెస్ ఉష్ణోగ్రత సెన్సార్ కాదని గమనించండి, మీరు కాంటాక్ట్లెస్ ఐఆర్ ఉష్ణోగ్రత కొలత కోసం చూస్తున్నట్లయితే, మేము ఇంతకు ముందు రూపొందించిన MLX90614 థర్మామీటర్ను చూడండి.
ఈ ప్రాజెక్ట్లో, ఫిట్నెస్ బ్యాండ్తో సులభంగా ఇంటర్ఫేస్ చేయగల లేదా వైద్య ప్రయోజనాల కోసం ఉపయోగించగల MAX30205 మానవ శరీర ఉష్ణోగ్రత సెన్సార్ను మేము ఇంటర్ఫేస్ చేస్తాము. మేము ఆర్డునో నానోను ప్రధాన మైక్రో కంట్రోలర్ యూనిట్గా ఉపయోగిస్తాము మరియు ఫారెన్హీట్లో ఇంద్రియ ఉష్ణోగ్రతను చూపించడానికి 7-సెగ్మెంట్ డిస్ప్లేలను కూడా ఉపయోగిస్తాము. సెన్సార్ను ఎలా ఉపయోగించాలో మీకు తెలిస్తే, మీరు ఇష్టపడే ఏదైనా అప్లికేషన్ను ఉపయోగించవచ్చు, మీరు MAX30205 తో కలిపి ఈ ఆర్డునో స్మార్ట్వాచ్ ప్రాజెక్ట్ను కూడా చూడవచ్చు, ఇది వ్యక్తుల ఉష్ణోగ్రతను పర్యవేక్షించడానికి ఉపయోగపడుతుంది.
అవసరమైన భాగాలు
- ఆర్డునో నానో
- 7-సెగ్ సాధారణ కాథోడ్ను ప్రదర్శిస్తుంది - 3 పిసిలు
- 74 హెచ్సి 595 - 3 పిసిలు
- 680 ఆర్ రెసిస్టర్ - 24 పిసిలు
- MAX30205 మాడ్యూల్ బోర్డు
- 5 వి విద్యుత్ సరఫరా
- బ్రెడ్బోర్డ్
- హుక్ అప్ వైర్లు బోలెడంత
- Arduino IDE
- మైక్రో-యుఎస్బి కేబుల్
ఆర్డునో - సర్క్యూట్ రేఖాచిత్రంతో MAX30205
శరీర ఉష్ణోగ్రత సెన్సార్ MAX30205 తో ఆర్డునోను కనెక్ట్ చేయడానికి పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది. సర్క్యూట్ చాలా సులభం, కానీ మేము 7-సెగ్మెంట్ డిస్ప్లేలను ఉపయోగించినందున, ఇది కొంచెం క్లిష్టంగా కనిపిస్తుంది. ఆర్డునోతో 7-సెగ్మెంట్ డిస్ప్లేలు మీ విలువను చాలా తక్కువ ఖర్చుతో పెద్దగా మరియు ప్రకాశవంతంగా ప్రదర్శించడానికి ఒక గొప్ప మార్గం. మీరు కోరుకుంటే మీరు ఈ విలువలను OLED లేదా LCD లో కూడా ప్రదర్శించవచ్చు.
Arduino నానో మూడు 74HC595 తో అనుసంధానించబడి ఉంది. మూడు 7-సెగ్ డిస్ప్లేలను అనుసంధానించడానికి ఆర్డునో నానో నుండి అదనపు అవుట్పుట్ పిన్లను సేవ్ చేయడానికి మూడు 74 హెచ్సి 595 కలిసి ఉంటాయి. ఆర్డునో క్లాక్, ఎల్ఈడి బోర్డ్ డిస్ప్లే, ఆర్డునో పాము గేమ్ మొదలైన అనేక ఇతర ప్రాజెక్టులలో ఆర్డునోతో 74 హెచ్ సి 595 ను గతంలో ఉపయోగించాము.
MAX30205 మాడ్యూల్ బోర్డ్ I2C ప్రోటోకాల్తో కమ్యూనికేట్ చేస్తున్నందున అదనపు పుల్-అప్ రెసిస్టర్లు అవసరం. అయినప్పటికీ, మాడ్యూల్ లోపల పుల్-అప్ రెసిస్టర్లు ఇప్పటికే ఇవ్వబడినందున కొన్ని మాడ్యూల్ బోర్డులకు అదనపు పుల్అప్ అవసరం లేదు. అందువల్ల, మాడ్యూల్ బోర్డ్ అంతర్గత పుల్-అప్ రెసిస్టర్లను కలిగి ఉందో లేదో ధృవీకరించాలి లేదా దీనికి అదనంగా బాహ్య పుల్ అవసరం. ఈ ప్రాజెక్ట్లో ఉపయోగించిన బోర్డు ఇప్పటికే మాడ్యూల్ బోర్డు లోపల ఇన్బిల్ట్ పుల్-అప్ రెసిస్టర్లను కలిగి ఉంది.
MAX30205 శరీర ఉష్ణోగ్రత సెన్సార్తో ఆర్డునోను ఇంటర్ఫేసింగ్
ఇక్కడ ఉపయోగించిన సెన్సార్ మాగ్జిమ్ ఇంటిగ్రేటెడ్ నుండి MAX30205. MAX30205 ఉష్ణోగ్రత సెన్సార్ 0.1 ° C ఖచ్చితత్వంతో (37 ° C నుండి 39 ° C) ఉష్ణోగ్రతని ఖచ్చితంగా కొలుస్తుంది. సెన్సార్ I2C ప్రోటోకాల్తో పనిచేస్తుంది.
మాడ్యూల్ బోర్డు 5 లేదా 3.3 వితో పనిచేయగలదు. అయితే, బోర్డు 5 వి ఆపరేటింగ్ వోల్టేజ్తో ఉపయోగించడానికి కాన్ఫిగర్ చేయబడింది. ఇది లాజిక్ స్థాయి షిఫ్టర్ను కూడా కలిగి ఉంటుంది, ఎందుకంటే సెన్సార్ శక్తి లేదా డేటా కమ్యూనికేషన్-సంబంధిత ప్రయోజనాల కోసం గరిష్టంగా 3.3V కి మద్దతు ఇస్తుంది.
అవుట్పుట్లో, మూడు 74 హెచ్సి 595, 8-బిట్ షిఫ్ట్ రిజిస్టర్లు మూడు 7-సెగ్మెంట్ డిస్ప్లేలను ఆర్డునో నానోతో ఇంటర్ఫేస్ చేయడానికి ఉపయోగిస్తారు. పిన్ రేఖాచిత్రాన్ని క్రింది చిత్రంలో చూపవచ్చు-
74HC595 యొక్క పిన్ వివరణ క్రింది పట్టికలో చూడవచ్చు-
QA నుండి QH వరకు 7-సెగ్ డిస్ప్లేలతో అనుసంధానించబడిన డేటా అవుట్పుట్ పిన్స్. మూడు 74HC595 కలిసి క్యాస్కేడ్ చేయబడినందున, మొదటి షిఫ్ట్ రిజిస్టర్ యొక్క డేటా ఇన్పుట్ పిన్ (PIN14) Arduino NANO తో అనుసంధానించబడుతుంది మరియు సీరియల్ డేటా అవుట్పుట్ పిన్ తదుపరి షిఫ్ట్ రిజిస్టర్కు డేటాను అందిస్తుంది. ఈ సీరియల్ డేటా కనెక్షన్ మూడవ 74HC595 వరకు కొనసాగుతుంది.
ఆర్డునోతో MAX30205 ప్రోగ్రామింగ్
ఈ ట్యుటోరియల్ కోసం పూర్తి ప్రోగ్రామ్ ఈ పేజీ దిగువన చూడవచ్చు. ఈ కోడ్ యొక్క వివరణ క్రింది విధంగా ఉంది. మొదట, మేము ప్రామాణిక Arduino I2C లైబ్రరీ హెడర్ ఫైల్ను చేర్చుతాము.
# చేర్చండి
పై వరుసలో ప్రోటోసెంట్రల్ నుండి ఆర్డునో కంట్రిబ్యూటెడ్ లైబ్రరీ ఉంటుంది. ఈ లైబ్రరీకి MAX30205 సెన్సార్తో కమ్యూనికేట్ చేయడానికి ముఖ్యమైన విధులు ఉన్నాయి. లైబ్రరీ క్రింద ఉన్న గిట్హబ్ లింక్-
https://github.com/protocentral/ProtoCentral_MAX30205
లైబ్రరీని దిగుమతి చేసిన తరువాత, మేము క్రింద చూపిన విధంగా MAX30205 ఆబ్జెక్ట్ డేటాను నిర్వచించాము-
# చేర్చండి "ప్రోటోసెంట్రల్_ఎమ్ఎక్స్ 30205.హెచ్" MAX30205 టెంప్ సెన్సార్;
పారామితులను సెట్ చేయడానికి తదుపరి రెండు పంక్తులు ముఖ్యమైనవి. ఈ క్రింది పంక్తి నిజమైతే ఫారెన్హీట్లో ఉష్ణోగ్రతను అందిస్తుంది. సెల్సియస్లో ఫలితాన్ని చూపించడానికి, పంక్తిని తప్పుగా సెట్ చేయాలి.
const bool fahrenheittemp = నిజం; // నేను ఫారెన్హీట్లో ఉష్ణోగ్రతను చూపిస్తున్నాను, మీరు సెల్సియస్లో ఉష్ణోగ్రతను చూపించాలనుకుంటే ఈ వేరియబుల్ను తప్పుగా చేయండి.
హార్డ్వేర్లో సాధారణ కాథోడ్ రకం 7-సెగ్మెంట్ డిస్ప్లేలు ఉపయోగించబడుతుంటే దిగువ పంక్తిని కాన్ఫిగర్ చేయాలి. సాధారణ యానోడ్ ఉపయోగించినట్లయితే దానిని తప్పుగా చేయండి.
const bool commonCathode = నిజం; // నేను కామన్ కాథోడ్ 7 సెగ్మెంట్ను ఉపయోగిస్తున్నాను మీరు కామన్ యానోడ్ ఉపయోగిస్తే విలువను తప్పుడుగా మార్చండి. const byte digit_pattern = {// 74HC595 7 సెగ్మెంట్ డిస్ప్లేతో అవుట్పిన్ కనెక్షన్. // Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 // abcdefg DP 0b11111100, // 0 0b01100000, // 1 0b11011010, // 2 0b11110010, // 3 0b01100110, // 4 0b10110110, // 5 0b10111110, // 6 0b11100000. };
పై శ్రేణి 7-సెగ్మెంట్ డిస్ప్లేల కోసం అంకెల నమూనాను నిల్వ చేయడానికి ఉపయోగించబడుతుంది.
సెటప్ ఫంక్షన్లో, 74HC595 పిన్ల పిన్ మోడ్లను సెట్ చేసిన తర్వాత, I2C ప్రోటోకాల్ మరియు ఉష్ణోగ్రత సెన్సార్ రీడింగ్ ప్రారంభించబడుతుంది.
శూన్య సెటప్ () {// ఒకసారి సెటప్ చేయడానికి మీ సెటప్ కోడ్ను ఇక్కడ ఉంచండి: // సీరియల్ పోర్ట్ను 9600 సీరియల్.బెగిన్ (9600) వద్ద సెట్ చేయండి; ఆలస్యం (1000); // 74HC595 కంట్రోల్ పిన్ను అవుట్పుట్ పిన్మోడ్ (లాచ్పిన్, U ట్పుట్) గా సెట్ చేయండి; 74HC595 పిన్మోడ్ యొక్క // ST_CP (clkPin, OUTPUT); 74HC595 పిన్మోడ్ యొక్క // SH_CP (dtPin, OUTPUT); 74HC595 యొక్క // DS // I2C లిబ్స్ వైర్.బెగిన్ () ను ప్రారంభించండి; // కంటిన్యూస్ మోడ్లో చదివిన MAX30205 ఉష్ణోగ్రత ప్రారంభించండి, యాక్టివ్ మోడ్ tempSensor.begin (); }
లూప్లో, ఉష్ణోగ్రత tempSensor.getTemperature () చేత చదవబడుతుంది మరియు టెంప్ అనే ఫ్లోట్ వేరియబుల్లో నిల్వ చేయబడుతుంది. ఆ తరువాత, ఫారెన్హీట్ ఉష్ణోగ్రత మోడ్ను ఎంచుకుంటే, డేటా సెల్సియస్ నుండి ఫారెన్హీట్గా మార్చబడుతుంది. అప్పుడు, మార్చబడిన గ్రహించిన ఉష్ణోగ్రత డేటా నుండి మూడు అంకెలు మూడు వ్యక్తిగత అంకెలుగా విభజించబడతాయి. ఇది చేయుటకు, క్రింద ఉన్న సంకేతాల పంక్తులు ఉపయోగించబడతాయి-
// ప్రస్తుత ఉష్ణోగ్రత నుండి 3 అంకెలను భద్రపరచండి (టెంప్ = 31.23 సి, వంటిది) int dispDigit1 = (int) temp / 10; // అంకెల 1 3 పూర్ణాంకం dispDigit2 = (పూర్ణాంకానికి) తాత్కాలిక% 10; // digit2 1 int dispDigit3 = (temp * 10) - ((int) temp * 10); // అంకె 3 2
ఇప్పుడు, వేరు చేయబడిన మూడు అంకెలు 74HC595 షిఫ్ట్ రిజిస్టర్లను ఉపయోగించి 7-సెగ్మెంట్ డిస్ప్లేలకు పంపబడతాయి. LSB మొదట మూడవ 74HC595 ద్వారా మూడవ 7-సెగ్మెంట్ డిస్ప్లేలో చూపించినందున, 3 వ అంకె మొదట ప్రసారం చేయబడుతుంది. ఇది చేయుటకు, లాచ్డ్ పిన్ తక్కువగా లాగబడుతుంది మరియు షిఫ్ట్ ut ట్ () ఫంక్షన్ ద్వారా డేటా 74HC595 కు సమర్పించబడుతుంది ;
అదే విధంగా, మిగిలిన రెండవ మరియు మొదటి అంకెలు కూడా సంబంధిత 74HC595 కు పంపబడతాయి, తద్వారా మిగిలిన రెండు 7-సెగ్మెంట్ డిస్ప్లేలు. మొత్తం డేటాను పంపిన తరువాత, డేటా ట్రాన్స్మిషన్ ముగింపును నిర్ధారించడానికి గొళ్ళెం పిన్ విడుదల చేయబడుతుంది మరియు అధికంగా లాగబడుతుంది. సంబంధిత సంకేతాలు క్రింద చూడవచ్చు -
// అంకెలను 3, 7 సెగ్మెంట్ డిస్ప్లేగా ప్రదర్శించండి. డిజిటల్ రైట్ (లాచ్ పిన్, తక్కువ); if (commonCathode == true) {shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern-digit_pattern); // 1.. } else {shiftOut (dtPin, clkPin, LSBFIRST, ~ (digit_pattern)); shiftOut (dtPin, clkPin, LSBFIRST, ~ (digit_pattern-digit_pattern)); // 1.. } డిజిటల్ రైట్ (లాచ్ పిన్, హై);
Arduino శరీర ఉష్ణోగ్రత మీటర్ - పరీక్ష
మీరు క్రింద చూడగలిగే విధంగా సర్క్యూట్ రెండు సెట్ల బ్రెడ్బోర్డులలో నిర్మించబడింది. మేము సెన్సార్పై వేలు ఉంచినప్పుడు, ఉష్ణోగ్రత గ్రహించబడుతుంది మరియు అవుట్పుట్ 7 సెగ్మెంట్ డిస్ప్లేగా చూపబడుతుంది, ఇక్కడ విలువ 92.1 * F.
ప్రాజెక్ట్ యొక్క పూర్తి పనిని క్రింద లింక్ చేసిన వీడియోలో చూడవచ్చు. మీరు ప్రాజెక్ట్ను నిర్మించడాన్ని ఆస్వాదించారని మరియు ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము. మీకు ఏవైనా ప్రశ్నలు ఉంటే, వాటిని క్రింది వ్యాఖ్య విభాగంలో ఉంచండి లేదా మా ఫోరమ్లను ఉపయోగించండి.