This project is about monitoring the temperature of some remote area. If there is some area which is difficult to reach and that part is at critical stage. The temperature needs to be below a level but it is not possible to monitor the temperature of that area regularly. Then at this point we can use this model which is so intelligent that it keeps monitoring the temperature of that area and whenever temperature increases beyond a threshold then at that point it sounds the alarm and send the message to the number which is already stored in the microcontroller.
Fig. 1: Prototype of LPC2148 ARM Microcontroller and GSM Module based Overheating Alert System
Fig. 2: Image of LPC2148 ARM Microcontroller and GSM Module based Overheating Alert System displaying alert message
COMPONENT USED:
LPC2148
SIM300 (GSM MODULE)
LM35
LPC2148
LPC 2148 microcontroller is the heart of project and all the process is happening here itself.
The features of this microcontroller are as follows.
FEATURES
· 16-bit/32-bit ARM7TDMI-S microcontroller in a tiny LQFP64 package.
· 40 kB of on-chip static RAM and 512 kB of on-chip flash memory.
· In-System Programming/In-Application Programming (ISP/IAP) via on-chip boot loader software.
· Embedded ICE RT and Embedded Trace interfaces offer real-time debugging with the on-chip Real Monitor software and high-speed tracing of instruction execution.
· USB 2.0 Full-speed compliant device controller with 2 kB of endpoint RAM.
· Embedded ICE RT and Embedded Trace interfaces offer real-time debugging with the on-chip Real Monitor software and high-speed tracing of instruction execution.
· USB 2.0 Full-speed compliant device controller with 2 kB of endpoint RAM.
· Two 10-bit ADCs provide a total of 14 analog inputs
· Single 10-bit DAC provides variable analog output
· Two 32-bit timers/external event counters (with four capture and four Compare channels each), PWM unit (six outputs) and watchdog.
· Low power Real-Time Clock (RTC) with independent power and 32 kHz clock input.
· Multiple serial interfaces including two UARTs, two Fast I²C-bus (400 Kbit/s), SPI and SSP with buffering and variable data length capabilities.
· Vectored Interrupt Controller (VIC) with configurable priorities and vector addresses.
· Up to 45 of 5 V tolerant fast general purpose I/O pins in a tiny LQFP64 package.
· 60 MHz maximum CPU clock available from programmable on-chip PLL with settling time of 100 us.
· On-chip integrated oscillator operates with an external crystal from 1 MHz to 25 MHz
· Power saving modes include Idle and Power-down.
· Individual enable/disable of peripheral functions as well as peripheral clock scaling for additional power optimization.
· Processor wake-up from Power-down mode via external interrupt or BOD.
· Single power supply chip with POR and BOD circuits:
LM35
The LM35 series are precision integrated-circuit temperature sensors, with an output voltage linearly proportional to the Centigrade temperature. Thus the LM35 has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from the output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±¼°C at room temperature and ±¾°C over a full -55°C to +150°C temperature range. Low cost is assured by trimming and calibration at the wafer level. The low output impedance, linear output, and precise inherent calibration of the LM35 make interfacing to readout or control circuitry especially easy. The device is used with single power supplies, or with plus and minus supplies. As the LM35 draws only 60 µA from the supply, it has very low self-heating of less than 0.1°C in still air. The LM35 is rated to operate over a -55°C to +150°C temperature range, while the LM35C is rated for a -40°C to +110°C range (-10° with improved accuracy). The LM35 series is available packaged in hermetic TO transistor packages, while the LM35C, LM35CA, and LM35D are also available in the plastic TO-92 transistor package. The LM35D is also available in an 8-lead surface-mount small-outline package and a plastic TO-220 package.
SIM 300
Sim 300Is Used it to send SMS, make and receive calls, and do other GSM operations by controlling it through simple AT commands from micro controllers and computers.SIM300 can be integrated with a wide range of applications; all functional components of SIM300 are described in great detail.
FEATURES:
Fig. 3: Table listing technical specifications of SIM300 GSM Modem
Description
This is the project in which I have used LM35 as the thermistor.LM35 is the device which gives the analog output based on the temperature of the outside
The LM35 is connected to P0.30 which is ADC0.3. In LPC2148 there are 2 10bit ADC modules with total 14 analog inputs. The analog data is collected on P0.30 and sampled.After acquiring data from ADC input this data is checked for weather this data is below the threshold. If analog input is below threshold value then it keeps on executing the loop and acquiring data from ADC. As soon as data rises above the threshold value it enters in a loop where it sounds an alarm and on LCD displays a predefined message and sends a text message to the
Project Source Code
### #include <stdio.h> #include <LPC214x.H> /* LPC214x definitions */ #include "lcd.h" #include "adc.h" void wait(int count) { int j=0,i=0; for(j=0;j<count;j++) { /* At 60Mhz, the below loop introduces delay of 10 us */ for(i=0;i<35;i++); } } int process_adc() { float x,y,z; unsigned short adc_value = 0; unsigned char buf[16] = {0}; PINSEL0 = 0x00050005; U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */ U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */ U1LCR = 0x03; adc_value= adc_read(ADC0, CHANNEL_3); x= adc_value; y=x*5.0*100/1024; z=(y*100)/100; sprintf((char *)buf, "ADC:%d ", z); lcd_putstring(LINE1, (char *)buf); return x; } int main (void) { float x; static char *string; init_adc0(); // Initialize ADC init_lcd(); // Initialize LCD wait(100000); lcd_clear(); // clear display while(1) { x=process_adc();//Raed ADC value and display it on first line of LCD wait(30); if(x>300) { string="AT+CMGS="; while(*string != '