# Learn Embedded Programming [Step by Step]

## Bluetooth Based Temperature Meter Project using Microcontroller and MikroC USART Terminal

In this project , we will measure surroundings temperature and it will be shown at MikroC USART Terminal . First of all we need to set up LM35  sensor with pic microcontroller and an ADC register will take data from the temperature sensor . After calculating the temperature in centigrade  it will be sent to  our computer's MikroC USART terminal through Bluetooth[HC-06] . That is the basic concepts of this project.

 Bluetooth Based Temperature Meter Project using Microcontroller

We will need an ADC Converter so that microcontroller can read the temperature .

## ADC [Analog to Digital Converter]:

Basically ADC is like as voltage divider . According to voltage It produce output .
bit 5 : VCFG0: Voltage Reference Configuration bit (VREF- source)
1 = VREF- (AN2)
0 = VSS or 0 volt

bit 4 :VCFG0: Voltage Reference Configuration bit (VREF+ source)
1 = VREF+ (AN3)
0 = VDD or 5volt

We will set  VCFG0[bit 5]=0and VCFG0[bit4]=0 . So we will get highest value 5volt[1023] and lowest value 0volt[0].The ADCON1 is a 10 bit register that means  (2 to the power 10) is it's highest counting capacity and the result is 1024 . So this register can count from 0 to 1023 . When 0 volt , we get reading at RA0 pin  0 .When 5 volt , we get reading at RA0 pin 1023. It means 5volt equivalent to 1023 .
If  1023 reading value    equal   to 5 volt.
So 1      reading value    equal   to  5/1023 volt
As we know LM35 reading can be changed  with  0.01 v per degree centigrade change , the temperature calculation should be like that :
0.01 volt   for     1      degree centigrade Temperature
so  1     ,,       ,,  (1/0.01)   ,,         ,,              ,,

### Mikro C Library Funtions :

UARTx_Init:  This function will initialize USART option of  Microcontroller with Baud rate . We will use baud rate 38400 . The code will be look like this :
UART1_Init(38400);

UARTx_Data_Ready: This will check if it is available to read or transmit data .
UART1_Read_Text(  txt,  ")" , 13); }
This is checking if data is available to read . ")" means , txt car array variable will be being stored until the ")" will found . 13 means to try for 13 times . So , i think our text should not be longer than 11 character .
UARTx_Write_Text: This will send text data . Look at the example :

if (UART1_Tx_Idle() == 1) {// this will check , if the last data transmission is completed

UART1_Write_Text("button2");
}

## Circuit :

 Bluetooth Based Temperature Meter Project using Microcontroller and MikroC USART Terminal

## Source Code :

``````
char txt[8];
double chk;
int i=0,ckop=0;
void main() {
ADCON1=0x0E;         // Configure RE1 pin as input
CMCON=7;
for(i=0;i<16;i++){txt[i]=' ';}
TRISA.F3=1;
UART1_Init(38400);
delay_ms(200);            // Initialize LCD
while(1){
chk=(chk*5)/1023;
chk=chk/0.01;  //10mV == 1 degree
inttostr(chk,txt);
UART1_Write_Text(" Temperature:");
UART1_Write_Text(txt);
UART1_Write_Text(" \n");
delay_ms(6000);
}
}

``````

## Thank You!

Ain't getting any visitors!

## Tags

: (1) 18F2550 (1) 36KHz (3) and (1) arduino (1) Based (1) battery (1) Bipolar (1) Blinking (1) blinks (1) Bluetooth (1) button (1) circuit (1) clock (1) control (1) Db9 (1) DC Motor (2) digital (2) display (2) DS1307 (1) electronic (1) flash (1) flashing (1) HC-06 (1) home (1) how (1) How to (10) i2c tutorial (1) in (1) indicator (1) interface (8) interfacing (3) Interrupt (3) Introduction (1) IR Receiver (4) key pad (1) keyboard (1) keypad (1) lavel (1) Lcd 16x2 (2) lcd 2x16 (2) led (1) lm35 (2) LPG (1) machine (1) make (1) making (1) matrix (1) max232 (1) meter (2) microchip (4) microchips (3) mikroC (5) musical (1) NEC Protocol (4) pcb (5) PIC (3) pic controller (11) pic proteus (1) Pic Tutorial (12) pic18 (2) pic18f2550 (11) picRFモジュール (1) proteus (6) push (1) push button (1) PWM (1) real (1) Rs 232 (1) Rs232 (1) scroll (1) scrolling (1) Serial Port (1) simulation (2) step by step (7) step bystep (1) text (2) time (1) timer (4) timer0 (4) tone (1) tutorial (2) Unipolar (1) USB (1) usb 1.0 (1) USB HID (1) using (9) voltmeter (1) voting (1) with (2) work (1)

## Live Traffic Feed

Live Traffic Feed
Visitor Tracking