About this project

 

In this project, I'll be giving a brief about the Intel powered Galileo Gen 1 development board, the Grove Starter Kit and also on how to setup a simple Temperature Detection Project using the two.


Components and supplies

  1. Intel Galileo Gen 1

    Intel Galileo is the first in a line of Arduino-certified development boards based on Intel x86 architecture and is designed for the maker and education 

  2. communities. Full technical details can be found on the Arduino site: http://arduino.cc/en/ArduinoCertified/IntelGalileo 

  3. Grove Starter Kit Plus Intel IoT Edition
    1. Temperature Sensor
    2. Shield
    3. Wire

      The Grove Starter Kit Plus IoT Edition of Grove System is a modular, safe and easy to use group of items that allow you to minimize the effort required to get started with microcontroller-based experimentation and learning. Although there are many choices available for microcontroller development environments.

  4. Power Supply (5 Volts)
  5. USB Cable
  6. Memory card and Memory Card reader if you want to make the program run on startup (Optional) 

 


Schematics


Code

 

//Check and display temperature
#include <Wire.h>
#include "rgb_lcd.h"
const int pinTemp = A0; 
rgb_lcd lcd;
 
// Assigning initial color that'll be seen once the Galileo boots
int colorR = 255;
int colorG = 255;
int colorB = 0;
const int b=3975;
 
float resistance;
float temperature;
  
void setup()
{
 lcd.begin(16, 2);
 lcd.setRGB(colorR, colorG, colorB);
 delay(1000);
}
 
void loop()
{
 lcd.clear();
 delay(1000);
 int val = analogRead(pinTemp); 
 resistance=(float)(1023-val)*10000/val; 
 
 //calculate the temperature 
 temperature=1/(log(resistance/10000)/b+1/298.15)-273.15; 
 
 if (temperature < 27)
 
 // display color blue
 colorR = 0;
 colorG = 0;
 colorB = 255;
 lcd.setRGB(colorR, colorG, colorB);
 //display temperature and
 lcd.print("It's cool at: ");
 lcd.print(temperature);
 }
 
 else
 {
 //display color red
 colorR = 255;
 colorG = 0;
 colorB = 0;
 
 lcd.setRGB(colorR, colorG, colorB);
 
 //display temperature
 lcd.print("It's warm at: ");
 lcd.print(temperature);
 }
 
 delay(5000); 
 //display current temperature every reading 5 seconds
 
}

NOTE: This program works in conjunction with 2 files - rgb_lcd.cpp and rgb_lcd.h for controlling the RGB LCD display.    

We define 4 variables of type int: colorR, colorG, colorB and b & of type float: resistance, temperature.

We then go to the method loop(), where we find another variable called val, that stores the pinTemp via the method analogRead(). After this, we calculate resistance and temperature, using simple existing formulas.

Inside the loop, before displaying the temperature value, we set the color scheme that'll be visible based on the temperature, in our case it's "Below 27". With the print() method, value of the detected temperature as well as the corresponding message is displayed in Celsius. 

The interesting part comes now, with the lcd.clear() and delay() methods, as while the former eliminates all the content currently visible in the display, the delay() method ensures that after every 5 seconds interval it checks the temperature via the Sensor and displays it on the LCD.


Steps

  1. Start with downloading the Arduino IDE for Intel Galileo and the Temperature Sensor code from GitHub.

    NOTE: Fork the project from here https://github.com/rishabh01/LCD_RGB_Different_Color_Backlight_Temperature_Sensor

    Transfer the .cpp and .h files into the Arduino folder -> Library folder -> Temperature_Sensor and save the .ino file into the same folder.

  2. Open the code in the IDE, select Board as Intel Galileo and Port based on the Port visible in Device Manager, accessed via Win+R and then writing devmgmt.msc

  3. 3) Once the code is uploaded, the LCD shows an initial purple light (because of color R, color G, and colorB being set at 255 each).

As soon the Temperature Sensor, senses the room temperature, which it checks for every 5 seconds, the following 2 conditions take place:

1. Temperature is less than 27 degrees.

2. Temperature is greater than or equal to 27 degrees.

 


Conclusion

In this article, we were able to create a simple yet effective environment sensor for detecting temperature, using just 4 components. For the curious ones, you can easily replace the Temperature sensor with a combined Humidity &Temperature sensor and hence detect and display 2 parameters instead of one, or simply change the color scheme to integrate even more varying temperature limits than just below 27 degrees.