BASIC4MCU | 질문게시판 | 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다. (온도에따른 자동 수동 선풍기 )
페이지 정보
작성자 따랑해영 작성일2022-06-18 05:32 조회804회 댓글1건본문
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2,3);
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
pinMode(5, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(" Temp. controller ");
BTSerial.begin(9600);
Serial.begin(9600);
}
int mode;
byte select;
int val, v1;
void loop() {
val=analogRead(2);
v1=map(val, 0,1023, 0,350);
Serial.print(val);
Serial.print(" --> ");
Serial.println(v1);
lcd.setCursor(0,1);
lcd.print(v1); lcd.print("'C");
if(v1>22){
lcd.print(" Hot A/C on");
digitalWrite(5, HIGH);
digitalWrite(9, HIGH);
}
else{
lcd.print(" Cold A/C off");
digitalWrite(5, LOW);
digitalWrite(9, LOW);
}
delay(1000);
(BTSerial.available());
{
char mode='2';
mode = BTSerial.read();
if(mode=='0'){}
if(mode=='1'){}
if(mode=='2'){}
select=BTSerial.read();
Serial.println(String(v1));
switch(select){
case 1: v1=analogRead(2);
BTSerial.write(v1);
Serial.println(v1);
digitalWrite(5, HIGH);
digitalWrite(9, HIGH);
delay(50);
break;
case 2: digitalWrite(5, LOW);
digitalWrite(9, LOW);
delay(50);
break;
}
}
}
앱인벤터로 온도에따른 선풍기인데 수동으로 바꾸면 핸드폰으로 ON OFF 가되고 자동으로바꾸면 알아서 온도에따라 선풍기가 돌아가게
만들고싶습니다. 인터넷 뒤지면서 해봣는데 안되서 여쭤봅니다
댓글 1
조회수 804master님의 댓글
master 작성일
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2,3);
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//
void setup() {
pinMode(5,OUTPUT); pinMode(9,OUTPUT);
lcd.init(); lcd.backlight();
lcd.setCursor(0,0); lcd.print(" Temp. controller ");
BTSerial.begin(9600);
Serial.begin(9600);
}
//
char mode='A'; // 초기값 자동모드
byte select;
int val,v1;
//
void loop() {
if(mode=='A'){
val=analogRead(2);
v1=map(val,0,1023,0,350);
Serial.print(val); Serial.print(" --> "); Serial.println(v1);
lcd.setCursor(0,1); lcd.print(v1); lcd.print("'C");
if(v1>22){ lcd.print(" Hot A/C on"); digitalWrite(5,1); digitalWrite(9,1); }
else { lcd.print(" Cold A/C off"); digitalWrite(5,0); digitalWrite(9,0); }
delay(1000);
}
//
if(BTSerial.available()){
char r=BTSerial.read();
switch(r){
case '1': mode='M'; v1=analogRead(2); BTSerial.write(v1);
digitalWrite(5,1); digitalWrite(9,1); delay(50); break;
case '2': mode='M'; digitalWrite(5,0); digitalWrite(9,0); delay(50); break;
case 'A': mode='A'; break; // 자동모드로 복귀
}
}
}