24/01/2022, 09:38
Ciao a tutti.
Ritorno nel forum perche' ho acquistato un sensore DS18B20 che mi e' arivato in questi giorniu ed ho provato appena potuto.
Lo ho collegato al GPIO4 (PIN 7) ed ho provato con un programmino di test: il sensore sembra funzionare e riesco a leggere il valore di temperatura.
Ho quindi modificato i valori del file thermostat_settings.json in
"sensTemp": 4,
"sensPin": 7,
(in realta' ho fato anche prove con altri valori ma con glis tessi risultati) ed ottengo il seguente output
da cui si vede che il sensore sembra non essere rilevato ("tempsensor W1 OFF") e di conseguenza si ha l'errore del codice.
Mi sembra anche che i campi "sensTemp" e "sensPin" del file json di setting non siano documentati nel manuale, quindi non sono sicuro di aver correttamente settato i valori.
Quale puo' essere il problema considerando che il sensore funziona se testato con altro codice (minimo e di base)?
Ritorno nel forum perche' ho acquistato un sensore DS18B20 che mi e' arivato in questi giorniu ed ho provato appena potuto.
Lo ho collegato al GPIO4 (PIN 7) ed ho provato con un programmino di test: il sensore sembra funzionare e riesco a leggere il valore di temperatura.
Ho quindi modificato i valori del file thermostat_settings.json in
"sensTemp": 4,
"sensPin": 7,
(in realta' ho fato anche prove con altri valori ma con glis tessi risultati) ed ottengo il seguente output
Codice:
~/thermostat_v5 $ sudo python3 thermostat.py
[INFO ] [Logger ] Record log in /root/.kivy/logs/kivy_22-01-24_13.txt
[INFO ] [Kivy ] v2.0.0
[INFO ] [Kivy ] Installed at "/usr/local/lib/python3.9/dist-packages/kivy/__init__.py"
[INFO ] [Python ] v3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110]
[INFO ] [Python ] Interpreter at "/usr/bin/python3"
[INFO ] [Factory ] 186 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2(['text_pango'] ignored)
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] Backend used <gl>
[INFO ] [GL ] OpenGL version <b'3.1 Mesa 20.3.5'>
[INFO ] [GL ] OpenGL vendor <b'Mesa/X.org'>
[INFO ] [GL ] OpenGL renderer <b'llvmpipe (LLVM 11.0.1, 128 bits)'>
[INFO ] [GL ] OpenGL parsed version: 3, 1
[INFO ] [GL ] Shading version <b'1.40'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
tempsensor W1 OFF
tempsensor BMP280 OFF
Unexpected error: <class 'KeyError'>
Traceback (most recent call last):
File "/home/pi/thermostat_v5/thermostat.py", line 2683, in <module>
main()
File "/home/pi/thermostat_v5/thermostat.py", line 2678, in main
thermostatApp().run()
File "/usr/local/lib/python3.9/dist-packages/kivy/app.py", line 950, in run
runTouchApp()
File "/usr/local/lib/python3.9/dist-packages/kivy/base.py", line 582, in runTouchApp
EventLoop.mainloop()
File "/usr/local/lib/python3.9/dist-packages/kivy/base.py", line 347, in mainloop
self.idle()
File "/usr/local/lib/python3.9/dist-packages/kivy/base.py", line 387, in idle
Clock.tick()
File "/usr/local/lib/python3.9/dist-packages/kivy/clock.py", line 733, in tick
self.post_idle(ts, self.idle())
File "/usr/local/lib/python3.9/dist-packages/kivy/clock.py", line 776, in post_idle
self._process_events()
File "kivy/_clock.pyx", line 616, in kivy._clock.CyClockBase._process_events
File "kivy/_clock.pyx", line 649, in kivy._clock.CyClockBase._process_events
File "kivy/_clock.pyx", line 645, in kivy._clock.CyClockBase._process_events
File "kivy/_clock.pyx", line 218, in kivy._clock.ClockEvent.tick
File "/home/pi/thermostat_v5/thermostat.py", line 497, in check_sensor_temp
rawTemp = round(tempSensor.get_temperature(sensorUnits),1)
NameError: name 'sensorUnits' is not defined
/usr/local/lib/python3.9/dist-packages/cherrypy/process/wspbus.py:254: RuntimeWarning: The main thread is exiting, but the Bus is in the states.STARTED state; shutting it down automatically now. You must either call bus.block() after start(), or call bus.exit() before the main thread exits.
warnings.warn(
da cui si vede che il sensore sembra non essere rilevato ("tempsensor W1 OFF") e di conseguenza si ha l'errore del codice.
Mi sembra anche che i campi "sensTemp" e "sensPin" del file json di setting non siano documentati nel manuale, quindi non sono sicuro di aver correttamente settato i valori.
Quale puo' essere il problema considerando che il sensore funziona se testato con altro codice (minimo e di base)?