Skocz do zawartości

TCP/ IP serwer klient, przesyłanie danych z czujnika


Pomocna odpowiedź

Witam,

Mam problem, chciałbym przesłać do laptopa wartość temperatury i wilgotności z czujnika DHT11 podłączonego do raspberry pi. Dotychczas stworzyłem komunikację między laptopem a maliną przy pomocy TCP/IP "socket" w pythonie i mogę np. uruchomić z laptopa przekaźnik podłączony do raspberry, który  zapala lampkę. Jednak od dłuższego czasu nie mogę wpaść na pomysł jak przesłać dane z czujnika. Sensor działa poprawnie na malince.

Proszę o pomoc 🙂 z góry dziękuję 

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

@astex witamy na forum! Czyli rozumiem że narazie masz nawiązaną komunikację ale tylko jednokierunkowo? Czy istota problemu jest w sposobie wysłania wartości liczbowej?

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

Na przykład dokładnie odwrotnie (serwer na laptopie, klient na malince).

Poza tym transmisja TCP/IP jest dwukierunkowa, możesz np. zapytać o coś malinkę i dostać odpowiedź (w ten sposób działają np. serwery http).

Do wyboru, do koloru 🙂

 

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

Komunikacja działa w dwie strony. Po wpisaniu odpowiedniej komendy ze strony klienta, serwer importuje program, który włącza/wyłącza przekaźnik i wysyła wiadomość zwrotną o wykonanej czynności. Problem pojawia się podczas wysyłania wartości liczbowych z czujnika. Jestem początkującym użytkownikiem maliny i pythona, ale wydaje mi się, że problem może być z odpowiednim kodowaniem i dekodowaniem tych wartości. Próbowałem różnymi sposobami lecz bez powodzenia. Czy również powinienem importować program, który odpowiada za odczyty temperatury i wilgotność do serwera? Czy ten program powinien znajdować się w kodzie, który tworzy serwer? 

Pozdrawiam 🙂

Link to post
Share on other sites

@astex a potrafisz wysyłać i odbierać komunikaty tekstowe? Bo jeśli tak, to skonwertuj wynik z czujnika na napis i wyślij. Po pierwsze łatwiej to testować, bo na początek możesz po prostu wyświetlać co dostajesz, bez przetwarzania. Możesz też testować serwer niezależnie wysyłając mu napisy z dowolnego terminala. A jak już opanujesz wysyłanie gołych tekstów to poczytaj o formacie JSON, będziesz miał wtedy piękną możliwość przesyłania nawet całkiem skomplikowanych danych, czy wyników.

  • Lubię! 1
Link to post
Share on other sites
14 godzin temu, astex napisał:

Jednak od dłuższego czasu nie mogę wpaść na pomysł jak przesłać dane z czujnika.

Użyj UDP a nie TCP chyba, ze koniecznie transfer musi mieć potwierdzenia i ponawianie błędnych ramek.

Temperatura, wilgotność w DHT11 mają rozmiar bajtu. Wysyłasz 2 bajty i to wszystko. Jak planujesz  przesyłać dane z większej liczby różnych rodzajów czujników to może to być XML, JSON, HTML. Możesz użyć formatu CSV, czy prostego własnego formatu tekstowego/binarnego np

parametr1=wartosc1
parametr2=wartosc2

 

Link to post
Share on other sites

A może pokażesz kod? Bo to mi wydaje się proste:

Masz zrobione: serwer odbiera wiadomość "włącz/wyłącz". Merda sobie przekaźnikiem i w odpowiedzi zwraca informację, że pomerdał.

A chcesz mieć dodatkowo: serwer odbiera wiadomość "pokaż czujnik". Odczytuje wartość czujnika i w odpowiedzi zwraca tę wartość.

Przy okazji: lepiej użyj serwera http zamiast socket, 90% rzeczy będziesz miał gotowe na dzień dobry.

  • 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.