Задать вопрос
@mrtall
PHP Developer

Raspberry Pi 3b+ не видит DS18b20 по 1Wire?

Проблема: Новое ядро raspbian не обнаруживает датчик DS18b20 по шине 1wire. Это происходит из-за Device Tree которое добавили в Kernel 3.18.8 (Kernel 3.18.8 breaks 1-wire)

Что имеется:
Raspberry Pi 3b+ Kernel: 4.14.98-v7+
DS18b20 рабочий, проверялся на ардуине
На сигнал подтянут + через резистор 4.7к Ω (тестировал с 1к Ω)
Тестировал на 3.3в и на 5в
Фото подключения
5cd40d167d5b6465463756.jpeg
Суть: Для съема показаний, необходимо добавить dtoverlay=w1-gpio в /boot/config.txt и для нового ядра этого достаточно что-бы на GPIO4 обнаружился датчик и загрузились модули wire, w1-gpio, w1-therm
После этого в /sys/bus/w1/devices появляется каталог имя которого начинается на 28-* это и есть место куда запишутся показания в файле w1_slave.
Идентичная проблема на stackexchange

Вопрос: Почему у меня Распбери не обнаруживает датчик и не добавляет его?
Перечитано было все что связанно с данным вопросом, и последний совет на форуме был забить на распбери вмести с этим датчиком.
  • Вопрос задан
  • 1534 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@mrtall Автор вопроса
PHP Developer
Итак ответ есть, но без объяснений почему именно так работает
Чистая система, добавляем в /boot/config.txt
dtoverlay=w1-gpio,gpiopin=14
Далее $ pip3 install W1ThermSensor
И вот рабочий скрипт:
# DS18B20_test28 tlfong01 2019may10hkt2137 ***
# Raspbian stretch 2019apr08, Python 3.5.3
# W1ThermSensor V0.3.0

# dtoverlay=w1-gpio,gpiopin=14

from w1thermsensor import W1ThermSensor

def findSensor():
    for sensor in W1ThermSensor.get_available_sensors():
        print('  Sensor ID =', sensor.id)
    return

def getTemperature():
    sensor = W1ThermSensor()
    temperature_in_celsius = sensor.get_temperature()
    print('  Temperature in Celsius =', temperature_in_celsius)
    return

# *** Main Test ***

print('Begin Testing Ds18B20, ...')
findSensor()
getTemperature()
print('End   Testing DS18B20, ...')

'''
Sample Output - tlfong01 2019may10hkt2150
>>> 
 RESTART: /home/pi/Python Programs/Python_Programs/test1198/ds18b20_test27_2019may1001.py 
Begin Testing Ds18B20, ...
  Sensor ID = 021312ca3baa
  Temperature in Celsius = 25.562
End   Testing DS18B20, ...
>>> 

'''

# *** End of program ***

Подробнее тут
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы