Pátek 25.května 2018, 09:01 hodin
Dnes má svátek Viola, zítra má svátek Filip
 
 

Měření teploty - jak to je udělané

Hardware

Teploměr byl v první verzi (fungující bezmála 10 let) zapojený podle popisu uvedného na serveru Root.cz. Čidlo bylo připojené na sériový port a data z něj se načítala v pravidelných intervalech.

Po změně platformy ze starého PC na nové Raspberry Pi bylo třeba předělat i teploměr. K tomu lze využít GPIO rozhraní RPi.

GPIO

Na internetu jsem našel několik článků s popisem, jak vše zapojit, využil jsem zejména tyto dva:
http://www.volny.cz/tlc/RasPi-SMT/index.html
http://www.astromik.org/raspi/28.htm

Pro fyzické připojení čidla na GPIO jsem použil starý audiokabel od CD-ROM na 4 piny. Z toho důvodu jsem nakonec pro datový vstup volil GPIO14, tedy pin 8.

Schéma zapojení

Software

Pro čtení teploty je použitý jednoduchý prográmek z http://www.astromik.org/raspi/28.htm se dvěma drobnými změnami:

  • číslo čteného pinu.
  • formát výstupu - stejný jako na starém serveru

#!/usr/bin/python
# puvodni program: http://ndinev.alle.bg/
# tento program: http://www.astromik.org/raspi/28.htm

import RPi.GPIO as GPIO

# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)

# define board pin
# pin=15  # cislo pinu 15 na konektoru odpovida GPIO22
# cislo pinu 8 na konektoru odpovida GPIO14, je to kvuli
# pouziti konektoru od CD-ROM, ktery ma 4 piny
pin=8  

# set up the GPIO channels - one input and one output
GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_OFF)

# read pin 100000 times
count=0
cycles=100000

for i in range(cycles):

    if (GPIO.input(pin)): 
        count+=1
    else:
        count+=0


# calculate temp
dc=count/float(cycles)
temp=round( ((dc-0.32)/0.0047), 1)
print 'IN 999.9\tOUT ', temp

Nakonec jsem ještě recykloval jednoduchý script, který se volá z cronu a zapisuje výsledek měření do souboru a databáze, generuje obrázek teploměru a průběžný graf.