• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 2 voto(i) - 5 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
v5 thermostat

Thermostat v5
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
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)?
Risposta
Ciao
Tieni conto che diverso tempo fa siamo passati al sensore BME280 per ottenere, oltre al valore della temperatura, anche il valore di umidità relativa, anch'io rammento che all'inizio ho fatto un po' fatica a gestire il ds18b20 ma, essendo passato diverso tempo, non ricordo la soluzione adottata.
Al tuo quesito può rispondere, credo, solo Athos
Saluti
GP

Smile
Risposta
(24/01/2022, 09:38)verito Ha scritto: 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
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)?

Anche qui ho trovato una soluzione "empirica" che però va:
Devi aggiungere al codice di thermostat.py ed esattamente nella sezione dove viene testato quale sensore hai 
la parte che ho messo in grassetto; soluzione strana ma solo così il sensore viene visto!

### Set GPIO ###################################################################
tempSensor = None
try:
    import RPi.GPIO as GPIO
    GPIO.setmode(GPIO.BCM)
    from w1thermsensor import W1ThermSensor
    tempSensor = W1ThermSensor()
    sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F
    print ("tempsensor W1 ON")
except:
    import FakeRPi.GPIO as GPIO
    print ("tempsensor W1 OFF")
try:
    from lib.bme280.BME280 import *
    sensor = BME280(t_mode=BME280_OSAMPLE_8, p_mode=BME280_OSAMPLE_8, h_mode=BME280_OSAMPLE_8)
    tempSensor = "bmp280"
    print ("tempsensor BMP280 ON")
except:
    print ("tempsensor BMP280 OFF")


Ciao
Risposta
Ciao, complimenti davvero per il magnifico progetto!
Dove posso trovare il file per stampare il case 3D?

Grazie in anticipo

Giulio
Risposta
(11/10/2022, 21:07)giuliopibarb Ha scritto: Ciao, complimenti davvero per il magnifico progetto!
Dove posso trovare il file per stampare il case 3D?

Grazie in anticipo

Giulio

https://forum.raspberryitaly.com/showthr...84#pid8784

qui la trovi in allegato Big Grin

Ciao
Risposta
Buonasera a tutti,

innanzitutto complimenti per idea e ottimo progetto.

Detto questo sto cercando di installare il tutto sul mio RB3B+ e devo dire che seguendo la guida e scaricando il Master indicato, non ottengo quanto riportato sul manuale.
Nel Master vedo che i file risalgono tutti a 3/4 anni fa e credo che ci siano stati parecchi cambiamenti e che per questo non riesco a installare e far partire il programma.

Domanda....qualcuno ha dei file piu aggiornati?

Sapete darmi qualche dritta?

Ripeto i file disponibili nel master sono molto vecchi e credo che molte librerie siano state eliminate e sostituite.

Grazie a chi vorra' aiutarmi.
Risposta
(28/12/2022, 16:49)beps2 Ha scritto: Buonasera a tutti,

innanzitutto complimenti per idea e ottimo progetto.

Detto questo sto cercando di installare il tutto sul mio RB3B+ e devo dire che seguendo la guida e scaricando il Master indicato, non ottengo quanto riportato sul manuale.
Nel Master vedo che i file risalgono tutti a 3/4 anni fa e credo che ci siano stati parecchi cambiamenti e che per questo non riesco a installare e far partire il programma.

Domanda....qualcuno ha dei file piu aggiornati?

Sapete darmi qualche dritta?

Ripeto i file disponibili nel master sono molto vecchi e credo che molte librerie siano state eliminate e  sostituite.

Grazie a chi vorra' aiutarmi.

Buonasera beps2
effettivamente il problema della vetustà delle librerie è un problema per chi installa ora da zero.
Athos è da diverso tempo che non aggiorna il progetto anche perché abbiamo virato per semplicità su un nuovo termostato basato su Esp32 e display Nextion, anche qui però, causa impegni di lavoro di entrambe, siamo bloccati con lo sviluppo.

Tornando a TH5, nei prossimi giorni proverò a fare un backup della mia sd e, se non troppo grande, a rendere disponibile un link dove poterla scaricare.
vi aggiorno se riesco
Saluti
GP

Smile
Risposta
(10/01/2023, 19:12)gianpic69 Ha scritto:
(28/12/2022, 16:49)beps2 Ha scritto: Buonasera a tutti,

innanzitutto complimenti per idea e ottimo progetto.

Detto questo sto cercando di installare il tutto sul mio RB3B+ e devo dire che seguendo la guida e scaricando il Master indicato, non ottengo quanto riportato sul manuale.
Nel Master vedo che i file risalgono tutti a 3/4 anni fa e credo che ci siano stati parecchi cambiamenti e che per questo non riesco a installare e far partire il programma.

Domanda....qualcuno ha dei file piu aggiornati?

Sapete darmi qualche dritta?

Ripeto i file disponibili nel master sono molto vecchi e credo che molte librerie siano state eliminate e  sostituite.

Grazie a chi vorra' aiutarmi.

Buonasera beps2
effettivamente il problema della vetustà delle librerie è un problema per chi installa ora da zero.
Athos è da diverso tempo che non aggiorna il progetto anche perché abbiamo virato per semplicità su un nuovo termostato basato su Esp32 e display Nextion, anche qui però, causa impegni di lavoro di entrambe, siamo bloccati con lo sviluppo.

Tornando a TH5, nei prossimi giorni proverò a fare un backup della mia sd e, se non troppo grande, a rendere disponibile un link dove poterla scaricare.
vi aggiorno se riesco


Ciao Gianpic69,

Avevo perso quasi la speranza di una risposta…. ??

Sarebbe a dir poco fantastico se riuscissi….
Mi piacerebbe davvero tanto mettere in piedi questi fantastico progetto.

Grazie

Giuseppe
Risposta
Ciao a tutti,

Abbandono ogni speranza.

Grazie lo stesso ?
Risposta
(04/09/2022, 20:02)Paolo Proietti Ha scritto:
(24/01/2022, 09:38)verito Ha scritto: 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



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)?


Anche qui ho trovato una soluzione "empirica" che però va:



Devi aggiungere al codice di thermostat.py ed esattamente nella sezione dove viene testato quale sensore hai 



la parte che ho messo in grassetto; soluzione strana ma solo così il sensore viene visto!



### Set GPIO ###################################################################


tempSensor = None


try:


    import RPi.GPIO as GPIO


    GPIO.setmode(GPIO.BCM)


    from w1thermsensor import W1ThermSensor


    tempSensor = W1ThermSensor()


    sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F


    print ("tempsensor W1 ON")


except:


    import FakeRPi.GPIO as GPIO


    print ("tempsensor W1 OFF")


try:


    from lib.bme280.BME280 import *


    sensor = BME280(t_mode=BME280_OSAMPLE_8, p_mode=BME280_OSAMPLE_8, h_mode=BME280_OSAMPLE_8)


    tempSensor = "bmp280"


    print ("tempsensor BMP280 ON")


except:


    print ("tempsensor BMP280 OFF")




Ciao



Riprendo il mio post dopo molto tempo perche' non ho avuto la possibilita' di mettere nuovamente mano alla installazione che stavo facendo.



Ringrazio Paolo per la risposta data; pero' con il suo suggerimento ancora non funziona.



Ho invece risolto modificando




Codice:
### Set GPIO ###################################################################


tempSensor = None


try:


    import RPi.GPIO as GPIO


    GPIO.setmode(GPIO.BCM)


    from w1thermsensor import W1ThermSensor


    tempSensor = W1ThermSensor()


    sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F


    print ("tempsensor W1 ON")


except:



in




Codice:
### Set GPIO ###################################################################


tempSensor = None


try:


    import RPi.GPIO as GPIO#GPIO.setmode(GPIO.BCM)


    from w1thermsensor import W1ThermSensor, Unit


    tempSensor = W1ThermSensor()


    ## sensorUnits = W1ThermSensor.DEGREES_C if tempScale == "metric" else W1ThermSensor.DEGREES_F


    sensorUnits = Unit.DEGREES_C if tempScale == "metric" else Unit.DEGREES_F


    print ("tempsensor W1 ON")


except:




dove la riga commentata e' quella del file originale e  la modifica e' la riga subito successiva relativa alla inizializzazione dell'oggetto sensorUnits.





Adesso sto provando a modificare i caratteri e i colori di alcune schermate per adattarli ad uno schermo piu' piccolo da 3,5''. Non avendo alcuna esperienza con kivi pero' ho molte difficolta'.

(26/01/2023, 12:04)beps2 Ha scritto: Ciao a tutti,

Abbandono ogni speranza.

Grazie lo stesso ?

Io ho installato i file originali in una distribuzione recente seguendo la procedura descritta nel manuale con l'unica differenza che ho sostituto i comandi della sezione 5.3 sull'installazione di Kivy con questi:
------------------------------------------------
sudo apt update
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
  pkg-config libgl1-mesa-dev libgles2-mesa-dev \
  python-setuptools libgstreamer1.0-dev git-core \
  gstreamer1.0-plugins-{bad,base,good,ugly} \
  gstreamer1.0-{omx,alsa} python-dev libmtdev-dev \
  xclip xsel libjpeg-dev

python3 -m pip install --upgrade --user pip setuptools

python3 -m pip install --upgrade --user Cython==0.29.10 pillow

sudo pip3 install kivy

sudo pip3 install websocket
------------------------------------------------

Con queste modifiche l'applicazione si e' avviata.
Ho dovuto solo modificare una riga del codice python per fare rilevare il sensore di temperatura DS18B20 che e' l'unico a mia disposizione. Con queste modifiche tutto al momento sta funzionando.
Risposta
  


Vai al forum:


Navigazione: 5 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect