WizFi360-EVB-Mini 硬件概述
感谢 WIZnet 使用 WizFi360-EVB-Mini 硬件支持该项目。
本文档描述了 WizFi360-EVB-Mini。WizFi360-EVB-Mini是一款用于WizFi360实验、测试和验证的紧凑型开发板。WizFi360-EVB-Mini 的外形尺寸与 NodeMCU V2 相同。WizFi360是一款低成本、低功耗的工业级WiFi模块。兼容IEEE802.11 b/g/n标准,支持SoftAP、Station、SoftAP+Station模式。串口波特率最高可达2Mbps,满足各种应用需求。
MAX30102
MAX30102 是一款集成脉搏血氧计和心率监测传感器。它集成了一个红色LED和一个红外LED、光电探测器、光学器件和具有环境光抑制功能的低噪声电子电路。标准的 I2C 兼容通信接口可以将采集到的值传输到 WizFi360-EVB-Mini 进行心率和血氧计算。
最好使用橡皮筋或 Velcro 将传感器固定在手指上。当您将手指按在传感器上时,它的变化足以导致手指中的血液流动不同,从而使传感器读数不稳定。
我们不断打印增量值以找出差异
void loop()
{
samplesTaken++;
Serial.print("IR[");
Serial.print(particleSensor.getIR());
Serial.print("] Hz[");
Serial.print((float)samplesTaken / ((millis() - startTime) / 1000.0), 2);
Serial.print("]");
long currentDelta = particleSensor.getIR() - unblockedValue;
Serial.print(" delta[");
Serial.print(currentDelta);
Serial.print("]");
if (currentDelta > (long)100)
{
Serial.print(" Something is there!");
}
Serial.println();
}
如图所示打印串行输出。
在 Arduino 串行绘图仪上显示心跳图。单击工具->串行绘图仪。
#include
#include "MAX30105.h"
MAX30105 particleSensor;
void setup()
{
Serial.begin(115200);
Serial.println("Initializing...");
// Initialize sensor
if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed
{
Serial.println("MAX30105 was not found. Please check wiring/power. ");
while (1);
}
//Setup to sense a nice looking saw tooth on the plotter
byte ledBrightness = 0x1F; //Options: 0=Off to 255=50mA
byte sampleAverage = 8; //Options: 1, 2, 4, 8, 16, 32
byte ledMode = 3; //Options: 1 = Red only, 2 = Red + IR, 3 = Red + IR + Green
int sampleRate = 100; //Options: 50, 100, 200, 400, 800, 1000, 1600, 3200
int pulseWidth = 411; //Options: 69, 118, 215, 411
int adcRange = 4096; //Options: 2048, 4096, 8192, 16384
particleSensor.setup(ledBrightness, sampleAverage, ledMode, sampleRate, pulseWidth, adcRange); //Configure sensor with these settings
//Take an average of IR readings at power up
const byte avgAmount = 64;
long baseValue = 0;
for (byte x = 0 ; x < avgAmount ; x++)
{
baseValue += particleSensor.getIR(); //Read the IR value
}
baseValue /= avgAmount;
//Pre-populate the plotter so that the Y scale is close to IR values
for (int x = 0 ; x < 500 ; x++)
Serial.println(baseValue);
}
void loop()
{
Serial.println(particleSensor.getIR()); //Send raw data to plotter
}
使用串行绘图仪绘制波形。
在 Arduino 串行监视器上显示心率和 SPO2。理想心率(成人):60~100次/分,理想SPO2:95~100。
{
while (particleSensor.available() == false) //do we have new data?
particleSensor.check(); //Check the sensor for new data
digitalWrite(readLED, !digitalRead(readLED)); //Blink onboard LED with every data read
redBuffer[i] = particleSensor.getRed();
irBuffer[i] = particleSensor.getIR();
particleSensor.nextSample(); //We're finished with this sample so move to next sample
//send samples and calculation result to terminal program through UART
Serial.print(F("red="));
Serial.print(redBuffer[i], DEC);
Serial.print(F(", ir="));
Serial.print(irBuffer[i], DEC);
Serial.print(F(", HR="));
Serial.print(heartRate, DEC);
Serial.print(F(", HRvalid="));
Serial.print(validHeartRate, DEC);
Serial.print(F(", SPO2="));
Serial.print(spo2, DEC);
Serial.print(F(", SPO2Valid="));
Serial.println(validSPO2, DEC);
}
完整代码添加在项目博客末尾的代码部分。一定要坚持到最后才能理解这个项目。
我们将使用 AT 命令对 WizFi360-EVB-Mini 进行编程。我们将使用多个串行端口与 USB 和 WizFi360-EVB-Mini 进行通信。
Serial2.println("AT\r\n"); //Handshaking with WizFi360-EVB-Mini
如图所示,WizFi360-EVB-MIni 响应 AT 命令。
现在,我们可以按照文档向 WizFi360-EVB-Mini 发送 AT 命令。WizFi360有普通传输模式和透传模式。如果 WizFi360 是普通命令模式,WizFi360 执行 AT 命令。通过输入 AT\r\n 并返回 \r\nOK\r\n 确认正常命令模式。在透明模式下,WizFi360 不执行 AT 命令。仅与对等方发送和接收数据。如果输入是“+++”,切换到普通命令模式。
我们已经从 Wiznet 安装了 WizFi360 和WiFiEsp 库,将模块连接到 WiFi,然后连接到 Blynk。
资源
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !