- Potrebne komponente
- MAX30205 s Arduinom - shema spoja
- Povezivanje Arduina s senzorom tjelesne temperature MAX30205
- Programiranje MAX30205 s Arduinom
- Arduino mjerač tjelesne temperature - Ispitivanje
Za medicinske ili kliničke primjene, mjerenje tjelesne temperature čovjeka važan je parametar za određivanje zdravstvenog stanja bilo kojeg pojedinca. Međutim, postoji puno načina kako osjetiti temperaturu, ali nemaju sve točnosti kako bi se zadovoljile specifikacije kliničke termometrije. Senzor temperature MAX30205 posebno je dizajniran za ovu primjenu. Imajte na umu da ovaj senzor nije beskontaktni temperaturni senzor. Ako tražite beskontaktno mjerenje IC temperature, pogledajte MLX90614 termometar koji smo ranije dizajnirali.
U ovom ćemo projektu povezati MAX30205 senzor temperature ljudskog tijela koji se lako može povezati s fitnes trakom ili se može koristiti u medicinske svrhe. Koristit ćemo Arduino Nano kao glavnu jedinicu mikrokontrolera, a također ćemo koristiti 7-segmentne zaslone za prikaz osjetne temperature u Fahrenheitu. Jednom kada znate kako koristiti senzor, možete ga koristiti u bilo kojoj od preferiranih aplikacija, možete pogledati i ovaj projekt Arduino Smartwatch koji se u kombinaciji s MAX30205 može koristiti za praćenje temperature pojedinaca.
Potrebne komponente
- Arduino NANO
- 7-Seg prikazuje uobičajenu katodu - 3kom
- 74HC595 - 3 kom
- Otpornik 680R - 24kom
- Ploča modula MAX30205
- Napajanje od 5V
- Breadboard
- Mnogo žica
- Arduino IDE
- Mikro-USB kabel

MAX30205 s Arduinom - shema spoja
Kompletna shema spojeva za povezivanje Arduina sa senzorom tjelesne temperature MAX30205 prikazana je u nastavku. Sklop je vrlo jednostavan, ali budući da smo koristili 7-segmentne zaslone, izgleda pomalo komplicirano. 7-segmentni zasloni s Arduinom izvrstan su način da svoju vrijednost prikažete velikom i svijetlom uz vrlo nisku cijenu. No te vrijednosti možete prikazati i na OLED-u ili LCD-u ako to želite.

Arduino Nano povezan je s tri 74HC595. Tri 74HC595 kaskadno su spašena kako bi se spremile dodatne izlazne igle iz Arduino Nano-a za povezivanje tri 7-seg zaslona. Prije smo koristili 74HC595 s Arduinom u mnogim drugim projektima kao što su Arduino Clock, LED zaslon na ploči, Arduino zmijska igra itd. Da nabrojimo samo neke.
Ploča modula MAX30205 zahtijeva dodatne otpore za izvlačenje jer komunicira s I2C protokolom. Međutim, nekoliko ploča modula ne zahtijeva dodatnu izvlačenje jer su povlačni otpornici već postavljeni unutar modula. Stoga treba potvrditi ima li ploča modula unutarnje otpornike na izvlačenje ili dodatno zahtijeva vanjsko navlačenje. Ploča koja se koristi u ovom projektu već ima ugrađene povlačne otpore unutar ploče modula.
Povezivanje Arduina s senzorom tjelesne temperature MAX30205
Ovdje se koristi senzor MAX30205 iz maksimuma integriran. MAX30205 temperaturni senzor precizno mjeri temperaturu s preciznošću od 0,1 ° C (37 ° C do 39 ° C). Senzor radi s protokolom I2C.

Ploča modula može raditi s naponom od 5 ili 3,3 V. Međutim, ploča je konfigurirana za upotrebu s radnim naponom od 5V. Uključuje i logički mjenjač razine, jer sam senzor podržava najviše 3,3 V u svrhu napajanja ili komunikacije podataka.
Na izlazu se koriste tri 74HC595, 8-bitna registara pomaka za povezivanje tri 7-segmentna zaslona s Arduino NANO. Pin dijagram može biti prikazan na donjoj slici-

Pin opis 74HC595 možete vidjeti u donjoj tablici-

QA do QH su izlazne igle za podatke koje su povezane sa 7-Seg zaslonima. Budući da su tri 74HC595 kaskadno spojena, pin za unos podataka (PIN14) prvog registra smjena bit će povezan s Arduino NANO-om, a serijski izlazni pin pružit će podatke sljedećem registru smjene. Ova serijska podatkovna veza nastavit će se do treće 74HC595.
Programiranje MAX30205 s Arduinom
Kompletni program za ovaj vodič nalazi se na dnu ove stranice. Objašnjenje ovog koda je sljedeće. Prvo, uključujemo standardnu datoteku zaglavlja biblioteke Arduino I2C.
#include
Gornji redak uključivat će Arduinoovu biblioteku iz protocentrala. Ova knjižnica ima važne funkcije za komunikaciju s MAX30205 senzorom. Biblioteka je preuzeta sa donje poveznice GitHub-
https://github.com/protocentral/ProtoCentral_MAX30205
Nakon uvoza knjižnice definiramo MAX30205 podatke o objektu kao što je prikazano dolje -
#include "Protocentral_MAX30205.h" MAX30205 tempSensor;
Sljedeća su dva retka važna za postavljanje parametara. Redak u nastavku dat će temperaturu u Fahrenheitima ako je postavljeno tačno. Za prikaz rezultata u Celzijusu, redak treba postaviti lažno.
const bool fahrenheittemp = točno; // Prikazujem temperaturu u Fahrenheitu. Ako želite prikazati temperaturu u Celzijusima, učinite ovu varijablu lažnom.
Ispod crte treba konfigurirati ako se u hardveru koriste uobičajeni katodni 7-segmentni zasloni. Neka bude lažno ako se koristi uobičajena anoda.
const bool commonCathode = true; // Koristim uobičajeni segment Cathode 7 ako koristite uobičajenu Anode, a zatim vrijednost promijenite u false. const byte digit_pattern = {// 74HC595 Izlazna veza sa 7segmentnim prikazom. // 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 0b11111110, // 8 0b11110110, // 9 0b11101110, // A 0b00111110, // b 0b00011010, // C 0b01111010, // d 0b10011110, // E 0b10001110, // F 0b00000001 //. };
Gornji niz koristi se za pohranu uzorka znamenki za 7-segmentne zaslone.
U funkciji postavljanja, nakon postavljanja načina pinova od 74HC595 pinova, pokreće se očitavanje protokola I2C i osjetnika temperature.
void setup () {// ovdje stavite svoj kod za postavljanje, da se jednom pokrene: // postavite serijski port na 9600 Serial.begin (9600); kašnjenje (1000); // postavimo upravljački pin 74HC595 kao izlazni način rada (latchPin, OUTPUT); // ST_CP od 74HC595 pinMode (clkPin, OUTPUT); // SH_CP od 74HC595 pinMode (dtPin, IZLAZ); // DS od 74HC595 // inicijalizira I2C Libs Wire.begin (); // pokretanje MAX30205 očitavanje temperature u kontinuiranom načinu rada, aktivni način rada tempSensor.begin (); }
U petlji temperaturu očitava funkcija tempSensor.getTemperature () i pohranjuje u plutajuću varijablu pod nazivom temp . Nakon toga, ako je odabran temperaturni način Fahrenheita, podaci se pretvaraju iz Celzija u Fahrenheit. Zatim se tri znamenke iz pretvorenih podataka osjetne temperature dalje odvajaju u tri pojedinačne znamenke. Da biste to učinili, koriste se donji redovi kodova -
// izdvajamo 3 znamenke iz trenutne temperature (kao ako je temp = 31,23c,) int dispDigit1 = (int) temp / 10; // znamenka1 3 int dispDigit2 = (int) temp% 10; // znamenka2 1 int dispDigit3 = (temp * 10) - ((int) temp * 10); // znamenka3 2
Sada se odvojene tri znamenke šalju na 7-segmentne zaslone pomoću registara pomaka 74HC595. Budući da se LSB prvi put prikazao na trećem 7-segmentnom zaslonu putem trećeg 74HC595, treća se znamenka prvo prenosi. Da bi se to učinilo , zasun se povuče i podaci shiftOut () dostavljaju na 74HC595 ;
Na isti način, preostale druge i prve znamenke također se šalju odgovarajućim 74HC595, čime ostaju dva 7-segmentna zaslona. Nakon slanja svih podataka, igla zasuna otpušta se i povlači visoko kako bi se potvrdio kraj prijenosa podataka. Odgovarajući kodovi mogu se vidjeti u nastavku -
// prikaz znamenki na prikaz od 3, 7 segmenata. digitalWrite (latchPin, LOW); if (commonCathode == true) {shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); shiftOut (dtPin, clkPin, LSBFIRST, znamenka_uzorak-znamenka_uzorak); // 1. (Digit + DP) shiftOut (dtPin, clkPin, LSBFIRST, digit_ Pattern); } else {shiftOut (dtPin, clkPin, LSBFIRST, ~ (obrazac_znamenke)); shiftOut (dtPin, clkPin, LSBFIRST, ~ (znamenka_uzorak-znamenka_uzorak)); // 1. (Znamenka + DP) shiftOut (dtPin, clkPin, LSBFIRST, ~ (obrazac_znamenke)); } digitalWrite (latchPin, HIGH);
Arduino mjerač tjelesne temperature - Ispitivanje
Sklop je građen u dva seta ploča kao što možete vidjeti dolje. Kad stavimo prst na senzor, osjeti se temperatura i izlaz se prikaže na 7-segmentnom zaslonu, ovdje je vrijednost 92,1 * F.

Cjelovit rad projekta možete pronaći u videu dolje povezanom. Nadam se da ste uživali u izradi projekta i naučili nešto korisno. Ako imate bilo kakvih pitanja, ostavite ih u odjeljku za komentare u nastavku ili koristite naše forume.
