Alarm z powiadomieniem SMS (Arduino)

Alarm z powiadomieniem SMS (Arduino)

Posiadam garaż oraz działkę i chciałbym zostać powiadomiony o sytuacji, kiedy ktoś niepowołany znajdzie się w zasięgu czujki ruchu.

Można oczywiście samemu kupić gotowe alarmy w sklepie, ale uważam, że cena oraz możliwości nie idą w parze. Postanowiłem, że stworzę coś takiego sam przy pomocy Arduino. Z uwagi że jest to mój pierwszy projekt, posiada szereg niedociągnięć i umożliwia zastosować wiele poprawek – do czego zresztą zachęcam. To jest projekt wyjściowy, pokazujący pomysł oraz możliwości jakie ma Arduino z kilkoma dodatkowymi modułami.

Możliwości zastosowania tego projektu są ogromnie – od nadzoru nad działką, garażem poprzez zabezpieczenie mieszkania na czas naszej nieobecności, na monitoringu szafki z naszymi skarbami (tam trzymam np. zestawy Arduino). Ogranicza nas tylko wyobraźnia oraz ilość modułów.

Założenia:

  • urządzenie ma pracować TYLKO na baterii
  • ma być energooszczędne i umożliwić pracę do 6 miesięcy
  • ma powiadamiać serią SMS’ów tylko na jeden numer telefonu

Seria wiadomości ma na celu wybudzenie nas np. w nocy. Często jeden SMS możemy zignorować, ale po 30’tym będziemy mieli na tyle przytomni że będziemy mogli podjąć jakieś działania. W takim przypadku, jeśli alarm będzie cały czas aktywny, niezbędne może się okazać dodanie numeru do zablokowanych, aby móc korzystać z telefonu w innych celach. Jest to wada na jaką byłem przygotowany, jeśli ktoś chce otrzymać tylko jedną wiadomość, należy zmodyfikować kod źródłowy.

Niezbędne elementy:

  • Arduino Nano V3
  • moduł SIM800L (najtańszy z dostępnych modułów GSM)
  • czujka ruchu (HC-SR501 PIR)
  • konwerter stanów logicznych
  • aktywna karta SIM
  • dowolny PowerBank (zasilamy całość 5V z USB)

Schemat całego urządzenia:

Podłączyłem już przewód, umożliwiający wykonywanie telefonów – jest to nieużywana w obecnym kodzie funkcja, ale pozostawiam to jako przyszłościowe rozszerzenie. Były o to pytania na grupie FB – czy można sprawić, aby moduł dzwonił do nas, zamiast wysyłał SMS -tak, może. Wystarczy w miejsce wysyłania wiadomości SMS lub obok niej dodać ATD+48xxxxxxx; (nie zapominajmy o znaku ; ponieważ jest on niezbędny). Komenda ATH kończy połączenie (np. po 20 sekundach).

Na samym początku powstał poniższy kod źródłowy:

Jest to bardzo prosty kod (skrytykowany już na grupie FB – jako okropny, brzydki, nieczytelny, wstrętny itd.), wykonujący przedstawione założenia. Wysyła SMS co kilka sekund jeśli czujka jest wzbudzona. Zachęcam mocno do własnoręcznego poprawiania i modyfikacji kodu źródłowego. Tym bardziej, jeśli potraficie programować i posiadanie niezbędną wiedzę oraz umiejętności – rewelacyjnie będzie, jeśli zamieścicie poprawki w uwagach.

Kod można rozbudować o reakcje na zarządzanie, obsługę SMS’ów oraz numerów uprawnionych. Zostało to bardzo fajnie przedstawione w jednym z artykułów – zachęcam do przeczytania i analizy. W moim projekcie, najważniejsza była prostota i możliwość napisania czegoś samemu. Na pewno wraz z czasem i umiejętnościami, całość ulegnie modyfikacji i przekształceniu w długi, piękny oraz funkcjonalny kod.

Czujka ruchu ma możliwość regulacji czułości oraz zasięgu – tutaj dostosujmy jej parametry do naszych potrzeb, raczej już doświadczalnie i w miejscu przeznaczenia. Zamiast czujki ruchu, można użyć innego ‚detektora obecności’.

Samego modułu Arduino Nano nie trzeba prezentować, każda z osób składająca podobne układy miała z nim do czynienia.

Maleństwo, które łączy w sobie prostotę programowania (w przeciwieństwie do Pro Mini) i możliwości UNO. Natomiast wybór modułu GSM był spowodowany jego ceną i dostępnością. Na poniższym zdjęciu coś, co przypomina antenę – choć w przypadku tego projektu i lokalizacji miejsca docelowego, całkowicie wystarczyła aby poprawnie nawiązywać połączenie z siecią GSM.

Jeśli natomiast umieszczać całość będziemy przy słabym zasięgu (np. dom na działce, itp.), zalecam podłączanie zewnętrznej anteny – moduł Sim800L posiada na szczęście takie dedykowane złącze.

Całość zestawu ostatecznie prezentuje się następująco:

Na zdjęciu nie widać użycia konwertera stanów logicznych (5V-3,3V), który jest zabezpieczeniem naszego najdroższego elementu, czyli modułu GSM. Podłączamy go pomiędzy Arduino D11 i D12 a RX i TX modułu Sim800L – inaczej musimy się liczyć z możliwością jego uszkodzenia.

Poniżej zamieszczam kod ostateczny, który usypia moduł i czeka na wzbudzenia go przez czuję ruchu.

Znaczącą różnicę widać na załączonych zdjęciach. Moduł w stanie spoczynku przed modyfikacją kodu źródłowego i użyciem biblioteki Low-Power. Jestem zaskoczony dużą oszczędnością energii, jaką można osiągnąć wyłączając niepotrzebne moduły Arduino.

oraz po modyfikacjach i jego usypianiu:

Na pierwszy rzut oka, nie jest to duża różnica – ale przy zastosowaniu innego czujnika wzbudzającego zamiast czujki ruchu (np. przycisk/czujnik), będzie to wartość w okolicy zera. Wtedy nawet niewielki PowerBank, będzie działał bardzo długi czas.

Użyte części

  • Arduino Nano – 14 zł
  • Sim800L – 32 zł
  • czujka ruchu – 5 zł
  • konwerter stanów logicznych – 4 zł

Całość wyszła w okolicy 55-60 zł

Można oczywiście zastosować jakąś gotową obudowę lub ukryć w miejscu, gdzie nie będzie się rzucało w oczy (diody świecące można zakleić czarną taśmą izolacyjną).

Ocena: 5/5 (głosów: 10)
Nettigo - patron działu Elektronika

Podobne posty

73 komentarzy do “Alarm z powiadomieniem SMS (Arduino)

  • Moduł GSM możesz mieć do (nie od, tylko do) 8 zł choćby neoway m590. Ma równiez funkcję wykonywania połączeń, obsługi GPRS i MMS! – jakbyś chciał wysłać fotkę. :)

    Odpowiedz
  • Chyba przekonałeś mnie do zabawy z arduino ! ;)
    Mam tylko jedno małe pytanie… wspomniałeś o konwerterze stanów logicznych, ale nie ma go na schemacie i nie widzę w projekcie. Jak byś dodał go do schematu to dał bym 6 gwiazdek a tak muszę dać tylko 5 ;)
    Pozdr.

    Odpowiedz
    • Projekt działa tak jak jest. Konwerter jest zalecany w innych projektach – więc tym bardziej go zalecam. Niestety do mnie nie doszedł jeszcze :)

      Odpowiedz
    • Odpisałem powyżej. Należy go zastosować – ale w tym schemacie i projekcie go nie użyłem – liczę się z uszkodzeniem modułu. Wtedy będę mógł napisać :) że jest niezbędny bezwzględnie.

      Odpowiedz
    • Jest to mój pierwszy kod napisany w ciągu pierwszej godziny od rozpoczęcia przygody z Arduino.
      Nakładka makro do telefonu 3in1. Używam codziennie do troszkę innych zdjęć.

      Odpowiedz
  • Udało Ci się zrealizować ten punkt „ma być energooszczędne i umożliwić pracę do 6 miesięcy” ?
    Bo przy poborze 0,0293A w uśpieniu nie widzę tego ;/ Odłączaj zasilanie modułu GSM daj przez tranzystor gdy usypiasz całość :)

    Odpowiedz
    • Obawiam się, że coś chyba źle przeliczyłem. Coś mi wychodzi 2-3 tygodnie. No dobra, odpowiednio duuuuży PowerBank. Właśnie dokonałem odzysku pewnej liczby baterii z laptopów :)

      Odpowiedz
  • Jeszcze dodam że pewna sieć (aby nie reklamować powiem tylko #FREEMIUM , jeden minus to trzeba aktywować co 6 miesięcy odnowa) daje za darmo 30 sms za free co miesiąc. Na takie potrzeby jak znalazł :) Ja używam jako 2-gą kartę w telefonie z dualsim.
    Właściwie to może też zamontuje taki alarm na działce; z małym solarem do ładowania baterii ]:)

    Odpowiedz
  • Od dłuższego czasu chciałem swoją działkę wyposażyć w podobne urządzenie. Mam co prawda alarm GSM, ale zachowuje się on czasami dziwnie i niektóre jego funkcje chciałbym zrobić sam… lepiej ;). Jeśli chodzi o wysyłanie smsów po wzbudzeniu czujki, to zalecam dodać dwustopniową weryfikację, tak aby sms był wysyłany jeśli czujka wzbudzi się dwa razy np w przeciągu 30 sekund. W przeciwnym wypadku możesz się spodziewać wielu fałszywych alarmów – chociażby od słońca zachodzącego za chmury – zależy gdzie ta czujka będzie patrzeć. Do zasilania, bo rozumiem, że prądu nie masz na miejscu, możesz rozważyć też mały panel słoneczny z ładowaniem aku.
    Również nie wydaje mi się, aby czujka ruchu ciągnęła 30mA. U mnie w alarmie czujka ruchu z modułem radiowym 433MHz na jednej baterii 9V śmiga ponad rok, więc sama czujka pobiera jakieś mikroampery raczej. Prędzej moduł GSM ciągnie tutaj najwięcej.

    Odpowiedz
    • Alarm był przewidziany do pracy tylko w pomieszczeniach zamkniętych. Jeszcze nie przewidziałem wszystkich możliwych problemów, mam nadzieję że część to Wy zgłosicie i samo możecie to przerobić :) aby działało niezawodnie.
      Tak, moduł GSM pochłania większość prądu – pracuję nad rozwiązaniem.

      Odpowiedz
  • Mam uwagę dot. kodu.

    W pierwszym kodzie uzywasz bezpośrednio nr. pinu do inicjalizacji przerwań:
    ^

    • pinMode(2, INPUT);

    //definiujemy przerwanie, obsługujące alarm
    attachInterrupt(digitalPinToInterrupt(2),alarm,RISING);*
    ^

    Natomiast w drugim podczas wykonania attachInterrupt podajesz bezpośrednio wartość 0, która nie ma w sobie żadnej informacji skąd się wzięła.
    Doszukałem się w dokumentacji, że przerwanie 0 to External Interrupt Request 0 (pin D2) dlatego zgadza się to z nr. pinu 2 zdefiniowanego jako wakeUpPin.
    Wydaje mi się, że dla czytelności kodu w tym miejscu powinieneś jednak użyć digitalPinToInterrupt(wakuUpPin), co oczywiście zostanie przeliczone wewnętrznie na wartość 0, ale ułatwi czytanie kodu.

    Odpowiedz
  • Bardzo ciekawy projekt. Też mam działkę i coś takiego od dawna chodzi mi po głowie. A czy da się to rozbudować o robienie zdjęcia (podłączenie taniej kamerki) i wysyłanie MMSa na zdefiniowany numer?

    Odpowiedz
    • Mam taki zamiar. Kamerka do Arduino ma 640×480 – ale zamówię i dam znać jak wyszło. Najłatwiej będzie zdjęcie zapisywać na kartę SD i dopiero później wysłać MMS.

      Odpowiedz
  • Bawię się właśnie nad usypianiem modułu GSM. Tak jak to wcześniej już zauważyliście – obliczyłem to dla braku poboru modułu GSM, ale naprawię to i dam info jakie rozwiązanie wydaje mi się najciekawsze. Każde Wasze rozwiązanie i pomysł jest inspiracją do dalszej zabawy i poszukiwania.
    Cały projekt był moją pierwszą zabawą z Arduino, dlatego proszę o wyrozumiałość – nie udało się uniknąć błędów, ale za to zabawa z tym jest wyśmienita. Dawno nie rozwiązywałem tak przyziemnych problemów jak zasięg czujki, ile to prądu pobiera – kto się nad tym zastanawia, jeśli wszystko wszędzie jest?
    PowerBank 10000, wytrzymuje do 3 tygodni w takim stanie jak jest – praktyka na razie 1 tydzień i nie jest źle.

    Odpowiedz
      • Tak, dopiero przy 5V działa to dobrze. Ale bez konwertera poziomów logicznych 3,3V/5V :) możesz uszkodzić moduł GSM – ja się z tym liczę. Jak mi przyjdzie zamówiony konwerter, podepnę go pod układ.
        Przy 3,7V-4V układ nie zachowywał się tak jak oczekiwałem, podłączyłem 5V i dopiero można było pracować.

        Odpowiedz
  • Pomyśl o zdalnym sterowaniu systemem. Przykładowo wysyłasz SMS do Arduino, żeby dezaktywować/aktywować alarm, bo pewnie nie chcesz, żeby za każdym razem wysyłał Ci SMS-y gdy wejdziesz do garażu. Albo opcja zdalnego resetu, bo głupio jechać na działkę, żeby się okazało, że alarm wywołała przelatująca mucha, a tak po resecie, jeżeli ponownie Arduino wykryje ruch to wtedy będziesz miał pewność, że coś się dzieje faktycznie, albo mucha dalej lata :).

    Odpowiedz
  • Jeśli chcesz znacznie zejść z poborem prądu to wylutuj LEDy.
    Z samym nano można znacznie zejść z poborem ustawiając częstotliwość 8MHz na wewnętrznym oscylatorze i zasilając 3.3V przez pin 5V (pominięcie regulatora). Nawet przy usypianiu ma to dość spory wpływ.
    Zresztą do takich zabaw najlepiej używać „gołej” atmegi, bo ma mniej zbędnych (w tym przypadku) dodatków, n.p. w/w LEDów czy konwertera serial pod USB.

    Rozważ też zasilenie nano i SIM800 bezpośrednio z ogniw (3,7-4,2), bo ten ostatni jest do tego dedykowany wręcz. Każdy zbędny regulator napięcia to strata prądu.
    SIM800 na tej dedykowanej, małej antence miał u mnie żenujący poziom sygnału, musiałem dawać większe.

    Moje przykładowe pomiary zużycia prądu przez gołą m382p:
    podczas pracy:
    – 16MHz, 5V: 14.8mA
    – 8 MHz, 3.3V: 3.7mA
    – 1 MHz, 3.3V: 1.1mA
    Tryb PWR SAVE (bez ADC i BOD):
    – 16 MHz, 5V: 1.11 mA
    – 8 MHz, 3.3V: 0.25 mA

    Bawiąc się w optymalizacje udało mi się na attiny85 i NRF24L01 udało mi się zrobić urządzenie wysyłające sygnał co 2 sek, które na baterii CR2032 (ok. 210mAh) mogło działać 2-3 miesięcy.

    Odpowiedz
  • Co do aktywacji/dezaktywacji czujki w momencie przebywania na działce, mozesz zaimplementowac regulke, ze po otrzymaniu wiadomosci o danej tresci, czujka sie aktywuje – analogicznie w przypadku dezaktywacji. Na swoj telefon sciagasz sobie program SMS scheduler(android) i ustawiasz moment przeslania odpowiednich wiadomosci.

    Odpowiedz
    • Niestety jeszcze nie jest to wprowadzone – na pewno będzie. Na razie musimy sami odłączyć całość z zasilania :) podczas używania pomieszczenia. Do tego będzie dochodziło sprawdzanie numeru uprawnionego itd. Na razie to była tylko zabawa z Arduino :)

      Odpowiedz
  • Zainteresował mnie bardzo ten projekt. Chciałbym zamontować czujkę w drzwiach garażu. Najlepiej żeby jeszcze aparat robił zdjęcie osobnika i przesłał na telefon. Jestem informatykiem, nie jestem programistą tylko adminem. Kupię niezbędne elementy takie jak :
    Arduino Nano V3
    moduł SIM800L
    czujka ruchu (HC-SR501 PIR)
    aktywna karta SIM
    PowerBank
    Co jeszcze muszę kupić ? Jakie okablowanie ? Co będzie potrzebne aby to zaprogramować? Komputer mam ;).

    Nigdy czegoś takiego nie robiłem :)

    Odpowiedz
  • A mógłbyś dodać moduł aparatu ? żeby robiło np. low res zdjątka i wysyłało sms tez? zaimplemntuj kod
    ja bym dodał powerbank i mała bat słoneczna chociażby panel z tych ogrodowych lampek

    Odpowiedz
      • Kolego HERON mam jeszcze małą prośbę. Zrobiłem sobie już odpowiednie zasilanie, konwerter napięć logiki i wszystko ładnie ruszyło :)
        Niestety po jednym dniu zabawy nagle straciłem zasięg i albo coś przestawiłem w ustawieniach abo zrobiłem jakieś zwarcie do anteny. Prośba moja taka. Możesz mi omomierzem zmierzyć oporność między drutem anteny a masą? u mnie jest 1ohm i to chyba oznacza że coś jest uwalone:/
        Bardzo proszę bo nie mam jak tego sprawdzić

        Odpowiedz
        • Dopiero teraz zobaczyłem pytanie. Przyjdę do domu to sprawdzę.
          Czy modem odpisuje na polecenia? AT co odpisuje?
          Czy jest komunikacja pomiędzy Arduino a Sim800L.

          Kod do zabaw z poleceniami to:

          #include
          SoftwareSerial gsm(11, 12);
          String atCommand;
          void setup()
          {
          Serial.begin(9600);
          while (!Serial) {}
          gsm.begin(9600);
          while (!gsm) {}
          }

          void loop()
          {
          if (gsm.available()) {
          Serial.write(gsm.read());
          }
          while (Serial.available()) {
          delay(10);
          if (Serial.available() > 0)
          { char c = Serial.read();
          atCommand += c;
          }
          }
          if (atCommand.length() > 0)
          {
          gsm.println(atCommand);
          atCommand = „”;
          }
          }

          Odpowiedz
        • Rav – układ masz sprawny, tak to wygląda – i stawiam na problem z zasilaniem. Oporność jest taka sama jak na nowym układzie :) więc ok. Daj znać, czy udało Ci się rozwiązać ten problem.

          Odpowiedz
          • Zasilanie mam cały czas to samo na którym wcześniej ładnie działało. Teraz dioda miga szybko a na polecenie AT+CSQ dostaje +CSQ 0.0 czyli brak zasięgu:/ Dzięki wielkie za sprawdzenie. Czyli będę siedział i próbował.

            Odpowiedz
  • Do tego projektu dodałbym też zakres godzin przy których czujnik będzie aktywny tak żeby np. działał tylko w nocy :)

    Odpowiedz
    • Ha. Projekt tego nie zakładał :) To miało być proste i przyjemne bez ‚wodotrysków’ – połącz, odpal i działaj.
      Ale można, jeśli uznamy ten projekt jako wyjściowy – to zachęcam do modyfikacji i zmian.

      Odpowiedz
  • Robię coś podobnego i napotkałem kilka problemów których Heron chyba nie miał
    ale nie o tym tu.

    Widzę że SIM800L jest podłączony pod pin +5V ?
    Wg spec napięcie zasilania tego modułu to 3.5-4.4V, a chwilowy pobór to 2A.
    Wg danych katalogowych przez Nano nie powinno „przechodzić” więcej niż 500mA.

    Czy nie stwarza to jakichś problemów, działa? Nie grzeje się?

    Odpowiedz
    • Nie miałem z tym problemów. Na razie, podczas testów i zabawa wszystko działa poprawnie.
      Nigdy nawet nie zbliżyłem się do takiego poboru prądu – norma to 40-50mA.
      Układ przy logowaniu do sieci pobrał mi max 110mA – więc znacznie poniżej zaleceń Arduino.
      Zachęcam do testów i weryfikacji.

      Odpowiedz
  • Hej, mam pytanie mianowicie jak dokładnie podłączyć konwerter stanów logicznycznych (D11, 12 a RX, TX) na przykładzie załączonego przeze mnie schematu oraz co to jest CALL prowadzące do D3 na twym schemacie Heron. Czy chodzi o SPK- . Na tym poległem :D

    Odpowiedz
    • D3 to na Sim800L – RING
      Konwertera nie używałem jeszcze – do tej pory wszystkie układy działają poprawnie i nie zauważyłem jakichkolwiek problemów. TX to wychodzące, więc podłącz stronę 3.3V do układu GSM :) zgodnie z TX i RX, część 5V niech idzie do Arduino. Nie zapominajmy oczywiście o podłączeniu zasilania.

      Odpowiedz
  • Dziś poskładałem całość z Arduino Mini Pro – 0,016A – postęp jest. Mam już akumulator żelowy 7Ah, będę sprawdzał – tylko się naładuje. Dodatkowo, całość zaczyna przypominać ładny układ i co najważniejsze, wszystko jest wymienne – znacznie ułatwia to programowanie Arduino. To długie z przodu – mikrofon :) do dzwonienia i słuchania co się w okolicy dzieje. Jeszcze kilka modyfikacji programu i udostępnię całość.

    Odpowiedz
  • Uznałem że tak będzie mi łatwiej. Wszystkie elementy są wymienne i nie ‚tracimy’ ich, jeśli zmieni nam się koncepcja – lub układ się znudzi. Najwięcej problemów jest z programowaniem Mini Pro – a tak, wyjmujemy, programujemy i wkładamy ponownie. Działa. Kolejne projekty już w trakcie …

    Odpowiedz
  • Dobra, mój projekt z uwagi na wymaganą dłuższą pracę – został wzbogacony w mocniejsze zasilanie. Sprawdzę w praktyce ile to wytrzymuje :)

    Odpowiedz
  • Czy mógłbyś edytować swój wstawiony tekst pokazując poprawiony schemat itp? Przydało by się takie podsumowanie poprawek w samym artykule :)

    Ogólnie projekt mnie zaciekawił bardzo.

    Odpowiedz
    • Zaraz sprawdzę możliwości edycji. Mam kilka poprawek do całości i troszkę testów za sobą. Choć raczej dziś tego nie zrobię, ale jak najszybciej poprawię.

      Odpowiedz
  • Witam w dokumentacji modułu gsm pisze o tym żeby nie przekraczać 2.8V i że przy starcie moduł potrzebuje 2A. Możliwe że problemy z zadziałaniem modułu były takie ze arduino nie potrafi samo w sobie dostarczyć tyłu Amper a 5V je tylko powoli smażymy.

    Odpowiedz
    • Realne. Na razie SIM800L działa mi bardzo dobrze przy 5V. Praktycznie od miesiąca jest online, kupiłem kilka dodatkowych modułów GSM, GPS oraz różne wersje Arduino i sprawdzam jak to działa. Liczę się z uszkodzeniami – na razie poza samodzielnym rozwaleniem mini pro, reszta jest OK. W dokumentacji SIM800L pisze : „napięcie: 3.4-4.4 V ale rekomendują 4.0V” natomiast 2.8V wymaga cała reszta dotycząca komunikacji :) dlatego tam zalecany jest konwerter – chwila czasu i przyjdzie troszkę dodatkowych elementów z zagranicy to opiszę.

      Odpowiedz
  • a nie lepiej kupic od razu cos takiego: https://www.aliexpress.com/item/New-SIM800L-GPRS-GSM-Module-w-PCB-Antenna-SIM-Board-Quad-band-for-MCU-for-Arduino/32622274840.html (TTL serial interface compatible with 3.3V and 5V for MCU Microcontrollers,competible with for ) i nie trzeba wtedy zadnych konwerterow stanow logicznych. Dodatkow wszystko mozna zasilac z przetwornicy 5V. Podobno uzyty przez modul GSM przy 5V nadmiernie sie nagrzewa, czy mozesz potwierdzic ta informacje ?

    Odpowiedz
    • Ten moduł co polecasz jest super – ale mi zależało na możliwości włączania ‚podsłuchu’ – a do tego mikrofonu nie podłączysz. Co do tego zastosowanego przeze mnie – 99% czasu moduł grzecznie odpoczywa i nic nie robi – nie zauważyłem, aby cokolwiek się grzało. Postaram się zwrócić większą uwagę i dam znać, działa już długo i stabilnie, więc sprawdzę przy najbliższych odwiedzinach w garażu.

      Odpowiedz
  • Cześć wszystkim! Utknąłem w miejscu jak zamienić kod aby alarm tylko dzwonił bez wysyłania smsów… nie wiem jak dokładnie zamienić komendy… Pomożecie?

    Odpowiedz
  • Cześć …
    Zrobiłem alarm na SIM800L domowy, oparty na 3 czujkach ruchu i dwóch kontaktronach. Działa pewnie i niezawodnie ale… Mam aktualnie 3 moduły SIM800L i bawię się nimi. Chcę nauczyć się sterowania urządzeniami poprzez wysyłanie do nich sms. Zauważyłem, że mają one problem z „przyjmowaniem” kart SIM. O co dokładnie mi chodzi? Możecie mieć następującą sytuację, że moduł nie chce zalogować się do sieci lub po prostu nie widzi karty. Objawia się to szybkim miganiem diody kilka razy, potem przerwą i znów szybkim miganiem diody. Możecie spędzić dużo czasu tak jak ja na rozkminianiu co jest nie tak a wystarczy włożyć inną kartę sim, tego samego operatora i moduł się loguje po paru sekundach. Jest to frustrujące i może wkurzać. Jak już dobierzemy kartę do modułu to działa niezawodnie chociaż zauważyłem, że czasami potrafi przejść znów w trym szybkiego miganie diodą i przerwy, na tym etapie na pewno nie wyśle sms-a. W związku z tym planuję wrzucić do alarmu zegar czasu rzeczywistego, dzięki któremu będę dostawał smsy o określonej godzinie, że alarm działa. Jeśli nie dostanę takiej wiadomości to będę chciał by arduino resetowało SIM800L.

    Odpowiedz
  • evan,
    Heron napisal to na początku opisu projektu:
    Wystarczy w miejsce wysyłania wiadomości SMS lub obok niej dodać ATD+48xxxxxxx; (nie zapominajmy o znaku ; ponieważ jest on niezbędny). Komenda ATH kończy połączenie (np. po 20 sekundach).
    Zmieniłeś i nie działa?

    Odpowiedz
  • cheppeniathan,
    Próbowałeś sprawdzaś statusy SIMa? Może warto go restartować zaraz jak podaje status=2 zgodnie z tą komendą:
    AT+CPAS //podaje status, WARTO SPRAWDZAC CO NP. 60 SEK
    // 0 – READY (to accept AT commands)
    // 2 – unknown
    // 3 – ready but the ringer is active
    // 4 – ready but a call is in progress

    albo jak zgłasza problem z zerejestrowaniem sie w sieci (a to chyba Twój przypadek), popatrz w dokładny opis komendy, ja podałem tylko kilka odpowiedzi z SIMa:
    AT+CREG? //sprawdza czy SIM900 zarejestrowal sie w sieci, positive possible answers:
    //+CREG: 1,1 -registered to home network
    //+CREG: 1,2 -not registered but searching
    //+CREG: 1,5 -registered but roaming

    Sprawdzałeś moc sygnału w miejscu gdzie działa SIM?
    AT+CSQ //podaje moc sygnalu;
    //0 – najslabszy
    //31 – najmocniejszy
    //99 – nie detektowalny

    Odpowiedz
  • DaBa
    ..tak, moim zdaniem warto mieć w kodzie sprawdzenie SIM800 jakąś komendą. AT+CPAS wydaje się idealne bo jest prosta odpowiedź np. 0 czyli jest połączenie, moduł działa prawidłowo.

    Moc sygnału, tu ciekawostka, na antenie w postaci kawałka drutu z zestawu to 16,0 a na dokupionej, dedykowanej do modułu 17,0 … niewielka różnica prawda?

    Odpowiedz
    • To nie wiem skąd problemy z zarejestrowaniem w sieci. Ale doświadczenia z SIM800 nie mam. Używam Sim900 i nie zauważyłem nic co opisujesz. Urządzenie działa z kartami T-Mobile i PLAY, zarówno z PINem jak i bez. Moc sygnału 19.0.

      Odpowiedz

Odpowiedz

anuluj

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?