Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 9 mar 2025, o 22:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 23 lut 2017, o 15:20 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 sty 2016
Posty: 17
Lokalizacja: Łódź
Pomógł: 0

Witam.
Czy ktoś z szanownych forumowiczów mógłby podpowiedzieć ja zorganizować wymianę danych między AVR a serwerem/stroną www ? Nie chodzi mi o kody źródłowe (narazie :D ) tylko schemat blokowy jak by to miało wyglądać. Już tłumaczę o co mi chodzi.
Mam urządzenie - AVR+SIM900 i teraz chciałbym na to urządzenie wysyłać jakieś dane z mojej strony internetowej i odwrotnie z avr na stronę a docelowo na serwer sql. I teraz moje pytanie - Jak to zorganizować ? Metoda GET / POST ? czy może jest sposób aby bezpośrednio przesyłać i pobierać dane z SQL-a do avr ?

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 17:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Temat na który P.Mirek poświęcił połowę książki więc sam widzisz, że nie da się tego opisać w kilku zdaniach.
Polecam zakup YB na pewno nie pożałujesz

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 18:09 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 sty 2016
Posty: 17
Lokalizacja: Łódź
Pomógł: 0

Niestety posiadam tylko BB :( Może jednak ktoś podrzuci jakiś pomysł ;)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 22:02 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Najlepszy będzie chyba GET z surowymi danymi podanymi na tacy, coby procek nie musiał ich dodatkowo parsować.
Niewiem czy to jest dobry pomysł, żeby się łączyć bezpośrednio z sql, sam bym poleciał przez serwer http i niech on się zajmuje obróbką.
Musisz pamiętać że im dłuższe zapytanie tym dłuższa blokada procka.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 22:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

O ile wysyłanie danych w kierunku serwera i wywołanie np jakiegoś skryptu php który zaktualizuje dane (odczyty z czujników, stany I/O etc) w bazie etc nie stanowi tutaj problemu o tyle komunikacja zwrotna czyli od wywołanej strony www do modemu GSM-owego może być już problemem jeśli nie mamy stałego adresu IP na modemie. Teoretycznie można brak stałego adresu IP obejść w ten sposób , że modem odświeża w bazie SQL swój adres IP (zmienny) a strona www pobiera ten adres w procedurze wysyłania formularza ze strony do modemu etc .

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 23:48 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Wg Ciebie to strona ma ma wysyłać dane do urządzenia, to proszenie się o kłopoty, ale róbcie jak uważacie.
To modem ma sprawdzać czy ma coś do pobrania, nigdy odwrotnie.

Ewentualnie można zainicjować pobranie ze strony, ale pobrać dane musi sam, inaczej nie masz żadnej kontroli nad tym co poszło z formularza do avrka.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 09:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Harry napisał(a):
Wg Ciebie to strona ma ma wysyłać dane do urządzenia, to proszenie się o kłopoty, ale róbcie jak uważacie.
To modem ma sprawdzać czy ma coś do pobrania, nigdy odwrotnie.
Ewentualnie można zainicjować pobranie ze strony, ale pobrać dane musi sam, inaczej nie masz żadnej kontroli nad tym co poszło z formularza do avrka.


W czym Szanowny Kolega widzi problem z tym brakiem kontroli z wysłaniem danych ze strony www do modemu (przy założeniu , że modem ma stały IP) ??????

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 09:37 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

A jaką masz pewność że to co otrzymał procek jest np prawidłową konfiguracją?
Skąd ma wiedzieć że parametry wysłała zaufana strona, a nie ktoś inny?

Najlepiej niech się wypowie ktoś kto robił serwer http na uC ;)

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 10:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Harry napisał(a):
A jaką masz pewność że to co otrzymał procek jest np prawidłową konfiguracją?
Skąd ma wiedzieć że parametry wysłała zaufana strona, a nie ktoś inny?

Najlepiej niech się wypowie ktoś kto robił serwer http na uC ;)


Tak Szanowny Kolega ma rację z punktu widzenia bezpieczeństwa takie rozwiązanie jest obarczone błędem. Można sobie oczywiście wyobrazić , że jakiś wredny sąsiad haker chce uzyskać możliwość przesyłania danych do naszego modemu i wyciągać z niego dane np jaką mamy temperaturę w domu, jakie żarówki zaświecone jakie nastawy pieca i po chamsku nam to zmieniać itp. Jeśli w wysyłanych ze strony www zapytaniach typu POST (ze względu bezpieczeństwa tylko takie wchodzą w grę) dodamy jakiś np kod rozpoznawczy to już w prosty sposób możemy zwiększyć bezpieczeństwo odbioru.
Najważniejsze to jest to aby zabezpieczyć dostęp do naszej strony www .

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 10:24 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Właśnie o to mi chodziło, ale POST nie różni niczym od GET, bo i tak jedno i drugie leci otwartym tekstem, token w takim wypadku nic nie da.

