AC with Bluetooth Control

Dependencies:   4DGL-uLCD-SE mbed-rtos mbed

main.cpp

Committer:
fmaxwell6
Date:
2017-03-14
Revision:
0:d185280d778b

File content as of revision 0:d185280d778b:

#include "mbed.h"
#include "uLCD_4DGL.h"
#include "TMP36.h"
#include "rtos.h"
uLCD_4DGL uLCD(p28, p27, p30); // serial tx, serial rx, reset pin;
TMP36 myTMP36(p15);
DigitalOut Ctrl(p21);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
PwmOut mymotor(p22);
RawSerial blue(p9,p10);
Mutex uLCD_mutex; 

double speed = 0.0;
float tempC, tempF;

void Tempature_thread(){
    while(1){
         tempC = myTMP36.read();
         //convert to degrees F
         tempF = (9.0*tempC)/5.0 + 32.0;
         uLCD_mutex.lock();
         uLCD.locate(0,0);
         uLCD.printf("The Temperature is: %3.1f F \n", tempF);
         uLCD_mutex.unlock();
         wait(1);
    }
}
int main()
{
     blue.baud(9600);
     char bnum='1';
     Ctrl = 1;
     uLCD.reset();
     Thread t0;
     t0.start(Tempature_thread);
     while(1) 
     {
         if(bnum == '1'){
             led1 = 1;
             led2 = 0;
             led3 = 0;
             uLCD_mutex.lock();
             uLCD.locate(0,10);
             uLCD.printf("Bluetooth override OFF   ");
             uLCD_mutex.unlock();
             if(tempF > 75.0){
                 mymotor.write(1);
                 uLCD_mutex.lock();
                 uLCD.locate(0,5);
                 uLCD.printf("Fan is ON   ");  
                 uLCD_mutex.unlock();        
             }
             else {
                 mymotor.write(0); 
                 uLCD_mutex.lock();
                 uLCD.locate(0,5);
                 uLCD.printf("Fan is OFF   ");
                 uLCD_mutex.unlock();
             }
          }
          else if(bnum == '2'){
                 led1 = 0;
                 led2 = 1;
                 led3 = 0;
                 mymotor.write(1);
                 uLCD_mutex.lock();
                 uLCD.locate(0,5);
                 uLCD.printf("Fan is ON   ");
                 uLCD.locate(0,10);
                 uLCD.printf("Bluetooth override ON   ");
                 uLCD_mutex.unlock();
          }
          else if(bnum == '3'){
                 led1 = 0;
                 led2 = 0;
                 led3 = 1;
                 mymotor.write(0); 
                 uLCD_mutex.lock();
                 uLCD.locate(0,5);
                 uLCD.printf("Fan is OFF   ");
                 uLCD.locate(0,10);
                 uLCD.printf("Bluetooth override ON   ");
                 uLCD_mutex.unlock();
          }
          if (blue.getc()=='!') {
            if (blue.getc()=='B') { //button data
                bnum = blue.getc(); //button number
            }
          }
     }
}