Датчик DALLAS 18B20
Для измерения температуры можно использовать датчик DS18B20, который измеряет температуру от -55°C до +125°C. Данный датчик работает по протоколу 1Wire, который позволяет добавить подобных устройств на одной шине более 16 миллионов. Расстояние до датчика может достигать 300 метров при соблюдении ряда условий. В частности: использование специального кабеля IEEE1394, использование спецдрайвера, использование топологии “общая шина” и др.
Для подключения нам потребуется:
- Макетная плата
- Датчик температуры DS18B20
- Соединительные провод
- Резистор на 4.7кОм
Включаем Raspberry Pi, открываем терминал.
Редактируем config.txt. В данном конфиг-файле можно редактировать множество параметров – от разрешения экрана до добавления лицензионных ключей для воспроизведения MPEG-2/VС-1
- sudo nano /boot/config.txt
И добавляем строку для включения при загрузке системы протокола 1Wire для 4 пина GPIO в конец файла
- dtoverlay=w1-gpio,gpiopin=4
Сохраняем CTRL+O, CTRL+X и перезагружаем малину
- sudo reboot
Загружаем модули. Данные модули предназначены для расширения возможностей ядра Linux. Так как протокол 1Wire по умолчанию не включен в ядре, необходимо загрузить дополнительные модули w1-gpio(модуль поддержки 1Wire протокола через GPIO порты) и w1-therm(модуль поддержки датчиков температуры DS18B20 и его совместимые) вручную.
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
Для каждого датчика создается собственный каталог, например 28-0000011aa1a1
Переходим в каталог датчика и считываем с него температуру
Переходим в каталог датчика и считываем с него температуру
- cd /sys/bus/w1/devices/28*
- cat w1_slave
Вывод будет примерно таким:
9a 01 4b 46 7f ff 06 10 78 : crc=78 YES
9a 01 4b 46 7f ff 06 10 78 t=256259a 01 4b 46 7f ff 06 10 78 : crc=78 YES
crc=78 YES показывает, что температура правильно считана, если будет выводить ответ = NO – необходимо заново считать температуру - cat w1_slave
t=25625 и есть температура, измеряемая датчиком, умноженная на 1000. То есть 25625 = 25.6 градуса по Цельсию.
Для удобства можно использовать скрипт на Python, который вы найдёте в архиве. Для этого нам нужно скачать архив.
Скачиваем
- wget http://wiki.malinapi.com/lib/exe/fetch.php/temp.tar
Распаковываем архив
- tar -xvf temp.tar
При вводе команды ls мы увидим файл: temp.py
Для запуска скрипта, достаточно выполнить
- sudo python temp.py
Вывод температуры будет осуществляться в реальном времени!
Немає коментарів:
Дописати коментар