- Components necessaris
- MAX30205 amb Arduino - Diagrama de circuits
- Interfície Arduino amb un sensor de temperatura corporal MAX30205
- Programació de MAX30205 amb Arduino
- Mesurador de temperatura corporal Arduino: proves
Per a aplicacions mèdiques o clíniques, mesurar la temperatura del cos humà és un paràmetre important per determinar l’estat de salut de qualsevol individu. No obstant això, hi ha moltes maneres de detectar la temperatura, però no tot té la precisió per complir les especificacions de termometria clínica. El sensor de temperatura MAX30205 està dissenyat específicament per a aquesta aplicació. Tingueu en compte que aquest sensor no és un sensor de temperatura sense contacte; si esteu buscant una mesura de temperatura IR sense contacte, consulteu el termòmetre MLX90614 que hem dissenyat anteriorment.
En aquest projecte, farem una interfície amb un sensor de temperatura del cos humà MAX30205 que es pugui connectar fàcilment amb una banda de condicionament físic o que es pugui utilitzar amb finalitats mèdiques. Utilitzarem Arduino Nano com a unitat principal de microcontroladors i també utilitzarem pantalles de 7 segments per mostrar la temperatura detectada en Fahrenheit. Un cop hàgiu sabut utilitzar el sensor, podeu fer-lo servir amb qualsevol de les vostres aplicacions preferides, també podeu consultar aquest projecte Arduino Smartwatch que, combinat amb MAX30205, es pot utilitzar per controlar la temperatura de les persones.
Components necessaris
- Arduino NANO
- 7-Seg mostra un càtode comú: 3 unitats
- 74HC595 - 3 unitats
- Resistència 680R - 24 unitats
- Taula de mòduls MAX30205
- Alimentació de 5V
- Taula de pa
- Molts cables connectats
- IDE Arduino
- Un cable micro-USB

MAX30205 amb Arduino - Diagrama de circuits
A continuació es mostra el diagrama complet del circuit per connectar Arduino amb el sensor de temperatura corporal MAX30205. El circuit és molt senzill, però com que hem utilitzat pantalles de 7 segments, sembla una mica complicat. Les pantalles de 7 segments amb Arduino són una manera excel·lent de mostrar el vostre valor gran i brillant amb un cost molt baix. Però també podeu mostrar aquests valors en un OLED o LCD si ho desitgeu.

L'Arduino Nano està connectat amb tres 74HC595. Tres 74HC595 s’uneixen en cascada per estalviar pins de sortida addicionals de l’Arduino Nano per connectar tres pantalles de 7 seg. Anteriorment, hem utilitzat el 74HC595 amb Arduino en molts altres projectes com el rellotge Arduino, la pantalla de tauler LED, el joc de serps Arduino, etc. per citar alguns.
La placa del mòdul MAX30205 requereix resistències extraïbles addicionals, ja que es comunica amb el protocol I2C. Tanmateix, poques plaques de mòduls no requereixen cap tipus de tracció addicional, ja que les resistències de tracció ja es proporcionen dins del mòdul. Per tant, cal confirmar si la placa del mòdul té resistències internes de tracció o si necessita una tirada externa addicional. La placa que s’utilitza en aquest projecte ja té les resistències de tracció incorporades a la placa del mòdul.
Interfície Arduino amb un sensor de temperatura corporal MAX30205
El sensor que s’utilitza aquí és el MAX30205 de maxim integrat. El sensor de temperatura MAX30205 mesura amb precisió la temperatura amb una precisió de 0,1 ° C (37 ° C a 39 ° C). El sensor funciona amb el protocol I2C.

La placa del mòdul pot funcionar amb 5 o 3,3 V. Tot i això, la placa està configurada per utilitzar-la amb tensió de funcionament de 5V. També inclou un canvi de nivell lògic, ja que el propi sensor admet un màxim de 3,3 V com a finalitats relacionades amb la comunicació de dades o de potència.
A la sortida, s’utilitzen tres registres de desplaçament de 8 bits de 74HC595 per a la interfície de tres pantalles de 7 segments amb l’Arduino NANO. El diagrama de pins es pot mostrar a la imatge següent:

La descripció del pin del 74HC595 es pot veure a la taula següent:

