MAX30102: ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್ ಮತ್ತು Arduino ಗಾಗಿ ಆಕ್ಸಿಮೀಟರ್ ಮಾಡ್ಯೂಲ್

MAX30102

ಈ ಸಮಯದಲ್ಲಿ, ನಾವು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯಲ್ಲಿ ತೋರಿಸಿದ್ದೇವೆ ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಘಟಕಗಳು ಇದರೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ Arduino ಅಥವಾ ಹೊಂದಾಣಿಕೆಯಂತಹ ಬೋರ್ಡ್‌ಗಳು, ಹಾಗೆಯೇ ಅನೇಕ ಇತರ ತಯಾರಕ ಅಥವಾ DIY ಉದ್ಯೋಗಗಳಿಗೆ. ಈಗ ನಾವು ನಿಮಗೆ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಪರಿಚಯಿಸುತ್ತೇವೆ MAX30102, ಇದು ನಾಡಿ ಮತ್ತು ರಕ್ತದ ಆಮ್ಲಜನಕವನ್ನು ಅಳೆಯಲು ಸಂವೇದಕವನ್ನು ಒಳಗೊಂಡಿದೆ.

ಈ ರೀತಿಯಾಗಿ, ನೀವು ಸ್ವಯಂ ನಿರ್ಮಿತ ಚಟುವಟಿಕೆಯ ಕಡಗಗಳು ಅಥವಾ ಹಾರ್ಡ್‌ವೇರ್‌ನಂತಹ ಧರಿಸಬಹುದಾದ ವಸ್ತುಗಳನ್ನು ಸಹ ರಚಿಸಬಹುದು ಆರೋಗ್ಯ ಸ್ಥಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ ಈ ಸಾಧನದಲ್ಲಿ ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್ ಮತ್ತು ಆಕ್ಸಿಮೀಟರ್‌ನ ಏಕೀಕರಣದಿಂದಾಗಿ ವ್ಯಕ್ತಿಯ ಬಯೋಮೆಟ್ರಿಕ್ ಡೇಟಾ ಅಥವಾ ಟೆಲಿಮೆಟ್ರಿಯನ್ನು ಒದಗಿಸುವುದು...

ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್ ಎಂದರೇನು? ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?

Un ನಾಡಿ ಸಂವೇದಕ ಅಥವಾ ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್ ಇದು ನೈಜ ಸಮಯದಲ್ಲಿ ವ್ಯಕ್ತಿಯ ಹೃದಯ ಬಡಿತವನ್ನು ಅಳೆಯಲು ಬಳಸುವ ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಸಾಧನವಾಗಿದೆ. ತರಬೇತಿಯ ಸಮಯದಲ್ಲಿ ಅಥವಾ ದೈನಂದಿನ ಆಧಾರದ ಮೇಲೆ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಪ್ರಯತ್ನವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಇದನ್ನು ಮುಖ್ಯವಾಗಿ ಕ್ರೀಡಾ ಕ್ಷೇತ್ರದಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್‌ಗಳು ಕ್ರೀಡಾಪಟುಗಳಲ್ಲಿ ಜನಪ್ರಿಯವಾಗಿವೆ, ಆದರೆ ಹೃದಯ ಬಡಿತವನ್ನು ತಿಳಿಯಲು ವೈದ್ಯಕೀಯ ಕೇಂದ್ರಗಳಲ್ಲಿ ಮೂಲಭೂತ ಸಾಧನವಾಗಿದೆ, ಅಂದರೆ ಹೃದಯ ಬಡಿತ ಅಥವಾ ನಿಮಿಷಕ್ಕೆ ಬಡಿತಗಳು:

  • PR Bpm: ಹೃದಯ ಬಡಿತವನ್ನು ತೋರಿಸುತ್ತದೆ, ಅಂದರೆ ನಿಮಿಷಕ್ಕೆ ಬಡಿತಗಳು.

ಎಲ್ಲಾ ಸಂದರ್ಭಗಳಲ್ಲಿ, ದಿ ಸಂವೇದಕಗಳು ಪ್ರತಿ ಹೃದಯ ಬಡಿತದೊಂದಿಗೆ ರಕ್ತದ ಪರಿಮಾಣದಲ್ಲಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಸೆರೆಹಿಡಿಯುತ್ತವೆ. ಈ ಬದಲಾವಣೆಯು ಹೃದಯ ಬಡಿತವನ್ನು ಪಡೆಯಲು ಸಂಸ್ಕರಿಸಿದ ವಿದ್ಯುತ್ ಸಂಕೇತವಾಗಿ ಅನುವಾದಿಸಲಾಗುತ್ತದೆ. ಕೆಲವು ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್‌ಗಳು ವಾಚನಗಳ ನಿಖರತೆಯನ್ನು ಸುಧಾರಿಸಲು ವರ್ಧನೆ ಮತ್ತು ಶಬ್ದ ರದ್ದತಿ ಸರ್ಕ್ಯೂಟ್‌ಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತವೆ.

ಆಕ್ಸಿಮೀಟರ್ ಎಂದರೇನು? ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?

Un ಆಕ್ಸಿಮೀಟರ್ ವೈದ್ಯಕೀಯ ಅಥವಾ ಕ್ರೀಡಾ ಸಾಧನವಾಗಿದೆ ರಕ್ತದಲ್ಲಿನ ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವವನ್ನು ಅಳೆಯಲು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಸಾಧನವು 0 ರಿಂದ 100% ವರೆಗಿನ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ರಕ್ತದ ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವ ಡೇಟಾವನ್ನು ನೀಡುತ್ತದೆ. ಅದೇ ಸಾಧನವು ಹೃದಯ ಬಡಿತದ ಆಯ್ಕೆಯನ್ನು ಸಹ ಸೇರಿಸುವುದು ಸಾಮಾನ್ಯವಾಗಿದೆ, ಇದು ಮೇಲ್ವಿಚಾರಣೆ ಅಥವಾ ರೆಕಾರ್ಡಿಂಗ್ಗಾಗಿ ಎಲ್ಲಾ ಮಾಹಿತಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ಡೇಟಾ ಆಕ್ಸಿಮೀಟರ್ ಅನ್ನು ಅಳೆಯುತ್ತದೆ ಇದು:

  • %SpO2: ರಕ್ತದಲ್ಲಿನ ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವದ ಶೇಕಡಾವಾರು ಪ್ರಮಾಣವನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ಆಕ್ಸಿಮೀಟರ್ ಅನ್ನು ಕ್ಲಾಂಪ್‌ನಂತೆ ಇರಿಸಲಾಗುತ್ತದೆ ಅದು ನಮ್ಮ ಬೆರಳಿನ ರೂಪವಿಜ್ಞಾನಕ್ಕೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಅಥವಾ ಅದನ್ನು ದೇಹದ ಇತರ ಸ್ಥಳಗಳಲ್ಲಿ ಇರಿಸಬಹುದು, ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್‌ನಂತೆ ಮಣಿಕಟ್ಟಿನಂತಹ ಅನೇಕ ಚಟುವಟಿಕೆಯ ಕಡಗಗಳಲ್ಲಿ ಕಾಣಬಹುದು. ,

ಅವುಗಳ ಕಾರ್ಯಾಚರಣೆಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಆಕ್ಸಿಮೀಟರ್ಗಳು ವಿಭಿನ್ನವಾಗಿ ಹೊರಸೂಸುತ್ತವೆ ಬೆಳಕಿನ ತರಂಗಾಂತರಗಳು ಅದು ಚರ್ಮದ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತದೆ. ಈ ಬೆಳಕಿನ ಮೇಲೆ ಏನು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಹಿಮೋಗ್ಲೋಬಿನ್, ಆಮ್ಲಜನಕವನ್ನು ಸಾಗಿಸಲು ಜವಾಬ್ದಾರರಾಗಿರುವ ರಕ್ತದ ಅಣು, ಅದು ಸಾಗಿಸುವ ಆಮ್ಲಜನಕದ ಮಟ್ಟವನ್ನು ಅವಲಂಬಿಸಿ ವಿಭಿನ್ನ ಪ್ರಮಾಣದ ಬೆಳಕನ್ನು ಹೀರಿಕೊಳ್ಳುತ್ತದೆ. ವಿವರವಾದ ಪ್ರಕ್ರಿಯೆಯು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ:

  1. ಬೆಳಕಿನ ಹೊರಸೂಸುವಿಕೆ- ಆಕ್ಸಿಮೀಟರ್ ಎರಡು ತರಂಗಾಂತರದ ಬೆಳಕನ್ನು ಹೊರಸೂಸುತ್ತದೆ, ಒಂದು ಕೆಂಪು ಮತ್ತು ಒಂದು ಅತಿಗೆಂಪು, ಇದು ಸಾಧನದ ಮೇಲೆ ಇರಿಸಲಾದ ಬೆರಳಿನ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತದೆ.
  2. ಬೆಳಕಿನ ಹೀರಿಕೊಳ್ಳುವಿಕೆ: ಹಿಮೋಗ್ಲೋಬಿನ್, ಆಮ್ಲಜನಕವನ್ನು ಸಾಗಿಸುವ ಕೆಂಪು ರಕ್ತ ಕಣಗಳಲ್ಲಿನ ಅಣು, ಈ ದೀಪಗಳನ್ನು ವಿವಿಧ ಪ್ರಮಾಣದಲ್ಲಿ ಹೀರಿಕೊಳ್ಳುತ್ತದೆ. ಆಮ್ಲಜನಕ-ಹೊತ್ತ ಹಿಮೋಗ್ಲೋಬಿನ್ (ಆಕ್ಸಿಹೆಮೊಗ್ಲೋಬಿನ್) ಮತ್ತು ಆಮ್ಲಜನಕ-ಮುಕ್ತ ಹಿಮೋಗ್ಲೋಬಿನ್ (ಡಿಯೋಕ್ಸಿಹೆಮೊಗ್ಲೋಬಿನ್) ವಿಭಿನ್ನ ಬೆಳಕಿನ ಹೀರಿಕೊಳ್ಳುವ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿವೆ.
  3. ಬೆಳಕಿನ ಪತ್ತೆ: ಬೆಳಕಿನ ಹೊರಸೂಸುವಿಕೆಯ ಎದುರು ಭಾಗದಲ್ಲಿರುವ ಡಿಟೆಕ್ಟರ್ ಬೆರಳಿನ ಮೂಲಕ ಹಾದುಹೋದ ಬೆಳಕನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.
  4. ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವದ ಲೆಕ್ಕಾಚಾರ- ಸಾಧನವು ಆಕ್ಸಿಹೆಮೊಗ್ಲೋಬಿನ್ ಮತ್ತು ಡಿಯೋಕ್ಸಿಹೆಮೊಗ್ಲೋಬಿನ್ ಎರಡನ್ನೂ ಹೊಂದಿರುವ ಒಟ್ಟು ಹಿಮೋಗ್ಲೋಬಿನ್‌ಗೆ ಅನುಪಾತವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಈ ಪ್ರಮಾಣವನ್ನು ರಕ್ತದ ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವದ ಶೇಕಡಾವಾರು ಎಂದು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗುತ್ತದೆ (%SpO2). ಈ ವಿದ್ಯುತ್ ಸಂಕೇತಗಳನ್ನು ಸಂಖ್ಯಾತ್ಮಕ ಮೌಲ್ಯಕ್ಕೆ ಭಾಷಾಂತರಿಸಲು ಅವುಗಳನ್ನು ಅರ್ಥೈಸುವ ಸಾಮರ್ಥ್ಯವಿರುವ ಪ್ರೊಸೆಸರ್ ಮೂಲಕ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ.

MAX30102 ಮಾಡ್ಯೂಲ್ ಎಂದರೇನು?

ಸಂವೇದಕ MAX30102, ಮ್ಯಾಕ್ಸಿಮ್ ಇಂಟಿಗ್ರೇಟೆಡ್ ನಿರ್ಮಿಸಿದೆ, ಹೃದಯ ಬಡಿತ ಮಾನಿಟರ್ ಮತ್ತು ಆಕ್ಸಿಮೀಟರ್‌ನ ಕಾರ್ಯಚಟುವಟಿಕೆಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಒಂದು ಸಂಯೋಜಿತ ಸಾಧನವಾಗಿದೆ. ಈ ಸಂವೇದಕವನ್ನು Arduino ನಂತಹ ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ನೊಂದಿಗೆ ಸುಲಭವಾಗಿ ಬಳಸಬಹುದು. MAX30102 ಈ ಸಂಸ್ಥೆಯ ಆಪ್ಟಿಕಲ್ ಸಂವೇದಕಗಳ MAX3010x ಸರಣಿಗೆ ಸೇರಿದೆ.

ಅದರ ಕಾರ್ಯಾಚರಣೆಯು ಅದರ ಆಧಾರದ ಮೇಲೆ ರಕ್ತದಿಂದ ಬೆಳಕಿನ ಹೀರಿಕೊಳ್ಳುವಿಕೆಯ ವ್ಯತ್ಯಾಸವನ್ನು ಆಧರಿಸಿದೆ ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವ ಮಟ್ಟ, ಮತ್ತು ನಾಡಿ ನಾನು ಹಿಂದಿನ ಎರಡು ವಿಭಾಗಗಳಲ್ಲಿ ಹೇಳಿದಂತೆ. ಈ ಸಂವೇದಕವು ಎರಡು ಎಲ್ಇಡಿಗಳನ್ನು ಹೊಂದಿದೆ, ಒಂದು ಕೆಂಪು ಮತ್ತು ಒಂದು ಅತಿಗೆಂಪು. ಇದನ್ನು ಬೆರಳು ಅಥವಾ ಮಣಿಕಟ್ಟಿನ ಮೇಲೆ ಚರ್ಮದ ಮೇಲೆ ಇರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವದ ಮಟ್ಟವನ್ನು ನಿರ್ಧರಿಸಲು ಪ್ರತಿಫಲಿತ ಬೆಳಕನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ.

MAX30102 ನೊಂದಿಗೆ ಸಂವಹನವನ್ನು ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ I2C ಬಸ್ ಮೂಲಕ, Arduino ನಂತಹ ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ. MAX30102 ಗೆ ಎರಡು ವಿದ್ಯುತ್ ಪೂರೈಕೆಯ ಅಗತ್ಯವಿದೆ: ತರ್ಕಕ್ಕೆ 1.8V ಮತ್ತು LED ಗಳಿಗೆ 3.3V. ಈಗಾಗಲೇ ಅಗತ್ಯ ಮಟ್ಟದ ಹೊಂದಾಣಿಕೆಯನ್ನು ಒಳಗೊಂಡಿರುವ 5V ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಕಂಡುಬರುತ್ತದೆ.

MAX30102 ಎನ್ನುವುದು ಮನೆ ಅಥವಾ ಕ್ರೀಡಾ ಯೋಜನೆಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ಸಂವೇದಕವಾಗಿದೆ, ಅಂದರೆ, ವೃತ್ತಿಪರ ವೈದ್ಯಕೀಯ ಬಳಕೆಗಾಗಿ ಇದು ಸಾಕಷ್ಟು ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಸೂಕ್ಷ್ಮತೆಯನ್ನು ಹೊಂದಿಲ್ಲದಿರಬಹುದು.

La ಆಪ್ಟಿಕಲ್ ಪಲ್ಸ್ ಆಕ್ಸಿಮೆಟ್ರಿ ರಕ್ತದಲ್ಲಿನ ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವದ ಶೇಕಡಾವಾರು ಪ್ರಮಾಣವನ್ನು ನಿರ್ಧರಿಸಲು ಇದು ಆಕ್ರಮಣಶೀಲವಲ್ಲದ ವಿಧಾನವಾಗಿದೆ. ನಾನು ಮೊದಲೇ ಹೇಳಿದಂತೆ, ಇದು ವಿಭಿನ್ನ ತರಂಗಾಂತರಗಳಿಗೆ ಹಿಮೋಗ್ಲೋಬಿನ್ (Hb) ಮತ್ತು ಆಕ್ಸಿಹೆಮೊಗ್ಲೋಬಿನ್ (HbO2) ನ ಬೆಳಕಿನ ಹೀರಿಕೊಳ್ಳುವ ಗುಣಾಂಕಗಳಲ್ಲಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಆಧರಿಸಿದೆ. ಆಮ್ಲಜನಕದಲ್ಲಿ ಸಮೃದ್ಧವಾಗಿರುವ ರಕ್ತವು ಹೆಚ್ಚು ಅತಿಗೆಂಪು ಬೆಳಕನ್ನು ಹೀರಿಕೊಳ್ಳುತ್ತದೆ, ಆದರೆ ಆಮ್ಲಜನಕದಲ್ಲಿ ಕಡಿಮೆ ರಕ್ತವು ಹೆಚ್ಚು ಕೆಂಪು ಬೆಳಕನ್ನು ಹೀರಿಕೊಳ್ಳುತ್ತದೆ. ಚರ್ಮವು ಸಾಕಷ್ಟು ತೆಳ್ಳಗಿರುವ ಮತ್ತು ಕೆಳಗೆ ರಕ್ತನಾಳಗಳಿರುವ ದೇಹದ ಪ್ರದೇಶಗಳಲ್ಲಿ, ಆಮ್ಲಜನಕದ ಶುದ್ಧತ್ವದ ಮಟ್ಟವನ್ನು ನಿರ್ಧರಿಸಲು ಈ ವ್ಯತ್ಯಾಸವನ್ನು ಬಳಸಬಹುದು.

ನಾಡಿ ಮತ್ತು ರಕ್ತದ ಆಮ್ಲಜನಕ ಸಂವೇದಕದೊಂದಿಗೆ MAX30102 ಮಾಡ್ಯೂಲ್‌ನ ವೈಶಿಷ್ಟ್ಯಗಳು

MAX30102 ಒಳಗೊಂಡಿದೆ:

  • 2x LEDಗಳು, ಒಂದು ಕೆಂಪು (660nm) ಮತ್ತು ಒಂದು ಅತಿಗೆಂಪು (880nm)
  • ಪ್ರತಿಫಲಿತ ಬೆಳಕನ್ನು ಅಳೆಯಲು 2x ಫೋಟೋಡಿಯೋಡ್‌ಗಳು
  • ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 18 ರಿಂದ 50 ಮಾದರಿಗಳ ಮಾದರಿ ದರದೊಂದಿಗೆ 3200-ಬಿಟ್ ADC ಪರಿವರ್ತಕ.
  • ಹೆಚ್ಚುವರಿಯಾಗಿ, ಇದು ಸಿಗ್ನಲ್ ವರ್ಧನೆ ಮತ್ತು ಫಿಲ್ಟರಿಂಗ್, ಸುತ್ತುವರಿದ ಬೆಳಕಿನ ರದ್ದತಿ, 50-60Hz ಆವರ್ತನಗಳ ನಿರಾಕರಣೆ (ಕೃತಕ ಬೆಳಕು) ಮತ್ತು ತಾಪಮಾನ ಪರಿಹಾರಕ್ಕಾಗಿ ಅಗತ್ಯವಾದ ಎಲೆಕ್ಟ್ರಾನಿಕ್ಸ್ ಅನ್ನು ಹೊಂದಿದೆ.

ಮಾಡ್ಯೂಲ್ ಬಳಕೆ 50mA ವರೆಗೆ ತಲುಪಬಹುದು ಮಾಪನದ ಸಮಯದಲ್ಲಿ, ಮಾಪನದ ಸಮಯದಲ್ಲಿ 0.7µA ಯ ಕಡಿಮೆ ಪವರ್ ಮೋಡ್‌ನೊಂದಿಗೆ ತೀವ್ರತೆಯನ್ನು ಪ್ರೋಗ್ರಾಮಿಕ್ ಆಗಿ ಸರಿಹೊಂದಿಸಬಹುದು.

ಬೆಲೆ ಮತ್ತು ಎಲ್ಲಿ ಖರೀದಿಸಬೇಕು

ನಾಡಿ ಮತ್ತು ರಕ್ತದ ಆಮ್ಲಜನಕವನ್ನು ಅಳೆಯಲು MAX30102 ಸಂವೇದಕಗಳು ಅವು ಸಾಕಷ್ಟು ಅಗ್ಗವಾಗಿವೆ. eBay, Aliexpress ಅಥವಾ Amazon ನಂತಹ ಸೈಟ್‌ಗಳಲ್ಲಿ ಈ ಮಾಡ್ಯೂಲ್‌ಗಳು ಕೆಲವೇ ಯೂರೋಗಳಿಗೆ ನಿಮ್ಮದಾಗಿರಬಹುದು. ಹಲವಾರು ವಿಧಗಳಿವೆ ಎಂದು ನೀವು ನೋಡುತ್ತೀರಿ, ಮತ್ತು ನಾವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ:

Arduino ನೊಂದಿಗೆ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಉದಾಹರಣೆ

Arduino IDE, ಡೇಟಾ ಪ್ರಕಾರಗಳು, ಪ್ರೋಗ್ರಾಮಿಂಗ್

Arduino ನೊಂದಿಗೆ MAX30102 ಅನ್ನು ಪರೀಕ್ಷಿಸಲು, ಈ ಮಾಡ್ಯೂಲ್ ಅನ್ನು Arduino ಬೋರ್ಡ್‌ಗೆ ಸಂಪರ್ಕಿಸುವುದು ಮೊದಲನೆಯದು. ಈ ಸಂಪರ್ಕವು ತುಂಬಾ ಸರಳವಾಗಿದೆ, ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಸಂಪರ್ಕಿಸಬೇಕು:

  1. ಮಾಡ್ಯೂಲ್‌ನ Vcc ಅನ್ನು Arduino ಬೋರ್ಡ್‌ನ 5V ಔಟ್‌ಪುಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಬೇಕು.
  2. ಮಾಡ್ಯೂಲ್‌ನ GND ಅನ್ನು Arduino ಬೋರ್ಡ್‌ನ GND ಸಾಕೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಬೇಕು.
  3. ಮಾಡ್ಯೂಲ್‌ನ SCL ಅನ್ನು A5 ನಂತಹ Arduino ಬೋರ್ಡ್‌ನ ಅನಲಾಗ್ ಇನ್‌ಪುಟ್‌ಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಸಂಪರ್ಕಿಸಬೇಕು.
  4. ಮಾಡ್ಯೂಲ್‌ನ SDA ಅನ್ನು A4 ನಂತಹ Arduino ಬೋರ್ಡ್‌ನ ಮತ್ತೊಂದು ಅನಲಾಗ್ ಇನ್‌ಪುಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಬೇಕು.

MAX30102 ಬೋರ್ಡ್ ಮತ್ತು Arduino ಬೋರ್ಡ್ ನಡುವೆ ಸೂಕ್ತವಾದ ಸಂಪರ್ಕಗಳನ್ನು ಸ್ಥಾಪಿಸಿದ ನಂತರ, ಮುಂದಿನ ವಿಷಯವೆಂದರೆ ಅದು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಮೂಲ ಕೋಡ್ ಅಥವಾ ಸ್ಕೆಚ್ ಅನ್ನು ಬರೆಯುವುದು ಮತ್ತು ಪ್ರಶ್ನೆಯಲ್ಲಿರುವ ವ್ಯಕ್ತಿಯಿಂದ ಬಯೋಮೆಟ್ರಿಕ್ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸಲು ಪ್ರಾರಂಭಿಸುವುದು. ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಬರೆಯುವಷ್ಟು ಸುಲಭವಾಗಿದೆ ಆರ್ಡುನೊ ಐಡಿಇ ಮತ್ತು ಬೋರ್ಡ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಿ:

ಅದನ್ನು ಬಳಸಲು ನೀವು Arduino IDE ನಲ್ಲಿ ಲೈಬ್ರರಿಯನ್ನು ಸಹ ಸ್ಥಾಪಿಸಬೇಕಾಗಿದೆ. ಲೈಬ್ರರಿಯನ್ನು ಸ್ಪಾರ್ಕ್‌ಫನ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ ಮತ್ತು ಇಲ್ಲಿ ಲಭ್ಯವಿದೆ https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library.
#include <Wire.h>
#include "MAX30105.h"
#include "spo2_algorithm.h"

MAX30102 pulsioximetro;


#define MAX_BRIGHTNESS 255


#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__)
//Arduino Uno no tiene suficiente SRAM para almacenar 100 muestreos, por lo que hay que truncar las muestras en 16-bit MSB.
uint16_t pulsoBuffer[100]; //infrared LED sensor data
uint16_t oxiBuffer[100];  //red LED sensor data

#else
uint32_t pulsoBuffer[100]; //Sensores
uint32_t oxiBuffer[100];  

#endif

int32_t BufferLongitud; //Longitud de datos
int32_t spo2; //Valor de SPO2
int8_t SPO2valido; //Indicador de validez del valor SPO2
int32_t rangopulsacion; //PR BPM o pulsaciones
int8_t validrangopulsacion; //Indicador de validez del valor PR BPM

byte pulsoLED = 11; //Pin PWM
byte lecturaLED = 13; //Titila con cada lectura

void setup()
{
  Serial.begin(115200); // Inicia la comunicación con el microcontrolador a 115200 bits/segundo

  pinMode(pulsoLED, OUTPUT);
  pinMode(lecturaLED, OUTPUT);

  // Inicializar sensores
  if (!pulsioximetro.begin(Wire, I2C_SPEED_FAST)) //Usar el bus I2C a 400kHz 
  {
    Serial.println(F("MAX30102 no encontrado. Por favor, comprueba la conexión y alimentación del módulo."));
    while (1);
  }

  Serial.println(F("Pon el sensor en contacto con tu dedo y presiona cualquier tecla para iniciar la conversión."));
  while (Serial.available() == 0) ; //Esperar hasta que se pulsa una tecla
  Serial.read();

  byte brilloLED = 60; //Opciones: 0=Apagado hasta 255=50mA
  byte mediaMuestreo = 4; //Opciones: 1, 2, 4, 8, 16, 32
  byte ModoLED = 2; //Opciones: 1 = Rojo solo, 2 = Rojo + IR, 3 = Rojo + IR + Verde
  byte rangoMuestreo = 100; //Opciones: 50, 100, 200, 400, 800, 1000, 1600, 3200
  int anchoPulso = 411; //Opciones: 69, 118, 215, 411
  int rangoADC = 4096; //Opciones: 2048, 4096, 8192, 16384

  pulsioximetro.setup(brilloLED, mediaMuestreo, ModoLED, rangoMuestreo, anchoPulso, rangoADC); //Configuración del módulo
}

void loop()
{
  BufferLongitud = 100; //10 almacenamientos en el buffer con 4 segundos corriendo a 25sps

  //Leer las primeras 100 muestras
  for (byte i = 0 ; i < BufferLongitud ; i++)
  {
    while (pulsioximetro.available() == false) //Comprobar nuevos datos
      pulsioximetro.check(); 
    oxiBuffer[i] = pulsioximetro.getRed();
    pulsoBuffer[i] = pulsioximetro.getIR();
    pulsioximetro.siguienteMuestreo(); //Muestreo terminado, ir al siguiente muestreo

    Serial.print(F("red="));
    Serial.print(oxiBuffer[i], DEC);
    Serial.print(F(", ir="));
    Serial.println(pulsoBuffer[i], DEC);
  }

  //Calcular el valor del pulso PM y SpO2 tras los primeros 100 samples
  maxim_heart_rate_and_oxygen_saturation(pulsoBuffer, BufferLongitud, oxiBuffer, &spo2, &SPO2valido, &rangopulsacion, &validrangopulsacion);

  //Calcular muestreos continuos
  while (1)
  {
    //Volcar los 25 primeros valores en memoria y desplazar los últimos 75 arriba
    for (byte i = 25; i < 100; i++)
    {
      oxiBuffer[i - 25] = oxiBuffer[i];
      pulsoBuffer[i - 25] = pulsoBuffer[i];
    }

    for (byte i = 75; i < 100; i++)
    {
      while (pulsioximetro.available() == false) //Comprobar si existen nuevos datos
        pulsioximetro.check(); 

      digitalWrite(lecturaLED, !digitalRead(lecturaLED)); //Parpadea el LED on-board con cada dato

      oxiBuffer[i] = pulsioximetro.getRed();
      pulsoBuffer[i] = pulsioximetro.getIR();
      pulsioximetro.siguienteMuestreo(); //Al finalizar, moverse al siguiente muestreo

      Serial.print(F("Oxígeno="));
      Serial.print(oxiBuffer[i], DEC);
      Serial.print(F(", Pulso="));
      Serial.print(pulsoBuffer[i], DEC);

      Serial.print(F(", HR="));
      Serial.print(rangopulsacion, DEC);

      Serial.print(F(", HRvalid="));
      Serial.print(validrangopulsacion, DEC);

      Serial.print(F(", SPO2="));
      Serial.print(spo2, DEC);

      Serial.print(F(", SPO2 válido="));
      Serial.println(SPO2valido, DEC);
    }

    //Recalcular tras los primeros muestreos
    maxim_heart_rate_and_oxygen_saturation(pulsoBuffer, BufferLongitud, oxiBuffer, &spo2, &SPO2valido, &rangopulsacion, &validrangopulsacion);
  }
}

ಸಹಜವಾಗಿ, ನಿಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ನೀವು ಕೋಡ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು, ಇದು ಕೇವಲ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ...


ಕಾಮೆಂಟ್ ಮಾಡಲು ಮೊದಲಿಗರಾಗಿರಿ

ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: ಮಿಗುಯೆಲ್ ಏಂಜೆಲ್ ಗಟಾನ್
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.