• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kilka komend w 1 jednej wiadomości SMS
#1
Witam.
Tworzę projekt inżynierski oparty na Arduino Uno i Sim800c.
Kod programu który użyłem do mojego systemu sterowania jest w bardzo dużej mierze oparty na kodzie z tego poradnika ( oczywiście za zgodą autora, mogę kod normalnie modyfikować i użyć w swojej pracy ):
Cytat:https://mikrokontrolery.blogspot.com/201...a-SMS.html

Aktualnie mój system:
- łączy się z siecią i wysyła wiadomość powitalną
- co chwilę sprawdza skrzynkę, jeżeli jest w niej SMS to sprawdza czy numer dozwolony
- jak numer dozwolony, to odczytuje komendę z SMS
- wysłanie SMS "STATUS" zwraca nam w wiadomości status wyjść cyfrowych ( w moim przypadku przykładowo "Dioda 10 WL 7 WYL").

Niestety nie wiem jak zrobić, by program odczytywał kilka komend z 1 SMS oddzielonych jakimś znakiem ( np średnikiem ). Aktualnie by sterować diodami, muszę wysyłać osobno SMS dla każdej z diod. Polecono mi na jednym z for użycia funkcji  strtok, niestety nie mam pojęcia jak zaimplementować to w moim kodzie. Istnieje może jakiś prostszy sposób?

Kod całego programu podaję w linku poniżej ( miałem problem by wkleić go w posta, wyskakiwał błąd z uprawnieniami )
https://pastebin.com/6zyvWxNL
 
Odpowiedź
#2
(28-12-2018, 03:16)dydel napisał(a): Tworzę projekt inżynierski oparty na Arduino Uno
To brzmi śmiesznie. Jak taki jest poziom inżynierów to strach się bać.

(28-12-2018, 03:16)dydel napisał(a): Niestety nie wiem jak zrobić, by program odczytywał kilka komend z 1 SMS oddzielonych jakimś znakiem ( np średnikiem ).
Użyj strstr.
 
Odpowiedź
#3
(28-12-2018, 14:38)es2 napisał(a):
(28-12-2018, 03:16)dydel napisał(a): Tworzę projekt inżynierski oparty na Arduino Uno
To brzmi śmiesznie. Jak taki jest poziom inżynierów to strach się bać.

(28-12-2018, 03:16)dydel napisał(a): Niestety nie wiem jak zrobić, by program odczytywał kilka komend z 1 SMS oddzielonych jakimś znakiem ( np średnikiem ).
Użyj strstr.

Może brzmi, ale miałem ogólny temat by stworzyć System Sterowania urządzeń oparty na poleceniach w SMSie. Więc postanowiłem się oprzeć na Arduino. I tak to był jeden z ciekawszych tematów z puli.

Widzę że funkcja strstr znajduje wybrane słowa w łańcuchu słów.
Rozumiem że w moim przypadku tymi słowami szukanymi będą komendy z sms?
 
Odpowiedź
#4
(28-12-2018, 15:57)dydel napisał(a): Widzę że funkcja strstr znajduje wybrane słowa w łańcuchu słów.
Tak. Wszelkie operacje na stringach to podstawy programowania.

(28-12-2018, 15:57)dydel napisał(a): Rozumiem że w moim przypadku tymi słowami szukanymi będą komendy z sms?
Można szukać całych komend, jeśli mają parametr to części komendy.
 
Odpowiedź
#5
(28-12-2018, 16:07)es2 napisał(a):
(28-12-2018, 15:57)dydel napisał(a): Widzę że funkcja strstr znajduje wybrane słowa w łańcuchu słów.
Tak. Wszelkie operacje na stringach to podstawy programowania.

(28-12-2018, 15:57)dydel napisał(a): Rozumiem że w moim przypadku tymi słowami szukanymi będą komendy z sms?
Można szukać całych komend, jeśli mają parametr to części komendy.

Zmieniłem tylko kilka rzeczy:
Kod:
if(strstr(buffer,"WL 10")){
             digitalWrite(10,HIGH);
           }
           if(strstr(buffer,"WYL 10")){
             digitalWrite(10,LOW);
           }
           if(strstr(buffer,"WL 7")){
             digitalWrite(7,HIGH);
           }
           if(strstr(buffer,"WYL 7")){
             digitalWrite(7,LOW);
           }
           if(strstr(buffer,"STATUS")){
             send_resp=1;//Raport
           }
         }
 I działa, wykrywa kilka różnych komend i po kolei je wykonuje. Dziękuję za pomoc.
 
Odpowiedź
#6
Ale napisałeś źle. Zastanów się, jeśli będziesz szukał z wykluczeniem (else) najpierw "a" a następnie "aa" to czy program kiedykolwiek znajdzie "aa"?
 
Odpowiedź
#7
Można wszystkiego oczywiście nie wiedzieć, ale tu na forum to już było, a nie tylko na tym forum o tym pisałem, więc i google pewnie by to znalazło: https://forum.arduinopolska.pl/watek-ste...%C5%82-gsm, https://forum.arduinopolska.pl/watek-odc...85gu-liczb .
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#8
(28-12-2018, 19:46)kaczakat napisał(a): Można wszystkiego oczywiście nie wiedzieć, ale tu na forum to już było, a nie tylko na tym forum o tym pisałem, więc i google pewnie by to znalazło: https://forum.arduinopolska.pl/watek-ste...%C5%82-gsm, https://forum.arduinopolska.pl/watek-odc...85gu-liczb .

@kaczakat, daj spokój człowiekowi (zapomniał wół jak cielęciem "buł").
Akurat autor tego tematu, jest jednym z nielicznych w 2018 roku, który potrafi używać Google.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości