Skocz do zawarto┼Ťci
neon97

Jak doda─ç zapytania GET i POST na ESP8266?

Pomocna odpowied┼║

Hej ­čÖé

Od niedawna programuje na ESP8266 (RTOS SDK, bezpo┼Ťrednio modu┼é, a nie na┬áp┼éytk─Ö Arduino, w j─Özyku C). Korzystam z PlatformIO i szukam ju┼╝ w necie kt├│r─ů┼Ť X godzin─Ö.. I nic. Znaczy by┼éo kilka przyk┼éad├│w, ale ┼╝adnego nie uda┼éo si─Ö mi na razie uruchomi─ç ­čśĽ┬á┬á

Chc─Ö jak najprostszym sposobem doda─ç do programu obs┼éug─Ö zapyta┼ä GET/POST do serwera. Czy komu┼Ť z was to si─Ö uda┼éo? Albo wie kto┼Ť gdzie mo┼╝na znale┼║─ç jaki┼Ť dzia┼éaj─ůcy przyk┼éad? Cokolwiek...? Bo powoli ko┼äcz─ů mi si─Ö pomys┼éy

Przy okazji... Programuje bezpo┼Ťrednio na ESP, bez korzystania z gotowych bibliotek do Arduino, bo wydaje mi si─Ö, ┼╝e nie ma mo┼╝liwo┼Ť─ç po┼é─ůczenia Arduino┬áUno i RTOS.┬á Czy to prawda?

Udost─Öpnij ten post


Link to post
Share on other sites
17 minut temu, neon97 napisał:

Chc─Ö jak najprostszym sposobem doda─ç do programu obs┼éug─Ö zapyta┼ä GET/POST do serwera. Czy komu┼Ť z was to si─Ö uda┼éo? Albo wie kto┼Ť gdzie mo┼╝na znale┼║─ç jaki┼Ť dzia┼éaj─ůcy przyk┼éad? Cokolwiek...? Bo powoli ko┼äcz─ů mi si─Ö pomys┼éy

A mo┼╝esz napisa─ç co dok┼éadnie chcesz obs┼éu┼╝y─ç i z czym masz problem? Przyk┼éadowo zapytanie GET to "tylko" wywo┼éanie adresu serwera i podanie danych w URL, do kt├│rego si─Ö odwo┼éujemy czyli np. https://192.168.1.32/index.php?temperatura=100, wywo┼éanie takiego adresu wy┼Ťle do serwera informacje przez GET. O to chodzi┼éo? ­čśë

W Twoim przykładzie ESP jest klientem czy serwerem?

Udost─Öpnij ten post


Link to post
Share on other sites
(edytowany)

Na pocz─ůtek chce w┼é─ůcza─ç/wy┼é─ůcza─ç┬áLED przez stron─Ö internetow─ů. Uda┼éo mi si─Ö zrobi─ç to lokalnie, ale teraz chc─Ö globalnie. B─Öd─Ö mie─ç utworzon─ů stron─Ö internetow─ů na┬ákt├│rej chce zmienia─ç stan diody przyciskiem. Czyli dok┼éadniej... wysy┼éa─ç zapytania do serwera┬áo stan i on p├│┼║niej wysy┼éa zapytania do ESP. Jednak ESP musi jako┼Ť te ┼╝─ůdania obs┼éugiwa─ç.

Moim problemem jest to, ┼╝e nie potrafi─Ö stworzy─ç opisanego przez ciebie rozwi─ůzania tego problemu:

9 godzin temu, Treker napisał:

Przyk┼éadowo zapytanie GET to "tylko" wywo┼éanie adresu serwera i podanie danych w URL, do kt├│rego si─Ö odwo┼éujemy czyli np. https://192.168.1.32/index.php?temperatura=100, wywo┼éanie takiego adresu wy┼Ťle do serwera informacje przez GET. O to chodzi┼éo? ­čśë

O to w┼éa┼Ťnie chodzi┼éo ­čÖé┬á┬áTylko nie wiem jak to zaprogramowa─ç. Rozumiem jak dzia┼éa odwo┼éywanie si─Ö do danych LED w URL, ale nadal nie wiem jak wywo┼éa─ç adres serwera i co zrobi─ç dalej.

W tym przykładzie ESP jest klientem.

Edytowano przez neon97

Udost─Öpnij ten post


Link to post
Share on other sites
Go┼Ť─ç es2
10 godzin temu, neon97 napisał:

wydaje mi si─Ö, ┼╝e nie ma mo┼╝liwo┼Ť─ç po┼é─ůczenia Arduino┬áUno i RTOS.┬á Czy to prawda?

I tak i nie. RTOS na UNO jest na zasadzie, "pokaza┼éem, ┼╝e si─Ö da". "Ogromna" pami─Ö─ç RAM nie pozwala na sensowne u┼╝ycie RTOS. Je┼Ťli wiesz jak dzia┼éa multitasking, to wiesz dlaczego wymagane jest du┼╝o RAM. Jak nie wiesz, to si─Ö dowiedz. Zasadniczo chodzi o to, ze ka┼╝dy task, wymaga sporo stosu (zapami─Ötanie wszystkich rejestr├│w + stos na program).

Tak wi─Öc,da si─Ö ale wi─Ökszego sensu w tym nie ma.

10 godzin temu, Treker napisał:

GET to "tylko" wywołanie adresu serwera i podanie danych w URL, do którego się odwołujemy czyli np. https://192.168.1.32/index.php?temperatura=100

Rozumie, ┼╝e ju┼╝ to robi┼ées z poziomu uC, bez systemu operacyjnego, i to "tylko" dok┼éadnie okre┼Ťla,ze to nie jedna linijka w C.

 

Udost─Öpnij ten post


Link to post
Share on other sites

"Lepiej jest nie odzywa─ç si─Ö wcale i wydawa─ç si─Ö g┼éupim, ni┼╝ odezwa─ç si─Ö i rozwia─ç wszelkie w─ůtpliwo┼Ťci."

Po pierwsze cytat jest z innego w─ůtku. Po drugie ESP8266 ma wystarczaj─ůco du┼╝o pami─Öci RAM do u┼╝ywania RTOS-a, nie nale┼╝y prostego systemu myli─ç z pe┼énoprawnym systemem operacyjnym. Jak kto┼Ť tego nie wie, to lepiej niech si─Ö dowie, a p├│ki co nie odzywa.

Wywo┼éanie GET jest tak proste jak wys┼éanie napisu po TCP, a w przypadku ESP dost─Öpne s─ů ca┼ékiem dobre biblioteki. Wi─Öc zrobienie nie jest to taka sztuka jak si─Ö wydaje. Natomiast obecno┼Ť─ç systemu operacyjnego niewiele zmienia - faktycznie maj─ůc RTOS interfejs jest bardziej zbli┼╝ony do standardowego interfejsu gniazd, ale nawet na loopback-ach to nie jest wielka filozofia.

Udost─Öpnij ten post


Link to post
Share on other sites
(edytowany)

Czyli to robi┼ée┼Ť. Super┬á­čśî

Wspominasz o bibliotekach....Jakich konkretnie? Bo widz─Ö sporo, ale z nak┼éadk─ů na Arduino, a mi chodzi o samo ESP

Edytowano przez neon97

Udost─Öpnij ten post


Link to post
Share on other sites

Korzystam z tego SDK.

A co do linku... Wygl─ůda obiecuj─ůco. Dzi─Ökuj─Ö bardzo ^^

Jak już przetestuję to dam znać czy udało się uruchomić

Udost─Öpnij ten post


Link to post
Share on other sites
(edytowany)

Czyli, chcesz┬áw┼é─ůczy─ç diod─Ö led oraz zna─ç jej stan? Oczywi┼Ťcie mo┼╝esz to wszystko sam oprogramowa─ç, tylko zdaje si─Ö, ┼╝e nie do ko┼äca jeszcze potrafisz. Je┼Ťli chcesz si─Ö nauczy─ç i zrobic to sam to szacun i ┼╝ycz─Ö powodzenia(szczerze). Je┼Ťli chcesz to zrobi─ç szybko, ┼éatwo i przyjemnie, na swoim lub publicznym serwerze to mo┼╝e BLYNK? ESP to dla niego nie problem.

Edytowano przez SOYER

Udost─Öpnij ten post


Link to post
Share on other sites
Dnia 3.11.2018 o 09:43, neon97 napisał:

