Skocz do zawartości

Kurs Raspberry Pi - #15 - czujnik temperatury DS18B20


Pomocna odpowiedź

@robert10 ufff, moja szklana kula dobrze działa 🔮 Błąd w podłączeniu i to poważny. Rozłącz to szybko bo robisz zwarcie. Zobacz jak na naszych zdjęciach są powkładane elementy, używasz płytki odwrotnie. Sprawdź też ten artykuł: Jak działa płytka stykowa? Zdjęcia, budowa, przykłady

  • Pomogłeś! 1
Link to post
Share on other sites
Cytat

linię danych należy koniecznie połączyć przez rezystor 4,7kΩ z zasilanie (3,3V).

Powyższa zasada dotyczy ogólnie szyny 1wire?

Czy potrzebuję rezystor przy każdym czujniku? Bo jeżeli tak to, dodanie kolejnego urządzenia będzie skutkowało zmniejszaniem się rezystancji (połączenie równoległe) między szyną danych a zasilaniem.

Poza tym w powyższym zadaniu jest literówka w wyrazie "zasilaniem".

Link to post
Share on other sites

@BartBuilder zasada tyczy się całej szyny 1-wire, nie należy dodawać kolejnych rezystorów podczas podłączania nowych czujników - wystarczy jeden.

Dziękuję za zgłoszenie literówki - już poprawione.

Link to post
Share on other sites

Witam! Bardzo fajny kurs. Wszystko wyjaśnione "łopatologicznie", ale dla pewności brakuje mi schematów elektrycznych połączeń. Na zdjeciu nie widać tych połączeń jak one przebiegają i czasami mam wątpliwości. Czy możecie zamieścić takie schematy lub zdjęcia płytki z drugiej strony, żeby było widać połączenia?

  • Lubię! 1
Link to post
Share on other sites

@gkras, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

4 minuty temu, gkras napisał:

Witam! Bardzo fajny kurs. Wszystko wyjaśnione "łopatologicznie", ale dla pewności brakuje mi schematów elektrycznych połączeń. Na zdjeciu nie widać tych połączeń jak one przebiegają i czasami mam wątpliwości.

Cieszę się, że kursy są pomocne - miło słyszeć! W tym kursie zdecydowaliśmy się na takie opisy słowne i schematy montażowe, bo w przypadku Raspberry Pi większość projektów spotykanych w internecie jest opisywanych w taki sposób. Nie zawsze pojawiają się schematy ideowe połączeń. Dzięki temu projekty są łatwiejsze w zrozumieniu dla osób, które nie są związane typowo z elektroniką. Aktualnie nie planujemy dodawania takich schematów do tej serii, ale nie wykluczone, że w przyszłości się pojawią. Jeśli masz jakieś problemy to pytaj na forum, zawsze ktoś sprawdzi Twój układ i wskaże ewentualny błąd 😉

  • Lubię! 1
Link to post
Share on other sites
2 godziny temu, Treker napisał:

Cieszę się, że kursy są pomocne - miło słyszeć...

Dzięki. Dopatrzylem się na zdjęciach płytek kolorowych linii oznaczajacych połączenia, także wszystko w porządku.

Link to post
Share on other sites

@michalk121 witamy na forum! Poruszyłeś fajny temat, właśnie dużą zaletą tych czujników jest możliwość łatwego łączenia.

for sensor in    W1ThermSensor.get_available_sensors():

Fragment ten przechodzi po liście widocznych czujników, możesz równie dobrze w momencie inicjalizacji pobrać tę listę i zapisać w zmiennej.

Nie zagłębiłem się za mocno w metody klasy czujnika ale na pewno jest tam pole .id które pewnie oznacza adres, możesz zatem zrobić słownik? (Pythonową strukturę podobna do hashmapy gdzie przyporządkujesz adres id do obiektu czujnika). Następnie w dowolnym momęcie będziesz mógł sprawdzić wartość czujnika odwołując się do klucza w słowniku i odczytując pole z klasy czujnika.

Link to post
Share on other sites

Witam,

w nocy doszedłem do błędu jaki popełniałem. Tutaj wklejam kod z dwoma termometrami prosto z Pythona:

import time
import RPi.GPIO as GPIO
from w1thermsensor import W1ThermSensor #import w1thermsensor

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

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


czujnik = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20,"041721503bff")
temp= czujnik.get_temperature ()
print(temp)


czujnik2 = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20,"0417214febff")
temp2= czujnik2.get_temperature ()
print(temp2)

zmienna temp i temp2 bezpośrednio zawierają temperaturę. 

Edytowano przez Gieneq
Zachęcam do używania bloku kodu
  • Lubię! 1
Link to post
Share on other sites

Fajnie że udało Ci się dojść do tego co jest nie tak, kod programu może też przyda się komuś innemu. 😀

  • Lubię! 1
Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.