David-Noel Gîza
Published

Raspberry Pi 0 W with temperature sensor and LCD

The project uses a temperature sensor and displays the temperature(both in Celsius and Fahrenheit scales) on an LCD.

BeginnerProtip1,460
Raspberry Pi 0 W with temperature sensor and LCD

Things used in this project

Hardware components

Raspberry Pi Zero
Raspberry Pi Zero
×1
Temperature Sensor
Temperature Sensor
×1
RGB Backlight LCD - 16x2
Adafruit RGB Backlight LCD - 16x2
×1
Resistor 2.21k ohm
Resistor 2.21k ohm
×1
Male/Female Jumper Wires
Male/Female Jumper Wires
×10
Male/Male Jumper Wires
×7

Software apps and online services

Raspbian
Raspberry Pi Raspbian

Story

Read more

Schematics

Circuit Diagram

Code

Untitled file

Python
import os
import glob
import time
from RPLCD import CharLCD

lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'

def read_temp_raw():
    f = open(device_file, 'r')
    lines = f.readlines()
    f.close()
    return lines

#CELSIUS 
def read_temp_c():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = int(temp_string) / 1000.0 
        temp_c = str(round(temp_c, 1))  
        return temp_c

#FAHRENHEIT
def read_temp_f():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_f = (int(temp_string) / 1000.0) * 9.0 / 5.0 + 32.0 
        temp_f = str(round(temp_f, 1))  
        return temp_f

while True:

    lcd.cursor_pos = (0, 0)
    lcd.write_string("T-CELSIUS: " + read_temp_c() + "C")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("T-FAHREHN: " + read_temp_f() + "F")

Credits

David-Noel Gîza
1 project • 1 follower

Comments