La QA a QH són els pins de sortida de dades que estan connectats amb les pantalles de 7 seg. Com que tres 74HC595 estan en cascada, el pin d'entrada de dades (PIN14) del primer registre de desplaçament es connectarà amb l'Arduino NANO i el pin de sortida de dades sèrie proporcionarà les dades al registre de torns següent. Aquesta connexió de dades sèrie es continuarà fins al tercer 74HC595.
Programació de MAX30205 amb Arduino
El programa complet d’aquest tutorial es troba a la part inferior d’aquesta pàgina. L’explicació d’aquest codi és la següent. En primer lloc, incloem el fitxer de capçalera de la biblioteca Arduino I2C estàndard.
#incloure
La línia anterior inclourà la biblioteca aportada per Arduino des de protocentral. Aquesta biblioteca té funcions importants per comunicar-se amb el sensor MAX30205. La biblioteca està extreta del següent enllaç GitHub-
https://github.com/protocentral/ProtoCentral_MAX30205
Després d’importar la biblioteca, definim les dades de l’objecte MAX30205 com es mostra a continuació.
#include "Protocentral_MAX30205.h" MAX30205 tempSensor;
Les dues línies següents són importants per establir els paràmetres. La línia següent indicarà la temperatura en Fahrenheit si es defineix com a veritable. Per mostrar el resultat en centígrads, cal definir la línia com a falsa.
const bool fahrenheittemp = cert; // Estic mostrant la temperatura en Fahrenheit, si voleu mostrar la temperatura en centígrads, feu que aquesta variable sigui falsa.
S’ha de configurar la línia inferior si s’utilitzen pantalles de 7 segments de tipus càtode comuns al maquinari. Feu-lo fals si s’utilitza ànode comú.
const bool commonCathode = true; // Estic fent servir el segment catòdic comú 7 si utilitzeu ànode comú i canvieu el valor per fals. const byte digit_pattern = {// 74HC595 Connexió de sortida amb visualització de 7 segments. // 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 //. };
La matriu anterior s’utilitza per emmagatzemar el patró de dígits per a les pantalles de 7 segments.
A la funció de configuració, després d’establir els modes pin dels pins 74HC595, s’inicialitza el protocol I2C i la lectura del sensor de temperatura.
void setup () {// poseu aquí el vostre codi de configuració per executar-lo una vegada: // configureu el port sèrie a 9600 Serial.begin (9600); retard (1000); // configureu el pin de control 74HC595 com pinMode de sortida (latchPin, OUTPUT); // ST_CP de 74HC595 pinMode (clkPin, OUTPUT); // SH_CP de 74HC595 pinMode (dtPin, OUTPUT); // DS de 74HC595 // inicialitza I2C Libs Wire.begin (); // iniciar la lectura de la temperatura MAX30205 en mode continu, mode actiu tempSensor.begin (); }
Al bucle, la temperatura la llegeix la funció tempSensor.getTemperature () i s’emmagatzema en una variable flotant anomenada temp . Després d'això, si se selecciona el mode de temperatura Fahrenheit, les dades es convertiran de Celsius a Fahrenheit. A continuació, tres dígits de les dades de temperatura detectada convertides se separen en tres dígits individuals. Per fer-ho, a continuació s’utilitzen línies de codis-
// saperate 3 dígits de la temperatura actual (com si temp = 31.23c,) int dispDigit1 = (int) temp / 10; // digit1 3 int dispDigit2 = (int) temp% 10; // digit2 1 int dispDigit3 = (temp * 10) - ((int) temp * 10); // dígit3 2
Ara, els tres dígits separats s’envien a les pantalles de 7 segments mitjançant els registres de desplaçament 74HC595. Com que el LSB va aparèixer per primera vegada al tercer display de 7 segments mitjançant el tercer 74HC595, es transmet per primer cop el tercer dígit. Per fer-ho, el passador bloquejat s’estira cap avall i les dades s’envien al 74HC595 mitjançant la funció shiftOut ();
De la mateixa manera, el segon i el primer dígit restants també s'envien al 74HC595 respectiu, quedant així dues pantalles de 7 segments. Després d’enviar totes les dades, es deixa anar el passador de retenció i s’estira cap amunt per confirmar el final de la transmissió de dades. Els codis respectius es poden veure a continuació -
// mostra els dígits en la visualització de 3, 7 segments. digitalWrite (latchPin, LOW); if (commonCathode == true) {shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern-digit_pattern); // 1. (Digit + DP) shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); } else {shiftOut (dtPin, clkPin, LSBFIRST, ~ (model_digital)); shiftOut (dtPin, clkPin, LSBFIRST, ~ (model_digital-model_digit)); // 1. (Digit + DP) shiftOut (dtPin, clkPin, LSBFIRST, ~ (patró_digit)); } digitalWrite (latchPin, HIGH);
Mesurador de temperatura corporal Arduino: proves
El circuit es construeix en dos conjunts de taules de presentació, tal com es pot veure a continuació. Quan col·loquem el dit sobre el sensor, es detecta la temperatura i la sortida es mostra en una pantalla de 7 segments, aquí el valor és 92,1 * F.

El funcionament complet del projecte es pot trobar al vídeo enllaçat a continuació. Espero que us hagi agradat construir el projecte i aprendre alguna cosa útil. Si teniu cap pregunta, deixeu-les a la secció de comentaris o utilitzeu els nostres fòrums.
