Arduino KY-001 Temperature sensor module (2024)

Buy on deal extreme sensor or kit

Source code from http://playground.arduino.cc/Learning/OneWire

Contents

  • 1 Introduction
  • 2 Product
  • 3 Specifications
    • 3.1 Notes
  • 4 Raspberry pi 2
  • 5 Preparation
  • 6 Connecting
  • 7 Example Code
    • 7.1 For arduino
      • 7.1.1 Sample output to serial console
    • 7.2 For raspberry pi 2
    • 7.3 For ESP8266 (with nodemcu firmware and arduino IDE)

The Arduino has many uses, one of the more popular uses is with temperature sensors. For this the Dallas Onewire DS18B20 is most used. In this example we use this onewire chip and make a sketch for reading the temperature.

With this sensor you can get the temperature in your room, car, whatever.

As in the past the temperature sensor output is analog, we need to add additional A / D And D / A chip into Line conversion, for Arduino resources are not abundant external interface is a big challenge at the same time Utilization is not high. The new DS18B20 Temperature Sensor Module is a good solution for this, it use a unique bus line and economic package that make this sensor a good DIY component,

  1. the module uses a single-bus digital temperature sensor DS18B20, the external power supply voltage Range is 3.0 V to 5.5 V, No standby power. Measurement temperature range of -55 ° C to +125 ℃, Fahrenheit equivalent 67 ° F to 257 ° F, -10 °C to +85 ° C range accuracy of ± 0.5 ° C.
  2. the temperature sensor is a programmable resolution of 9 to 12 temperature conversion to 12-bit digital format With a maximum of 750 milliseconds formula User definable nonvolatile temperature alarm settings.
  3. each DS18B20 contains a unique serial number, can be with a plurality ds18b20s Exists in a bus. Temperature sensor can be placed at different places in the detected temperature.

Notes

  1. The DS18B20 and ordinary transistors look similiar, so be careful not to regard it as a generalPass transistor to avoid damage.
  2. in order to prevent damage to the DS18B20 ensure that the powerLine and ground are not reversed.
  3. the relevant technical data on the bus did not mention a single number that can be linked to how much DS18B20, But in practical applications are not as many, and we should pay attention to.
  4. There is a bus length limitation that should be taken in consideration when long-distance communications, consider bus distributed capacitance and resistance.
  5. Identify DS18B20 Temperature Sensor Module power line, ground, and data Line, power line and ground points connect to the Arduino test board +5 V, GND, Data bus connect to the digital port.

note about raspberry test: both 5v and 3.3v setup as described around the links below are working.when i was testing with my finger to elevate temperature, the ds18B20 stop working after few measure.It seems to be dead and not viewable from the pi.After waiting a little bit, i powered off and on the pi and the sensor start to answer again.It's perhaps it is a cheap module and the elevation speed too fast?.

  1. the tuto that works for me (very simple and working well!): raspberry pi 2 detailed setup and python script with DS18B20 and raspberry pi 2
  2. Raspberry pi tutorial and details about KY001 can be found here: https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/
  3. in french (1): another link in french
  4. in french (2)step by step setup in french
  • Arduino controller × 1
  • DS18B20 Temperature Sensor Module × 1
  • USB data cable × 1
  • download and install the OneWire libary
  • Pin - = connect to Arduino GND
  • Pin (middel) = connect to arduino +5V
  • Pin S = Signal, in this example connect to Arduino Digital port 10

When everything is properly connected, there is a led on the module that blinks when the sensor is read.

For arduino

#include <OneWire.h>// DS18S20 Temperature chip i/oOneWire ds(10); // on pin 10void setup(void) { // initialize inputs/outputs // start serial port Serial.begin(9600);}void loop(void) { //For conversion of raw data to C int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract; byte i; byte present = 0; byte data[12]; byte addr[8]; if ( !ds.search(addr)) { Serial.print("No more addresses.\n"); ds.reset_search(); return; } Serial.print("R="); for( i = 0; i < 8; i++) { Serial.print(addr[i], HEX); Serial.print(" "); } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print("CRC is not valid!\n"); return; } if ( addr[0] == 0x10) { Serial.print("Device is a DS18S20 family device.\n"); } else if ( addr[0] == 0x28) { Serial.print("Device is a DS18B20 family device.\n"); } else { Serial.print("Device family is not recognized: 0x"); Serial.println(addr[0],HEX); return; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end delay(1000); // maybe 750ms is enough, maybe not // we might do a ds.depower() here, but the reset will take care of it. present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad Serial.print("P="); Serial.print(present,HEX); Serial.print(" "); for ( i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); Serial.print(data[i], HEX); Serial.print(" "); } Serial.print(" CRC="); Serial.print( OneWire::crc8( data, 8), HEX); Serial.println(); //Conversion of raw data to C LowByte = data[0]; HighByte = data[1]; TReading = (HighByte << 8) + LowByte; SignBit = TReading & 0x8000; // test most sig bit if (SignBit) // negative { TReading = (TReading ^ 0xffff) + 1; // 2's comp } Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25 Whole = Tc_100 / 100; // separate off the whole and fractional portions Fract = Tc_100 % 100; if (SignBit) // If its negative { Serial.print("-"); } Serial.print(Whole); Serial.print("."); if (Fract < 10) { Serial.print("0"); } Serial.print(Fract); Serial.print("\n"); //End conversion to C}

Sample output to serial console

R=28 FF 54 87 36 16 4 B5 Device is a DS18B20 family device.P=1 5C 1 4B 46 7F FF C 10 D7 CRC=D721.75No more addresses.R=28 FF 54 87 36 16 4 B5 Device is a DS18B20 family device.P=1 5C 1 4B 46 7F FF C 10 D7 CRC=D721.81No more addresses.

For raspberry pi 2

setting up gpio:

First edit /boot/config.txtfind dtoverlay and replace with dtoverlay=w1-gpio

save and reboot

after reboot execute:

  1. sudo modprobe w1-gpio
  2. sudo modprobe w1_therm
  3. ls -l /sys/bus/w1/devices/

from the output of the ls command, write down the unique number of your DS18B20 (like: 28-000006dfa76c)

write a python script like this one:

#original script from http://www.instructables.com/id/Read-temperature-with-DS18B20-Raspberry-Pi-2/?ALLSTEPS#intro#comments added by jjguazzoimport timetry: while True: #replace the value (28-000006dfa76c) below with yours  tempfile = open("/sys/bus/w1/devices/28-000006dfa76c/w1_slave") #read the current temperature from DS18B20  thetext = tempfile.read() tempfile.close() #clean the raw data tempdata = thetext.split("\n")[1].split(" ")[9] temperature = float(tempdata[2:]) temperature = temperature / 1000 #display the temperature print temperature #wait 1 second before next read time.sleep(1)#prevent the running script to stop except if you press Ctrl+Cexcept KeyboardInterrupt: pass

run and have fun!

For ESP8266 (with nodemcu firmware and arduino IDE)

ESP8266_TEMP_LOGGER real life project for less than 5 euros to trace temperature to a php server

Arduino KY-001 Temperature sensor module (2024)
Top Articles
How Christopher Columbus Became an Italian-American Icon
Not So Simple: Understanding the History Behind Columbus Day
Using GPT for translation: How to get the best outcomes
Le Blanc Los Cabos - Los Cabos – Le Blanc Spa Resort Adults-Only All Inclusive
Health Benefits of Guava
Sissy Transformation Guide | Venus Sissy Training
Unlocking the Enigmatic Tonicamille: A Journey from Small Town to Social Media Stardom
Tap Tap Run Coupon Codes
The Powers Below Drop Rate
What Was D-Day Weegy
Little Rock Arkansas Craigslist
About Us | TQL Careers
Dump Trucks in Netherlands for sale - used and new - TrucksNL
Chile Crunch Original
Race Karts For Sale Near Me
Swgoh Blind Characters
bode - Bode frequency response of dynamic system
Iroquois Amphitheater Louisville Ky Seating Chart
Katie Sigmond Hot Pics
Ppm Claims Amynta
Egizi Funeral Home Turnersville Nj
Random Bibleizer
Times Narcos Lied To You About What Really Happened - Grunge
Cfv Mychart
Truck from Finland, used truck for sale from Finland
Tracking every 2024 Trade Deadline deal
Uno Fall 2023 Calendar
49S Results Coral
Japanese Pokémon Cards vs English Pokémon Cards
Max 80 Orl
Skroch Funeral Home
Vip Lounge Odu
House Of Budz Michigan
Aveda Caramel Toner Formula
Babylon 2022 Showtimes Near Cinemark Downey And Xd
Sams La Habra Gas Price
دانلود سریال خاندان اژدها دیجی موویز
Gvod 6014
Vocabulary Workshop Level B Unit 13 Choosing The Right Word
Urban Blight Crossword Clue
2700 Yen To Usd
Tyler Perry Marriage Counselor Play 123Movies
R: Getting Help with R
855-539-4712
Bama Rush Is Back! Here Are the 15 Most Outrageous Sorority Houses on the Row
Gear Bicycle Sales Butler Pa
Kidcheck Login
Craigslist Yard Sales In Murrells Inlet
Worlds Hardest Game Tyrone
Inloggen bij AH Sam - E-Overheid
Ranking 134 college football teams after Week 1, from Georgia to Temple
Latest Posts
Article information

Author: Roderick King

Last Updated:

Views: 5432

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Roderick King

Birthday: 1997-10-09

Address: 3782 Madge Knoll, East Dudley, MA 63913

Phone: +2521695290067

Job: Customer Sales Coordinator

Hobby: Gunsmithing, Embroidery, Parkour, Kitesurfing, Rock climbing, Sand art, Beekeeping

Introduction: My name is Roderick King, I am a cute, splendid, excited, perfect, gentle, funny, vivacious person who loves writing and wants to share my knowledge and understanding with you.