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 13 lip 2025, o 22:25


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
    Autor Wiadomość
    PostNapisane: 16 sty 2018, o 17:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    Mam problem z odbieraniem SMS od modułu SIM900 GSM Shield Arduino. Napisałem program na ATMega32, który odbiera SMS "=on" i zapala LED. Program działa. Sprawdziłem na UART-PC. Problem pojawia się gdy podłączam SIM900 do AVR przez RX->TX, TX->RX. Wysyłam SMS a dioda się nie zapala. Czy ktoś wie o co chodzi?

    Schemat modułu SIM900:
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 sty 2018, o 17:25 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 774
    Pomógł: 40

    A podłączałeś moduł do terminala? Korzystałem z takiego modułu i działał bardzo dobrze. Zakładam ,ze masz zle napisany program komunikacji sim-avr. Ale to i tak pewnie w C wiec nie pomoge



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 sty 2018, o 17:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    Dziękuję za odpowiedź. Komunikacja komendami AT moduł<->PC działa prawidłowo. Mało tego jestem w stanie wysłać dane z uC do SIM900 (nadać SMS). Odbieranie SMS przez uC nie działa. Zrobiłem symulację. Przez terminal wysłałem dokładnie to samo co podaje SIM900 do procka. O dziwo dioda zapaliła się.

    Podejrzałem na oscyloskopie wyjście TX SIM900. Sygnał podczas transmisji przypomina szum a nie zera i jedynki.

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 sty 2018, o 19:29 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 774
    Pomógł: 40

    A jak wyślesz smsa przez terminal to tez nie masz odpowiedzi? Głownie chodzi mi o komunikacje sim - terminal.Najlepiej na początku wyeliminować własne błędy. Bo to one zazwyczaj są problemem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 sty 2018, o 23:15 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    Sprawdzę czy przez terminal da radę. Czyli mam wysterować terminalem, moduł SIM900, tak aby "sam do siebie" wysłał wiadomość?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 09:52 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 774
    Pomógł: 40

    Nie. Ty żeby odczytać musisz wysłać komendę nakazująca sim900 odczytać smsa. Wtedy on sięga do pamięci i wysyła ci go przez RS232 i Ty go odczytujesz w terminalu. Wiec podłączasz go do terminala wysyłasz komendę "AT" i sim odpowie ci "OK" i to będzie znaczyc ,ze masz komunikacje poprawna. Nastepnie wysylasz sms na sim900 i komendami AT z terminala każesz mu ja odczytać. Sim900 wyśle ci ja do terminala. Jeśli to będzie działać to wtedy masz pewność ze komunikacja działa. Następnie musisz sobie tak napisać odbiór w avr żeby to on ci te komendy wysyłał i później pokazał na wyświetlaczu czy co tam innego z nim zrobił.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 11:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    No tak ale mam tak skonfigurowany SIM900, że od razu na terminalu pojawia się treść SMS. Procek nie widzi ramek z treścią. Na terminalu wyświetla się poprawnie SMS.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 11:26 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Draxter32 napisał(a):
    No tak ale mam tak skonfigurowany SIM900, że od razu na terminalu pojawia się treść SMS. Procek nie widzi ramek z treścią. Na terminalu wyświetla się poprawnie SMS.

    Jeżeli na terminalu pojawia się treść sms-a to moduł sim działa poprawnie. Przecież po podłączeniu Rx i Tx do procka zamiast do terminala to samo doleci do procesora i musisz zadbać o to żeby procesor prawidłowo zareagował na przychodzącego sms-a.
    Pokaż ten fragment kodu odpowiedzialny za odbiór danych przez UART

    _________________
    Pomóżcie mi stanąć na nogi



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 15:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    mczarny napisał(a):
    Pokaż ten fragment kodu odpowiedzialny za odbiór danych przez UART

    W przerwaniu odbieram dane do volatile unsigned char buff[128];

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

    Inicjalizacja UART

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

    A tak napisałem parsowanie danych

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 16:06 
    Offline
    Użytkownik
    Avatar użytkownika

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

    To jeszcze zrób zrzut ekranu jak wygląda przychodzący sms w terminalu

    _________________
    Pomóżcie mi stanąć na nogi



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 19:45 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    mczarny napisał(a):
    To jeszcze zrób zrzut ekranu jak wygląda przychodzący sms w terminalu

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 21:17 
    Offline
    Użytkownik
    Avatar użytkownika

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

    zrób może tak

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

    i wyślij sms o treści LEDON

    oczywiście "bufor" musisz sobie zdefiniować, ale wiesz jak bo już masz to zrobione

    _________________
    Pomóżcie mi stanąć na nogi



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 sty 2018, o 23:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    @mczarny, przedstawione rozwiązanie u mnie nie działa. Z terminala jak i przez SMS wysyłając treść, dioda się nie zapala.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2018, o 07:53 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    A spróbuj:

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

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2018, o 09:30 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    Mam jeszcze pytanie
    Bufor napełniasz w przerwaniu.
    A kiedy parsujesz dane? W sensie co jest sygnałem do tego żeby rozpocząć parsowanie?
    Czy może robisz to "cały czas w pętli głównej"?

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 sty 2018, o 10:52 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Do bufora trafiają dwie linie danych więc jeżeli chcesz żeby program zareagował na "=on musisz programowo pominąć pierwszą linię czyli "+CMT............"
    Jeżeli z terminala wpiszesz tylko "=on\r\n" to Twoja funkcja parsująca reaguje prawidłowo ale moduł SIM przesyła nie tylko treść sms-a.
    Ja stosuję sposób przedstawiony w YB gdzie program analizuje kolejne linie ASCII zliczając znak "enter"
    Myślę, że najpierw musisz zareagować na to że sms w ogóle się pojawił czyli na początek stringa +CMT, pominąć tą linię i parsować dopiero wtedy właściwą treść sms-a.
    Tak czy inaczej polecam Ci YB gdzie masz podane wszystko na tacy łącznie z obsługą timeoutów, obsługą sms-ów w trybie tekstowym i UDP. Co ważne masz to wszystko zrobione w sposób nieblokujący.

    pozdrawiam

    _________________
    Pomóżcie mi stanąć na nogi



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 sty 2018, o 00:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    MirkoT napisał(a):
    A spróbuj:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Sprawdziłem. Nie działa, zarówno przez moduł SIM900 jak i przez terminal.
    MirkoT napisał(a):
    Mam jeszcze pytanie
    Bufor napełniasz w przerwaniu.
    A kiedy parsujesz dane? W sensie co jest sygnałem do tego żeby rozpocząć parsowanie?
    Czy może robisz to "cały czas w pętli głównej"?

    Parsowanie danych wykonuje się w pętli głównej programu.
    mczarny napisał(a):
    Do bufora trafiają dwie linie danych więc jeżeli chcesz żeby program zareagował na "=on musisz programowo pominąć pierwszą linię czyli "+CMT............"

    No dobrze a jeśli wpiszę w terminal "+CMT +48xyz jakiś-tekst-sim-900 /r/n=on/r/n" czyli zrobię symulację to dioda zapala się. Zrobiłem test i zamiast "=on" wpisałem w programie "+CMT". Nie działa.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 lut 2018, o 00:23 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    Po przerwie wracam do tematu. Zauważyłem, że jak przy zestawionym połączeniu RX/TX moduł GSM<->AVR wpinam się równolegle przejściówką FTDI 2303 do PC wszystko zaczyna działać. Wypinam przejściówkę - działa. Reset zasilania. I znów nie działa.

    Tak jakby FTDI "budziło" moduł UART w AVR. O co tu chodzi?

    Obrazek



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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