Skocz do zawartości

Arduino (?) i GSM


SOYER

Pomocna odpowiedź

Cześć, przy okazji innego zamówienia postanowiłem też dopisać kilka elementów potrzebnych do mojego alarmu DIY;). Jednak za Chiny ludowe nie mogę znaleźć nic budżetowego w temacie obsługi GSM. Kiedyś było coś co się nazywało SIM800L, teraz tylko jakieś moduły za min 150 zeta. 

Z szukam jakiegoś kontrolera programowalnego z Arduino IDE i obsługującego GSM. 

Koszt rzędu 200 zł plus dodatkowe elementy to już porównywalne z jakimś tanim alarmem. Wiem, pozostaje radocha i uciecha zbudowania czegoś swojego... 

Idealne byłoby to:

https://m.banggood.com/pl/LILYGO-TTGO-T-Call-V1_3-ESP32-Wireless-Module-GPRS-Antenna-SIM-Card-SIM800L-Board-p-1527048.html?gmcCountry=PL&currency=PLN&cur_warehouse=CN&createTmp=1&utm_source=googleshopping&utm_medium=cpc_union&utm_content=lijing&utm_campaign=ssc-pl-ele-0829-13anv&ad_id=379924588555

Ale szukam w polskich sklepach. No chyba, że się w końcu skuszę na zakupy w państwie środka;). 

Link do komentarza
Share on other sites

(edytowany)

Cześć, z racji kilku dni wolnego, wziąłem się w końcu za mój alarm. Po długich męczarniach z zalogowaniem SIM800L do sieci, powodem których było oczywiście zasilanie, doszedłem do programowania tych piekielnych maszyn. Zainstalowałem bibliotekę i po zaistnieniu określonych zdarzeń, urządzenie albo do mnie dzwoni albo wysyła SMS.

Jednak chciałbym mieć również możliwość zdalnego, poprzez połączenie, lub SMS, uzbrojenia lub rozbrojenia alarmu. Tutaj dochodzimy do moich umiejętności programowania, z tego co wyczytałem tu, to ta biblioteka obsługuje takie funkcje SIM800l, jak odbieranie wiadomości tekstowych i połączeń głosowych.

Jednak, jako że, miły Pan (z Turcji?) przygotował przykłady tylko dla połączeń wychodzących, nie jestem w stanie poradzić sobie z zaimplementowaniem i właściwym użyciem funkcji gsm.callAnswer() tutaj od linijki 474, oraz gsm.smsRead(?) również tutaj ale od linijki 698...

Pomoże ktoś?

🙂

Generalnie,wystarczy mi by połączenie przychodzące zmieniało stan zmiennej na przeciwny, a co do SMS, by zależnie od treści zmieniał stan zmiennej;-)

Edytowano przez SOYER
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Hej, udało mi się w miarę skończyć moją centralkę alarmową. Wszystko działa ok. Po wpisaniu PIN-u, urządzenie przechodzi w stan oczekiwania na uzbrojenie, w tym stanie można go również rozbroić, prze podanie PINa. Następnie się uzbraja i pilnuje mikrofalowych czujników ruchu. Po wyzwoleniu alarmu przez czujniki, wysyła SMS i dzwoni na wybrany numer. SMS jest również wysyłany przy uzbrojeniu i rozbrojeniu.

Całość zasilana z sieci, dodatkowo przez ładowarkę jest ciągle ładowany lipol, który przejmuje zasilanie układu po zaniku zasilania z sieci. Cieszę się, że wyłączenie zasilania sieciowego i przełączenie na lipol jest niezauważalne dla układu.

Czego mi brakuje:

jeden, wysłanie SMS i dzwonienie powoduje króciutką zwiechę objawiającą się pustym ekranem, jak to rozwiązać?

dwa, chętnie bym uzbrajał i rozbrajał system przez wysłanie SMSa, ale niestety nadal nie wiem jak to ugryźć z tą biblioteką(patrz post wyżej;-)

Kto pomoże?

 

 

  • Lubię! 1
Link do komentarza
Share on other sites

Cześć, udało mi się zrobić co chciałem, tzn. uzbroić i rozbroić centralkę po wdzwonieniu się na jej numer.

 while (gsm.available()>0) {
    numer = gsm.readString();
    nomero = numer.substring(21,30);
          if(nomero == numer1 || numer2){

              zrób coś tam

         }

}

Bardzo prostym poleceniem String.substring(x,x);

Działa.

 

  • Lubię! 1
  • Nie zgadzam się! 1
Link do komentarza
Share on other sites

Bardzo proste, wręcz genialne w swej prostocie!

Zadziała dla nomero równego numer1 lub dla nomero równego numer2 lub dla nomero równego cokolwiek innego.

Jako pracę domową uzasadnij, dlaczego warunek ("a" == "b" || "c") będzie równy true.

@Treker, Ty czasami czytasz posty na które reagujesz?

 

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

(edytowany)

jedyne co mi przychodzi na szybko do głowy to to, że porównuje liczbę znaków zamiast treści, wtedy zareaguje na każdy numer... 

nomero to też String... 

Czyli jednak strcmp? 

Edytowano przez SOYER
Link do komentarza
Share on other sites

...i to nie jest ten sam kod, który pokazałeś. Praca domowa poproszę 😛

Jestem ciekaw, czy za miesiąc będziesz pamiętał skąd się wzięło 21 i 30 (to tak przy okazji) i czy teraz potrafisz to objaśnić dla potomności.

 

Link do komentarza
Share on other sites

(edytowany)

tak, bo do alarmu tylko dzwonię, wtedy na serialu pojawia się informacja w której od 22 znaku zaczyna się 9-cyfrowy numer telefonu(standard w Polsce), przy dzwonieniu treść na serialu różni się tylko numerem, zależnym od numeru dzwoniącego. 

Krytyczne jest porównanie dwóch Stringów:

nomero == numer1

Czy takie porównywanie Stringów jest ok czy nie i dlaczego? 

Edytowano przez SOYER
Link do komentarza
Share on other sites

Rozumiem, że przy dzwonieniu zawsze numer zaczyna się od 22 znaku? To jakaś potwierdzona informacja czy tylko Twoja obserwacja?

Porównanie stringów jest OK, koncepcja porównania 9-cyfrowych numerów bez kodu kraju to raczej radosna twórczość.

BTW. swego czasu robiliśmy kumplom dowcipy, dzwoniąc do nich z numeru 997 😉 Caller ID łatwiej podrobić niż IP.

Jak tam praca domowa?

 

 

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.