Raspberry PI3 a DS18B20 1Wire
Moderátori: psichac, Moderátori
-
- Okoloidúci
- Príspevky: 33
- Dátum registrácie: 01 Apr 2009, 00:00
- Bydlisko: Banská Bystrica
- Vek: 41
Raspberry PI3 a DS18B20 1Wire
Zdravim pani, mam postaveny teplomer na RPI3 a senzor DS18B20, soft je Buster s pythonovy script je pre verziu 3.
stava sa mi ale ze vypise IndexError: list index out of range.
Hladam som par dni na forach riesenie, ale zrejme nikomu to poriadne funguje. Postavil som to na druhom RPI s druhym senzorom a to iste. Vypise to nahodne - po 20minutach, hodine, max to funguje 2 dni.
Skusil som 3,3V aj 5V. Odpor mam 4k7. PIN4 defaulny som zmenil na iny.
Predym som mal soft Jessie a python 2 a islo mi to 2 roky v kuse OK.
Ma dakto skusenost?
Dakujem,
stava sa mi ale ze vypise IndexError: list index out of range.
Hladam som par dni na forach riesenie, ale zrejme nikomu to poriadne funguje. Postavil som to na druhom RPI s druhym senzorom a to iste. Vypise to nahodne - po 20minutach, hodine, max to funguje 2 dni.
Skusil som 3,3V aj 5V. Odpor mam 4k7. PIN4 defaulny som zmenil na iny.
Predym som mal soft Jessie a python 2 a islo mi to 2 roky v kuse OK.
Ma dakto skusenost?
Dakujem,
0
Re: Raspberry PI3 a DS18B20 1Wire
Python ti povie riadok, kde je problem. Vytiskni tu list nez ju zacnes zpracovavat.
0
Samozřejmě, že dědeček nemá kapesní hodinky poháněné elektřinou. Takový nesmysl si může vymyslit jen Saturnin. (Zdenek Jirotka, 1942)
-
- Okoloidúci
- Príspevky: 33
- Dátum registrácie: 01 Apr 2009, 00:00
- Bydlisko: Banská Bystrica
- Vek: 41
Re: Raspberry PI3 a DS18B20 1Wire
Traceback (most recent call last):
File "/home/pi/Desktop/matrixled.py", line 68, in <module>
loop(serialNum)
File "/home/pi/Desktop/matrixled.py", line 51, in loop
if read(ds18b20) != None:
File "/home/pi/Desktop/matrixled.py", line 39, in read
secondline = text1.split("\n")[1]
IndexError: list index out of range
File "/home/pi/Desktop/matrixled.py", line 68, in <module>
loop(serialNum)
File "/home/pi/Desktop/matrixled.py", line 51, in loop
if read(ds18b20) != None:
File "/home/pi/Desktop/matrixled.py", line 39, in read
secondline = text1.split("\n")[1]
IndexError: list index out of range
0
Re: Raspberry PI3 a DS18B20 1Wire
text1.split() ti vrati type list
elementy list su cislovane od [0], cili secondline bude DRUHY element tej list
akoze splitujes "\n", obavam sa, ze dlzka tej list bude 1 a DRUHY element neexistuje
zkus:
Som si celkom isty, ze ti natiskne 1.
elementy list su cislovane od [0], cili secondline bude DRUHY element tej list
akoze splitujes "\n", obavam sa, ze dlzka tej list bude 1 a DRUHY element neexistuje
zkus:
Kód: Vybrať všetko
print(len(text1))
econdline = text1.split("\n")[1]
0
Samozřejmě, že dědeček nemá kapesní hodinky poháněné elektřinou. Takový nesmysl si může vymyslit jen Saturnin. (Zdenek Jirotka, 1942)
-
- Okoloidúci
- Príspevky: 33
- Dátum registrácie: 01 Apr 2009, 00:00
- Bydlisko: Banská Bystrica
- Vek: 41
Re: Raspberry PI3 a DS18B20 1Wire
toto je program (z internetu) ktory sa mi obcas zasekava a spadne :
def sensor():
for i in os.listdir('/sys/bus/w1/devices'):
if i != 'w1_bus_master1':
ds18b20 = i
return ds18b20
def read(ds18b20):
location = '/sys/bus/w1/devices/' + ds18b20 + '/w1_slave'
tfile = open(location)
text1 = tfile.read()
#time.sleep(1)
tfile.close()
secondline = text1.split("\n")[1]
#time.sleep(1)
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
celsius = temperature / 1000
return celsius
def loop(ds18b20):
while True:
if read(ds18b20) != None:
s1 = str(read(ds18b20))
s2 = "{:.4}".format(s1)
with canvas(virtual) as draw:
text(draw, (0, 1), s2 , fill="white", font=proportional(TINY_FONT))
GPIO.output(18,True)
time.sleep(0.5)
GPIO.output(18,False)
time.sleep(10.0)
main()
def kill():
quit()
if __name__ == '__main__':
try:
serialNum = sensor()
loop(serialNum)
time.sleep(1)
except KeyboardInterrupt:
kill()
zrejme obcas cidlo posle nespravny udaj a preto to spadne, ale na pythone 2 a OS Jessie z 2017 mi to islo OK. aj ked program je podobny ale nie ten isty
def sensor():
for i in os.listdir('/sys/bus/w1/devices'):
if i != 'w1_bus_master1':
ds18b20 = i
return ds18b20
def read(ds18b20):
location = '/sys/bus/w1/devices/' + ds18b20 + '/w1_slave'
tfile = open(location)
text1 = tfile.read()
#time.sleep(1)
tfile.close()
secondline = text1.split("\n")[1]
#time.sleep(1)
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
celsius = temperature / 1000
return celsius
def loop(ds18b20):
while True:
if read(ds18b20) != None:
s1 = str(read(ds18b20))
s2 = "{:.4}".format(s1)
with canvas(virtual) as draw:
text(draw, (0, 1), s2 , fill="white", font=proportional(TINY_FONT))
GPIO.output(18,True)
time.sleep(0.5)
GPIO.output(18,False)
time.sleep(10.0)
main()
def kill():
quit()
if __name__ == '__main__':
try:
serialNum = sensor()
loop(serialNum)
time.sleep(1)
except KeyboardInterrupt:
kill()
zrejme obcas cidlo posle nespravny udaj a preto to spadne, ale na pythone 2 a OS Jessie z 2017 mi to islo OK. aj ked program je podobny ale nie ten isty
0
Re: Raspberry PI3 a DS18B20 1Wire
Vzdialenost senzora od pocitaca? Aky kabel je pouzity? Senzor kupovany kde?
0
-
- Ultimate člen
- Príspevky: 4418
- Dátum registrácie: 09 Apr 2008, 00:00
- Bydlisko: Wicklow, Irsko
- Vek: 47
Re: Raspberry PI3 a DS18B20 1Wire
Len pre info, ja mam DS18B20 kupovany u oficialneho predajcu a mam ho zaveseny na kabli co sa pouzivaju pre snimace v priemysle s konektorom M8 (indukcnesnimace). Su tam tri vodice hnedy modry a cierny. Neviem ci je to skrutene. Ten kabel ma asi 6 metrov. Na dboch metroch to ide vedla kablov pre zasuvky a svetlav dome. DS napajam 5V cez Modry (gnd) a hnedy (+5V) Nepouzivam napajanie z datoveho vodica -"parazitne napajanie", ak sa to tak vola. Program som si pisal sam, casovanie 1-wire protokolu som dodrzal podla datasheetu. Uz mi to takto bezi asi 10 rokov. Mam to ako regulator kurenia v dome (termostat).
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje
-
- Okoloidúci
- Príspevky: 33
- Dátum registrácie: 01 Apr 2009, 00:00
- Bydlisko: Banská Bystrica
- Vek: 41
Re: Raspberry PI3 a DS18B20 1Wire
asi 1m, oreginal DS18B20 s kablom, z Aliexpress, dal som tam aj v puzdre TO92, kratky kablik...
toto mam cele 2x, aj RPI aj senzory a na oboch to robi....,
ale vyriesil som to uz tak ze ked spadne tak sa restaruje program a bezi znova takze je to OK.
0
-
- Ultimate člen
- Príspevky: 6208
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: Raspberry PI3 a DS18B20 1Wire
tak bud neodladeny program, alebo cinske snimace.
Problem moze byt aj kratky cas medzi meranim a citanim udajov. pri max. rozliseni to je cca 750ms, ked vezmem do uvahy toleranciu cinskych, tak by to nemusel stihnut do sekundy.
Problem moze byt aj kratky cas medzi meranim a citanim udajov. pri max. rozliseni to je cca 750ms, ked vezmem do uvahy toleranciu cinskych, tak by to nemusel stihnut do sekundy.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 12 Odpovedí
- 3637 Zobrazení
-
Posledný príspevok od používateľa Radus