Гид по технологиям

Измерение температуры с Raspberry Pi и Sense HAT

7 min read Raspberry Pi Обновлено 18 Apr 2026
Температура с Raspberry Pi и Sense HAT
Температура с Raspberry Pi и Sense HAT

Кратко: В этой статье показано, как подключить и настроить официальный модуль Sense HAT для чтения температуры с Raspberry Pi, от установки до простых программ на Python. Приведены советы по калибровке, устранению неполадок и альтернативы для точных измерений.

Sense HAT рядом с термометром

Что такое Sense HAT?

Плата Sense HAT крупным планом

Sense HAT — официальный дополнительно устанавливаемый модуль (HAT) для Raspberry Pi, разработанный компанией Raspberry Pi. Первоначально он создавался для использования на Международной космической станции в рамках конкурсов и образовательных программ. Sense HAT объединяет несколько датчиков, 8×8 RGB‑матрицу для вывода сообщений и мини‑джойстик для простого управления.

Краткое определение: Sense HAT — это набор датчиков и экран на одной плате, который крепится к 40‑контактному GPIO Raspberry Pi.

Какие датчики есть на Sense HAT

  • Влажность: STMicro HTS221, диапазон 0–100% относительной влажности. Датчик также даёт измерение температуры в диапазоне примерно 0°C–65°C с погрешностью около ±2°C.
  • Давление: STMicro LPS25HB, диапазон 260–1260 hPa; температурный датчик у него в диапазоне примерно 15°C–40°C с погрешностью около ±0.5°C.
  • Температура: можно читать из датчика влажности или из датчика давления; также часто берут среднее между ними.
  • Гироскоп, акселерометр и магнитометр: IMU STMicro LSM9DS1 определяет ориентацию, ускорение и направление магнитного северного полюса.
  • Вывод информации: 8×8 RGB LED‑матрица и 5‑позиционный джойстик.

Эти датчики дают хорошие показания для образовательных проектов и простых погодных станций, но учтите, что встроенные термодатчики влияют и нагрев платы Raspberry Pi.

Экземпляры Astro Pi, использовавшиеся в космосе

Шаг 1: Установка Sense HAT

Raspberry Pi с установленным Sense HAT

  1. Перед началом убедитесь, что Raspberry Pi выключен и питание отключено.
  2. Наденьте прилагаемый черный удлинитель‑разъём (header extender), если он есть.
  3. Осторожно совместите 40‑пиновый разъём Sense HAT с GPIO Raspberry Pi и равномерно нажмите до плотного соединения.
  4. При желании зафиксируйте плату через стоечки и винты.

Примечание: у модели Raspberry Pi 400 заголовок GPIO расположен на задней стороне корпуса клавиатуры. В этом случае лучше использовать гибкий удлинитель GPIO, чтобы поворачивать Sense HAT в нужную сторону.

Шаг 2: Настройка Raspberry Pi

Подключите клавиатуру, мышь и монитор, либо работайте в «headless» режиме через SSH. Вставьте microSD с Raspberry Pi OS и включите питание.

Чтобы убедиться, что пакеты для Sense HAT установлены, откройте Терминал и выполните:

sudo apt install sense-hat

Если пакет был только что установлен, перезагрузите систему:

sudo reboot

Если вы работаете удалённо без графики, можно всё равно запускать Python‑скрипты и редактировать их через nano/vi, но среду Thonny IDE вы не увидите.

Шаг 3: Программирование на Python

Thonny IDE — удобная среда для новичков и школьников. В Raspberry Pi OS запустите: Меню > Программирование > Thonny IDE.

Окно среды Thonny на рабочем столе Raspberry Pi OS

Краткое определение: библиотека sense_hat предоставляет класс SenseHat для работы с датчиками и матрицей.

Шаг 4: Снятие показаний температуры

Вставьте в Thonny или создайте файл .py с этим кодом:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

Пояснение: sense.get_temperature() возвращает значение в градусах Цельсия по умолчанию (в зависимости от версии библиотеки иногда требуется дополнительная обработка). Для преобразования в Фаренгейты используйте формулу:

