2

I'm having trouble getting a 1-wire sensor to be detected on my Raspberry Pi Model 3 B+. The sensor is this temperature and humidity sensor.

I have wired the red wire to 3.3V, the black wire to ground and the yellow wire to GPIO4 (physical pin 7). I have also connected a 4.7k resistor from 3.3V to GPIO4.

I have enabled 1-wire in raspi-config, and my /boot/config.txt has the dtoverlay=w1-gpio line enabled (uncommented).

The kernel modules seem to be loaded correctly:

pi@raspberrypi:~ $ lsmod | grep w1
w1_gpio                16384  0
wire                   45056  1 w1_gpio

I'm running Raspbian 9 (Stretch) and my kernel version is:

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

My pin configuration is:

pi@raspberrypi:~ $ gpio readall

 +-----+-----+---------+------+---+---Pi 3B+-+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | OUT  | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 1 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3B+-+---+------+---------+-----+-----+

However, no devices get detected:

pi@raspberrypi:/sys/bus/w1/devices $ ls -la
total 0
drwxr-xr-x 2 root root 0 Jul  8 13:23 .
drwxr-xr-x 4 root root 0 Jul  8 13:03 ..
lrwxrwxrwx 1 root root 0 Jul  8 13:23 w1_bus_master1 -> ../../../devices/w1_bus_master1

pi@raspberrypi:/sys/bus/w1/devices/w1_bus_master1 $ cat w1_master_slaves
not found.

I have scoped the line on GPIO4 and I do get the initial low going pulse followed by data, as expected :

GPIO4 line

Does anyone have any idea what I can try next? Or what might be going wrong?

Edrean Ernst
  • 123
  • 4
  • I read that 1-Wrie drivers for old raspbian versions often won't work for new versions. You might like to read my answers of the following questions for more details: (1) ( https://raspberrypi.stackexchange.com/questions/98394/raspberry-pi-3b-do-not-detect-ds18b20-on-1wire ),

    (2) ( https://raspberrypi.stackexchange.com/questions/100203/pi-cant-find-5th-ds18b20/100244#100244 )

    – tlfong01 Jul 08 '19 at 11:54
  • The link you listed is remarkably short of technical detail. The commonly used AOsong devices are NOT 1-wire and I see no code (working or otherwise). – Milliways Jul 08 '19 at 11:58
  • I don't see any link to the sensor's datasheet, but my guess would be it's not a 1-wire sensor. Did you try a compatible one, e.g. DS18B20 ? – Dmitry Grigoryev Jul 08 '19 at 13:40
  • @Edrean Ernst, Asolong AM2105/2302 1-Wire is unique, for AsoLong/AsAir DHT11, DHT22, AM2302, AM2105:

    (1) https://raspberrypi.stackexchange.com/questions/96560/dht11-sensor-and-the-wrong-voltage-may-have-fried-my-rpi3

    (2) https://raspberrypi.stackexchange.com/questions/97949/circuit-wiring-issue

    (3) https://cdn-shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+AM2302.pdf

    (4) https://datasheet.lcsc.com/szlcsc/1906201608_Aosong-Guangzhou-Elec-AM2105A_C394878.pdf

    (5) https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=77158&hilit=DHT11&start=350#p1355567

    – tlfong01 Jul 09 '19 at 02:08

1 Answers1

2

I doubt that is a 1-wire (Dallas) bus device.

If it's manufactured by Aosong it's much more likely to use their one wire protocol (as used in their DHTxx series of temperature and humidity sensors).

The Chinese datasheet confirms it uses the 40-bit Aosong one wire format (you can cut&paste the Chinese glyphs into Google translate).

Either disable the 1-wire bus on GPIO 4 or connect the device data pin (and pull-up to 3V3) to a different GPIO.

Then run some DHTxx software on that GPIO.

I would suggest you try my software which auto detects the common types of DHTxx.

http://abyz.me.uk/rpi/pigpio/examples.html#pdif2_DHTXXD

TO BUILD

gcc -Wall -pthread -o DHTXXD test_DHTXXD.c DHTXXD.c -lpigpiod_if2

TO RUN

sudo pigpiod # start the pigpio daemon

./DHTXXD -g17 # one reading from DHT connected to GPIO 17

./DHTXXD -g14 -i3 # read DHT connected to GPIO 14 every 3 seconds
joan
  • 71,024
  • 5
  • 73
  • 106
  • I assumed 1-wire is 1-wire. It is not the Dallas 1-wire protocol and reading it as a DHT22 worked perfectly. – Edrean Ernst Jul 09 '19 at 12:06
  • 1-Wire is 1-Wire. It is a Dallas trademarked protocol. However there are several one wire protocols. Misleading advertising by Aosong. – joan Jul 09 '19 at 12:14
  • Ah, it’s clear to me now. Thanks! For some reason I assumed the protocol is always standard on the 1-wire system. It’s like assuming the protocol over ethernet will always be http. – Edrean Ernst Jul 09 '19 at 12:28