Мониторинг температуры на Raspberry Pi
Обзор
Raspberry Pi - это небольшой одноплатный компьютер (SBC), разработанный здесь, в Великобритании, Raspberry Pi Foundation. Он запускает различные версии Linux на ARM и имеет набор контактов ввода-вывода, которые вы можете использовать для подключения внешних компонентов, таких как датчики, кнопки и т. Д. Raspberry Pi, к сожалению, не имеет встроенного аналого-цифрового преобразователя, поэтому мы не можем использовать аналоговый датчик температуры, такой как TMP36, который отлично работает с Arduino, альтернативой является использование цифрового датчика температуры.
Детали
Raspberry Pi
Датчик температуры DS18B20
Резистор 4,8 кОм
Пластина для прототипирования
Pi Cobbler
Макет половинного размера
Комплект соединительных проводов
Базовый дизайн
Аппаратное обеспечение
В базовой конструкции все, что нам нужно, это Raspberry Pi, датчик температуры DS18B20, резистор 4,8 кОм, Pi Cobbler, макетная плата половинного размера и перемычки. Все будет вставлено в макет для удобства тестирования и проектирования.
Схема подключения
Датчики уникальны тем, что их можно подключать параллельно, и в систему можно добавить любое количество датчиков. Датчики обмениваются данными с помощью однопроводного последовательного интерфейса, и если вы используете Rasbian на Raspberry Pi, он будет идентифицировать датчики как подключенные последовательные устройства. Однако датчик должен быть подключен к контакту 4 GPIO, поскольку это единственный контакт, который (в настоящее время) позволяет осуществлять обмен данными по однопроводному последовательному протоколу.
Вы можете использовать эту диаграмму из руководства Adafruit по настройке датчика температуры DS18B20 на Raspberry Pi, чтобы упростить понимание при соединении всего вместе.
DS18B20
Вы можете приобрести DS18B20 в трех вариантах:доступны компоненты обычного транзисторного типа, водонепроницаемая версия с подключенным длинным кабелем и версия для высоких температур.
Все три DS18B20 включают специальный однопроводный последовательный интерфейс, а также логику управления и сам датчик температуры. Он выводит цифровые измерения на Raspberry Pi, и, в зависимости от вашего дистрибутива, последняя версия Raspbian включает способ чтения этих сообщений без дополнительной работы. Если у вас все подключено вместе, вы можете проверить это в командной строке, используя следующие команды.
123456sudo modprobe w1 – gpiosudo modprobe w1 – thermcd / sys / bus / w1 / deviceslscd 28 – xxxx (измените это на свое) cat w1_slaveВведите команды, которые вы видите выше, в окно терминала. Перейдите в каталог '/ sys / bus / s1 / devices'. В командах над командой 'cd' он установил каталог, начинающийся с '28 - 'Он может иметь другое имя в вашей системе, поскольку оно основано на последовательном порту DS18B20. номер, поэтому перейдите к имени любого каталога, который там есть.
В конце первой строки ответа будет либо ДА, либо НЕТ. Если да, то температура будет в конце второй строки с точностью до 1/000 ° C.
Программное обеспечение
После того, как схема собрана, нам нужно написать программу для считывания данных температуры с датчика. В базовой версии программа будет считывать данные каждую секунду и отображать показания на стандартный вывод в терминале.
Программный язык, который мы собираемся использовать для чтения данных с датчика температуры DS18B20, - Python. Добавьте это в файл и сохраните как «temp_logger_basic.py»
1234567891011121314151617181920212223242526272829303132import osimport globimport timeos.system ('modprobe w1-gpio') os.system ('modprobe w1-therm') base_dir ='/ sys / bus / w1 / devices /' device_folder ) [0] device_file =device_folder + '/ w1_slave'def read_temp_raw ():f =open (device_file,' r ') lines =f.readlines () f.close () return linesdef read_temp ():lines =read_temp_raw () в то время как 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 =float (temp_string) / 1000.0 temp_f =temp_c * 9.0 / 5.0 + 32.0 return temp_c, temp_f while True:print (read_temp ()) time.sleep (1)В начало программы мы включаем модули, которые будем использовать в скрипте, затем он переходит к выдаче команд «modprobe», которые необходимы для запуска интерфейса. В следующих трех строках найдите файл, из которого можно читать данные.
Есть две функции, которые обрабатывают считывание температуры:«read_temp_raw» извлекает две строки сообщения из интерфейса. Функция read_temp каждую секунду возвращает два значения:температуру в градусах Цельсия и температуру в градусах Фаренгейта.
Вот результат работы скрипта.
123456789sculley @ berry:/ usr / local / temperature / $ sudo python ./temp_logger_basic.py(18.875, 65.975) (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) ( 18,875, 65,975) (18,875, 65,975)Сценарий необходимо запускать от имени пользователя root, а также использовать python для вызова сценария, поскольку мы не добавили Python shebang в начало сценария.
Итак, все, вы должны были успешно подключить базовую конструкцию и написать базовый скрипт для чтения данных о температуре с датчика температуры DS18B20. Теперь мы можем перейти к более продвинутому дизайну.
Продвинутый дизайн
В расширенном дизайне я покажу вам свой дизайн моего регистратора температуры, компоненты которого я припаял на экран печатной платы, который подключается к Raspberry Pi и хранится внутри небольшого черного ящика, чтобы скрыть все, код запускается каждый час и сохраняет данные в базу данных MySQL, я использую это для отображения данных в Google Chart, что упрощает визуализацию.
Аппаратное обеспечение
Для расширенного дизайна нам нужны те же детали, что и базовый, за исключением Pi Cobbler (Raspberry Pi, датчик температуры DS18B20, резистор 4,8 кОм, макетная плата половинного размера и перемычки), но нам также нужна печатная плата, я купил Raspberry Pi прототип щита от Adafruit, который отлично подходит для создания полупостоянных дизайнов.
Подробнее:Мониторинг температуры на Raspberry Pi
Производственный процесс
- Регистратор температуры Raspberry Pi
- Температурный профиль Raspberry Pi с использованием LabVIEW
- Сетевой монитор температуры и влажности Raspberry Pi
- Считать температуру с помощью DS18B20 | Raspberry Pi 2
- Измерение температуры с помощью RASPBERRY PI
- Датчик температуры Python и Raspberry Pi
- Простая температура и влажность на Raspberry Pi
- Мониторинг температуры с помощью Raspberry Pi
- Сделай сам:мониторинг и регулирование температуры для домашнего пивоварения
- Raspberry Pi, считывающий температуру и давление BMP085