Wysłane z mojego GT-I8200N przy użyciu Tapatalka

------------------------ [ Dodano po: 21 minutach ]

Ja wiem że to są rozważania czysto teoretyczne, ale osobiście bym zrobił tak, że w sieci lokalnej postawić serwer http choćby na jakimś Rpi i to z nim się łączy strona z zewnątrz, a dopiero z niego leci do avr. W ten sposób możesz mieć ssl'a i jednocześnie izolacje od internetu, oraz odporność na ddos.
Dla każdego coś innego, jeden bierze pod uwagę wygodę, inny bezpieczeństwo ;)

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 18:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Harry napisał(a):
Ja wiem że to są rozważania czysto teoretyczne, ale osobiście bym zrobił tak, że w sieci lokalnej postawić serwer http choćby na jakimś Rpi i to z nim się łączy strona z zewnątrz, a dopiero z niego leci do avr. W ten sposób możesz mieć ssl'a i jednocześnie izolacje od internetu, oraz odporność na ddos.
Dla każdego coś innego, jeden bierze pod uwagę wygodę, inny bezpieczeństwo ;)


Bardzo ciekawy koncept szczególnie , że wiąże się z możliwością dodatkowej nauki, zainwestowałbym w takim układzie w wiedzę o Node.js , JavaScript i MongoDB. Postawić Serwer na RPI w Node.js to przysłowiowe dwie linijki kodu :)

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2017, o 14:12 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Rozwiązanie z czymś pośredniczącym między avr a netem, ma głównie jedno zadanie - ochrona przed zatkaniem avr'ka, który zamiast wykonywać swoje główne funkcje zajmowałby się obsługą sieci w razie jakby ktoś zaczął się bawić i puścił śmietnik na avr.

W systemach bankowości elektronicznej to jest podobnie rozwiązane, tyle tylko że jest kilka poziomów pośredników i z tego co wiem to wygląda mniej więcej tak:
strona banku->firewall i serwer pośredniczący-> kolejny firewall i znowu serwer pośredniczący->właściwy serwer, przy czym serwerów pośredników jest kilka, które rutują dynamicznie, więc nigdy praktycznie niema możliwości żeby atakujący się przedostał, bo nawet jak uda mu się zhakować pierwszego pośrednika to nie zdąży załatwić kolejnego poziomu przed upływem sesji połączenia, która z reguły trwa max 20-30 minut i to jest rozłączenie sprzętowe, więc praktycznie nie do ominięcia.
Właściwie jedyną możliwością włamu do systemu bankowego to robota od wewnątrz sieci.Oczywiście w automatyce niema potrzeby stosować aż takich zabezpieczeń, ale i tak warto nad tym pomyśleć zawczasu.

Podsumowując, jak ci się zatka uC to nawet sobie światła w kiblu nie zapalisz :P

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2017, o 12:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Nurtuje mnie jedno pytanie . Jeśli przyjmiemy wariant proponowany przez Harrego czyli AVR schowany za lokalnym serwerem np na RPi to jeśli chcemy zrobić interakcję z AVR online ze strony wywołanej przez hosta z internetu np chcemy nacisnąć guzik na stronie www , który zapali nam światło w kiblu :) to jak teraz nasze RPi jako serwer ma te dane przekazać online (bez pośrednictwa SQL-a) w zapytaniu do AVR-a ??? serwer chyba nie ma możliwości nawiązać połączenia z hostem ???

bo odpytywanie przez AVR-a naszego RPi (z jakimś interwałem czasowym) czy przypadkiem w SQL nie zmienił się stan przycisku od kibla to takie trochę mało eleganckie rozwiązanie no i wchodzić do ciemnego kibla z nadzieją , że za 5 minut AVR odpyta stan włącznika w bazie i zapali światło :).

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2017, o 15:56 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

wat1970 napisał(a):
Nurtuje mnie jedno pytanie . Jeśli przyjmiemy wariant proponowany przez Harrego czyli AVR schowany za lokalnym serwerem np na RPi to jeśli chcemy zrobić interakcję z AVR online ze strony wywołanej przez hosta z internetu np chcemy nacisnąć guzik na stronie www , który zapali nam światło w kiblu :) to jak teraz nasze RPi jako serwer ma te dane przekazać online (bez pośrednictwa SQL-a) w zapytaniu do AVR-a ??? serwer chyba nie ma możliwości nawiązać połączenia z hostem ???

To bardzo proste ;)
Każdy serwer jest jednocześnie klientem, zawsze.
Po co sql na serwerze w necie?
Tam może być co najwyżej kopia aktualizowana co jakiś czas, a podstawowa baza ma być na Rpi

wat1970 napisał(a):
bo odpytywanie przez AVR-a naszego RPi (z jakimś interwałem czasowym) czy przypadkiem w SQL nie zmienił się stan przycisku od kibla to takie trochę mało eleganckie rozwiązanie no i wchodzić do ciemnego kibla z nadzieją , że za 5 minut AVR odpyta stan włącznika w bazie i zapali światło :).

Stojąc przed kiblem nie łączysz się z zewnętrznym serwerem w internecie, tylko z lokalnym i lokalny wysyła do avr bez żadnej zwłoki czasowej, pomijając tą na sprawdzenie poprawności danych. W innym przypadku nic byś nie zrobił przy padzie łącza.

------------------------ [ Dodano po: 2 minutach ]

Przy takim rozwiązaniu możesz sobie zrobić panele z byle tabletu, nie musisz się uciekać do rozwiązań za grube tysiące.

------------------------ [ Dodano po: 47 minutach ]

Cała idea takiego rozwiązania, polega na całkowitym uniezależnieniu się od dostępności internetu.

***Rpi to oczywiście tylko przykład

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2017, o 23:15 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 sty 2016
Posty: 17
Lokalizacja: Łódź
Pomógł: 0

Okej. Yellow book juz do mnie leci a w między czasie zacząłem sam coś kleić. Przed chwilą odczytałem Wasze post i okazało się że niektórych wyprzedziłem. :D
Więc tak. Napisałem chudziutki skrypt php który odbiera z _GET zmienne i wpisuje je do SQL. Modem SIM skonfigurowany jest na połączenie http, przyznam się od razu że do tej pory nie miałem zielonego pojęcia na temat łączności przez internet, TCP, tworzeniu stron itp. ale przez ostatnie kilka dni sporo się nauczyłem także są postępy :) Powracając do modułu sim, zmienne wysyłam do skryptu php po prostu otwierając go z parametrami w adresie co jednocześnie daje mi możliwość za pomocą tego samego skryptu odczytać dane z serwera do modemu -> parsowanie i do procka :)
I teraz pojawia się problem który był poruszony kilka postów wyżej, a mianowicie jak poprosić procesor przez GPRS żeby odczytał/zapisał dane na serwer?

I jeszcze jedno:
Cytuj:
Podsumowując, jak ci się zatka uC to nawet sobie światła w kiblu nie zapalisz :P


Szkoda że nie ma "łapki w górę" :D :D

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2017, o 14:57 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

klimeq napisał(a):
I teraz pojawia się problem który był poruszony kilka postów wyżej, a mianowicie jak poprosić procesor przez GPRS żeby odczytał/zapisał dane na serwer?


Twój modem musiałby pracować w trybie serwer, o ile oczywiście to możliwe, albo tak jak pisałem wcześniej odpytywać co chwile stronę czy coś się zmieniło, innej metody niema. Każda metoda ma swoje plusy i minusy, ale w przypadku łącza komórkowego warto pomyśleć nad ograniczeniem transferu, za który trzeba płacić.
A co do parsowania, to ściągając dane do procka, to najlepiej żeby Twój serwer wypluwał dane w jak najoszczędniejszej dostosowanej formie, żeby oszczędzić pracę uC.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2017, o 18:34 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 sty 2016
Posty: 17
Lokalizacja: Łódź
Pomógł: 0

Odpytywanie co chwilę strony o dane byłoby nieco kosztowne. Teoretycznie da się zestawić połączenie jako serwer tylko co dalej ? Jak rozwiązać komunikację po stronie mojej strony :P ? za pomocą terminala nie było by problemu wysłać coś do modułu i z powrotem, ale jak przenieść tą komunikację na strone / serwer ?

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2017, o 19:46 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Dokładnie tak samo jak odpytujesz stronę, tylko w drugą stronę ;)
Czyli w programie musisz zrobić tak żeby odpowiednio reagował na dany string który do niego wysłałeś, mam tylko wątpliwości czy po łączu gsm da się to zrobić, bo ip modemu musiało by być tylko i wyłącznie twoje, ewentualnie jakiś port. Generalnie modemy gsm nie służą do utrzymania stałego łącza, tylko do wdzwaniania się na nie w razie potrzeb.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2017, o 00:06 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Jest jeszcze jeden sposób, ale musiałbyś poszukać bramki sms - wysyłasz polecenie synchronizacji smsem do modemu, a on się łączy i synchronizuje co potrzeba.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2017, o 13:32 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 sty 2016
Posty: 17
Lokalizacja: Łódź
Pomógł: 0

Ok. Po wczorajszych "bitwach" z modułem (i jego zewnętrznym ip, a raczej jego brakiem) do 2 nad ranem wybór komunikacji padł na pytanie o dane co jakiś czas serwera ze skryptem .php. Na razie zrobię jakiś testowy programik i zobaczę jak to będzie wyglądało jeśli chodzi o wykorzystanie pakietów. Niestety nie obejdzie się bez wykupienia opcji premium na cba bo z tymi reklamami moduł pobiera stronę z 5 sekund :lol: chyba że zna ktoś jakąś stronkę testową z php do takich celów oprócz fibo.php ? ;)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO