Wpis z mikrobloga

Mam problem z requestem http w arduino.

Mam arduino uno i korzystając z ethernet shielda chciałem sobie wysłać dane z czujników do bazy danych (z pominięciem komputera). Przygotowałem zarówno bazę jak i skrypt php który odbiera request http i upycha dane w bazie. I po stronie serwera wszystko działa jak należy (sprawdzane cURL'em i podobnymi narzędziami). Problem jest jednak po stronie arduino. Request przechodzi do serwera, ale jest tak jakby pusty. Powinien zawierać dane dla 3 zmiennych, a do bazy trafiają same zera. tak jakby nie było w ogóle tej części zawierającej dane.

Tu problematyczny fragment kodu

Próbowałem też zamienić string request na dane podstawione "na sztywno", ale rezultat był taki sam.

Coś tu jest z-----e ze składnią requesta czy problem leży gdzieś indziej, bo już nie mam pomysłu?

#arduino #http #diy #mikrokontrolery #programowanie #kiciochpyta
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@l-_-l: 2 entery nie pomogły. Sprawdziłem i dla stringa i dla podstawionego napisu.

GET'a wcześniej próbowałem, ale z nim kompletnie nic nie działało. Nawet nic pustego nie docierało. No, ale to pewnie ja coś p-------m. Problem jest taki, że póki co mam tylko kilka czujników, ale docelowo powinno być tego więcej, a nie wiem czy wszystko będę mógł puścić GET'em. POST byłby chyba bardziej rozwojowy :)
  • Odpowiedz
@l-_-l: o snifferze nie pomyślałem. Zaraz coś pokminię. O protokole i nagłówkach trochę poczytałem, choć przyznam, że dość pobieżnie. Dziwi mnie tylko to, że nie działają mi też skopiowane kody osób, które deklarują, że im działa. Shield nie jest walnięty, bo GET z przykładowego programu działa tak jak powinien.

W każdym razie dzięki za pomoc. Ide się męczyć dalej :P
  • Odpowiedz
@l-_-l: teraz zrobiło się jeszcze dziwniej. Requesty przechodzą i trafiają do bazy razem z danymi, ale...randomowo. Jak ustawiłem czas odstępu między żądaniami na 2 minuty to nic się nie pojawiło. Gdy zmniejszyłem do 15 sekund, w bazie pojawiają się rekordy w randomowych odstępach czasu (jak na razie ~2-5 min).

Co ciekawe na początku stringa z danymi musiałem dać dodatkowy znak '&' , bo inaczej pierwsza wartość była pomijana, a dopiero
  • Odpowiedz