Uda┼éo mi si─Ö zrobi─ç to lokalnie, ale teraz chc─Ö globalnie.´╗┐

No to w zasadzie wszystko masz gotowe :-). Piszesz o "lokalnym" sukcesie. Czy┼╝by by┼éa mowa o lokalnej sieci LAN? Je┼Ťli tak to jedynej rzeczy jakiej potrzebujesz to odpowiednia konfiguracja Twojego routera gdzie mo┼╝esz przekierowa─ç ┼╝─ůdania po┼é─ůcze┼ä z Internetu na okre┼Ťlony port i adres swojego routera (z internetu) do wn─Ötrza swojego LAN czyli do ESP (zob. port forwarding w opcjach swojego routera). Tutaj ESP pracuje jako serwer, a w przyk┼éadach do ESP ┼Ťrodowiska ARDUINO IDE znajdziesz gotowe propozycje rozwi─ůza┼ä do analizy i w┼éasnego zastosowania. Ja ju┼╝ od prawie roku korzystam z takiej opcji i nawet z Bu┼égarii ┼é─ůczy┼éem si─Ö ze swoim ESP u nas w kraju ­čÖé. Pewnym utrudnieniem mo┼╝e by─ç ewentualny brak sta┼éego publicznego IP, ale i na to jest darmowe lekarstwo w postaci Dynamic DNS np. www.noip.com

Udost─Öpnij ten post


Link to post
Share on other sites
2 godziny temu, Belferek napisał:

mo┼╝esz przekierowa─ç ┼╝─ůdania po┼é─ůcze┼ä z Internetu na okre┼Ťlony port i adres swojego routera (z internetu) do wn─Ötrza swojego LAN czyli do ESP (zob. port forwarding w opcjach swojego routera). Tutaj ESP pracuje jako serwer, a w przyk┼éadach do ESP ┼Ťrodowiska ARDUINO IDE znajdziesz gotowe propozycje rozwi─ůza┼ä do analizy i w┼éasnego zastosowania.

Nie wiem czy to taki dobry pomys┼é otwiera─ç ESP8266 na ┼Ťwiat. Implementacja stosu TCP/IP na tym czym┼Ť jest dosy─ç uproszczona, a w Internecie du┼╝o bot├│w skanuj─ůcych adresy w poszukiwaniu znanych (i nowych) luk bezpiecze┼ästwa. Za chwile si─Ö mo┼╝e okaza─ç, ┼╝e twoje IoT jest cz─Ö┼Ťci─ů botnetu DDOS-uj─ůcego przedszkola.

Udost─Öpnij ten post


Link to post
Share on other sites

