Ks0104 keyestudio EASY plug Analog Temperature Sensor: Difference between revisions
Keyestudio (talk | contribs) |
Keyestudio (talk | contribs) |
||
Line 125: | Line 125: | ||
==Resources == | ==Resources == | ||
'''Download the PDF:'''<br> | '''Download the PDF and code:'''<br> | ||
https://fs.keyestudio.com/KS0104 | |||
https:// | |||
<br> | <br> |
Revision as of 10:14, 7 August 2020
Introduction
Are you still looking for a low-cost thermometer? Did you get one? Aha! Here it is! This EASY Plug analog temperature sensor is based on a thermistor. The resistance varies with surrounding temperature change.
It can measure temperature change in the surroundings and send the data to Arduino analog IO. Just need to convert the output data to degrees Celsius temperature by simple programming.
The sensor is convenient and cost effective, widely applied to gardening, home alarm system and other devices.
This module should be used together with EASY plug control board.
Special Note:
The sensor/module is equipped with the RJ11 6P6C interface, compatible with our keyestudio EASY plug Control Board with RJ11 6P6C interface.
If you have the control board of other brands, it is also equipped with the RJ11 6P6C interface but has different internal line sequence, can’t be used compatibly with our sensor/module.
Specification
- Sensor type: Analog
- Working voltage: 5V
- Temperature range: -55℃~315℃
- High quality connector
Technical Details
- Dimensions: 38mm*20mm*18mm
- Weight: 4.2g
Connect It Up
Connect the EASY Plug analog temperature sensor to control board using an RJ11 cable. Then connect the control board to your PC with a USB cable.
Sample Code
Copy and paste below code to Arduino IDE and upload.
void setup() {Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() {int sensorValue = analogRead(A1); Serial.println(sensorValue); delay(1); }
We can see that the analog value is changing according to the surrounding temperature change. But it’s not very obvious.
Let’s solve this by using the following equation.
The value read from the serial port has little difference to normal temperature. eg. The temperature right now is about 25℃.
#include <math.h> void setup() { Serial.begin(9600); } void loop() { double val=analogRead(1); double fenya=(val/1023)*5; // Ohm’s law r/100=fenya/(3.3-fenya) double r=(5-fenya)/fenya*4700;// divider resistance 4.7K,4.7K resistor to ground //double r=fenya/(5-fenya)*10000;//divider resistance10K,thermistor to ground Serial.println( 1/( log(r/10000) /3950 + 1/(25+273.15))-273.15);//3950 is the value B of thermistor delay(1000); }
What You Should See
Done uploading the code, open the serial monitor and set the baud rate to 9600, the temperature value will display on the Arduino’s serial monitor.
Complete Code:
(display the temperature by 1602 LCD display module)
- include <math.h>
- include <Wire.h>
- include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); float value; void setup() {
Serial.begin(9600); lcd.init(); // initialize the lcd lcd.init(); // Print a message to the LCD. lcd.backlight(); lcd.setCursor(0,0); lcd.print("Temperature:");
} void loop() {
double val=analogRead(1); double fenya=(val/1023)*5; // Ohm’s law r/100=fenya/(3.3-fenya) double r=(5-fenya)/fenya*4700;// divider resistance 4.7K,4.7K resistor to ground //double r=fenya/(5-fenya)*10000;//divider resistance10K,thermistor to ground Serial.println( 1/( log(r/10000) /3950 + 1/(25+273.15))-273.15);//3950 is the value B of thermistor value = 1/( log(r/10000) /3950 + 1/(25+273.15))-273.15; if(value<10) { lcd.setCursor(0,1); lcd.print(value); lcd.setCursor(4,1); lcd.print("C "); } if(value>=10) { lcd.setCursor(0,1); lcd.print(value); lcd.setCursor(5,1); lcd.print("C "); } delay(1000);
}
Resources
Download the PDF and code:
https://fs.keyestudio.com/KS0104