Я работал над проектом, используя датчик пульсометра DfRobot ( датчик пульса wiki_Dfrobot ) с nodemcu esp 32. Я тестировал его в цифровом режиме (код взят с вики-страницы с небольшим модификация), и он работает отлично (может получать диапазон ударов сердца от 60 до 100). Однако, когда я пытаюсь использовать Wi-Fi для отправки данных в firebase, получается «0» BPM и «ждать достоверных данных» вместо нормальной частоты сердечных сокращений (BPM). Кто-нибудь может помочь с этой проблемой?
Частота сердечных сокращений DFrobot cpp и файл h: https://github.com/DFRobot/DFRobot_Heartrate
Я использую esp32 с Arduino IDE 1.8.12 - с использованием firebase в реальном времени
Код (намерение отправлять данные в firebase):
#define heartratePin 32
#include "DFRobot_Heartrate.h"
#include <WiFi.h> //1. Include WiFi.h
#include "FirebaseESP32.h" //2. Include Firebase ESP32 library (this library)
// Set these to run example.
#define FIREBASE_HOST "test.firebaseio.com"
#define FIREBASE_AUTH "hW8qlM48dGkxxxxxxxx1Pq5UD21YgPq2E0c"
#define WIFI_SSID "Gummya"
#define WIFI_PASSWORD "testtest1"
DFRobot_Heartrate heartrate(DIGITAL_MODE); ///< ANALOG_MODE or DIGITAL_MODE
FirebaseData firebaseData; //3. Declare the Firebase Data object in the global scope
void setup() {
Serial.begin(115200);
initWifi();
}
void loop() {
uint8_t rateValue;
heartrate.getValue(heartratePin); ///< A1 foot sampled values
rateValue = heartrate.getRate(); ///< Get heart rate value
if(Firebase.setInt(firebaseData,"HeartBeat/BPM_data", rateValue)){
//if (firebaseData.dataType()== "Int")
Serial.println(rateValue);
}
delay(20);
}
void initWifi(){
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(firebaseData, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
}
Вывод последовательного монитора:
Got the FirebaseESP32.h library from --> https://github.com/mobizt/Firebase-ESP32
Я довольно долго искал, но в итоге ничего не нашел. Я новичок в Arduino и программировании, поэтому, пожалуйста, помогите мне. Буду вам благодарен. Любая помощь будет принята с благодарностью. Спасибо!