This code uses a uLCD-144-G2 128 by 128 Smart Color LCD to display the humidity and temperature in celcius, kelvin, and fahrenheit.

Committer:
hwing91
Date:
Fri Mar 28 15:01:02 2014 +0000
Revision:
0:a9b5d6b21f96
INITIAL COMMIT;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hwing91 0:a9b5d6b21f96 1 /** Temperature program to output to ULCD
hwing91 0:a9b5d6b21f96 2 *
hwing91 0:a9b5d6b21f96 3 * @author Alan Lai & Nelson Diaz
hwing91 0:a9b5d6b21f96 4 * The Georgia Institute of Technology
hwing91 0:a9b5d6b21f96 5 * ECE 4180 Embeded Systems
hwing91 0:a9b5d6b21f96 6 * Professor Hamblen
hwing91 0:a9b5d6b21f96 7 * 03/28/2014
hwing91 0:a9b5d6b21f96 8 *
hwing91 0:a9b5d6b21f96 9 * @section LICENSE
hwing91 0:a9b5d6b21f96 10 * ----------------------------------------------------------------------------
hwing91 0:a9b5d6b21f96 11 * "THE BEER-WARE LICENSE" (Revision 42):
hwing91 0:a9b5d6b21f96 12 * <alanhlai91@gmail.com> wrote this file. As long as you retain this notice you
hwing91 0:a9b5d6b21f96 13 * can do whatever you want with this stuff. If we meet some day, and you think
hwing91 0:a9b5d6b21f96 14 * this stuff is worth it, you can buy me a beer in return.
hwing91 0:a9b5d6b21f96 15 * ----------------------------------------------------------------------------
hwing91 0:a9b5d6b21f96 16 *
hwing91 0:a9b5d6b21f96 17 *
hwing91 0:a9b5d6b21f96 18 * @section DESCRIPTION
hwing91 0:a9b5d6b21f96 19 *
hwing91 0:a9b5d6b21f96 20 * Honeywell HTU21D Humidity and Temperature sensor.
hwing91 0:a9b5d6b21f96 21 *
hwing91 0:a9b5d6b21f96 22 * Datasheet, specs, and information:
hwing91 0:a9b5d6b21f96 23 *
hwing91 0:a9b5d6b21f96 24 * https://www.sparkfun.com/products/12064
hwing91 0:a9b5d6b21f96 25 */
hwing91 0:a9b5d6b21f96 26
hwing91 0:a9b5d6b21f96 27
hwing91 0:a9b5d6b21f96 28 #include "mbed.h"
hwing91 0:a9b5d6b21f96 29 #include "uLCD_4DGL.h"
hwing91 0:a9b5d6b21f96 30 #include "rtos.h"
hwing91 0:a9b5d6b21f96 31 #include "HTU21D.h"
hwing91 0:a9b5d6b21f96 32
hwing91 0:a9b5d6b21f96 33
hwing91 0:a9b5d6b21f96 34 Semaphore four_slots(1); //Activate semaphore
hwing91 0:a9b5d6b21f96 35
hwing91 0:a9b5d6b21f96 36 uLCD_4DGL uLCD(p28,p27,p29); // serial tx, serial rx, reset pin;
hwing91 0:a9b5d6b21f96 37 HTU21D temphumid(p9, p10); // Temp Module || sda, SCL
hwing91 0:a9b5d6b21f96 38
hwing91 0:a9b5d6b21f96 39 void sample_humidity(void const *args) { //line 2
hwing91 0:a9b5d6b21f96 40 while(true){
hwing91 0:a9b5d6b21f96 41
hwing91 0:a9b5d6b21f96 42 four_slots.wait();
hwing91 0:a9b5d6b21f96 43 uLCD.color(0x0000FF);
hwing91 0:a9b5d6b21f96 44 uLCD.locate(1,2); //col,row
hwing91 0:a9b5d6b21f96 45 wait(0.1);
hwing91 0:a9b5d6b21f96 46 uLCD.printf("Humidy Is: %d %%", temphumid.sample_humid());
hwing91 0:a9b5d6b21f96 47 four_slots.release();
hwing91 0:a9b5d6b21f96 48 Thread::wait(250);
hwing91 0:a9b5d6b21f96 49 }
hwing91 0:a9b5d6b21f96 50 }
hwing91 0:a9b5d6b21f96 51
hwing91 0:a9b5d6b21f96 52
hwing91 0:a9b5d6b21f96 53 void sample_temperature(void const *args) { // line 4
hwing91 0:a9b5d6b21f96 54 while(true){
hwing91 0:a9b5d6b21f96 55 four_slots.wait();
hwing91 0:a9b5d6b21f96 56 uLCD.color(0xFF0000);
hwing91 0:a9b5d6b21f96 57 uLCD.locate(1,4); //col,row
hwing91 0:a9b5d6b21f96 58 wait(0.1);
hwing91 0:a9b5d6b21f96 59 uLCD.printf("Temp Is: %d° C", temphumid.sample_ctemp());
hwing91 0:a9b5d6b21f96 60 uLCD.color(0xFFFF00);
hwing91 0:a9b5d6b21f96 61 uLCD.locate(1,6);
hwing91 0:a9b5d6b21f96 62 wait(0.1);
hwing91 0:a9b5d6b21f96 63 uLCD.printf("Temp Is: %d° F", temphumid.sample_ftemp());
hwing91 0:a9b5d6b21f96 64 uLCD.color(0xC0C0C0);
hwing91 0:a9b5d6b21f96 65 uLCD.locate(1,8);
hwing91 0:a9b5d6b21f96 66 wait(0.1);
hwing91 0:a9b5d6b21f96 67 uLCD.printf("Temp Is: %d° k", temphumid.sample_ktemp());
hwing91 0:a9b5d6b21f96 68 four_slots.release();
hwing91 0:a9b5d6b21f96 69 Thread::wait(1000);
hwing91 0:a9b5d6b21f96 70 }
hwing91 0:a9b5d6b21f96 71 }
hwing91 0:a9b5d6b21f96 72
hwing91 0:a9b5d6b21f96 73
hwing91 0:a9b5d6b21f96 74 int main() {
hwing91 0:a9b5d6b21f96 75 uLCD.baudrate(3000000);
hwing91 0:a9b5d6b21f96 76 Thread t1(sample_humidity);
hwing91 0:a9b5d6b21f96 77 Thread t2(sample_temperature);
hwing91 0:a9b5d6b21f96 78 while(1){ //While so program doesn't end
hwing91 0:a9b5d6b21f96 79
hwing91 0:a9b5d6b21f96 80 }
hwing91 0:a9b5d6b21f96 81 }