Добрый день всем. Я новичок в МД, ещё мало что понимаю, сильно не пинайте.
Пытаюсь подключить датчики температуры к малинке, есть проблема мне совсем непонятная.
Опишу всё, что сделал.
Установил готовый образ с МД отсюда https://connect.smartliving.ru/tasks/20.html (Версия для Raspberry 3 Model B).
Включил интерфейс 1-wire через sudo raspi-config.
Датчики (их у меня 3 шт) подключил к GPIO4 с подтяжкой к 5В.
В /sys/bus/w1/devices все три датчика появились.
В маркете дополнений МД установил пакет для 1-wire.
Установил пакет owfs, отредактировал owfs.conf, сейчас его содержимое такое (ни разу не уверен, что правильное):
! server: server = localhost:4304
server: FAKE = DS18S20,DS2405
server: w1
server: port 8234
mountpoint = /mnt/1wire
allow_other
http: port = 2121
ftp: port = 2120
server: port = localhost:4304
По порту 2121 owserver отображает список датчиков, там два фейковых DS18S20 и DS2405 как и указано в конфиге (нахрена они нужны, кстати?) и три моих, данные с них также отображаются верно:
Отредактироал /var/www/html/config.php, раскомментил строку Define('ONEWIRE_SERVER', 'tcp://localhost:8234');
Перезапустил малинку.
Теперь проблема.
В панели управления МД в устройствах 1-wire произвожу сканирование, и страница выдаёт ошибку:
Fatal error: Uncaught Error: Call to undefined function bccomp() in /var/www/html/modules/onewire/ownet.php:516 Stack trace: #0 /var/www/html/modules/onewire/onewire.class.php(576): OWNet->get('/28.FF407565150...', 2, false) #1 /var/www/html/modules/onewire/onewire.class.php(362): onewire->updateDevice('3') #2 /var/www/html/modules/onewire/onewire.class.php(155): onewire->scanDevices() #3 /var/www/html/modules/onewire/onewire.class.php(116): onewire->admin(Array) #4 /var/www/html/lib/jTemplate.class.php(711) : eval()'d code(8): onewire->run() #5 /var/www/html/lib/jTemplate.class.php(711): eval() #6 /var/www/html/lib/jTemplate.class.php(195): jTemplate->parseModules('<!DOCTYPE html>...', Array, './templates/') #7 /var/www/html/lib/jTemplate.class.php(109): jTemplate->parse('<!DOCTYPE html>...', Array, './templates/') #8 /var/www/html/lib/parser.class.php(93): jTemplate->__construct('./templates/pan...', Array, Object(panel)) #9 /var/www/html/lib/parser.class.php(63): parser->jtemplate_parse('./templates/pan...', Array) #10 in /var/www/html/modules/onewire/ownet.php on line 516
После повторного входа на страницу устройств вижу там три датчика, но не три моих, а один мой и два фейковых:
При этом автообновление данных с датчиков не работает, хотя настроил 5 сек, висят какие-то данные разово полученные при сканировании и всё.
Отключаю два моих датчика, в owserver они пропадают, всё соответствует, а в МД как и прежде - один мой и два фейковых, и скаинрование выдаёт ошибку. Отключаю всё свои датчики, в owserver остались только фейковые, а при сканировании в МД по-прежнему один мой и два фейковых, но ошибку уже не выдаёт.
Датчики проверенные, на Ардуине работали без проблем. Также проверен GPIO4, 1-wire рабочий, читал данные с этих трех датчиков без участия МД (да и сейчас в /sys/bus/w1/devices они все три есть и данные с них верные). Датчики на столе, то есть никаких длинных линий.
Всё, дальше я не понимаю куда копать, подскажите, пожалуйста.
Подключение датчиков DS18B20 к Raspberry по 1-wire через GPIO
Модератор: immortal
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Подключение датчиков DS18B20 к Raspberry по 1-wire через GPIO
Не находит функцию bccomp -- это часть пакета bcmath, который видимо в базовый образ не добавлен. Поищите как установить недостающий пакет через ssh-консоль.
Возможно что-то вроде sudo apt-get install php-bcmath
Возможно что-то вроде sudo apt-get install php-bcmath
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 102
- Зарегистрирован: Вт июл 17, 2018 10:19 am
- Благодарил (а): 23 раза
- Поблагодарили: 4 раза
Re: Подключение датчиков DS18B20 к Raspberry по 1-wire через GPIO
Ура! Всё заработало! Вот прям сразу! Поставил именно этой командой недостающий пакет! Все датчики увиделись, обновление идёт, в интефейс выводится! Отлично, спасибо! Значит, всё я верно сделал, но до этой тонкости я никак не смог бы додуматься, это уж точно. Ещё раз спасибо!
-
- Сообщения: 102
- Зарегистрирован: Вт июл 17, 2018 10:19 am
- Благодарил (а): 23 раза
- Поблагодарили: 4 раза
Re: Подключение датчиков DS18B20 к Raspberry по 1-wire через GPIO
Ещё один вопрос по этим датчикам.
Не могу увеличить частоту обновления данных выше, чем примерно 20 сек. MajoDoMo тут ни при чём, в настройках 1w-устройства установил частоту обновления 5 сек. Но owserver не выдаёт данных чаще, чем раз в 20 сек примерно. И ещё странно, что в свойствах каждого датчика в owserver отображаются все варианты точности значений температуры, от 9 до 12 бит. Насколько я понимаю, получить все значения можно только путём последовательного перепрограммирования соответствующего регистра датчика. Неужели owserver так и делает? Посмотрел осциллографом на шине - действительно, цикл обмена 17-18 сек. А нельзя ли его как-то ускорить?
Не могу увеличить частоту обновления данных выше, чем примерно 20 сек. MajoDoMo тут ни при чём, в настройках 1w-устройства установил частоту обновления 5 сек. Но owserver не выдаёт данных чаще, чем раз в 20 сек примерно. И ещё странно, что в свойствах каждого датчика в owserver отображаются все варианты точности значений температуры, от 9 до 12 бит. Насколько я понимаю, получить все значения можно только путём последовательного перепрограммирования соответствующего регистра датчика. Неужели owserver так и делает? Посмотрел осциллографом на шине - действительно, цикл обмена 17-18 сек. А нельзя ли его как-то ускорить?
-
- Сообщения: 273
- Зарегистрирован: Вс авг 20, 2017 1:46 am
- Благодарил (а): 142 раза
- Поблагодарили: 13 раз
Re: Подключение датчиков DS18B20 к Raspberry по 1-wire через GPIO
А как сделать вывод температуры из датчика DS18B20 и как прикрутить графики?
Raspberry Pi3, с образа от Сергея 3.34