RPi i wysyłanie temperatury w sieci

Jun 29, 2023 Last reply: 3 years ago 21 Replies

Witam ponownie, w celach edukacyjnych, syn chce wysyłać odczytaną temperaturę z czujnika 18B20 z RPi na komputer w tej samej sieci. Na komputerze jest uruchomiony serwer, na którym jest API zrobione w Django.



Link do repozytorium na Githubie:

formatting link
RPi odczytuje temperaturę z 18B20 ale problem jest z POSTowaniem danych do API i zapisywaniu danych w bazie danych (używa SQLite).



Z góry dzięki


w backend/settings.py dodaj:

APPEND_SLASH=False

i upewnij się że ALLOWED_HOSTS masz adres IP RaspberryPi

chyba jeszcze w main.py na RPI, do URL tez trzeba dodac /

c.

Poprawki wprowadzone ale nadal nie działa.

pytający

mozesz zdefiniować "nie działa"? ja właśnie uruchomiłem i "mi działa"

c.

Pan Cezar napisał:

SOU#1

SOA#1

Podczas działania skryptu na RPi w konsoli wyświetla się error HTTPConnectionPool, dane się nie wysyłają.

Taki wyskakuje error: HTTPConnectionPool(host='192.168.0.24', port=8000): Max retries exceeded with url: /api/temperature/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf6addf28>: Failed to establish a new connection: [Errno 110] Connection timed out'))

piątek, 30 czerwca 2023 o 13:47:59 UTC+2 pytający napisał(a):

Ładne. A ping 192.168.0.24 na RPi działa? Sporo jeszcze zostało tych "celów edukacyjnych". Ale jakie to niesprawiedliwe, tamten komputer na pewno działa z "całym internetem", a ten RPi nie chce.

pytający snipped-for-privacy@poczta.fm napisał(a):

Ten port 8000 jest owarty? Nie jest blokowany firewallem?

piątek, 30 czerwca 2023 o 13:51:28 UTC+2 Dawid Rutkowski napisał(a):

Pingowanie działa w obie strony.

Dopiero zaczyna, ale jak zwykle początki są najtrudniejsze i łatwo się można zniechęcić. Dlatego pozwoliłem sobie napisać na grupie o pomoc w rozwiązaniu problemu.

Całe życie jest niesprawiedliwe ...

sprawdz telnet 192.168.0.24 8000

piątek, 30 czerwca 2023 o 14:08:04 UTC+2 Grzegorz Niemirowski napisał(a):

Wyłączyliśmy firewall-a w ESET i dalej nie działa.

Po uruchomieniu na laptopie: telnet 192.168.0.24 8000

Pojawia się komunikat: Nie można nawiązać połączenia z hostem na porcie 8000. Połączenie nie powiodło się

pytający snipped-for-privacy@poczta.fm napisał(a):

Więc albo ten serwer wcale nie działa, albo słucha tylko na localhoście, a tym IP nie. Jednak w konfiguracji niby jest: ALLOWED_HOSTS = ['192.168.0.24', 'localhost', "192.168.0.101"] # ["localhost", "192.168.0.101", "192.168.0.24"] Więc powinno słuchać nie tylko na localhoście. To django w ogóle działa? Coś się wyświetla, są jakieś logi? Mało informacji podajesz.

ok, jeszcze takie głupie pytanie, Jak startujesz swoj serwer?

piątek, 30 czerwca 2023 o 14:45:43 UTC+2 Grzegorz Niemirowski napisał(a):

Na serwerze Django w konsoli wyświetlają się logi wchodzenia na stronę (http://localhost:8000/api/temperature/) ale tylko wtedy kiedy wchodzę przez laptopa czyli urządzenie, które hostuje serwer. Na Rpi nawet nie mogę wejść na serwer poprzez wpisywanie url w przeglądarce (http://192.168.0.24:8000/api/temperature)

Serwer Django startuje poprzez wpisaniu komendy: python manage.py runserver localhost Serwer na Rpi startuje uruchamiając skrypt server.py

uruchom serwer tak i zobacz czy jest roznica:

python3 manage.py runserver 0.0.0.0:8000

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required