정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

블루투스 통신점 도와주실분.
박준현 | 2015-11-23

#include <SoftwareSerial.h>

int bluetoothTx = 2;
int bluetoothRx = 3;
int i = 0;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

 

float temperature; 
int reading; 
int lm35Pin = A0;
int ledPin = 12;

int ledPin1 = 13;                // 13번 핀에 LED를 연결합니다.
int flame = A1;            // 디지털 2번핀에 불꽃감지센서를 연결합니다.
int pirState = LOW;             // 불꽃 감지 센서의 상태를 저장합니다.(처음 상태를 LOW로 설정)
int pirState1 = LOW;         // 온도 감지 센서의 상태를 저장합니다.(처음 상태를 LOW로 설정)

 
int val = 0;                    // 센서 값을 읽기 위해 변수를 선언합니다.
int pinSpeaker = 10;           // PWM 핀에 스피커 혹은 피에조 센서를 연결합니다.(digital 9, 10, or 11)

void setup() {
  pinMode(ledPin1, OUTPUT);      // LED 를 출력으로 설정합니다.
  pinMode(flame, INPUT);     // 불꽃 센서를 입력으로 설정합니다.
  pinMode(pinSpeaker, OUTPUT); // 스피커를 출력으로 설정합니다.
  Serial.begin(9600); // 시리얼 통신(9600)를 준비합니다.
  delay(100);
  bluetooth.begin(9600);
 
  analogReference(INTERNAL);
  pinMode (ledPin, OUTPUT) ; // 온도 센서를 입력으로 설정합니다

}

void loop(){
  val = digitalRead(flame);  // 센서값을 읽어들입니다.
  reading = analogRead(lm35Pin);
    temperature = reading / 9.31;
   
   
   
      {
   

    //온도가 30도 위로 올라가면 LED를 켠다
    if(temperature > 30)   {
      digitalWrite (ledPin, HIGH);
    } else {
      digitalWrite (ledPin, LOW);
    }
    delay(1000); 

}

   
   
   
  if (val == HIGH) {            // 만약 값이 HIGH 일때,
    digitalWrite(ledPin1, HIGH);  // 13번 핀(보드에 내장되어 있는 LED) 를 켭니다.
    playTone(300, 160);// 주파수 0 - 0 즉, 아무소리도 내지 않습니다.
    delay(150);// 30ms 동안 대기.
 
 
 

   
    if (pirState == LOW) {
      // 센서의 상태가 LOW일때
      Serial.println("Beware of fire.");
      // 다음의 문구를 시리얼 모니터로 출력합니다.
      pirState = HIGH;
    }
  } else {
      digitalWrite(ledPin, LOW); // LED를 끕니다.
      playTone(0, 0);
      delay(30);   
      if (pirState == HIGH){
      //센서값이 HIGH 일때
      Serial.println("FIRE!!!!");
      // 다음의 문구를 시리얼 모니터로 출력합니다.
      pirState = LOW;
    }
  }
}
// 경보음을 만들어 냅니다.
void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }

}

 

=========================================================================

아까 답변해주신 그소스인데요. 그소스에서 핸드폰으로 블루투스로 일정 온도나 불꽃이 일정 수치를 넘엇을때 핸드폰으로 블루투스를 이용해서 소리를 나게하고싶은데. 어떻게 해야될지 잘모르겠네요. 앱을 만들어야할지. 아시면 도움좀 부탁드립니다.

 

이전글   |    자전거 속도계 소스코드 질문입니다. 2015-11-23
다음글   |    페어링 해결 2015-11-23