FriedBob

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

1 // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files 1 // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
2 // for both classes must be in the include path of your project 2 // for both classes must be in the include path of your project
3 // 전처리부 3 // 전처리부
4 -#include <SoftwareSerial.h> 4 +#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언
5 #include "I2Cdev.h" 5 #include "I2Cdev.h"
6 #include "MPU6050.h" 6 #include "MPU6050.h"
7 7
...@@ -11,8 +11,11 @@ ...@@ -11,8 +11,11 @@
11 11
12 #define mpu_add 0x68 12 #define mpu_add 0x68
13 #define Pin_Relay 13 13 #define Pin_Relay 13
14 -#define BT_RXD 7 14 +#define rxPin 7
15 -#define BT_TXD 6 15 +#define txPin 6
16 +
17 +SoftwareSerial mySerial(6, 7);
18 +
16 MPU6050 mpu; 19 MPU6050 mpu;
17 20
18 21
...@@ -182,14 +185,13 @@ void Shock_Sensing(){ ...@@ -182,14 +185,13 @@ void Shock_Sensing(){
182 } 185 }
183 186
184 // BLUETOOTH TRANSACTION 187 // BLUETOOTH TRANSACTION
185 -SoftwareSerial bluetooth(BT_RXD, BT_TXD); // 블루투스 모듈
186 -
187 188
188 /*main 함수부*/ 189 /*main 함수부*/
189 void setup() { 190 void setup() {
190 Serial.begin(9600); // 시리얼 속도 설정 191 Serial.begin(9600); // 시리얼 속도 설정
192 + mySerial.begin(9600); // 블루투스 통신 시작
191 Serial.println("Initializing I2C devices..."); 193 Serial.println("Initializing I2C devices...");
192 - bluetooth.begin(9600); // 블루투스 속도 설정 194 + // bluetooth.begin(9600); // 블루투스 속도 설정
193 Serial.println("Initializing Bluetooth devices..."); 195 Serial.println("Initializing Bluetooth devices...");
194 196
195 mpu6050_init(); // 가속도 센서 초기화 197 mpu6050_init(); // 가속도 센서 초기화
...@@ -200,7 +202,7 @@ void setup() { ...@@ -200,7 +202,7 @@ void setup() {
200 digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF) 202 digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF)
201 } 203 }
202 204
203 -char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수 205 +char char_maker(long x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수
204 if(x<=15000){ 206 if(x<=15000){
205 return 'L'; 207 return 'L';
206 } 208 }
...@@ -215,6 +217,7 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분 ...@@ -215,6 +217,7 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분
215 217
216 void loop() { 218 void loop() {
217 value_init(); //가속도-각도 관련 초기값 선언 219 value_init(); //가속도-각도 관련 초기값 선언
220 + // softwareSerial.print("test");
218 //---------dump--------------------do not erase yet- 221 //---------dump--------------------do not erase yet-
219 //unsigned long currentMillis = 0; 222 //unsigned long currentMillis = 0;
220 //previousMillis = currentMillis; 223 //previousMillis = currentMillis;
...@@ -222,15 +225,28 @@ void loop() { ...@@ -222,15 +225,28 @@ void loop() {
222 //if(currentMillis - previousMillis >= interval){ 225 //if(currentMillis - previousMillis >= interval){
223 //-------------------------------------------------- 226 //--------------------------------------------------
224 227
228 +
229 +
230 +
231 +
232 +
225 Shock_Sensing(); 233 Shock_Sensing();
226 if(State_Parameter == true){ 234 if(State_Parameter == true){
227 shock_sum += deltha; 235 shock_sum += deltha;
228 - //currentMillis = millis(); 236 + // currentMillis = millis();
229 } 237 }
230 if(State_Parameter == false && shock_sum != 0){ 238 if(State_Parameter == false && shock_sum != 0){
231 - bluetooth.write(char_maker(shock_sum)); // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송) 239 + if (Serial.available()){ // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송)
240 + mySerial.write(char(char_maker(shock_sum)));
241 + Serial.println(char_maker(shock_sum));
242 + Serial.println("send complete");
243 + }
244 + //bluetooth.write(char_maker(shock_sum));
232 Serial.print("누적 충격값 : "); 245 Serial.print("누적 충격값 : ");
233 Serial.println(shock_sum); // 충격 누적값 전송 246 Serial.println(shock_sum); // 충격 누적값 전송
234 shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화 247 shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화
235 } 248 }
249 + if (mySerial.available()){ // 안드로이드 쪽에서 값을 아두이노로 가져오는 코드, 필요없을거 같아서 주석처리
250 + Serial.write(mySerial.read());
251 + }
236 } 252 }
...\ No newline at end of file ...\ No newline at end of file
......
1 // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files 1 // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
2 // for both classes must be in the include path of your project 2 // for both classes must be in the include path of your project
3 // 전처리부 3 // 전처리부
4 -#include <SoftwareSerial.h> 4 +#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언
5 #include "I2Cdev.h" 5 #include "I2Cdev.h"
6 #include "MPU6050.h" 6 #include "MPU6050.h"
7 7
...@@ -11,8 +11,11 @@ ...@@ -11,8 +11,11 @@
11 11
12 #define mpu_add 0x68 12 #define mpu_add 0x68
13 #define Pin_Relay 13 13 #define Pin_Relay 13
14 -#define BT_RXD 7 14 +#define rxPin 7
15 -#define BT_TXD 6 15 +#define txPin 6
16 +
17 +SoftwareSerial mySerial(6, 7);
18 +
16 MPU6050 mpu; 19 MPU6050 mpu;
17 20
18 21
...@@ -182,14 +185,13 @@ void Shock_Sensing(){ ...@@ -182,14 +185,13 @@ void Shock_Sensing(){
182 } 185 }
183 186
184 // BLUETOOTH TRANSACTION 187 // BLUETOOTH TRANSACTION
185 -SoftwareSerial bluetooth(BT_RXD, BT_TXD); // 블루투스 모듈
186 -
187 188
188 /*main 함수부*/ 189 /*main 함수부*/
189 void setup() { 190 void setup() {
190 Serial.begin(9600); // 시리얼 속도 설정 191 Serial.begin(9600); // 시리얼 속도 설정
192 + mySerial.begin(9600); // 블루투스 통신 시작
191 Serial.println("Initializing I2C devices..."); 193 Serial.println("Initializing I2C devices...");
192 - bluetooth.begin(9600); // 블루투스 속도 설정 194 + // bluetooth.begin(9600); // 블루투스 속도 설정
193 Serial.println("Initializing Bluetooth devices..."); 195 Serial.println("Initializing Bluetooth devices...");
194 196
195 mpu6050_init(); // 가속도 센서 초기화 197 mpu6050_init(); // 가속도 센서 초기화
...@@ -200,7 +202,7 @@ void setup() { ...@@ -200,7 +202,7 @@ void setup() {
200 digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF) 202 digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF)
201 } 203 }
202 204
203 -char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수 205 +char char_maker(long x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수
204 if(x<=15000){ 206 if(x<=15000){
205 return 'L'; 207 return 'L';
206 } 208 }
...@@ -215,6 +217,7 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분 ...@@ -215,6 +217,7 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분
215 217
216 void loop() { 218 void loop() {
217 value_init(); //가속도-각도 관련 초기값 선언 219 value_init(); //가속도-각도 관련 초기값 선언
220 + // softwareSerial.print("test");
218 //---------dump--------------------do not erase yet- 221 //---------dump--------------------do not erase yet-
219 //unsigned long currentMillis = 0; 222 //unsigned long currentMillis = 0;
220 //previousMillis = currentMillis; 223 //previousMillis = currentMillis;
...@@ -222,15 +225,28 @@ void loop() { ...@@ -222,15 +225,28 @@ void loop() {
222 //if(currentMillis - previousMillis >= interval){ 225 //if(currentMillis - previousMillis >= interval){
223 //-------------------------------------------------- 226 //--------------------------------------------------
224 227
228 +
229 +
230 +
231 +
232 +
225 Shock_Sensing(); 233 Shock_Sensing();
226 if(State_Parameter == true){ 234 if(State_Parameter == true){
227 shock_sum += deltha; 235 shock_sum += deltha;
228 - //currentMillis = millis(); 236 + // currentMillis = millis();
229 } 237 }
230 if(State_Parameter == false && shock_sum != 0){ 238 if(State_Parameter == false && shock_sum != 0){
231 - bluetooth.write(char_maker(shock_sum)); // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송) 239 + if (Serial.available()){ // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송)
240 + mySerial.write(char(char_maker(shock_sum)));
241 + Serial.println(char_maker(shock_sum));
242 + Serial.println("send complete");
243 + }
244 + //bluetooth.write(char_maker(shock_sum));
232 Serial.print("누적 충격값 : "); 245 Serial.print("누적 충격값 : ");
233 Serial.println(shock_sum); // 충격 누적값 전송 246 Serial.println(shock_sum); // 충격 누적값 전송
234 shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화 247 shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화
235 } 248 }
249 + if (mySerial.available()){ // 안드로이드 쪽에서 값을 아두이노로 가져오는 코드, 필요없을거 같아서 주석처리
250 + Serial.write(mySerial.read());
251 + }
236 } 252 }
......