Pseudo-Medical Monitor: Difference between revisions

From LVL1
Jump to navigation Jump to search
Line 258: Line 258:
===Defines - Variables - Routines===
===Defines - Variables - Routines===
<nowiki>
<nowiki>
<code>
#include <Wire.h>
#include <Wire.h>
#include <SPI.h>
#include <SPI.h>
Line 310: Line 311:
   HB_Frame();
   HB_Frame();
}
}
</code>
</nowiki>
</nowiki>

Revision as of 21:30, 16 October 2021

Pseudo-Medical Monitor for Christmas Cheap Gift

In preparation for the expected Christmas Gift availability crisis, I present the Pseudo-Gift of the season. The time honored tradition of knockoff products hitting the market before Christmas is alive and well. What better than a multi-property knockoff device? Star Trek / Arduino / Medical knockoff device gift for everyone. This Pseudo-Medical Tricorder ripoff is the stocking stuffer for 2021.

Operations

  • Thermal Image from AMG8833 Sensor.
  • Ambient and Object Temperature from MLX90614 Sensor.
  • Distance of device from user via VL53L0X Laser TOF Sensor.
  • Pulse Rate from MAX30102 Sensor
  • Fingerprint Scan image capture from Capacitive Sensor with ID809 processing capabilities.

Parts List

  • Arduino Due Generic Clone (alternative: ITEADUINO DUE)

  • Arduino Mega Prototype Shield Generic Clone (alternative: KEYESTUDIO)

  • MLX90614 Contactless Temperature Sensor Generic Clone (alternative: )

  • AMG8833 Thermal Imager Sensor Generic Clone (alternative: TinyCircuits)

  • VL53L0X TOF Laser Distance Sensor Generic Clone (alternative: Onyehn)

  • MAX30102 Pulse and O2 Saturation Sensor Generic Clone (alternative: MH-ET Live)

  • Capacitive Touch Fingerprint Scanner Generic Clone (alternative: DFROBOT)

  • 160x128 LCD TFT SPI 1.8" Module with SD Socket Generic Clone (alternative: Heyaodz111208)

Wiring

Pin Mapping
Due Pin Function MLX90614 AMG8833 VL53L0X MAX30102 FP Scan TFT SD Socket
3 Interrupt IRQ
4 Interrupt INT
5 Interrupt INT
6 Digital I/O GPIO1
7 Digital I/O XSHUT
8 Digital I/O SD_CS
9 Digital I/O RST
10 Digital I/O CS
11 Digital I/O AO
18 TX_1 RX
19 RX_1 TX
20 SDA SDA SDA SDA SDA
21 SCL SCL SCL SCL SCL
SPI MISO SD_MISO
SPI MOSI SDA SD_MOSI
SPI SCK SCK SD_SCK

Code

Libraries

#include <Wire.h>

#include <SPI.h>

#include <Adafruit_GFX.h>

#include <Adafruit_ST7735.h>

#include <Adafruit_VL53L0X.h>

#include <Adafruit_AMG88xx.h>

#include <MAX30105.h>

#include <SparkFunMLX90614.h>

#include <DFRobot_ID809.h>

#include <SD.h>

Library Modification

// In this Library : #include <SparkFunMLX90614.h>

//Change the following line in the bool IRTherm::I2CReadWord(byte reg, int16_t * dest) routine.

//

// I2C processing change needed for Arduino Due implementation

//

// Comment Out Line Below

// _i2cPort->requestFrom(_deviceAddress, (uint8_t) 3, (uint8_t) true);

// Add Line Below

     _i2cPort->requestFrom(_deviceAddress, (uint8_t) 3, (uint32_t)reg, (uint8_t)1, (uint8_t)true);

Defines - Variables - Routines

<code> #include <Wire.h> #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_ST7735.h> #include "Adafruit_VL53L0X.h" #include <Adafruit_AMG88xx.h> #include <MAX30105.h> #include <SparkFunMLX90614.h> #include <DFRobot_ID809.h> #include "bmpHeader.h" #include <SD.h> #include "TFT_Stuff.h" #include "HB_Stuff.h" #include "AMG_Stuff.h" #include "VL_Stuff.h" #include "CT_Stuff.h" #include "FP_Stuff.h" void setup() { Wire.begin(); Serial.begin(115200); Serial.println("SETUP - Begin"); Serial.println("TFT"); setup_TFT(); Serial.println("CT"); setup_CT(); Serial.println("AMG"); setup_AMG(); Serial.println("VL"); setup_VL(); Serial.println("HB"); setup_HB(); Serial.println("FP"); setup_FP(); Serial.println("SETUP - End"); } void loop() { VL_Frame(); AMG_Frame(); CT_Frame(); FP_Frame(); HB_Frame(); } </code>