Temperature Monitoring System
Abstract
This project is designed to monitor real-time temperature and to take alert a user in case of temperature crossing its limits. I used an onboard PN junction-based temperature sensor of the Kl25Z ARM development board. Interfaced internal ADC of the board to get the real-time temperature in a digital format. Calibrated the sensor data to obtain temperature as per the ambient conditions. I interfaced 16 x 4 LCD using a memory mapping technique to display the temperature on LCD. Also, interfaced UART with Queue Implementation using linked lists to display the temperature on the terminal. The system alerts users by turning Red LED in case of temperature crossing the upper limit or by turning into Blue LED in case of the temperature crossing lower limit. In case of normal temperature, the LED status will be green.
Objectives
Monitoring real-time temperature using onboard temperature sensor in KL25Z board.
Successful Calibration of the sensor to receive the data in understandable formats.
Configuring UART 0 to display temperature on the terminal in both degree Celsius and degree Fahrenheit format.
Configuring 16 X 4 LCD to display the temperature using the Memory mapping technique.
Setting upper and lower temperature thresholds and glowing LEDS accordingly to alert a user about the temperature variation.
Tool Configuration
Compiler Used: gcc (with -WALL and -WERROR Flags enabled)
IDE and Development Board: IDE: MCUXpresso IDE 11.6.1, Development Board: MKL25Z
Build Settings: Preprocessor setting: PRINTF_FLOAT_ENABLE=1, Manage Linker Script: Heap size 0x3000, Manage Linker Script: Stack size Default
Block Diagram
It consists of a power distribution circuit to step down the voltage from 5V to 3.3V.
KL25Z is a controller used in this project which has an onboard PN junction-based temperature sensor connected to ADC pin 26.
I used a 16 x 4 memory-mapped LCD to display the temperature.
The Flow chart on the right side of the diagram pretty much explains all the steps.
Technologies Used In this Project
Embedded Temperature sensor on KL25Z dev Board
GPIO Lines
Interrupts
UART and ADC
16 X 4 LCD
Algorithm Implemented
LCD Connections
LCD Display
You can find more information about the project in my GitHub folder link attached below.