temp = (sense.get_temperature() * 1.8 + 32)

Обычно значение имеет много знаков после запятой. Округляем до одной дробной:

temp = round(temp, 1)

Альтернативы получения температуры:

  • sense.get_temperature_from_pressure() — температура, снятая с датчика давления.
  • sense.get_temperature_from_humidity() — температура, снятая с датчика влажности.
  • Усреднение двух показаний: (t1 + t2)/2 — часто даёт более стабильный результат.

Шаг 5: Отображение температуры на RGB‑матрице

Чтобы периодически обновлять показания и прокручивать текст по матрице, можно использовать цикл и time.sleep. Пример полного скрипта:

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

while True:
    temp = (sense.get_temperature() * 1.8 + 32)
    temp = round(temp, 1)
    message = "Temp: " + str(temp)
    sense.show_message(message)
    sleep(10)

Запустите скрипт — и цифры будут прокручиваться по LED‑матрице каждые 10 секунд.

Sense HAT на Raspberry Pi отображает температуру на RGB-матрице

Калибровка и точность измерений

Встроенные температурные сенсоры на Sense HAT находятся вблизи самой платы Raspberry Pi: тепло процессора может давать значительное смещение показаний. Вот практическая методика калибровки:

  1. Поместите доверенный термометр рядом с Sense HAT на спокойном воздухе (без прямого притока тепла).
  2. Дайте системе стабилизироваться 5–10 минут.
  3. Зафиксируйте n измерений с интервалом (например, 10 секунд) и вычислите среднее значение для Sense HAT и для эталонного термометра.
  4. Вычислите смещение: offset = эталонноесреднее - senseсреднее.
  5. Добавьте offset в программный код при выводе значений.

Пример кода с компенсацией offset:

offset = -1.8  # пример: полученный при калибровке

while True:
    temp_c = sense.get_temperature()
    temp_c = temp_c + offset
    temp_f = round(temp_c * 1.8 + 32, 1)
    sense.show_message("Temp: " + str(temp_f) + "F")
    sleep(10)

Советы по уменьшению нагрева от CPU:

  • Используйте стоечный удлинитель, чтобы поднять Sense HAT выше платы.
  • Обеспечьте циркуляцию воздуха вокруг платы (незакрытый корпус или вентиляционные отверстия).
  • Периодически измеряйте температуру в простое и под нагрузкой, чтобы понять поведение смещения.

Когда калибровка не помогает: если проект требует медицинской или лабораторной точности, встроенный Sense HAT не подойдёт — используйте специализированные промышленные датчики.

Частые проблемы и их устранение

  • Никаких показаний или ошибки импорта библиотеки sense_hat:
    • Проверьте установку пакета: sudo apt install sense-hat.
    • Убедитесь, что Raspberry Pi распознал HAT и что контакты чистые.
  • Показания очень высокие и постоянно растут:
    • Возможно, плата нагревается. Проверьте положение процессора и примените offset.
  • Текст на матрице не читабелен:
    • Отрегулируйте скорость show_message(, scroll_speed=0.05) и цвет.
  • Скрипт не запускается при старте системы:
    • Для автозапуска используйте systemd‑сервис или crontab @reboot, тестируйте права и пути.

Альтернативные подходы и когда их использовать

  • DS18B20 (1‑wire): простой, надёжный уличный датчик с погрешностью ±0.5°C, подходит для внешних измерений.
  • BME280: измеряет температуру, давление и влажность, имеет лучшую точность температуры и компактный модуль I2C.
  • DHT22: дешевый датчик влажности и температуры, но медленный и менее точный по сравнению с BME280.

Когда выбирать Sense HAT:

  • Для обучения, быстрого прототипирования и визуальной отдачи на LED‑матрице.

Когда не выбирать:

  • Для точных климатических исследований, лабораторных измерений или уличного мониторинга без корпуса и выносного датчика.

Примеры расширений проекта

  1. Логирование в CSV
import csv
from datetime import datetime

with open('temp_log.csv', 'a', newline='') as f:
    writer = csv.writer(f)
    writer.writerow([datetime.utcnow().isoformat(), temp_c])
  1. Отправка данных в MQTT (для интеграции с домашней автоматикой)
import paho.mqtt.client as mqtt

client = mqtt.Client()
client.connect('mqtt-broker.local', 1883, 60)
client.publish('sensors/room/temp', temp_c)
  1. Визуализация в Grafana/InfluxDB: собирайте показания в базу временных рядов и стройте дашборды температуры, влажности и давления.

Критерии приёмки

  • Sense HAT корректно подключён и распознаётся системой.
  • Python‑скрипт запускается без ошибок и читает значение температуры.
  • Смещение от эталонного термометра рассчитано и применено.
  • Данные корректно записываются или отправляются в указанное хранилище (CSV/MQTT/InfluxDB).

Контрольные тесты и приёмочные примеры

  • Тест 1: Запустите 10 последовательных измерений с интервалом 10 секунд; проверьте, что разброс показаний в стабильных условиях не превышает ожидаемую погрешность датчиков.
  • Тест 2: Сравните среднее Sense HAT и эталона в течение 10 минут; примените offset и проверьте отклонение после калибровки.
  • Тест 3: Перезапуск системы — автозапуск сервисов должен поднять считывание и логирование в течение 30 секунд.

Ролевые чеклисты

  • Для студента:

    • Установить Sense HAT физически.
    • Выполнить sudo apt install sense-hat.
    • Запустить пример из раздела 4.
    • Снять скриншот матрицы и Shell Thonny.
  • Для преподавателя:

    • Проверить задания на калибровку и объяснить влияние нагрева CPU.
    • Подготовить эталонный термометр для класса.
    • Задать оценочные критерии (см. Критерии приёмки).
  • Для разработчика/интегратора:

    • Организовать автозапуск через systemd.
    • Подготовить подключение к MQTT/InfluxDB.
    • Настроить мониторинг процессов и логирования.

Факт‑бокс: ключевые значения Sense HAT

  • Влажность: 0–100% RH
  • Температура (HTS221): ~0–65°C (погрешность ~±2°C)
  • Температура (LPS25HB): ~15–40°C (погрешность ~±0.5°C)
  • Давление: 260–1260 hPa

Короткий глоссарий

  • GPIO — общие входы/выходы платы Raspberry Pi для подключения внешних устройств.
  • HAT — аппаратный модуль, устанавливаемый поверх Raspberry Pi.
  • Offset — программная поправка, добавляемая к измерению для компенсации смещения.

Сводка и дальнейшие шаги

Sense HAT — удобный инструмент для обучения и быстрых прототипов. Для повышения точности используйте калибровку, поднимайте плату от источников тепла и при необходимости подключайте внешние специализированные датчики. Дальше можно интегрировать показания в домашнюю автоматику, настроить удалённый сбор данных и визуализацию.

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

Часто задаваемые вопросы

Можно ли использовать Sense HAT для уличного мониторинга?

Sense HAT не защищён от погодных условий и расположен близко к плате Raspberry Pi, поэтому для уличного мониторинга нужен герметичный корпус и/или выносной датчик.

Как уменьшить влияние нагрева процессора?

Используйте стоечный удлинитель, корпус с вентиляцией, измеряйте в покое и применяйте программный offset.

Какой датчик лучше для точных измерений температуры?

Для точных измерений рекомендуется BME280 или промышленный датчик (например, Pt100 с подходящим преобразователем). Sense HAT больше подходит для обучения и простых проектов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Лучшие виджеты для iPhone — обзор и инструкция
iPhone

Лучшие виджеты для iPhone — обзор и инструкция

Темы WordPress: выбор, установка, управление
WordPress

Темы WordPress: выбор, установка, управление

KVM на Arch Linux: установка и первая виртуальная машина
Виртуализация

KVM на Arch Linux: установка и первая виртуальная машина

Эффект Зейгарник для продуктивности
Продуктивность

Эффект Зейгарник для продуктивности

Ремонт ноутбука: диагностика и практические советы
Ремонт техники

Ремонт ноутбука: диагностика и практические советы

Безопасное выключение Raspberry Pi
Raspberry Pi

Безопасное выключение Raspberry Pi