Использование сенсора температуры и давления BME280 с интерфейсом I2C в Python. Часть 2
Запуск сценария
Перед запуском сценария вы должны увидеть подключенное устройство . Если вы установили пакет i2c-tools, как часть установки i2c, то должны воспользоваться командой i2cdetect, чтобы проверить, возвращается ли адрес устройства. Сценарий предполагает, что адрес 0x76. Вы можете изменить это значение путем редактирования переменной DEVICE в bme280.py с помощью своего любимого текстового редактора.
Запустите сценарий с помощью:
python bme280.py
На своем RPi увидите нечто подобное:
BME280_Results
Структура сценария
Сценарий, приведенный выше, является довольно прямолинейным, но имеет в себе некоторую математику, которая страшно выглядит. Все это определено в datasheet и вам не нужно слишком много беспокоиться, как оно работает! Автор приводится ниже грубую аннотацию сценария, если хотите чуть более подробно отследить его до конца:
• импорт некоторых библиотек
• определение некоторых функций
• функция main использует функцию readBME280ID, чтобы получить идентификатор устройства
• затем функция main вызывает readBME280All, с которой…
o устанавливает передискретизацію и режим
o считывает калибровочные данные с устройства, который был предварительно настроен на заводе
o считывает выходные данные температуры, давления и влажности
o перерабатывает данные, используя математику с таблицы
o возвращает значение в main()
Включите собственный сценарий
Вы можете просто изменить функцию main в приведенном сценарии, но вы можете захотеть включить свою собственную функциональность. Для этого можете импортировать рассматриваемый сценарий, а потом ссылаться на функции readBME280ID и readBME280All, как в примере ниже:
import bme280
(chip_id, chip_version) = bme280.readBME280ID()
print «Chip ID :», chip_id
print Version :", chip_version
temperature,pressure,humidity = bme280.readBME280All()
print «Temperature: », temperature, «C»
print «Pressure: », pressure, «hPa»
print «Humidity: », humidity, "%"
Остальные вниз за вашим воображением.
Решение проблем
• Если результаты команды i2cdetect выдают ошибку, то или не установлено i2c-tools, или вам нужно использовать 0, а не 1
• Если устройство не обнаружен и вы не видите адрес, то либо вы неправильно подключили устройство, или неправильно включен интерфейс i2c
• Дважды проверьте подключение и перезапустите RPi
В большинстве случаев эксперимент с i2c не работало потому, что:
• i2c не включен
• Устройство не подключено должным образом
• i2c-tools не был установлен, поэтому недоступна команда i2cdetect
В редких случаях устройство может быть неисправен, но гораздо более вероятно, что будет одна из перечисленных выше причин.
P.S. У вас сломался компьютер в Сургуте? Наша компания готова произвести срочный ремонт компьютеров по самой низкой цене в Сургуте.