Існує кілька методів, за допомогою яких ви можете відстежувати температуру довкілля, використовуючи одноплатний комп’ютер Raspberry Pi, наприклад, як частину метеорологічної станції. Хоча можливо застосувати зовнішній датчик, під’єднаний до контактів GPIO Raspberry Pi, ми розглянемо спосіб моніторингу температури за допомогою Raspberry Pi, який обладнаний Sense HAT.
Що таке Sense HAT?
Автор зображення: Raspberry Pi
Sense HAT – це офіційна додаткова плата Raspberry Pi HAT (Hardware Attached on Top), розроблена і виготовлена компанією Raspberry Pi. Початково вона була створена для використання астронавтами на борту Міжнародної космічної станції. З 2015 року два комп’ютери Raspberry Pi з Sense HAT використовувалися для наукових експериментів, розроблених школярами, які брали участь в Астро Пі. Згодом ці два пристрої були замінені оновленими версіями на базі Raspberry Pi 4 з камерою високої якості.
Автор зображення: Raspberry Pi
Незважаючи на відсутність спеціального космічного сріблястого корпусу, стандартна плата Sense HAT має ідентичні можливості. Вона сумісна з будь-якою моделлю Raspberry Pi з 40-контактним роз’ємом GPIO і має ряд вбудованих датчиків для моніторингу довкілля, а також виявлення власної орієнтації та руху. Додатково, плата оснащена світлодіодною матрицею 8×8 RGB для відображення тексту, даних та зображень. Також є міні-джойстик з п’ятьма положеннями.
Повний перелік сенсорних функцій Sense HAT виглядає так:
- Вологість: датчик STMicro HTS221 з діапазоном відносної вологості від 0 до 100%, а також датчик температури від 0°C до 65°C ± 2°C (32°F до 149°F).
- Барометричний тиск: датчик STMicro LPS25HB з діапазоном від 260 до 1260 гПа, і вимірювання температури від 15°C до 40°C ±0,5°C (59°F до 104°F).
- Температура: може бути зчитана з датчика вологості або тиску, або виміряна шляхом усереднення обох показників.
- Гіроскоп: STMicro LSM9DS1 IMU вимірює обертання Sense HAT відносно поверхні Землі (і швидкість обертання).
- Акселерометр: ще одна функція IMU, яка вимірює прискорення в різних напрямках.
- Магнітометр: визначає магнітне поле Землі, дозволяючи IMU визначати напрямок магнітної півночі та показувати дані компаса.
Тепер, коли вам відомі можливості цього багатофункціонального Raspberry Pi HAT, можна переходити до проєкту.
Крок 1: Підключіть Sense HAT
Перед підключенням Sense HAT, переконайтеся, що ваш Raspberry Pi вимкнений та від’єднаний від джерела живлення. Обережно встановіть Sense HAT (з чорним роз’ємом подовжувача) на 40-контактний роз’єм GPIO Raspberry Pi таким чином, щоб плата Sense HAT розміщувалася над платою Raspberry Pi. Переконайтеся, що всі контакти правильно вирівняні і обидва ряди з’єднані. Можна також використати гвинтові стійки для фіксації.
Підійде будь-яка стандартна модель Raspberry Pi з 40-контактним роз’ємом GPIO. Проте, суттєвим обмеженням Raspberry Pi 400 є розташування роз’єму GPIO на задній панелі вбудованої клавіатури. Це означає, що Sense HAT буде направлений назад, тому для підключення може знадобитися подовжувач GPIO.
Крок 2: Налаштуйте Raspberry Pi
Як і в будь-якому іншому проєкті, необхідно підключити USB-клавіатуру та мишу, а потім під’єднати Raspberry Pi до монітора або телевізора. Також у вас має бути вставлена microSD-карта зі стандартною ОС Raspberry Pi – якщо ви ще цього не зробили, ознайомтеся з інструкцією зі встановлення операційної системи на Raspberry Pi. Після цього можна увімкнути живлення.
Альтернативно, можна використовувати Raspberry Pi з Sense HAT у безголовому режимі без підключеного монітора, і з’єднатися з Raspberry Pi віддалено через SSH з іншого комп’ютера або пристрою. У такому випадку ви не зможете застосовувати Thonny Python IDE, але редагування програм буде можливим за допомогою текстового редактора nano та запуску з командного рядка.
Прошивка Sense HAT повинна бути встановлена за замовчуванням. Для перевірки, відкрийте вікно терміналу та введіть:
sudo apt install sense-hat
Потім, якщо пакет було щойно встановлено, перезавантажте Raspberry Pi:
sudo reboot
Крок 3: Почніть програмувати на Python
Хоча Raspberry Pi Sense HAT можна використовувати з блоковою мовою програмування Scratch, ми будемо використовувати Python для читання та відображення даних з датчиків.
Thonny IDE (інтегроване середовище розробки) є хорошим варіантом для програмування на Python на Raspberry Pi, оскільки має багато функцій, зокрема корисні можливості налагодження. У графічному інтерфейсі робочого столу ОС Raspberry Pi перейдіть до “Меню” (значок малини вгорі ліворуч) > “Програмування” > Thonny IDE, щоб запустити його.
Крок 4: Виміряйте температуру
У головному вікні Thonny IDE введіть такі рядки коду:
from sense_hat import SenseHat sense = SenseHat() sense.clear() temp = sense.get_temperature() print(temp)
Перший рядок імпортує клас SenseHat з бібліотеки Python sense_hat (яка попередньо встановлена в ОС Raspberry Pi). Потім це призначається змінній sense. Третій рядок очищує світлодіодну матрицю Sense HAT.
Далі ми отримуємо показник температури та виводимо його в область оболонки Thonny IDE. Значення буде у градусах Цельсія, тому для переведення у Фаренгейти можна скористатися формулою:
temp = (sense.get_temperature() * 1.8 + 32)
Показник датчика температури може мати кілька цифр після коми. Скористаємося функцією round для округлення до одного знака після коми:
temp = round(temp, 1)
Функція sense.get_temperature() зчитує показання з датчика температури, вбудованого у датчик вологості. Додатково, ви можете отримати показник температури з датчика тиску за допомогою sense.get_temperature_from_pressure() або навіть усереднити обидва значення (додавши та поділивши на два).
Крок 5: Виведіть температуру на Sense HAT
Виведення одного вимірювання температури в Python Shell є не дуже цікавим, тому давайте краще регулярно вимірювати нові значення та показувати їх на світлодіодній матриці RGB Sense HAT. Для відображення тексту, що прокручується, ми будемо використовувати функцію show_message. Також використаємо цикл while: True для постійного зчитування нових значень кожні 10 секунд, для чого застосуємо функцію sleep з бібліотеки time.
Ось повний код програми:
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)
Запустіть цей код і побачите, як кожне нове вимірювання температури буде прокручуватися на світлодіодній матриці. Спробуйте подути на Sense HAT, щоб побачити зміну температури.
На показники температури може впливати тепло, що виділяється центральним процесором Raspberry Pi, який розташований трохи нижче, тому може знадобитися коригування для отримання більш точних даних. Ще одним рішенням є використання стійки-подовжувача для підняття Sense HAT вище Raspberry Pi.
Використання Raspberry Pi для моніторингу температури
Хоча можна було б використати окремий датчик температури для цього проєкту, Sense HAT спрощує моніторинг температури за допомогою Raspberry Pi. Ви також можете використовувати його для зчитування багатьох інших показань з датчиків, таких як барометричний тиск та відносна вологість, та виводити їх на світлодіодну матрицю.