질문게시판 > 아두이노간 블루투스 질문 드립니다.

TODAY430 TOTAL2,277,819
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 아두이노간 블루투스 질문 드립니다.

페이지 정보

작성자 흐규흐규 작성일2022-06-10 19:48 조회2,834회 댓글8건

본문

	

마스터 측에서 DHT11센서와 MQ-4센서로 값을 읽어들여 일정 수치가 넘으면 블루투스로 데이터를 보내 슬레이브 측에서 팬을 돌리는것을 구현하고자 합니다. 블루투스 연결까지는 되었으나 블루투스로 보내는 값이 -1로 고정되어 진행을 못하고 있습니다. 코드에서 잘못된 부분이 있나 한번 도움을 요청해 봅니다.

 

센서값을 읽은후 데이터를 보내는 아두이노 측입니다.

#include <SoftwareSerial.h>

int BT_RXD = 9; 

int BT_TXD = 10;

 

SoftwareSerial BTSerial(BT_TXD, BT_RXD);   

int ENpin = 8;

int i ;

 

#include <DHT.h>

#include <DHT_U.h>

#define DHTPIN 2

#define DHTTYPE DHT11

#define Gaspin A0

 

DHT dht (DHTPIN, DHTTYPE);

 

void setup() {

  BTSerial.begin(38400);

  Serial.begin(9600);

  dht.begin();

  pinMode(DHTPIN, INPUT);

  pinMode(Gaspin, INPUT);

  pinMode(ENpin, OUTPUT);

  digitalWrite(ENpin, HIGH);

}

 

void loop() {

  

  int value = analogRead(A0);

  float humi, temp, gas;

  temp = dht.readTemperature();

  humi = dht.readHumidity();

  gas = value;

 

  Serial.println(temp);

  Serial.println(humi);

  Serial.println(gas);

  if(humi>50){

    int i = 0;

    Serial.println(i); 

    if (Serial.available()){

    BTSerial.write(Serial.read());

             }

  }

  else if (humi<50){

    int i = 1;

    Serial.println(i);

     if (Serial.available()){

    BTSerial.write(Serial.read());

             }

     }

                   

   else if(gas>250){

    int i  = 2;

    Serial.println(i);

    if (Serial.available()){

    BTSerial.write(Serial.read());

             }

   }                  

   else if (gas<200){

    int i = 3;

    Serial.println(i);

     if (Serial.available()){

    BTSerial.write(i);

             }

   }

 

 Serial.println(BTSerial.read());

 delay(1000);

}

-------------------------------------------------------------------------------------------------------------------------------------

신호를 받아들여 팬을 돌리는 아두이노측 입니다.

 

#include <SoftwareSerial.h>     // 소프트웨어 시리얼 라이브러리 불러옴

#define relay 7

 

int BT_RXD = 2;

int BT_TXD = 3; 

SoftwareSerial BTSerial(BT_RXD, BT_TXD); 

 

 

void setup(){

 Serial.begin(9600);

 BTSerial.begin(38400);

 pinMode(relay,OUTPUT);

  }

 

void loop(){

if(BTSerial.available()){

  int data = BTSerial.read();

  if(data =='0' || '2' ){

  digitalWrite(relay,HIGH);

  }

  else if(data =='1' || '3'){

  digitalWrite(relay,LOW); 

  }

}

Serial.println(BTSerial.read());

delay(1000);

}

 

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 8

조회수 2,834

master님의 댓글

master 작성일

void loop() {
  delay(1000);
  int value = analogRead(A0);
  float humi, temp, gas;
  temp = dht.readTemperature();
  humi = dht.readHumidity();
  gas = value;
  Serial.println(temp);  Serial.println(humi);  Serial.println(gas);
  //
  if(humi>50){ Serial.println(0); BTSerial.write('0'); }
  else      { Serial.println(1); BTSerial.write('1'); }
  //
  if(gas>250){ Serial.println(2); BTSerial.write('2'); }
  if(gas<200){ Serial.println(3); BTSerial.write('3'); }
}
송신측 루프문

master님의 댓글

master 작성일

void loop(){
  if(BTSerial.available()){
    int data = BTSerial.read();
    if(data=='0' || data=='2' ){ digitalWrite(relay,HIGH); Seria.write(data); Serial.println(); }
    if(data=='1' || data=='3'){ digitalWrite(relay,LOW); Serial.write(data); Serial.println(); }
  }
}
수신측 루프문

흐규흐규님의 댓글

흐규흐규 작성일

동작이 안되서 Serial.println(BTSerial.read());를 루프문에 넣어보니 여전히 -1의 값만 받아들이는데 뭐가 문제일 수 있을까요?

master님의 댓글

master 댓글의 댓글 작성일

