Skocz do zawartości
SOYER

Arduino (?) i GSM

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;). 

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
Share on other sites

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

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
Share on other sites

To wstaw tam nawiasy zgodnie z tabelką priorytetów operatorów, będzie łatwiej zrozumieć 🙂

Praca domowa odrobiona?

Udostępnij ten post


Link to post
Share on other sites

jem kolację... 

 

if((nomero == numer1) ¦¦ (nomero == numer2))

i....? 

Udostępnij ten post


Link to post
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.

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

substring obcina pierwsze 21 znaków i od 30 do ostatniego

Edytowano przez SOYER

Udostępnij ten post


Link to post
Share on other sites

Tyle to wiemy, ale skąd te tajemnicze liczby 21 i 30? Czy zawsze w tym miejscu siedzi numer telefonu? Jeśli tak, to skąd ta informacja? Dlaczego numer jest 9-cyfrowy?

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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!

Gość
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...