BASIC4MCU | 질문게시판 | 답변 : 블루투스 코딩 문의
페이지 정보
작성자 master 작성일2019-05-24 06:42 조회9,581회 댓글4건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8760
작성일
작성일
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-24 오전 6:49:21// by Ok-Hyun Park//#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x27,16,2);//#include "DHT.h" // DHT11 Library#define DHTPIN 5 // DHT PIN at PIN5#define DHTTYPE DHT11 // SENSOR TYPEDHT dht(DHTPIN,DHTTYPE);//#include <SoftwareSerial.h>SoftwareSerial mySerial(10,11); //블루투스Tx--10, 블루투스Rx--11번핀 연결//int cdsPin=A0; // CDS at A0 PINint SOIL=A2;int WATERPIN=2;int LED_R=3;int LED_G=4;int piezoPin=7; // Buzzer(+)phase at 7 PINint airCon=9; // RGB Module for air conditioner status at PIN 9//int C=1047,D=1175,E=1319,F=1397,G=1568,A=1760,B=1976;int notes[4] ={4186,4698,5274,5587,6271}; // Melody of Sirenint notes1[25]={E,D,E,D,E,D,E,D,E,D,E,D}; // Sirenint tempo=150; // Length of melodybool flag=0;char cmd,r,mode=0;long t;//void setup(){pinMode(SOIL,INPUT);pinMode(piezoPin,OUTPUT); pinMode(airCon,OUTPUT); pinMode(6,OUTPUT);pinMode(LED_R,OUTPUT); pinMode(LED_G,OUTPUT); pinMode(WATERPIN,OUTPUT);dht.begin();lcd.init(); lcd.backlight();Serial.begin(9600);mySerial.begin(9600);t=millis();}//void loop(){if(mySerial.available()){r=mySerial.read();Serial.write(r);if(r=='A'){ mode=0; } // autoif(r=='b'){ mode=1; digitalWrite(LED_R,1); digitalWrite(LED_G,1); } // ONif(r=='r'){ mode=1; digitalWrite(LED_R,1); digitalWrite(LED_G,0); } // redif(r=='g'){ mode=1; digitalWrite(LED_R,0); digitalWrite(LED_G,1); } // greenif(r=='f'){ mode=1; digitalWrite(LED_R,0); digitalWrite(LED_G,0); } // off}if(Serial.available()){mySerial.write(Serial.read());}//if(millis()-t>=2000){ t=millis(); // 2초마다 실행float humidity =dht.readHumidity();float temperature=dht.readTemperature();if(isnan(humidity)||isnan(temperature)){ Serial.println("Failed to read from DHT sensor!"); return; }// Measured temp,Humidity value->Calculate operation value and show serial monitorfloat discomfortIndex=(1.8*temperature)-(0.55*(1-humidity/100.0)*(1.8*temperature-26))+32; // calculate method of operation valueSerial.println(discomfortIndex);// Operation value up to 75if(discomfortIndex>75){ // Play the melody when DHT sensor satisfy operation valuedigitalWrite(airCon,HIGH);if(flag==0){ flag=1;for(int i=0; i<5; i++){ tone(piezoPin,notes[i],300); delay(150); }}}else{ digitalWrite(airCon,LOW); flag=0; } // Turn Off Air conitioner}//int cdsValue=analogRead(cdsPin); Serial.println(cdsValue);if(cdsValue>700){ for(int i=0; i<12; i++){ tone(piezoPin,notes1[i],tempo); delay(300); } }////----------------------------------------if(mode==0){int water=analogRead(SOIL);lcd.setCursor(0,0); lcd.print("Water: "); lcd.print(water); lcd.print(" "); // LCD 첫 번째 줄에 수분량lcd.setCursor(0,1); lcd.print("DISinfo: "); lcd.print(discomfortIndex); lcd.print(" "); // LCD 두 번째 줄에 온도Serial.print("수분량: "); Serial.println(water); Serial.print("DISinfo(%): "); Serial.println(discomfortIndex,2);//if(water>=290){ // 화분에 물이 없을 때digitalWrite(LED_R,HIGH); digitalWrite(LED_G,LOW); digitalWrite(WATERPIN,HIGH);Serial.print("WARNNING: "); Serial.println(water);}else{ //화분에 물이 충분히 공급digitalWrite(LED_G,HIGH); digitalWrite(LED_R,LOW); digitalWrite(WATERPIN,LOW);Serial.print("NORMAL: "); Serial.println(water);}}}
댓글 4
조회수 9,581후우우운님의 댓글
후우우운 작성일
집도착하는데로 테스트 해보겠습니다
정말 감사드립니다.!!!
후우우운님의 댓글
후우우운 작성일혹시 코드상에서는 조도센서에 의한 부저동작은 블루투스에서 제어가안돼는데 블루투스로 부저가 울릴시에 블루투스로 끄게할 수 있나요?
master님의 댓글
master
알고리즘은 LED나 부저나 유사합니다.
LED 소스가 있으니 조금만 공부해도 부저를 추가할 수 있을겁니다.
이 정도로 쉬운 것은 직접 할 수 있어야합니다.
후우우운님의 댓글
후우우운
도와주셔서 감사드립니다.!