цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Raspberry Pi Zero W и датчик температуры с выводом данных на LCD-дисплей



Raspberry Pi Zero W и датчик температуры с выводом данных на LCD-дисплей

Автор: Mike(admin) от 23-06-2021, 23:55

В некоторых проектах с беспроводной связью возможностей микроконтроллерных решений, вроде ESP8266 и ESP32, может не хватать. В этом случае можно прибегнуть к использованию более мощных решений на основе одноплатного компьютера, например, Raspberry Pi Zero W.


Raspberry Pi Zero W и датчик температуры с выводом данных на LCD-дисплей

В данном материале мы рассмотрим как с помощью Raspberry Pi Zero W считывать показания с датчика температуры и выводить их на ЖК-дисплей. Приведенный здесь код может стать частью большого проекта, например, погодной станции и т.п.


Для начала подключите Raspberry Pi Zero W к датчику температуры и дисплею согласно следующей схеме подключения:


Raspberry Pi Zero W и датчик температуры с выводом данных на LCD-дисплей

В качестве датчика температуры используется аналоговый датчик TMP36GT9Z. Подключение к нему осуществляется с помощью резистора 2,2 КОм.


Код программы на языке 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")



© digitrode.ru


Теги: Raspberry Pi, Raspberry Pi Zero, датчик температуры




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий