Lämpötilan mittaus ds18b20 anturilla

Viestiketju:
Lämpötilan mittaus ds18b20 anturilla

Pera1

Kansalainen
Liittynyt
16 Tammikuu 2023
Viestit
21
Moi
Tuollaisen pykäsin python3.lla ja hyvillä ohjeilla.
Lämpöanturit ovat yksilöllisiä ja niillä on oma tunnistenumero 28-00..jotain.
Voit ketjuttaa niitä melkein loputtomasti.
Mulla tässä seitsämän anturia ja hyvin pelaa.
Pisin johdotus 4m.
Käytän raspberry pi zeroa.
Anturissa 3,3V + 4,7kilo-ohmin vastus datapinnin väliin
5V syöttöjännite mitä ei saa laittaa zeron pinneihin käy anturiin, valmistajan mukaan.
Eli kummatkin jännitteet tarvitaan, jos matkat pitkiä tai antureita paljon.
Yksittäiset toimii 3,3V hyvin.

Tarvikkeet DS18B20 lämpöanturiin.

Raspberry pi Zero tai muu raspberry pi 33,50 € 1kpl
Jos et omista, vaikeuksia saada 25.1.2023.
https://www.partco.fi/fi/raspberry-pi/raspberry-pi/20722-rpi-zero-wh.html

lämpötila-anturi ds18b20
esim. https://www.triopak.fi/fi/tuote/DS18B20 6.80€ 1kpl

Vastus
esim. https://www.triopak.fi/fi/tuote/MFR60S4K70LFA1 0,15€ 1kpl
Jos lämpotila-antureita ketjuttaa 1kpl vastuksia riittää ketjua kohti.
Rinnan kytkentä vaatii jokaiseen anturiin oman vastuksen.

Virtalähde 5V itsellä 7,5V 1,5A ja kotelossa regulaattori 5-32V 1kpl
jolla saan vakaan 5V jännitteen.
Voi käytää raspin omaa 5V mutta jos paljon ketjutettu amppeerit ei riitä.

Jännite regulaattori https://www.triopak.fi/fi/tuote/LM2576T-ADJG
säädettävä 1.3-37V 3A 2,73€

Ei kauhean hintavaa jos omistaa jo raspberry pi:n.

Tällä pääsee alkuun:
https://blogit.gradia.fi/sahkonet/k...ry-pi-harjoitukset/7-1-wire-lampotila-anturi/

20230125_115235.jpg


Jouduin tulostukseen laittamaan nuo pisteet eteen koska en osaa laitaaa upotusta python koodista.
Ne täytyy poistaa varsinaisessa pythonissa.
Python3 tarkka sisennyksistä ei toimi jos siennykset ei kohdallaan.

Aika sekasotku siitä kuvan mukaan tullut matta toimii.


#ds18b20 lämpötilan mittaus
import time
import csv
import os
import glob

base_dir = '/sys/bus/w1/devices'
#Store our device files to a list
device_files = []
device_files.append(base_dir + '/28-00000e81750d/w1_slave')
device_files.append(base_dir + '/28-00000e80c597/w1_slave')
device_files.append(base_dir + '/28-00000e813d17/w1_slave')
device_files.append(base_dir + '/28-00000e80b7bb/w1_slave')
device_files.append(base_dir + '/28-00000e8098a3/w1_slave')
device_files.append(base_dir + '/28-00000e81cc61/w1_slave')
device_files.append(base_dir + '/28-00000e809b57/w1_slave')

def read_temp_raw(device_file):
........f = open(device_file, 'r')
........lines = f.readlines()
........f.close()
........return lines

def read_temp(device_file):
........lines = read_temp_raw(device_file)
.........while lines[0].strip()[-3:] !='YES':
................time.sleep(1)
................lines = read_temp_raw_a
........equals_pos = lines[1].find('t=')
........if equals_pos != -1:
................temp_string = lines[1][equals_pos+2:]
................temp_c = int(temp_string) / 1000 # /1000 for correction into C,>
................temp_c = str(round(temp_c, 1))
................return temp_c

#Create a list to store our results. List will be the same length as the number>
temperature_results = [0]*len(device_files)

while True:
..............timenow = time.asctime
..............for device_num, device_file in enumerate(device_files):
#Read each device in turn and store the result to the results list.
..............temperature_results[device_num] = read_temp(device_file)

........print(" Lattia_menovesi =",temperature_results[0],"C")
........print(" Lattia_paluuvesi =",temperature_results[1],"C")
........print("_______________________________")
........print(" Ulko_lampotila =",temperature_results[2],"C")
........print("Kotelon_lampotila =",temperature_results[3],"C")
........print("_______________________________")
........print(" Kattilan_lampotila =",temperature_results[4],"C")
........print("_______________________________")
........print(" Sisaatulo_ilma =",temperature_results[5],"C")
........print(" Poisto_ilma =",temperature_results[6],"C")
........print("_______________________________")
........print("_______________________________")

........print("|-----------------------|")
........obj = time.localtime()
........t = time.asctime(obj)
........print(t)
........print("|-----------------------|")
........print("_______________________________")
........print("_______________________________")
........time.sleep(600) #This is the pause between readings in seconds, there is lag #induced by the 1w protocol

Tällainen tulos:
_______________________________
Lattia_menovesi = 33.8 C
Lattia_paluuvesi = 26.7 C
_______________________________
Ulko_lampotila = 4.4 C
Kotelon_lampotila = 26.2 C
_______________________________
Kattilan_lampotila = 61.3 C
_______________________________
Sisaatulo_ilma = 17.9 C
Poisto_ilma = 13.9 C
_______________________________
_______________________________
|-----------------------|
Wed Jan 25 11:26:40 2023
|-----------------------|
_______________________________
_______________________________
Lattia_menovesi = 33.2 C
Lattia_paluuvesi = 26.7 C
_______________________________
Ulko_lampotila = 4.4 C
Kotelon_lampotila = 26.2 C
_______________________________
Kattilan_lampotila = 60.4 C
_______________________________
Sisaatulo_ilma = 18.0 C
Poisto_ilma = 14.0 C
_______________________________
_______________________________
|-----------------------|
Wed Jan 25 11:36:47 2023
|-----------------------|
_______________________________
_______________________________
Lattia_menovesi = 32.4 C
Lattia_paluuvesi = 26.7 C
_______________________________
Ulko_lampotila = 4.4 C
Kotelon_lampotila = 26.2 C
_______________________________
Kattilan_lampotila = 63.9 C
_______________________________
Sisaatulo_ilma = 18.0 C
Poisto_ilma = 14.0 C
_______________________________
_______________________________
|-----------------------|
Wed Jan 25 11:46:53 2023
|-----------------------| 20230125_134402.jpg
 
Viimeksi muokattu:
Kiitos
Peukuttamisesta ja terve tuloa toivotuksesta.
 
Viimeksi muokattu:
Minä olen aikeissa tehdä pannuhuoneeseen kolmen DS18B20:n systeemin Shelly 1:n ja lämpömittauslisäosan avulla.
 
Minä olen aikeissa tehdä pannuhuoneeseen kolmen DS18B20:n systeemin Shelly 1:n ja lämpömittauslisäosan avulla.
Tuo projektini lähti tarpeesta, kuinka paljon öljypoltin käy päivän aikana.
Tuosta poiki sitten kaikki muu.
Nyt tiedän, että lämpimän käyttöveden kierrätys 55asteista 40m vie melkein kolmasosan koko lämmitysmäärästä.
Minulla oli 360 sekunnin oli kuuden minuutin jaksoissa lämpötilan luku ja huomasin, että kattilan lämpötila laskee yhden asteen/kuusiminuuttia.
Nyt kierrätys kellon takana yöt pois ja osan päivääkin.
Tietenkin pitää käyttövettä kierrättää legionella bakteerin tuhoamiseksi.
 
Kierrätystä voisi ehkä ajatella ohjattavan vaikkapa siten että kun keittiöön ja märkätiloihin sytytellään valoja niin kierto käynnistyy. Tai läsnäolo/liikeanturein. Itse näen asian lähinnä mukavuuden kannalta, legionellan tappoonhan riittää syklitys eli kaippa liki vain jokusen päivänkin välein käytetään lämmin käyttövesi yli 55 asteen niin ei legionella lisäänny. eikä sitä pöpöä ole ellei sitä jostakin tule. Noinahn se hoidetaan mm lämpöpumppujen käyttöveden tuotossa, ei sitä vettä helvetin kuumaksi paahdeta koko aikaa.
 
Meneekö ne käyttövesiputket sitten jossain yläpohjassa tms?. Jos kämpässä sisällä, niin kai lämmityskaudella on sama lämmittääkö niillä vai pattereilla/lattialämmöllä kämppää...
 
Meneekö ne käyttövesiputket sitten jossain yläpohjassa tms?. Jos kämpässä sisällä, niin kai lämmityskaudella on sama lämmittääkö niillä vai pattereilla/lattialämmöllä kämppää...

No legionella bakteeri elää vedessä (sitä on kaikissa vesissä) se alkaa vaan lisääntymään, jos olosuhteet on oikeat.
Mulla putket lattiavalussa mutta siellähän se muhii lattialämmityksen 30 asteessa nimeen omaan lenkissä joka on paluu shunttiin.
Paluuhan ei mene kattilaan vaan takaisin kiertoon.
Tuo kiertovesi on 55 asteista turhaan sillä on kämppää lämmittää.

Legioonathan kuoli tähän bakteeriin, kun kylpyvettä ei vaihdettu kylpylöissä tarpeeksi usein.
Nyt kun tutkittu vanhoja kylpylöitä Rooman ajoilta todettiin heidän puhtauskäsitteensä olleen jokseenkin olematon.
 
No legionella bakteeri elää vedessä (sitä on kaikissa vesissä) se alkaa vaan lisääntymään, jos olosuhteet on oikeat.
Mulla putket lattiavalussa mutta siellähän se muhii lattialämmityksen 30 asteessa nimeen omaan lenkissä joka on paluu shunttiin.
Paluuhan ei mene kattilaan vaan takaisin kiertoon.
Tuo kiertovesi on 55 asteista turhaan sillä on kämppää lämmittää.

Legioonathan kuoli tähän bakteeriin, kun kylpyvettä ei vaihdettu kylpylöissä tarpeeksi usein.
Nyt kun tutkittu vanhoja kylpylöitä Rooman ajoilta todettiin heidän puhtauskäsitteensä olleen jokseenkin olematon.

Ihan sillä meinasin, kun tässä kait jotain säästöjä ollaan hakemassa, että jos ne putket sisällä kulkee, niin ei sen kierron katkomisella säästä kuin pumpun sähkön verran. Nykypumput taas ei käytännössä kuluta juuri mitään.
 
Ihan sillä meinasin, kun tässä kait jotain säästöjä ollaan hakemassa, että jos ne putket sisällä kulkee, niin ei sen kierron katkomisella säästä kuin pumpun sähkön verran. Nykypumput taas ei käytännössä kuluta juuri mitään.

Vielä viimeinen viesti tähän ketjuun.

Nuo anturit saivat minut havahtumaan mihin se lämpö karkaa.
Kun käyttövesi kiertää, öljypoltin on päällä tunnin välein.
Pois päältä 75minuutin välein.
Kun kierto päällä kattilan lämpötila tippuu 10min/1,2 astetta.
Pois päältä 10min/1asteen.
Eli aikamoinen ero, kun aletaan katsomaan ölyn tilauspäivää onko se 10kk vai vuosi.

Asiasta kolmanteen minulla öljyn täyttöputken pää 2,5m ja ölyn tuoja ei enää suostunut tikkaille kiipeämään ja jätti täyttämättä työturvallisuus pykälään vedoten.
Nyt täytyy tehdä kaiteellinen kiinteäportainen taso niin kuin olisi pitänyt tehdä jo 1997, kun otin ensiöljyt sisään.
Oma moka koska kauppa- ja teollisuusministeriössä tehtiin jo 1985 tämä asetus öljyvahinkojen välttämiseksi.
Toimitusehdoissa selvästi kyllä sanotaan, että jos täyttöaukko on yi 1,5m täytyy olla taso joka on metri kertaa metri.
Jos taso on yli puoli metriä korkealla siihen täytyy johtaa kaiteelliset kiinteät portaat ja tasossa myös oltava kaiteet.
Kaidekorkeus on myös muuttunut ja on nykyään 1,1m.
Kyllä tulee Peran öljylle hintaa ;) .
 
Viimeksi muokattu:
Takaisin
Ylös