Arietta G25 i DS18B20

DS18B20 to cyfrowy czujnik temperatury, wykorzystujący magistralę 1-wire. Jego podstawową zaletą jest prostota z jaką można go wykorzystać w budowanych układach. W tym wpisie pokażę, jak użyć czujnika razem z Ariettą G25.

Skorzystamy z generatora konfiguracji na stronie: http://www.acmesystems.it/pinout_arietta

Obok napisu “1 wire bus” zaznaczamy “PC2”, dzięki czemu odpalimy magistralę na porcie PC2. Klikamy przycisk “Generate acme-arietta.dtb” i klikamy na link. Pobranemu plikowi zmieniamy nazwę na acme-arietta.dtb. Teraz musimy umieścić go na karcie pamięci. Możemy to zrobić np. przez scp.

Uruchamiamy terminal, wpisujemy: scp acme-arietta.dtb root@192.168.10.10:/boot i klikamy Enter, po chwili zostaniemy poproszeni o hasło (domyślnie: acmesystems).

Jeżeli wszystko poszło dobrze, możemy podłączyć czujnik do płytki.

image

Tak wygląda podłączenie czujnika do płytki. Oczywiście do jednej magistrali można podłączyć ich więcej, ale ja ograniczyłem się do jednego.

Teraz możemy włączyć płytkę. System automatycznie, co 10 sekund sprawdza, czy został podłączony jakiś czujnik.

Wpisujemy polecenie: cd “/sys/bus/w1/devices/w1 bus master” oraz ls

Polecenie ls powinno pokazać nam katalog z nazwą zaczynającą się od 28, przechodzimy do niego i wpisujemy: cat w1_slave

image

Liczba w drugim wierszu, po ’t=“ to temperatura. W moim przypadku jest to 19.88°C

Do odczytywania temperatury możemy też użyć prostego programu w pythonie:

scan1w.py

from ablib import w1buslist
 
print "Scan for the available thermal sensors"
 
for device in w1buslist():
    print "Sensor ID = " + device

Za pomocą tego programu możemy wyświetlić identyfikatory podłączonych czujników.

debarm:/# debarm:~/playground/python/1wire# python scan1w.py
Scan for the available thermal sensors
Sensor ID = 0000028fa89c

Za pomocą tego programu możemy wyświetlić temperaturę z wybranego czujnika:

read.py

from ablib import DS18B20
 
sensor = DS18B20("0000028fa89c")
print "Temp=%.2f C" % (sensor.getTemp())

debarm:/# debarm:~/playground/python/1wire# python read.py
Temp=20.38 C

Artur

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.