Построение надёжного Temperature & Sensor API на Raspberry Pi с модулем GY‑91
Узнайте, как создать надежный Flask API на Raspberry Pi, читающий температуру, давление, влажность и больше с мультисенсорного модуля GY‑91. Руководство ведёт через подключение, настройку софта и пример кода, который можно адаптировать для своих проектов.
Подключение сенсора через GPIO
Плата GY‑91 использует 4-пиновый I²C интерфейс. Подключите пины так:
- 3,3 В → Пин 1 (3V3POWER)
- GND → Пин 6 (GROUND)
- SCL → Пин 5 (I²C Clock)
- SDA → Пин 3 (I²C Data)
Обратитесь к схеме GY‑91 для точных цветов пинов и раскладки.
Подготовка Python-зависимостей
Установите Python 3 на Raspberry Pi. Следующие команды устанавливают последний релиз 3.6.x из исходников, обеспечивая все нужные библиотеки для следующих библиотек сенсоров.
$ sudo apt-get update
$ sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
$ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
$ tar xf Python-3.6.5.tar.xz
$ cd Python-3.6.5
$ ./configure
$ make
$ sudo make altinstall
Затем установите лёгкий веб-стек для экспозиции данных сенсоров:
$ pip3 install flask flask-cors flask-restful
Пример кода
Клонируйте готовый к запуску репозиторий, содержащий минимальный Flask API скелет и обёртку сенсора.
$ git clone https://gist.github.com/wdelenclos/4f0c4b8d564aa5c58f47653fd184eaa7
Ядро программы извлекает данные из драйвера bme280, который в свою очередь общается с чипами MPU9250 и BMP280 на плате GY‑91. Одна строка получает все нужные показания:
temperature, pressure, humidity = bme280.readBME280All()
Все остальные маршруты — стандартные Flask-хендлеры, возвращающие последние значения сенсоров как JSON.
Запуск API
Запустите сервер локально:
$ python3 app.py
Чтобы держать сервис работающим в фоне, можно использовать:
$ sudo nohup python3 app.py &
Демо
После запуска зайдите на https://your‑pi‑ip:5000/status для просмотра живого JSON-пейлоада с показаниями сенсоров. Пример на оригинальной странице показывает, как получить этот эндпоинт через Ajax и отобразить на веб-дашборде.
Не стесняйтесь просить дополнительные объяснения или кастомизации в комментариях.
Источник: Environmental sensor API with a RPi
Производственный процесс
- Интеграция данных сенсоров в Raspberry Pi: практическое руководство
- Датчик слежения за линией на Raspberry Pi — простой детектор двери/линии KY‑033
- Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности
- Мастерство GPIO Raspberry Pi: подключение PIR-датчика движения на B+/Model 2
- Интеграция импульсного радара Acconeer A111 с Raspberry Pi: практическое руководство
- Python/MicroPython логгер датчиков: бесшовное сохранение данных в Google Sheets
- Установка камеры Raspberry Pi в скворечнике — пошаговое руководство
- Интеграция термопары с Arduino Portenta H7 через MAX6675
- Импорт модулей в Python: практическое руководство с примерами
- Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки