FriedBob

충격량,진동강도 Arduino-Android app 간 전송 updated

// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
// 전처리부
#include <SoftwareSerial.h>
#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언
#include "I2Cdev.h"
#include "MPU6050.h"
......@@ -11,8 +11,11 @@
#define mpu_add 0x68
#define Pin_Relay 13
#define BT_RXD 7
#define BT_TXD 6
#define rxPin 7
#define txPin 6
SoftwareSerial mySerial(6, 7);
MPU6050 mpu;
......@@ -182,14 +185,13 @@ void Shock_Sensing(){
}
// BLUETOOTH TRANSACTION
SoftwareSerial bluetooth(BT_RXD, BT_TXD); // 블루투스 모듈
/*main 함수부*/
void setup() {
Serial.begin(9600); // 시리얼 속도 설정
mySerial.begin(9600); // 블루투스 통신 시작
Serial.println("Initializing I2C devices...");
bluetooth.begin(9600); // 블루투스 속도 설정
// bluetooth.begin(9600); // 블루투스 속도 설정
Serial.println("Initializing Bluetooth devices...");
mpu6050_init(); // 가속도 센서 초기화
......@@ -200,7 +202,7 @@ void setup() {
digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF)
}
char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수
char char_maker(long x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수
if(x<=15000){
return 'L';
}
......@@ -215,6 +217,7 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분
void loop() {
value_init(); //가속도-각도 관련 초기값 선언
// softwareSerial.print("test");
//---------dump--------------------do not erase yet-
//unsigned long currentMillis = 0;
//previousMillis = currentMillis;
......@@ -222,15 +225,28 @@ void loop() {
//if(currentMillis - previousMillis >= interval){
//--------------------------------------------------
Shock_Sensing();
if(State_Parameter == true){
shock_sum += deltha;
//currentMillis = millis();
// currentMillis = millis();
}
if(State_Parameter == false && shock_sum != 0){
bluetooth.write(char_maker(shock_sum)); // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송)
if (Serial.available()){ // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송)
mySerial.write(char(char_maker(shock_sum)));
Serial.println(char_maker(shock_sum));
Serial.println("send complete");
}
//bluetooth.write(char_maker(shock_sum));
Serial.print("누적 충격값 : ");
Serial.println(shock_sum); // 충격 누적값 전송
shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화
}
if (mySerial.available()){ // 안드로이드 쪽에서 값을 아두이노로 가져오는 코드, 필요없을거 같아서 주석처리
Serial.write(mySerial.read());
}
}
\ No newline at end of file
......
// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
// 전처리부
#include <SoftwareSerial.h>
#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언
#include "I2Cdev.h"
#include "MPU6050.h"
......@@ -11,8 +11,11 @@
#define mpu_add 0x68
#define Pin_Relay 13
#define BT_RXD 7
#define BT_TXD 6
#define rxPin 7
#define txPin 6
SoftwareSerial mySerial(6, 7);
MPU6050 mpu;
......@@ -182,14 +185,13 @@ void Shock_Sensing(){
}
// BLUETOOTH TRANSACTION
SoftwareSerial bluetooth(BT_RXD, BT_TXD); // 블루투스 모듈
/*main 함수부*/
void setup() {
Serial.begin(9600); // 시리얼 속도 설정
mySerial.begin(9600); // 블루투스 통신 시작
Serial.println("Initializing I2C devices...");
bluetooth.begin(9600); // 블루투스 속도 설정
// bluetooth.begin(9600); // 블루투스 속도 설정
Serial.println("Initializing Bluetooth devices...");
mpu6050_init(); // 가속도 센서 초기화
......@@ -200,7 +202,7 @@ void setup() {
digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF)
}
char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수
char char_maker(long x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수
if(x<=15000){
return 'L';
}
......@@ -215,6 +217,7 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분
void loop() {
value_init(); //가속도-각도 관련 초기값 선언
// softwareSerial.print("test");
//---------dump--------------------do not erase yet-
//unsigned long currentMillis = 0;
//previousMillis = currentMillis;
......@@ -222,15 +225,28 @@ void loop() {
//if(currentMillis - previousMillis >= interval){
//--------------------------------------------------
Shock_Sensing();
if(State_Parameter == true){
shock_sum += deltha;
//currentMillis = millis();
// currentMillis = millis();
}
if(State_Parameter == false && shock_sum != 0){
bluetooth.write(char_maker(shock_sum)); // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송)
if (Serial.available()){ // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송)
mySerial.write(char(char_maker(shock_sum)));
Serial.println(char_maker(shock_sum));
Serial.println("send complete");
}
//bluetooth.write(char_maker(shock_sum));
Serial.print("누적 충격값 : ");
Serial.println(shock_sum); // 충격 누적값 전송
shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화
}
if (mySerial.available()){ // 안드로이드 쪽에서 값을 아두이노로 가져오는 코드, 필요없을거 같아서 주석처리
Serial.write(mySerial.read());
}
}
......