습도로 키고, 가스로 끄고 <-- 이래도 안보일 수 있습니다.
보내는 곳이 0,2 둘 다 시리얼모니터에 나와야지 팬이가 켜지고
보내는 곳이 1,3 둘 다 시리얼모니터에 나와야지 팬이 꺼집니다.
보내는 곳에서 습도와 가스 두가지 조건으로 한꺼번에 조건식을 만드세요

master님의 댓글

master 작성일

void loop() {
  delay(1000);
  int value = analogRead(A0);
  float humi, temp, gas;
  temp = dht.readTemperature();
  humi = dht.readHumidity();
  gas = value;
  Serial.println(temp);  Serial.println(humi);  Serial.println(gas);
  //
  if((humi>50)||(gas>250)){ Serial.println(1); BTSerial.print("1"); }
  else                    { Serial.println(0); BTSerial.print("0"); }
}
송신측 루프문
//
void loop(){
  if(BTSerial.available()){
    int data = BTSerial.read(); Seria.write(data);
    if(data=='1'){ digitalWrite(relay,HIGH); }
    if(data=='0'){ digitalWrite(relay,LOW);  }
  }
}
수신측 루프문

흐규흐규님의 댓글

흐규흐규 작성일

-1값이 계속 전송되고 읽어들이네요.. ㅜㅜ

흐규흐규님의 댓글

흐규흐규 작성일

수신측에
Serial.println(BTSerial.read())은 계속 -1값이 시리얼에 출력되고
Serial.println(BTSerial.println())은 2가 출력이 됩니다.

master님의 댓글

master 댓글의 댓글 작성일

Serial.println(BTSerial.read())
이런 코드를 답변에서 작성해드린 적이 없습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의 (2)댓글[3] 이미지 cansad 22-06-30 360
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의댓글[3] cansad 22-06-30 493
질문 빵판없이 디스플레이 넣을 수 있을까요?댓글[2] 이미지첨부파일 오소로롯 22-06-29 389
질문 라즈베리파이4 신형 선택문제댓글[1] maximum 22-06-26 362
질문 음전압 ADC댓글[2] 412904 22-06-26 428
질문 아두이노 센서값 출력 질문입니다!댓글[1] 아궁2 22-06-24 411
질문 ATmega128, ATmega28 RS232통신 이미지첨부파일 Moon4201 22-06-24 405
답변 답변글 답변 : ATmega128, ATmega28 RS232통신댓글[1] master 22-06-25 432
질문 서보모터, 온습도센서 코드 질문댓글[2] 첨부파일 kshdlfaldfh 22-06-22 470
답변 답변글 답변 : 서보모터, 온습도센서 코드 질문댓글[15] master 22-06-22 1920
질문 steppermulti5 질문 응애 22-06-21 247
답변 답변글 답변 : steppermulti5 질문댓글[1] master 22-06-22 262
질문 atmega128 avr usart 질문 snoflak 22-06-21 390
답변 답변글 답변 : atmega128 avr usart 질문댓글[5] master 22-06-21 764
질문 사용자 정의 함수 변환 하는 방법댓글[2] 이미지첨부파일 da0800 22-06-21 366
질문 atmega128댓글[1] 이미지 양의노래 22-06-20 454
질문 아두이노 동시동작 재질문댓글[9] 이미지첨부파일 죠르디 22-06-20 1081
질문 초음파센서로 dc모터 제어하기댓글[1] 첨부파일 난쟁2 22-06-20 543
질문 아두이노 동시동작댓글[7] 죠르디 22-06-19 683
질문 ATMEGA128 UART,FND 연동 질문 JMOD 22-06-19 426
답변 답변글 답변 : ATMEGA128 UART,FND 연동 질문댓글[1] master 22-06-20 362
질문 atmeg128 질문이요댓글[1] 이미지첨부파일 공대생er 22-06-18 397
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨 22-06-18 414
답변 답변글 답변 : atmega128 초음파 센서로 신호등 시간초 늘리기댓글[1] master 22-06-18 493
질문 atmega128댓글[2] 망경이 22-06-18 536
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다. (온도에따른 자동 수동 선풍기 )댓글[1] 따랑해영 22-06-18 1270
답변 답변글 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다. (온도에따른 자동 수동 선풍기 )댓글[1] 이미지첨부파일 따랑해영 22-06-19 307
답변 답변글 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다. (온도에따른 자동 수동 선풍기 ) 앱인벤… 이미지첨부파일 따랑해영 22-06-19 1345
질문 서보모터와 초음파센서댓글[1] 브링미히어 22-06-17 753
질문 LCD 도와주세요 ㅜㅠㅠㅠ댓글[2] 이미지첨부파일 dentist22 22-06-17 669
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기