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 w 2025? 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 25 maja 2025, o 10:00


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
    PostNapisane: 8 sty 2014, o 00:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    Witam, tak jak w temacie, mam problem z wysterowaniem portu RS232 z serwera www.

    Sprawa wygląda następująco:
    Pogrzebałem trochę po internecie i znalazłem bibliotekę która umożliwia wysyłanie komend na port RS232.
    http://www.phpclasses.org/browse/file/17926.html Jest to dość popularna biblioteka i chyba jedyna ogólnie dostępna do konfiguracji portu RS232.
    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.


    Do testowania stworzyłem plik index.php
    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.



    Do laptopa na którym postawiłem serwer mam podłączoną przejściówkę USB->RS232. Piny RX,TX,GND. Od strony elektrycznej jest wszystko OK, ponieważ jak wysyłam z terminala to wszystko działa. Zmiania się stan diody na przeciwny, oraz jest odpowiedz "OK".

    Jak próbuję wysłać komendę poprzez stronę index.php Widzę, że coś z tego portu wylatuje diody na przejściówce mi mrugają, czyli leci jakaś komenda do uP. Tylko jest brak reakcji uP ??

    Parametry transmisji: COM1,8,0,1

    Skrypt PHP wykonuje się bez błędów hmmm coś jest wysyłane na port COM ale nie wiem co?

    Musze coś zmieniać w ustawieniach serwera? Mam postawiony serwer XAMPP na swoim laptopie Windows 7.

    Biblioteka najprawdopodobniej działa, ponieważ jest dosyć popularna w necie, ja coś muszę źle robić :/

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 00:59 
    Offline
    Nowy

    Dołączył(a): 14 sie 2012
    Posty: 11
    Pomógł: 2

    Otwórz terminal na kompie z tymi samymi parametrami co masz na uC, na przejściówce zewrzyj/połącz Rx i Tx i patrz co się wyświetla... Teoretycznie uC powinien dostawać to samo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 01:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    Jak przeglądarka otwiera port, to nie mogę otworzyć tego portu za pomocą terminala.

    Zastanawiałem się aby wykorzystać ATMega644p, na UART1 wchodzą informacje z serwera www, uP przesyła ją dalej na UART2, UART2 wysyłą dalej na PC. Ale na razie nie mam 2 przejściówki RS232->USB. W sumie mam Mirkowy moduł BTM który bym mógł wykorzystać.

    Nie mam łatwiejszego pomysłu jak bym mógł podsłuchać co się pojawia na tym UART.

    ------------------------ [ Dodano po: 3 minutach ]

    Hmmm... Na samym serwerze też można za pomocą tej biblioteki odbierać łańcuchy. Jutro to wypróbuje...

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:03 
    Offline
    Nowy

    Dołączył(a): 14 sie 2012
    Posty: 11
    Pomógł: 2

    Racja, zapomniałem, że blokuje port... A z tym odbieraniem przez serwer tak bym się nie spieszył:
    Składnia: [ Pobierz ] [ Ukryj ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Twój kod uruchomiłem u siebie... Rzeczywiście przesyła... Ale praktycznie na każdym znaku jest przekłamanie...
    Tzn. część znaków przesyła poprawnie (c, e, f, l, o, w, x, A, B, D, G, H, ...) a inne zamienia na jakieś dialektyczne (np. 'd' na 'ä' czy 'h' na 'ç') - i zawsze tak przesyła, więc wykluczam błędy z doborem prędkości (a przetestowałem to na kilku różnych, efekt ten sam).

    Kodowanie pliku też kilkukrotnie zmieniałem, bez efektów...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    O dzięki!!! tak myślałem, że następuje jakieś przekłamanie. Tylko nie wiem dlaczego:( To nie jest moja biblioteka, znalazłem ją w sieci (@author Rémy Sanchez <thenux@gmail.com>). Może gdzieś w ustawianiach, serwera należy zmienić kodowanie z ANSI na UTF8 itd ? Nad tym się w sumie nie zastanowiłem. Ale dziwnie zamiania te znaki. Przy kodowaniu są raczej ogonki poucinane, brak polskich liter itp a tu jakoś dziwnie to zamienia ...

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:23 
    Offline
    Nowy

    Dołączył(a): 14 sie 2012
    Posty: 11
    Pomógł: 2

    O. Już wiem gdzie błąd - skrypt wysyła znaki w wersji najprostszej ASCII - siedmiobitowe. (:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    AHA!!! i jakoś to trzeba na 8 bitów zamienic????

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

    Przy inicjalizacji portu nie dodałem:
    $serial->confCharacterLength(8);
    Ale i tak to nic nie zmiania :(

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:35 
    Offline
    Nowy

    Dołączył(a): 14 sie 2012
    Posty: 11
    Pomógł: 2

    W tej blibliotece jest metoda "confCharacterLength" do wywołania z parametrem 8 - uwaga! działa (u mnie) tylko po wywołaniu na samym końcu konfiguracji!
    Składnia: [ Pobierz ] [ Ukryj ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Ewentualnie w uC to różnica jednego bitu w konfiguracji UARTu.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    Mi nie działa:( Komp zaczął mi się wieszać :(

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Wszystkie z tych komend? Chce wysłać komendę AT do uP i ma być zakończona znakami CR i LF.

    Kodowanie pliku UTF8, ASCII itd to ma tu znaczenie???

    Ale super, że CI działa!!! Teraz wiem, że kod jest dobry tylko u mnie coś nie tak.

    A jak Ty dokładnie to testujesz? Odbierasz w przeglądarce znaki? i masz zwarte RX i TX?

    ------------------------ [ Dodano po: 4 minutach ]

    Villentre WIELKIE DZIĘKI PO RAZ 2 W DZISIEJSZYM DNI :D Diodka mi zamrugała!!! :D Zaczeło dziłać!!!

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

    :D :D :D

    ------------------------ [ Dodano po: 10 minutach ]

    Trochę wolno mi to chodzi, ale działa super!!! Ale chyba wolno chodzi sama inicjalizacja otwarcia portu RS232. Jak otworzy się port RS232 to chyba będzie to szybciej smigało, samo wysyłanie komend :)

    Jutro jak wrócę z pracy będę miał się czym bawić :D Jeszcze raz wielkie dzięki Villentre za pomoc :) Spadam spać, bo trochę późno ;) Dobranoc :D

    _________________
    www.gryfsmart.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 02:59 
    Offline
    Nowy

    Dołączył(a): 14 sie 2012
    Posty: 11
    Pomógł: 2

    Mam spięty laptop (z uruchomionym PuTTy) i stacjonarny (XAMPP i Twój kod z pierwszego postu, z dopisanym jedynie tym "$serial->confCharacterLength(8);"; po zmianie kodowania różnicy w działaniu nie zauważyłem) najzwyklejszym RS232 (właściwie to nawet tylko rx<-tx i gnd<->gnd).

    W odpowiedzi otrzymuję (to co powinienem):
    Składnia: [ Pobierz ] [ Ukryj ]
      Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    PHP stringów pomiędzy ' ' w żaden sposób nie interpretuje, więc oczywiście, w ostatnim przypadku wyświetla "\r\n" zamiast entera.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 sty 2014, o 03:07 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2011
    Posty: 266
    Lokalizacja: Szczecin
    Pomógł: 9

    Dokładnie jest tak jak mówisz, już to przetestowałem.
    Ja steruje swój sterownik i wszystko hula :D
    Kody które działają przy wysyłaniu stringów to:
    Składnia: [ Pobierz ] [ Ukryj ]
    język php
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ------------------------ [ Dodano po: 3 minutach ]

    Jeżeli się wpisuje stringa w PHP i jest w " " to znaki specjalne są interpretowane, zminne itd. Natomiast jak się wpisuje w ' ' to znaki specjalne nie są interpretowane. Kiedyś więcej wiedziałem o PHP ale z biegiem lat wszystko mi uciekło :D Będę musiał odświeżyć wiedzę:D

    _________________
    www.gryfsmart.pl



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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