Курако,20: +7-906-926-10-66

Пн-Пт: 09:00-18:00
Сб: 10:00-17:00
Вс: 10:00-15:00

Для юр.лиц: +7-960-908-03-81

Пн-Пт: 10:00-18:00

обновление: 29.05.20г.
Подключение датчика температуры DS18B20 к Raspberry Pi.

1.Необходимо приобрести:
- датчик температуры DS18B20, DS1820, DS18S20;
- резистор от 1,5К до 4,7К.

Если у Вас нет навыков пайки, то можно приобрести:
- беспаечная макетная плата;
- соединительные провода.

2. Собираем в соответствии со схемой:

3. Установка софта

- Если Вы установили Raspbian "Wheezy", то патч не нужен, все модули уже установлены. Просто загружаем их, если нет - то ищем в google "Патч ядра для 1-wire".

Проверяем версию ядра:

cat /proc/version

Если у вас версия ядра ниже 3.18, то делаем следующее:

sudo modprobe w1-gpio
sudo modprobe w1_therm
Чтоб модули загружались при старте системы добавляем в /etc/modules
w1-gpio
w1_therm
Если версия ядра от 3.18 и выше:
sudo nano /boot/config.txt
в окне перемещаемся вниз и вставляем строку:
dtoverlay=w1-gpio
и перезагружаемся
sudo reboot
Если у вас все правильно подключено, то пишем
ls /sys/bus/w1/devices
если в ответ получили строку типа:
10-0008015a12da w1_bus_master1
значит вы всё правильно сделали и датчик подключен. 10-0008015a12da - это серийный номер датчика, у Вас он будет другой. Теперь считаем температуру
cat /sys/bus/w1/devices/w1_bus_master1/xx-xxxxxxxxxxxx/w1_slave
Вместо xx-xxxxxxxxxxxx вставляем серийный номер вашего датчика. Должны получить в ответ:
43 00 4b 46 ff ff 04 10 eb : crc=eb YES
43 00 4b 46 ff ff 04 10 eb t=33500
где "t=33500" значение температуры, которую необходимо разделить на 1000.

Чтобы убрать лишние строки можно создать файл

sudo nano temp1.sh
и вставляем:
#! /bin/bash
sudo modprobe w1-gpio
sudo modprobe w1-therm
temp=$(cat /sys/bus/w1/devices/xx-xxxxxxxxxxxx/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-)
echo "Температура: $temp"
Сохраним, выйдем и
sudo chmod +x temp1.sh
Теперь запускаем
./temp1.sh

И на экране появится надпись

Температура: 26000

Готово!

Сообщение X Ваше сообщение отправлено.