#include "FS.h"
#include "SD.h"
#include "SPI.h"
#include<esp_now.h>
#include<WiFi.h>
float incomingAccX, incomingAccY, incomingAccZ;
typedef struct struct_message{
float AccX;
float AccY;
float AccZ;
} struct_message;
struct_message incomingReadings;
// Callback when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
memcpy(&incomingReadings, incomingData, sizeof(incomingReadings));
incomingAccX = incomingReadings.AccX;
incomingAccY = incomingReadings.AccY;
incomingAccZ = incomingReadings.AccZ;
}
void setup(){
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
return;
}
if(!SD.begin()){
return;
}
// Register for a callback function that will be called when data is received
esp_now_register_recv_cb(OnDataRecv);
}
void loop(){
uint8_t cardType = SD.cardType();
if(cardType == CARD_NONE){
return;
}
appendFile(SD, "/AccX.txt", incomingAccX);
appendFile_char(SD, "/AccX.txt", ",");
appendFile(SD, "/AccY.txt", incomingAccY);
appendFile_char(SD, "/AccY.txt", ",");
appendFile(SD, "/AccZ.txt", incomingAccZ);
appendFile_char(SD, "/AccZ.txt", ",");
}
void appendFile(fs::FS &fs, const char * path, float message){ // changed the argument type to int16_t
File file = fs.open(path, FILE_APPEND);
file.print(message)
file.close();
}
void appendFile_char(fs::FS &fs, const char * path, const char *
message){ // added an 'appendFile_char' function to append ',' as data
separators
File file = fs.open(path, FILE_APPEND);
file.print(message)
file.close();
}