Ostatnio pisaliśmy o obsłudze termometrów w Raspberry Pi. Tym razem pokażemy jak wygląda sprawa odczytu temperatur z czujników za pomocą BeagleBone Black, która nie posiada złącza 1-wire, ale za to w przeciwieństwie do Raspberry Pi posiada siedem złączy analogowych do których bez problemów podłączymy analogowe czujniki temperatury. W artykule tym pokażemy jak łatwo można podłączyć i odczytać temperatury z termometrów LM35DZ.

Wybór czujników

Do naszego przykładu wykorzystaliśmy analogowy czujnik temperatury LM35DZ.

Schemat podłączenia

Na poniższym obrazku przedstawiliśmy schemat podłączenia termometru LM35DZ do złącz GPIO BBBlack. Aby przypomnieć sobie układ portów GPIO polecamy zobaczyć nasz artykułu BeagleBone Black – złącza GPIO. Pierwsza nóżka od lewej z czujnika podłączona jest do pinu 5 (5V), środkowa nóżka podłączona jest do pinu 40 (wejście analogowe AIN1) a trzecia nóżka do analogowego minusa GND_ADC.

BeagleBone Black termometr schemat

Program do odczytu temperatury

Utworzymy prosty program, który będzie wyświetlać nam temperaturę z naszego czujnika. Aby program zadziałał należy zainstalować bibliotekę AdafruitBBIO. Opisywaliśmy proces instalacji biblioteki w artykule BeagleBone Black – sterowanie diodami.
Tworzymy plik temperatura.py

nano temperatura.py

i wklejamy poniższy kod

import Adafruit_BBIO.ADC as ADC
import time

ADC.setup()

while True:
    reading = ADC.read("P9_40")
    mv = reading * 5000
    temp_c = (mv - 500) / 10
    temp_f = (temp_c * 9/5) + 32
    print('C=%d F=%d' % (temp_c, temp_f))
    time.sleep(1)

Program odczytuje wartość, którą pomnażamy przez 5000 (5V=5mV które zasila nasz czujnik). I na podstawie wartości mV obliczamy temperaturę w stopniach Celsjusza a następnie z niej obliczamy temperaturę w stopniach Fahrenheita. A na końcu program wyświetla nasze wartości temperatur.

Uruchamiamy naszą aplikację

python temperatura.py

powinniśmy zobaczyć odczyty z naszego czujnika podanej temperatury w stopniach Celsjusza i Fahrenheita

root@beaglebone:~# python temperatura.py
C=22 F=73
C=23 F=73
C=22 F=73
C=22 F=73
C=23 F=73
C=22 F=73
C=22 F=73

Aby zatrzymać program naciskamy CTRL+c

Oczywiście istnieje możliwość odczytu temperatury z cyfrowego czujnika ds18B20. Opis jak tego dokonać znajdziecie TU.

Artykuł ten jest częścią serii o BeagleBone Black. Za dostarczenie płytki oraz termometru dziękujemy BOTLAND.com.pl

  • mikolajs

    Jak się szuka w sieci tutoriali do BB to łatwo dojść do wniosku, że dla początkującego użytkownika zdecydowanie lepszym rozwiązaniem jest Raspberry Pi. Ciężko cokolwiek znaleźć w sieci o BB co dało by się zrozumieć. Niektóre rzeczy wydają się jakąś magią jak ta obsługa termometru Dallas w linku ;)

    • Cyryl

      A tylko dlatego, że BBB nie ma 1-wire i jest to na około robione :P

      BBB jest dobrym rozwiązaniem jeśli wszystko ma być tworzone w przeglądarce tzn całe sterowanie. Ale nie ma co sie kryć takiego wsparcia jak Raspberry Pi to nie maja wszystkie te płytki razem wzięte ;)

      Przetestował bym jeszcze PCDruino ciekaw jestem jak sobie radzi ale to arduino wiec wiadomo czego się spodziewać po mixu arm z arduino.