#include "SPI.h"
#include <dht.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#include <SD.h>
#define CS_PIN 10
File myFile;
File root;
dht DHT;
Adafruit_MPU6050 mpu;
#define DHT22_PIN 5
const float balanceThreshold = 15.0;
void setup() {
Serial.begin(115200);
while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("Adafruit MPU6050 test!");
pinMode(9, OUTPUT);
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
Serial.println("MPU6050 Found!");
if (!SD.begin(CS_PIN)) {
Serial.println("Card initialization failed!");
while (true);
}
Serial.println("SD initialization done.");
myFile = SD.open("test.txt", FILE_WRITE);
myFile.close();
if (SD.exists("test.txt")) { // If the file test.txt exist.
Serial.println("The test.txt exists.");
} else { // And if not
Serial.println("The test.txt doesn't exist.");
}
delay(100);
}
void loop(void) {
int16_t ax, ay, az;
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
digitalWrite(9, HIGH);
ax=a.acceleration.x;
ay=a.acceleration.y;
az=a.acceleration.z;
delay(1000);
// Total acceleration magnitude
float acceleration = sqrt(ax*ax + ay*ay + az*az);
if (acceleration > balanceThreshold) {
Serial.print(DHT.humidity, 1);
Serial.print(",\t");
Serial.print(DHT.temperature, 1);
Serial.print(",\t");
Serial.print(acceleration, 1);
Serial.print("\t");
Serial.println();
digitalWrite(9, HIGH);
delay(1000);
}
else{
Serial.print(acceleration, 1);
Serial.print("\t");
Serial.println();
digitalWrite(9, LOW);
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) // it opened OK
{
Serial.println("Writing to simple.txt");
myFile.println(acceleration);
myFile.close();
Serial.println("Done");
}
else
Serial.println("Error opening simple.txt");
delay(500);
}
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
while (myFile.available()) { // If the file is present execute loop until done.
Serial.write(myFile.read()); //Reading the text inside the file
}
myFile.close(); //Close the file after opening
} else { //Display message if it was unsuccessfully opened.
Serial.println("Error opening test.txt");
}
}