-
(sysname='LoPy', nodename='LoPy', release='1.5.1.b1', version='v1.8.6-423-g18444a2 on 2017-02-07', machine='LoPy with ESP32', lorawan='1.0.0')The pin not going high message sounds more like a wiring issue? Are you sure your wiring is correct and the pullup resistor bridges +3.3V and data? I had same issue and realized that I had sensor wire colors mixed up...
-
@dchappel
I'm very new to this (and LoPy and python) : where is your lib directory ?(I'll adapt to my own config). -
@Guizmolux
I do not know if you ask for this
but fully working examlpe code you can find in official docs
https://docs.pycom.io/pycom_esp32/pycom_esp32/tutorial/includes/onewire.html -
@livius
I get that. Copied the code into a onewire.py file. Where should I put it?
I've tried to execute before the main.py file and I always get the "cannot import name OneWire" or "DS18X20".
is the const() a problem in class OneWire ? -
but do you have upgraded firmware?
current is1.6.12.b1
what is yours? you can check firmware version byos.uname()if it is really old then go to
https://www.pycom.io/resources/next, is this how your onewire looks like?
https://github.com/pycom/pycom-libraries/blob/master/lib/onewire/onewire.pyput it in the same place where you have main.py or in lib subfolder
and then you can simply use it
import time from machine import Pin from onewire import DS18X20 from onewire import OneWire #DS18B20 data line connected to pin P10 ow = OneWire(Pin('P10')) temp = DS18X20(ow) while True: print(temp.read_temp_async()) time.sleep(1) temp.start_convertion() time.sleep(1) -
@livius
it didn't seem to work with Pymakr. The Atom IDE with Pymakr pluggin solution that was updated as a tutorial last week definitely helped.
It seems to be good now.
Thank you! -
@livius said in DS18B20 temperature sensor:
https://github.com/pycom/pycom-libraries/blob/master/lib/onewire/onewire.py
When I do exactly as you state here, and connect the temperature sensor to 3.3v, and with the 4,7k resistor between sig and 3.3v - I get this error:
File "main.py", line 22, in <module>
File "/flash/lib/onewire.py", line 190, in read_temp_async
IndexError: list index out of rangeI have latest firmware and atom plugin
EDIT: after checking that I have latest onewire from here https://github.com/pycom/pycom-libraries/blob/master/lib/onewire/onewire.py this error was gone. I then had to correct your spelling mistake in "convertion" and now it's working, but despite everything being hooked up correctly - it prints out "None"...
-
- what you got from (you must change P10 to pin you use):
ow = OneWire(Pin('P10')) ow.romsif nothing then test(double ow)
ow.ow.scan()- which sensor do you have exactly? woterproof or some different?
-
@dchappel I followed your main.py with both onewire.py and ds18x20.py in my lib, this works for the first temp reading, every following temp reading doesn't change from the first. I moved the sensor into the fridge and then freezer and the readings styed the same. Once I reset the device it will bring the new reading but only again for the first reading. Did you find this with yours?
-
-
@livius thanks that did the trick
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login