problem z kodem - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: problem z kodem (/watek-problem-z-kodem--2472) |
problem z kodem - mikoh81 - 12-06-2018 Witam, mam oto taki kod: Kod: #include <SPI.h> Jak powinien być napisany skrypt by dane były wysyłane do PHP RE: problem z kodem - kaczakat - 12-06-2018 Uruchom sobie program SocketTest3 na PC, odpal serwer, obserwuj czy Arduino się łączy i co wypisuje. Wg mnie komunikacja powinna wyglądać tak, że gdy 1 moduł z HC12 ma coś do powiedzenia, nadaje do modułu 2 z HC12 i kartą sieciową, ten to zbiera i najlepiej po zebraniu całego pakietu danych z modułu 1 nadaje tę całość do serwera PHP. To u Ciebie wygląda tak, jak rozmowa z telemarketerem - ktoś do mnie dzwoni, odbieram telefon i słyszę czekaj, będzie rozmowa ( i teraz zaczynasz zbierać myśli z modułu 1, a może on nie ma nic akurat do powiedzenia?). Oczywiście się rozłączam, cenię swój czas nie mniej niż telemarketer, a to on ma biznes, niech sobie czeka. RE: problem z kodem - mikoh81 - 12-06-2018 (12-06-2018, 22:40)kaczakat napisał(a): Uruchom sobie program SocketTest3 na PC, odpal serwer, obserwuj czy Arduino się łączy i co wypisuje.Czyli najprostszym rozwiązaniem było by dodać opóźnienie, tak? RE: problem z kodem - kaczakat - 13-06-2018 Gdzie ja tam piszę o dodaniu opóźnienia? Na tym forum na pewno jest wiele przykładów komunikacji przez UART (bo sam tu wrzucałem przykład z serialEvent), a do tego sprowadza się wykorzystanie HC12. Uart ma być cały czas w gotowości do odbioru danych. Albo moduł 1 sam ustala, że dane wysyła co np. 5s, albo wysyłasz mu zapytanie z modułu 2 i wtedy odpowiada. Ale nie ma gwarancji, szczególnie przy komunikacji radiowej, że coś odpowie, lub że będzie coś wysyłał co 5s. To po co się łączysz wtedy z serwerem i czekasz na dane z UART? Musisz zmienić podejście. Masz zebrać sobie dane z UART od modułu 1 do wysłania w jakieś zmiennej, jak paczka danych jest gotowa (no przecież chyba wiesz jakich danych oczekujesz, np. ciągu literek i znaku końca linii), to dopiero wtedy inicjujesz podłączenie do serwera z PHP i wrzucasz mu tę paczkę. Jak chcesz wiedzieć, że od np. 5 minut moduł 1 się nie odzywał, to możesz wrzucić wartość np. -1 dla wilgotności, czy jakoś inaczej dać sobie znać, że komunikacja modułu HC12 się zacięła, wilgotność -1 jest na pewno stanem niemożliwym. |