정보나눔

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

열선패드를 이용해 블루투스로 제어하는 명령어 한번만 봐주세요ㅠㅠ
햇병아리 | 2017-06-15

제가 여러 명령어 돌아다니는 오픈코드를 짜집기해서 열선패드를 이용해서 블루투스 스위치 제어를 통해서 켯다가 껏다가 하는 작품을 만들엇어요 이 사이트에서 거의 배꼈는데 블루투스를 이용하니까 잘안되서... 블루투스 연결은 되는데 제어가 잘안되는거 같애서 명령어 올려봅니다. 이상한부분이랑 고쳐야할부분이랑 어떻게해야되는지 능력자분들 도움부탁드립니다ㅠㅠ

 

 

#include <SoftwareSerial.h>

int bluetoothRx = 6;int bluetoothTx = 2;

SoftwareSerial bluetooth(bluetoothRx, bluetoothTx);

char receiveData;

#include <LiquidCrystal.h>

LiquidCrystal lcd(3, 4, 10, 11, 12, 13);

int tmpSensor = A0; 

int heatingPad1 = 5;

const int tmpLow = 55;

const int tmpHigh = 80;

int tmpSetting = 0;

float tmpCurrent;

float tmpTemp;

void setup() {       

   pinMode(heatingPad1, OUTPUT);

digitalWrite(heatingPad1, HIGH);

Serial.begin(9600);

bluetooth.begin(9600);

    pinMode(heatingPad1, OUTPUT);

    pinMode(bluetoothRx, INPUT_PULLUP);  

    pinMode(bluetoothTx ,INPUT_PULLUP); 

    tmpSetting = 0;

    lcd.begin(16,2);

    lcd.clear();

}

 

void loop() {   

   {

 if(bluetooth.available() >0) {

receiveData = bluetooth.read();

Serial.print("receive data."); 

Serial.println(receiveData);

if(receiveData=='1') digitalWrite(heatingPad1,HIGH);

else if(receiveData=='2') 

digitalWrite(heatingPad1,HIGH);

else Serial.print("receive error:"); }

 

}

{

 

    tmpTemp = (float)analogRead(tmpSensor)*5/1024;

    tmpCurrent = 100*(tmpTemp-0.5);

   

    if (digitalRead(bluetoothRx) == LOW) { 

        tmpSetting = tmpLow;

    }

    if (digitalRead(bluetoothTx) == HIGH) {

        tmpSetting = tmpHigh;

    }

    

    if (tmpSetting == 0) {            

       

        lcd.setCursor(0,0);           

        lcd.print(" WELCOME. ");    

        lcd.setCursor(0,1);         

        lcd.print(" PRESS BUTTON! ");   

    }

    

    else if(tmpSetting == tmpLow) {  

      

        lcd.setCursor(0,0);      

        lcd.print("SETTING : LOW   ");

        lcd.setCursor(0,1);        

        lcd.print("CURRENT : ");   

        lcd.print(tmpCurrent);          

    }

   

    else if(tmpSetting == tmpHigh) {        

      

        lcd.setCursor(0,0);          

        lcd.print("SETTING : HIGH"); 

        lcd.setCursor(0,1);          

        lcd.print("CURRENT : ");     

        lcd.print(tmpCurrent);

    }

    if (tmpCurrent <= tmpSetting) {

        digitalWrite(heatingPad1,HIGH);    

    }

    

    else if ((tmpSetting != 0) && (tmpCurrent > tmpSetting)) {  

        digitalWrite(heatingPad1,LOW);

        lcd.clear();       

        lcd.setCursor(0,0);        

        lcd.print("CURRENT : ");     

        lcd.print(tmpCurrent);     

        lcd.setCursor(0,1);         

        lcd.print("     OVER ");

        lcd.print(tmpSetting);

        lcd.print("C");    

          

        delay(120000);

    }

    delay(2000);  

    lcd.clear();  

}

}

이전글   |    ESP8266 AP 여러개 사용하기 2017-06-15
다음글   |    아두이노 탁도센서와 LCD 연결 2017-06-15