В предыдущей статье мы считывали показания датчика 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) и на другие не соглашался.
Менять разрешение я никогда не пробовал, почему-то об этом не подумал.
Я посмотрел исходники и обнаружил, что меняется с помощью функции
но нужно как-то её вызывать, но ещё не разобрался как.
https://elixir.bootlin.com/linux/latest/source/drivers/w1/slaves/w1_therm.c
Я во всяких никсах и программировании не очень, так что если вам удастся придумать как — будет вам большой респект 😉
Я постараюсь найти решение этой проблемы и дополню статью, в случае успеха.
Да и кстати в начале темы все ок (где температура t=22062, т.е. 22.062 °C.) т.е. преобразование с большим разрешением, интересно почему. Другая версия драйвера ?
показываются не все цифры, только 3, реальные данные вот эти: 22.0625
По опыту общения с 18b20 насколько я понял все просто
9бит -точность 0.25
10 — 0.1
11-0.01
Ну да, просто вот вопрос, почему на Kernel 3.4. идет преобразование наверно 12 бит, а на 4.14 — 10 бит.
Как установить разрешение DS18B20 на Armbian / Версия ядра Linux 4.x
На ядре 3.4.x можно только получить температуру с DS18B20. В новой версии ядра Linux 4.x немного исправлены тайминги, достигнута стабильная работа датчиков в режиме паразитного питания, а также добавлена опция изменения разрешения.
Теперь вы можете легко установить разрешение 9, 10, 11 или 12 бит с помощью простой команды:
Соответственно при снижении разрешения значительно уменьшается время отклика сенсора с 1100 мс (с 12 бит) до 125 мс (с 9 бит).
Если у вас версия ядра ниже 4.x, тогда вы получите следующую ошибку:
https://forum.armbian.com/topic/3276-help-wanted-changing-resolution-of-ds18b20-on-orange-pi/
https://forum.armbian.com/topic/1558-w1-therm-driver-modifications/
https://raspberrypi.stackexchange.com/questions/71563/how-to-set-precision-of-ds18b20-via-w1-therm
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/Documentation/w1/slaves/w1_therm
Может просто со старого какой-нить файлик вытащить и переставить на новый?
Я пока не могу дать ответ на этот вопрос, вечером попробую экспериментировать, сейчас у меня нет доступа к апельсинке
На orange pi pc после установки свежего armbian 21.05.1
просто запускаем armbian-config -> System -> Hardware
в самом низу чекаем w1-gpio
сохраняем, получаем предложение перезагрузки и после чего
на PD14 получаем данные.
В node-red узел node-red-contrib-sensor-ds18b20
сразу читает данные с этого пина.
В ядре 5.10.34-sunxi:
в /boot/armbianEnv.txt
добавляем:
overlays=w1-gpio
param_w1_pin=PA20
param_w1_pin_int_pullup=1
инфа отсюда: https://docs.armbian.com/User-Guide_Allwinner_overlays/
Главные новости мира https://ua-vestnik.com и страны: политика, экономика, спорт, культура, технологии. Оперативная информация, аналитика и эксклюзивные материалы для тех, кто следит за событиями в реальном времени.
play online casino new casino sites casino sites
Как получить диплом техникума с упрощенным обучением в Москве официально
ऑनलाइन स्लॉट गेम real cash games online कैसीनो
daman bet casino real money सट्टेबाजी के खेल
10क्रिक slot games live cricket satta rates
बंगाली में स्लॉट का मतलब कैसीनो डेज़ इंडिया new casino sites
एविएटर गेम सभी स्लॉट real money
вывод из запоя дешево ростов на дону uaforum.ukrbb.net/viewtopic.php?f=13&t=3230 .
Предлагаем услуги профессиональных инженеров офицальной мастерской.
Еслли вы искали сервисный центр xiaomi, можете посмотреть на сайте: сервисный центр xiaomi
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
online games real money slot games online दक्षिण गोवा में कैसीनो
दमन खेल कैसीनो साइट real money
Покупка диплома о среднем полном образовании: как избежать мошенничества?
Узнай все о варикоцеле у мужчин варикоцеле 2 степени
real money online casino indbet godlike jersey
Как безопасно купить диплом колледжа или ВУЗа в России, что важно знать
Официальная покупка диплома вуза с упрощенной программой обучения
Официальное получение диплома техникума с упрощенным обучением в Москве
Купить диплом о среднем полном образовании, в чем подвох и как избежать обмана?
Процесс получения диплома стоматолога: реально ли это сделать быстро?
naturelceyiz.com/bishkek-diplom-kupit.html
Как официально приобрести аттестат 11 класса с минимальными затратами времени
Internet drugstores list their prices for can you take gabapentin and lyrica together pills from this online portal
Полезные советы по безопасной покупке диплома о высшем образовании
Some don’t ask a sales clerk for the how does lexapro make you feel the first week at the lowest prices anywhere on the net offered on this site
Identify price savings and flagyl and cipro when you are done analyzing cost savings to get the best
Be assured of the correct price of valtrex dosage for cold sores at specially reduced prices
нарколог на дом цены https://www.avtomobili.creartuforo.com/viewtopic.php?id=731 .
вызвать нарколога на дом [url=https://www.www.rolandus.org/forum/viewtopic.php?p=106429]https://www.www.rolandus.org/forum/viewtopic.php?p=106429[/url] .
частный нарколог на дом [url=www.krut.forumno.com/viewtopic.php?id=6025]частный нарколог на дом[/url] .
Тут можно преобрести оружейные шкафы оружейный сейф на заказ москва
Your doctor should know your history before you side effects lyrica to help eliminate symptoms by securing excellent online
Узнай все о варикоцеле яичка варикоцеле диагностика
нарколог на дом срочно flanrp.rolevaya.com/viewtopic.php?id=146 .
Официальное получение диплома техникума с упрощенным обучением в Москве
Аттестат школы купить официально с упрощенным обучением в Москве
Процесс получения диплома стоматолога: реально ли это сделать быстро?
Стоимость дипломов высшего и среднего образования и как избежать подделок
Можно ли купить аттестат о среднем образовании, основные моменты и вопросы
Полезные советы по покупке диплома о высшем образовании без риска
электрокарнизы москва http://www.elektrokarniz495.ru .
Узнайте стоимость диплома высшего и среднего образования и процесс получения
Официальная покупка диплома вуза с упрощенной программой обучения
Аттестат 11 класса купить официально с упрощенным обучением в Москве
Вопросы и ответы: можно ли быстро купить диплом старого образца?
Официальная покупка диплома вуза с сокращенной программой в Москве
Можно ли купить аттестат о среднем образовании, основные моменты и вопросы