BASIC4MCU | 질문게시판 | 아두이노 블루투스 관련 질문입니다.
페이지 정보
작성자 생물공학도 작성일2023-02-21 13:38 조회1,200회 댓글0건본문
안녕하세요. 제가 지금 아두이노에 조도센서, 이산화탄소 센서, 산소센서를 연결해서 PLX-DAQ-v2.10로 확인하고 있습니다.
근데 이번에 이산화탄소 센서와 블루투스를 이용해서 핸드폰으로 결과 값을 확인해보고 싶습니다.
링크에 올려둔 3가지를 연결해도 값이 제대로 출력될까요??
혹시 가능하다면 코드를 합쳐주시면 감사하겠습니다!
블루투스 코드
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(4, 5);
void setup(){
Serial.begin(9600);
Serial.println("Hello!");
BTSerial.begin(9600);
}
void loop(){
while (BTSerial.available()){
byte data = BTSerial.read();
Serial.write(data);
}
while (Serial.available()){
byte data = Serial.read();
BTSerial.write(data);
}
}
이산화탄소 코드
#include <SoftwareSerial.h>
SoftwareSerial mySerial(13, 11);
unsigned char Send_data[4] = {0x11,0x01,0x01,0xED};
unsigned char Receive_Buff[8];
unsigned char recv_cnt = 0;
unsigned int PPM_Value;
void Send_CMD(void) {
unsigned int i;
for(i=0; i<4; i++) {
mySerial.write(Send_data[i]);
delay(1);
}
}
unsigned char Checksum_cal(void) {
unsigned char count, SUM=0;
for(count=0; count<7; count++) {
SUM += Receive_Buff[count];
}
return 256-SUM;
}
void setup() {
pinMode(13,INPUT);
pinMode(11,OUTPUT);
Serial.begin(9600);
while (!Serial) ;
mySerial.begin(9600);
while (!mySerial);
}
void loop() {
Serial.print("Sending...");
Send_CMD();
while(1) {
if(mySerial.available()) {
Receive_Buff[recv_cnt++] = mySerial.read();
if(recv_cnt ==8){recv_cnt = 0; break;}
}
}
if(Checksum_cal() == Receive_Buff[7]) {
PPM_Value = Receive_Buff[3]<<8 | Receive_Buff[4];
Serial.write(" PPM : ");
Serial.println(PPM_Value);
}
else {
Serial.write("CHECKSUM Error");
}
delay(1000);
}
이 두 개를 합쳐주시면 감사하겠습니다!!
댓글 0
조회수 1,200등록된 댓글이 없습니다.