Skocz do zawartości

Kurs Raspberry Pi - #15 - czujnik temperatury DS18B20


Pomocna odpowiedź

Napisano
html_mig_img
W tym odcinku kursu do malinki podłączymy termometr cyfrowy. Czujnik DS18B20 pozwala na precyzyjny pomiar temperatury, więc często używany jest np. w automatyce domowej.Do obsługi tego sensora potrzebna będzie nam umiejętność komunikacji przez interfejs 1-wire.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Cześć,

czy do komendy "except KeyboardInterrupt:" potrzebna jest jakaś dodatkowa biblioteka? Aby mieć pewność, że nie zrobiłam literówki nawet przekopiowałam tekst, ale nadal wyskakuje mi błąd:

except KeyboardInterrupt:

^

SyntaxError: invalid syntax

Proszę o pomoc.

I jeszcze jedno pytanie, gdzie i jak szukać bibliotek? np. biblioteki time

hatamarii, możesz dla pewności wkleić swój cały program? Pamiętaj, że w Pythonie każda spacja/wcięcie jest ważna. Może tutaj wkradł się jakiś problem (nawet przy kopiowaniu)?

I jeszcze jedno pytanie, gdzie i jak szukać bibliotek? np. biblioteki time

Tzn.? Chcesz ją zlokalizować gdzieś fizycznie "na dysku", czy pytasz gdzie szukać w Internecie innych bibliotek 🙂?

  • 2 tygodnie później...

poniżej mój program:

import time
import RPi.GPIO as GPIO
import w1thermsensor

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

GPIO.setup(21, GPIO.OUT)
GPIO.output(21, GPIO.LOW)

temperatura_max = 22.0
sensor = w1thermsensor.W1ThermSensor()

while True:
       temperatura = sensor.get_temperature()
       print(temperatura)
       if temperatura > temperatura_max:
               GPIO.output(21, GPIO.HIGH)
               print("Alarm!")
       else:
               GPIO.output(21, GPIO.LOW)

       time.sleep(1)


except KeyboardInterrupt:
       GPIO.output(21, GPIO.LOW)
       print('Koniec')
       GPIO.cleanup()

teraz widzę, że brakuje "try" i najwyraźniej to był właśnie problem. Zostawię jednak ten wpis, jakby ktoś jeszcze natknął się na podobny problem.

a jeśli chodzi o biblioteki, to chciałabym znaleźć je w internecie.Teraz pytanie może zabrzmieć może głupio, ale one są również gdzieś na dysku?

hatamarii, cieszę się, że ostatecznie udało się znaleźć rozwiązanie Twojego problemu 🙂 Przy bibliotekach sytuacja będzie analogiczna jak w przypadku programowania Arduino/STMów. Jest wiele różnych bibliotek i nie ma jednej strony w Internecie, na której znajdziesz wszystkie biblioteki. Jeśli stoisz przed jakimś problemem warto wtedy wpisać w Google "Python libraries XXX" i na pewno coś znajdziesz.

Jeśli chodzi o lokalizację bibliotek to oczywiście są one na dysku, czyli w tym przypadku na karcie pamięci malinki. W interpreterze Pythona możesz wydać polecenia import sys oraz sys.path. W ich wyniku zobaczysz listę lokalizacji, w których mogą być umieszczone biblioteki.

Inari, kolejny artykuł pojawi się w tym tygodniu 🙂 Jeśli chodzi o dalsze wpisy związane z RPi to zmieniamy trochę formę, aby nie ciągnąć tego kursu w "nieskończoność", bo i tak jest już bardzo długi. Będziemy teraz publikować osobne artykuły z ciekawymi projektami na RPi. Teksty nie będą publikowane jako kolejne części tego kursu tylko raczej jako coś w stylu uzupełnienia/kontynuacji serii.

Inari, kolejny artykuł pojawi się w tym tygodniu 🙂 Jeśli chodzi o dalsze wpisy związane z RPi to zmieniamy trochę formę, aby nie ciągnąć tego kursu w "nieskończoność", bo i tak jest już bardzo długi. Będziemy teraz publikować osobne artykuły z ciekawymi projektami na RPi. Teksty nie będą publikowane jako kolejne części tego kursu tylko raczej jako coś w stylu uzupełnienia/kontynuacji serii.

bedzie z góry ustalone co jakiś czas taki artykuł się pojawi? 🙂

  • 1 miesiąc później...

z artykułu wynika, że pod 1wire mogę podłączyć kilka takich czujników.

z terminala w bashu rozumiem, że po prostu należałoby wejść do odpowiednich folderów, ponieważ każdy czujnik będzie miał inny numer.

Nie rozumiem za to jak w pythonie z różnych czujników można by wtedy uzyskać informacje, skoro mamy jedną funkcję get_temperature(), mógłbym prosić o podpowiedź? 🙂

Inari, dokładnie tak. Do jednej magistrali może być podłączone wiele czujników temperatury. W programie najlepiej odwoływać się wtedy do każdego termometru za pomocą jego adresu (można też odczytywać wszystkie po kolei). W kursie używaliśmy biblioteki "w1thermsensor" informacje na temat obsługi kilku czujników znajdziesz w jej dokumentacji: https://github.com/timofurrer/w1thermsensor/blob/master/README.md Sprawdź fragment od "Multiple sensors".

  • Lubię! 1
  • 1 miesiąc później...

Cześć!

Próbuję odczytać temperaturę w Pythonie. Wpisuję: "sudo pip3 install w1thermsensor". Program myśli, wyskakuje  "Collecting w1thermsensor", po czym wyświetla się długi ciąg znaków pisanych czerwoną czcionką. Próbowałem, wpisywać "sudo apt-get install python3-w1thermsensor" i długo łączy się z archive.raspberrypi.org i wywala kolejne błędy.
HELP!

1.png 2.png

3.png 4.png

@Radberry, witam na forum 😉
Widzę, że to Twoje pierwsze kroki na Forbocie, jeśli chcesz przywitać się z innymi członkami naszej społeczności skorzystaj z tego tematu: Powitania użytkowników

Czy twoje Raspberry Pi ma dostęp do Internetu? Sprawdziłem przed chwilą (jak widać poniżej) nie miałem żadnych problemów z instalacją:

869fb-2018-09-15_16-33-00-4412.png

RaspberryPi jest podłączone bezpośrednio do routera przez kabel ethernet. Wydawało mi się, że żeby w ogóle wydawać polecenia z laptopa malince, musi mieć ona dostęp do internetu, nie jest tak?

23 minuty temu, Radberry napisał:

Wydawało mi się, że żeby w ogóle wydawać polecenia z laptopa malince, musi mieć ona dostęp do internetu, nie jest tak?

Nie musi. Wystarczy, że Twój komputer i Raspberry Pi będą w tej samej sieci lokalnej. Dostęp do internetu to tylko "miły dodatek", który nie jest konieczny do samej komunikacji. Oczywiście Internet jest potrzebny do pobierania bibliotek i programów, ale nie ma tutaj związku z komunikacją PC<>RPi.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...