Oczywi┼Ťcie deshipu masz racj─Ö twierdz─ůc, ┼╝e nale┼╝y pami─Öta─ç o bezpiecze┼ästwie naszych urz─ůdze┼ä pracuj─ůcych w sieci - szczeg├│lnie w sieci publicznej jak─ů jest internet. Nie mniej jednak uwa┼╝am, ┼╝e konfiguruj─ůc odpowiednio router i wprowadzaj─ůc na naszym ESP chocia┼╝by minimalne funkcje zabezpiecze┼ä jeste┼Ťmy si─Ö w stanie skutecznie (no prawie) zabezpieczy─ç przed wskazan─ů przez Ciebie sytuacj─ů. Tak na marginesie jak pomy┼Ťle─ç o tym, ┼╝e urz─ůdzenie pod┼é─ůczone do sieci to ponad 130000 furtek (port├│w UDP/TCP), kt├│re zawsze "kto┼Ť" lub "co┼Ť" mo┼╝e wykorzysta─ç do niecnych cel├│w to jedynym skutecznym lekarstwem na b├│l g┼éowy z tego wynikaj─ůcy jest .... od┼é─ůczy─ç si─Ö od sieci :-(.

Udost─Öpnij ten post


Link to post
Share on other sites
23 minuty temu, deshipu napisał:

a w Internecie du┼╝o bot├│w skanuj─ůcych adresy w poszukiwaniu znanych (i nowych) luk bezpiecze┼ästwa. Za chwile si─Ö mo┼╝e okaza─ç, ┼╝e twoje IoT jest cz─Ö┼Ťci─ů botnetu DDOS-uj─ůcego przedszkola.

Mo┼╝esz napisa─ç co┼Ť wi─Öcej? co to botnet, DDOS i co maj─ů do tego przedszkola?

 

Udost─Öpnij ten post


Link to post
Share on other sites
1 godzinę temu, Belferek napisał:

wprowadzaj─ůc na naszym ESP chocia┼╝by minimalne funkcje zabezpiecze┼ä jeste┼Ťmy si─Ö w stanie skutecznie (no prawie) zabezpieczy─ç przed wskazan─ů przez Ciebie sytuacj─ů

Jak to sobie dok┼éadnie wyobra┼╝asz? Firmware do ESP8266 jest napisany na kolanie przez Chi┼äczyk├│w w kilka miesi─Öcy, bo trzeba by┼éo szybko wypu┼Ťci─ç czip, ┼╝eby si─Ö zacz─ů┼é sprzedawa─ç. Zasob├│w nie ma wiele, wi─Öc wsz─Ödzie gdzie si─Ö da s─ů skr├│ty i optymalizacje. Sprz─Öt jest nietypowy, wi─Öc wi─Ökszo┼Ť─ç kodu musia┼éa by─ç napisana od zera, a nie opiera─ç si─Ö na przetestowanych bibliotekach. Kod ┼║r├│d┼éowy nigdy nie zosta┼é opublikowany, wszystko ma posta─ç binarnych blob├│w, wi─Öc zapomnij o weryfikacji przez spo┼éeczno┼Ť─ç i o patchach. Konfiguracja routera nie ma tu wi─Ökszego znaczenia, bo wystarczy jeden odpowiednio spreparowany pakiet z jakim┼Ť buffer overflow i ju┼╝ mo┼╝esz wykonywa─ç na ESP8266 dowolny obcy kod ÔÇö to nie jest zaawansowany procesor z mechanizmami ochrony pami─Öci i izolacji proces├│w. Bardzo ch─Ötnie us┼éysza┼ébym jakie to "prawie skuteczne" zabezpieczenia masz tu na my┼Ťli.

Udost─Öpnij ten post


Link to post
Share on other sites

Ano np. takie, ┼╝e ju┼╝ na poziomie routera mo┼╝na filtrowa─ç pakiety przychodz─ůce na okre┼Ťlony port, kt├│ry ma by─ç przekierowany do ESP chocia┼╝by pod k─ůtem ich nadawcy. W podobny spos├│b mo┼╝na filtrowa─ç ruch z ESP na zewn─ůtrz - mo┼╝na okre┼Ťli─ç "z kim" ESP mo┼╝e si─Ö ┼é─ůczy─ç. Same ograniczenia ESP te┼╝ chyba s─ů pewnym "atutem". Wydaje mi si─Ö, ┼╝e ten uk┼éad szybciej si─Ö zresetuje ni┼╝ zacznie przeprowadza─ç sieciowy atak DOS. Co do samego ESP to przecie┼╝ programista decyduje o tym za pomoc─ů jakich protoko┼é├│w i port├│w b─Ödzie si─Ö ten uk┼éad w sieci komunikowa┼é. Mog─Ö sobie wyobrazi─ç, ┼╝e ESP wykryje pr├│b─Ö niepo┼╝─ůdanego po┼é─ůczenia sieciowego i odpowiednio zareaguje itd. Osobi┼Ťcie nie spotka┼éem si─Ö z sytuacj─ů opisywan─ů przez desipu lecz nie twierdz─Ö, ┼╝e takie cuda s─ů niemo┼╝liwe. Tacy giganci jak MS i inni s─ů na to ┼Ťwietnym przyk┼éadem, ┼╝e i miliardy dolar├│w tych firm nie czyni─ů ich produkt├│w bezpiecznymi. Wi─Öc gdzie nam do nich z tym ESP.

Udost─Öpnij ten post


Link to post
Share on other sites

B─ůd┼║ aktywny - zaloguj si─Ö lub utw├│rz konto!

Tylko zarejestrowani u┼╝ytkownicy mog─ů komentowa─ç zawarto┼Ť─ç tej strony

Utw├│rz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj si─Ö ┬╗

Zaloguj si─Ö

Posiadasz własne konto? Użyj go!

Zaloguj si─Ö ┬╗

×