앱 인벤터 적외선 센서 - aeb inbenteo jeog-oeseon senseo

앱 인벤터 적외선 센서 - aeb inbenteo jeog-oeseon senseo

아두이노와 앱인벤터간의 블루통신 질문입니다.

이기호 | 2016-11-23

아두이노와 앱인벤터간의 블루통신으로 온도,습도,메탄,암모니아 센서를 이용해 4개의 센서값을 받고 싶습니다.

현재 센서값까지는 다받아지지만 각각 따로 받아 일정이상 값이 높아지면 경보음을 주는 동작을 하고 싶습니다.

여기서 센서값들을 각각 받는 방법을 모르겠어서 글 올립니다.

도움 부탁 드리겠습니다. 

  • 앱 인벤터 적외선 센서 - aeb inbenteo jeog-oeseon senseo
  • 앱 인벤터 적외선 센서 - aeb inbenteo jeog-oeseon senseo
  • 앱 인벤터 적외선 센서 - aeb inbenteo jeog-oeseon senseo

이전글   |    Weather Lamp 만들기 질문있습니다. 2016-11-23
다음글   |    적외선 레이더 급합니다 ㅜㅜ 2016-11-24

#include <SoftwareSerial.h>

#include <MsTimer2.h>

#include <OneWire.h>

#include <DallasTemperature.h>

#define RX_PIN        5

#define TX_PIN        8

#define LIGHT_PIN     A0

#define IR_PIN        6

#define TEMP_PIN      7

#define LED1_PIN      9

#define LED2_PIN      4

SoftwareSerial BT(RX_PIN, TX_PIN);

OneWire oneWire(TEMP_PIN); 

DallasTemperature temp(&oneWire);

int value_ir;

int value_light;

int value_temp;

void setup() {

  BT.begin(9600);

  pinMode(LED1_PIN, OUTPUT);

  pinMode(LED2_PIN, OUTPUT);

  pinMode(IR_PIN, INPUT);

  pinMode(TEMP_PIN, INPUT);

  temp.begin();

  MsTimer2::set(1000, send_value);

  MsTimer2::start();

}

void loop() {

  if(BT.available() > 0) {

    char input = BT.read();

    if(input == 'A') TV_ON();

    else if(input == 'B') TV_OFF();

    else if(input == 'C') LED_ON();

    else if(input == 'D') LED_OFF();

  }

}

void send_value() {

  value_ir = digitalRead(IR_PIN);

  value_light = analogRead(LIGHT_PIN);

  temp.requestTemperatures();

  value_temp = temp.getTempCByIndex(0);

  BT.print(value_ir);

  BT.print("$");

  BT.print(value_light);

  BT.print("$");

  BT.print(value_temp);

}

void TV_ON() {

  digitalWrite(LED1_PIN, HIGH);

}

void TV_OFF() {

  digitalWrite(LED1_PIN, LOW);

}

void LED_ON() {

  digitalWrite(LED2_PIN, HIGH);

}

void LED_OFF() {

  digitalWrite(LED2_PIN, LOW);

}