В предыдущей статье мы считывали показания датчика DS18B20 без использования драйверов, написав собственную программу на C++. В этой статье мы попробуем настроить 1-Wire драйвер и, с его помощью, получить температуру с DS18B20, подключенного к Orange Pi PC.
Операционная система Armbian 5.35 (Ubuntu 16.04) имеет драйвер для работы с 1-Wire устройствами, а именно с датчиком температуры DS18B20. По умолчанию этот драйвер отключён и по этому нужно его настроить.
О наличии этого драйвера в других операционных системах (не Armbian) я не знаю, не проверял.
Настройка драйвера 1-Wire
- Для начала сделайте резервную копию script.bin, чтобы, в случае чего, вы смогли вернуть обратно все настройки:
sudo cp /boot/script.bin /boot/script.bak
- Преобразуйте бинарный файл script.bin в редактируемый файл fex:
bin2fex /boot/script.bin /boot/script.fex
- Теперь отредактируйте файл script.fex с помощью утилиты nano:
nano /boot/script.fex
- Найдите раздел [w1_para] и отредактируйте строки w1_used и gpio:
[w1_para] w1_used = 1 gpio = 20
где gpio — это номер пина по колонке BCM. Чтобы узнать, где и какой пин находится, выполняем gpio readall. В моём случае BCM=20, т.е. 37-й физический пин.
- Сохраните и закройте файл:
Ctrl X, Y (Yes), Enter
- Преобразуйте измененный script.fex в script.bin:
sudo fex2bin /boot/script.fex /boot/script.bin
- Отредактируйте файл /etc/modules с помощью утилиты nano:
nano /etc/modules
- Добавьте следующие строки:
w1-sunxi w1-gpio w1-therm
- Сохраните и закройте файл:
Ctrl X, Y (Yes), Enter
- Перезагрузите систему:
reboot
Схема подключения датчика DS18B20 к Orange Pi PC
Считывание температуры с датчика DS18B20
После перезагрузки выполняем команду:
dmesg | grep -E 'w1|wire'
вы должны получить примерно такой результат:
root@orangepipc:~# dmesg | grep -E 'w1|wire' [ 5.375196] W1_SUNXI: Added w1-gpio on GPIO-20 [ 5.379420] Driver for 1-wire Dallas network protocol.
Это означает, что драйвер 1-wire настроен на 20-й пин.
Чтобы увидеть все подключённые датчики выполняем:
ls -al /sys/bus/w1/devices
У меня два датчика, 28-000005464e04 и 28-00000547cabb:
root@orangepipc:~# ls -al /sys/bus/w1/devices total 0 drwxr-xr-x 2 root root 0 Dec 3 19:59 . drwxr-xr-x 4 root root 0 Dec 3 19:59 .. lrwxrwxrwx 1 root root 0 Dec 3 20:02 28-000005464e04 -> ../../../devices/w1_bus_master1/28-000005464e04 lrwxrwxrwx 1 root root 0 Dec 3 20:02 28-00000547cabb -> ../../../devices/w1_bus_master1/28-00000547cabb lrwxrwxrwx 1 root root 0 Dec 3 19:59 w1_bus_master1 -> ../../../devices/w1_bus_master1 root@orangepipc:~#
Температура и crc записаны в файле w1_slave каждого датчика и, чтобы узнать её, выводим на экран содержимое этого файла:
cat /sys/bus/w1/devices/28-000005464e04/w1_slave
результат:
61 01 4b 46 7f ff 0f 10 02 : crc=02 YES 61 01 4b 46 7f ff 0f 10 02 t=22062
Linux orangepipcplus 4.19.20-sunxi #5.75
С датчиком разобрался — работает, но есть один вопросик :
Вы случаем не знаете как переключить разрешение датчика
на 10-11 битное преобразование, а то он похоже на 9 битах.
При комнатной, у вас кстати примером выше тоже похоже — 20750, т.е. точность 0.25 градуса.
И кстати он предложил подключить датчик на 110 порт (PD14) и на другие не соглашался.
Я во всяких никсах и программировании не очень, так что если вам удастся придумать как — будет вам большой респект 😉
Да и кстати в начале темы все ок (где температура t=22062, т.е. 22.062 °C.) т.е. преобразование с большим разрешением, интересно почему. Другая версия драйвера ?
По опыту общения с 18b20 насколько я понял все просто
9бит -точность 0.25
10 — 0.1
11-0.01
Ну да, просто вот вопрос, почему на Kernel 3.4. идет преобразование наверно 12 бит, а на 4.14 — 10 бит.
Может просто со старого какой-нить файлик вытащить и переставить на новый?
На orange pi pc после установки свежего armbian 21.05.1
просто запускаем armbian-config -> System -> Hardware
в самом низу чекаем w1-gpio
сохраняем, получаем предложение перезагрузки и после чего
на PD14 получаем данные.
В node-red узел node-red-contrib-sensor-ds18b20
сразу читает данные с этого пина.
В этой публикации мы сосредоточимся на интересных аспектах одной из самых актуальных тем современности. Совмещая факты и мнения экспертов, мы создадим полное представление о предмете, которое будет полезно как новичкам, так и тем, кто глубоко изучает вопрос.
Исследовать вопрос подробнее — https://mednarkoforum.ru/
купить медицинскую справку для водителя где можно купить медицинскую справку
магазин продажи аккаунтов быстро продать аккаунт
магазин социальных аккаунтов account-service213.ru
биржа для продажи аккаунтов купить аккаунт
продажа аккаунтов продать маркетплейсы для покупки аккаунта
pdacenter.ru — сервис по ремонту бытовой техники
Ремонт бесперебойников в Новосибирске в официальном сервисном центре PDACENTER.
Наши инженеры выполняют ремонт любой сложности по дотупным ценам!
iphone plus iphone 4
english essay https://promontoryartists.org/ edit pad
buy ready essays online https://essentialhunt.com/ buy essay service
help with essay writing https://tool300.com/ buy law essays
write my paper org https://bjaygroup.com/ write a term paper
writing a persuasive essay https://notjobsbutpassion.com/ help essay writing
Find the Perfect Clock clocks top for Any Space! Looking for high-quality clocks? At Top Clocks, we offer a wide selection, from alarm clocks to wall clocks, mantel clocks, and more. Whether you prefer modern, vintage, or smart clocks, we have the best options to enhance your home. Explore our collection and find the perfect timepiece today!