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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 11 lip 2025, o 02:55


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
    Autor Wiadomość
    PostNapisane: 23 wrz 2016, o 01:05 
    Offline
    Użytkownik

    Dołączył(a): 17 mar 2015
    Posty: 38
    Lokalizacja: Australia
    Pomógł: 0

    Witam szanownych kolegów – fachowców.
    Mam pytanie odnośnie komunikacji pomiędzy uC z kartą ENC28J60 a urządzeniem mobilnym z Androidem. Do pośredniczenia w komunikacji chciałbym użyć zewnętrzengo hostingu oraz własnej domeny www.
    Przeglądałem forum na wszystkie sposoby i znalazłem sporo informacji jednak nadal mam pewne luki w wiedzy, której nie udało mi się uzupełnić. Nie wykluczam, że źle szukałem ;)

    Przechodząc do konkretów:

    Założenia:
    1. Urządzenie z uC i kartą ENC28J60 pracujące jako KLIENT wysyłające do „mojadomena.pl” zmieną „zmienna1”.
    2. Skrypt php na hostingu np „zapis_from_uc.php” odbierający „zmienna1” z uC i jak nazwa wszkazuje zapisujący ją gdzieś na hostingu.
    3. Urządzenie z Androidem pracujące jako KLIENT odpytujące za pomocą skryptu „odczyt_from_uc.php” zmienną „zmianna1” przechowywaną na hostingu a wcześniej przekazaną tam przez uC.
    4. Komunikacja w stronę przeciwną tzn. Przekazanie „zmienna2”z Androida do „mojadomena.pl/zapis_from_android.php”
    5. Odczyt przez uC z „mojadomena.pl/odczyt_from_android.php”zmiennej „zmienna2” przechowywanej na hostingu.

    Tyle założeń a teraz pytania.

    Ad. 1 Tutaj wszystko jest raczej jasne. Bardzo pomocny był post kolegi PawelGaj http://forum.atnel.pl/topic3243.html
    Ad.2 Gdzie mogę zapisać tą zmienną na serwerze? Czy z opcji mam dostępne tylko baza SQL i plik np tekstowy? Jeśli chodzi o bazę SQL to wolałbym uniknąć tego tematu gdyż jest to koleja nowa rzecz a w moim przypadku zaprzeęgnięcie bazy SQL nie jest konieczne. Chcę tylko przechować zmienną. Którą będę mógł odczytać za pomocą innego urządzenia z Androidem.
    Może ktoś by mógł mnie nakierować na jakiś przykład skryptu PHP?
    Na pewno można zapisać zmienną w pliku tekstowym na hostingu ale czy to nie przerost formy nad treścią? Czy taki plik w celu przeczytania trzeba za każdym razem otwierać a po odczytaniu zamykać?
    Testowałem przypadek z plikiem tekstowym i da się to zrobić tylko czy nie można prościej?
    Może jest jakiś inny sposób zapamiętania zmiennej dostępnej na „mojadomena.pl”?
    Ad. 3 Jak zrobić najprostrzą komunikację z „mojadomena.pl” po stronie Androida. Zapytanie o zmienną orazy odebranie odesłanej przez serwer odpowiedzi.
    Ad. 4 Odpowiedź na pytanie 3 pomoże i w tym punkcie
    Ad. 5 Tutak chyba poradnik mirka o KLIENT WWW powinien załatwić sprawę.

    Wiem, że podobne tematy były wałkowane wiele razy i wszyscy mówią, że najlepiej jest wykorzystać zewnętrzny hosting. Zgadzam się gdyż jest to rozwiązanie najbardziej uniwersalne. Nie jest potrzebne przekierowywanie portów i jakieś specjalne ustawienia w sieciach lokalnych. Wystarczy dostęp do internetu po obu stronach – Android i uC. Wszyscy mówią o zewnętrznych hostach jednak nie mogę się doszukać konkretnych przykładów które by pokazywały co zrobić na hostingu jak już go posiadam aby wykorzystać go do przekazywania zmiennej „zmienna1” z uC do Androida i zmiennej „zmienna2” w stronę przeciwną.
    Byłbym kolegom bardzo wdzięczny za nakierowanie na konkretne informacje w tym t
    emacie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 wrz 2016, o 23:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    Zapis do plików nie jest taki trudny w twoim przypadku. Wiem, że nie jest to może eleganckie rozwiązanie programistyczne i wypasiony algorytm, ale aby było łatwo to np. proponuję Ci takie rozwiązanie:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Rozwiązanie jest fajne bo masz tylko jeden plik skryptu do odczytu i zapisu zmiennej

    Aby zapisać plik wysyłasz URL w postaci:
    Składnia: [ Pobierz ] [ Ukryj ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    gdzie zmienna to dowolna nazwa zmiennej bez spacji i najlepiej polskich liter
    val to treść tej zmiennej. Tu mogą być polskie litery i spacje

    Aby odczytać plik wysyłasz URL w postaci:
    Składnia: [ Pobierz ] [ Ukryj ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    gdzie zmienna to nazwa zmiennej wcześniej zapisanej
    wartość zmiennej dostaniesz jako tekst na stronie

    Jeżeli coś pójdzie nie tak, np, zła wartość zmiennej lub nie podany parametr to otrzymasz jako treść pliku NaN, czyli będziesz wiedział, że gdzieś masz błąd.

    Można to oczywiście rozbudować o obsługę błędów. Trzymać to w jednym pliku itp. Ale tak to przynajmniej prosto i szybko :)

    Oczywiście dla pliku skrypt.php na hostingu jeżeli jest na systemach z rodziny linux trzeba nadać uprawnienia do zapisu plików.


    Autor postu otrzymał pochwałę

    _________________
    .



    Ostatnio edytowano 24 wrz 2016, o 09:21 przez misiulu, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 01:26 
    Offline
    Użytkownik

    Dołączył(a): 17 mar 2015
    Posty: 38
    Lokalizacja: Australia
    Pomógł: 0

    No i to jest konkretna odpowiedź i na temat. Dziękuję misiulu.

    Ma może ktoś jeszcze pomysł jak odbiór i zapis takiej zmiennej zrobić po stronie aplikacji na Androidzie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 02:52 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    Może to się przyda

    https://www.youtube.com/watch?v=MR8Z0GF_Ha4
    https://www.youtube.com/watch?v=KePL05iH_8I
    https://www.youtube.com/watch?v=ihnJQmFwKkk
    https://www.youtube.com/watch?v=JixSaI9_egE
    https://www.youtube.com/watch?v=BH4PO7802So

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 wrz 2016, o 09:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    zieleniewiak napisał(a):
    No i to jest konkretna odpowiedź i na temat. Dziękuję misiulu.

    Jak chcesz docenić kogoś, że Ci pomógł, to przy poście z prawej strony masz przycisk pomógł :) Oczywiście zwykłe podziękowania również wystarczą, ale to na forum dobry zwyczaj :)

    W moim kodzie był mały babol, brakowało kropek przed txt, więc tworzył się plik z niepoprawnym rozszerzeniem - poprawiłem w poprzednim kodzie.

    Oczywiście jak rano na to spojrzeć to można napisać to prościej :) np. tak:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ------------------------ [ Dodano po: 51 minutach ]

    zieleniewiak napisał(a):
    Ma może ktoś jeszcze pomysł jak odbiór i zapis takiej zmiennej zrobić po stronie aplikacji na Androidzie?

    Jak już obejrzysz poradniki Mirka i będziesz wiedział jak apkę zrobić. Np. dodać przycisk i jego obsługę to wtedy możesz wykorzystać ten kod poniżej. Sam go używam do pobierania danych z serwera. Oczywiście w zależności jaki URL podasz to możesz zapisywać dane lub tylko odczytywać według tego co Ci podałem w innych postach.

    Wszystkiego o b4a nauczyłem się właśnie z poradników Mirka więc dziękuję mu przy okazji za to :) A resztę już sam poszukałem to co Ci tutaj wypisuję :)

    Aby działało to trzeba załączyć biblioteki:
    Obrazek

    Następnie w sub globals dodajesz zmienną globalną
    Składnia: [ Pobierz ] [ Ukryj ]
    język vb
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Następnie do Sub Activity_Create(FirstTime As Boolean) dodajesz inicjalizację http
    Składnia: [ Pobierz ] [ Ukryj ]
    język vb
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Następnie np. w obsłudze zdarzenia po naciśnięciu jakiegoś przycisku, u mnie B_PobierzDane_Click dodajesz wywołanie funkcji z adresem URL tak jak podawałem Ci w poprzednich przykładach. Możesz zapisywać lub tylko odczytywać nie podając w adresie zmiennej val
    Składnia: [ Pobierz ] [ Ukryj ]
    język vb
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pozostało sprawdzić co zostało odebrane :) Jeżeli zapisywałeś zmienną to powinien być pusty string lub NaN jeżeli wystąpił błąd. Jeżeli odczytywałeś zmienną to wartość tej zmiennej lub NaN jeżeli wystąpił błąd
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język vb
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    To by było na tyle. Możesz według tego szablonu powoływać wiele zmiennych globalnych z inną nazwą. Czyli coś do zapisu, do odczytu itp. Później to zainicjalizować. Następnie wywoływać w kodzie za pomocą httpDownload.Download i obsłużyć wynik w funkcji jobDone dodając kolejnego ifa: If httpDownloadJob.JobName = "httpDownload" Then zmieniając tylko nazwę httpDownload na tę nową co wcześniej zainicjalizowałeś.

    U mnie to fajnie działa jednak jestem początkującym w tej dziedzinie więc może Master Mirek lub ktoś inny obeznany coś podpowie lub poprawi. Może jeszcze jakieś prostsze rozwiązanie? :)


    Autor postu otrzymał pochwałę

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 wrz 2016, o 12:26 
    Offline
    Użytkownik

    Dołączył(a): 17 mar 2015
    Posty: 38
    Lokalizacja: Australia
    Pomógł: 0

    Robiłem wstępne testy i wszystko pięknie działa.
    Dziękuję



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 14:21 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    Cześć,
    mam takie małe pytanko jak wyłuskać wartość samej tej zmiennej z poziomu B4A.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 15:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    kurnachatka napisał(a):
    mam takie małe pytanko jak wyłuskać wartość samej tej zmiennej z poziomu B4A.

    Za bardzo nie wiem o jaką zmienna Ci chodzi, jeżeli chcesz wiedzieć gdzie ona się znajduje po odebraniu b4a to w httpDownloadJob.GetString

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 15:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    Cytuj:
    httpDownloadJob.GetString


    W tym stringu siedź cała zawartość strony, a ja bym chciał zmienna z pliku nazwa_zmiennej. txt

    ------------------------ [ Dodano po: 6 minutach ]

    Może źle się wyraziłem nie zmienna tylko wartość.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 16:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    kurnachatka napisał(a):
    W tym stringu siedź cała zawartość strony, a ja bym chciał zmienna z pliku nazwa_zmiennej. txt

    Ale jaka zawartość strony? Jak wszystko dobrze zrobiłeś do powinieneś odebrać jako stronę właśnie samą wartość zmiennej! Skrypt php wypisuje tylko to albo tekst NaN, nic innego tam nie masz :)

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 16:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    No to musiałem coś zknocić bo dostaję całą zawartość w postaci html.
    Będę szukał błędu. Dzięki za info.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 16:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 kwi 2014
    Posty: 438
    Lokalizacja: Zambrów
    Pomógł: 22

    kurnachatka napisał(a):
    No to musiałem coś zknocić bo dostaję całą zawartość w postaci html.

    To pokaż co dostajesz to może znajdziemy przyczynę :)

    _________________
    .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 17:09 
    Offline
    Użytkownik

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

    Stawiam że kolega dostaje kod php zamiast strony, czyli na serwerze niema php(coś dziwnego w dzisiejszych czasach).
    Czy przez normalne połączenie przez przeglądarkę jest ok?

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 wrz 2016, o 17:44 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    OK Panowie już chyba wiem skąd ten błąd.
    Stronkę postawiłem na darmowym hostingu który dokleja mi swoją zawartość z banerem i stopką do PHPa.

    ------------------------ [ Dodano po: dzisiaj, o 17:44 ]

    Po testach na lokalnym serwerze wszystko śmiga. Czyli problem leżał po stronie darmowego hostingu.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    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: 14 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO