정보나눔

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

스마트홈 코드
Klant | 2019-11-09

#include <Servo.h>

#include <SoftwareSerial.h> 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>

 

DHT dht(3, DHT11);
LiquidCrystal_I2C lcd(0x27, 16, 2);

 

SoftwareSerial BTSerial(4, 5); 

Servo myservo;

 

char data;

 

int LED1_R = 9;
int LED1_G = 10;
int LED1_B = 11;

 

int LED2_B = 7;

 

void setup(){ 

  Serial.begin(9600);

  BTSerial.begin(9600);
  myservo.attach(6);

  pinMode(LED1_R, OUTPUT);
  pinMode(LED1_G, OUTPUT);
  pinMode(LED1_B , OUTPUT);

  pinMode(LED2_B , OUTPUT);

  lcd.init();
  lcd.backlight();
  dht.begin();

 

 

void loop(){ 

// 스마트 블라인드

int cdsValue = analogRead(A0);

  if (cdsValue < 200) {
    myservo.write(180);
  }

  else {
    myservo.write(90);
  }

 

// 방범 시스템 

int IRValue = analogRead(A1);

  Serial.print("IR =  ");
  Serial.println(IRValue);

  if (IRValue < 100) {
    Serial.print("Warning");
    tone(2, 253);
    delay(200);
    tone(2, 1045);
    delay(200);
  }

  else {
    Serial.print("Safety");
    noTone(2);
  }

 

//IoT 조명

if (BTSerial.available()) {
    data = BTSerial.read();

    if (data == 'a') {
      analogWrite(LED1_R, 233);
      analogWrite(LED1_G, 128);
      analogWrite(LED1_B, 0);
    }

    if (data == 'b') {
      analogWrite(LED1_R, 233);
      analogWrite(LED1_G, 0);
      analogWrite(LED1_B, 255);
    }


    if (data == 'c') {
      analogWrite(LED1_R, 255);
      analogWrite(LED1_G, 255);
      analogWrite(LED1_B, 255);
    }


    if (data == 'd') {
      analogWrite(LED2_B, 255);
    }


    if (data == 'e') {
      analogWrite(LED2_B, 0);
    }
  }

 

//스마트 디스플레이

  float h = dht.readHumidity();
  float t = dht.readTemperature(); 

  lcd.setCursor(0, 0);
  lcd.print("T:"); lcd.print(t); 
  lcd.setCursor(0, 1);
  lcd.print("H:"); lcd.print(h); 

}

이전글   |    키패드 구입처 2019-11-08
다음글   |    아두이노 문자열함수 strncpy()에 관한 질문 2019-11-10