Elektroda.pl
Elektroda.pl
X
Elektroda.pl
IGE-XAOIGE-XAO
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przekaźnik kontrolowany SMSem na module SIM800L i Arduino Nano

ghost666 19 Lut 2018 21:31 7926 2
  • Przekaźnik kontrolowany SMSem na module SIM800L i Arduino Nano
    Obecnie, w dobie prostych i niedrogich modułów GSM oraz modułów Arduino bardzo prosto skonstruować jest przekaźnik sterowany SMSem. W poniższym projekcie autor wykorzystał moduł SIM800L do odbierania wiadomości SMS. Całym systemem steruje moduł Arduino Nano V3. Układ wyposażono w jeden przekaźnik, który sterowany jest SMSem, co pozwala na zdalne włączanie i wyłączanie prądu w jakimś obwodzie z pomocą jednego SMSa.

    Spójrzmy najpierw na schemat ideowy układu - to zaledwie garstka elementów dyskretnych, obok dwóch wspomnianych modułów:

    Przekaźnik kontrolowany SMSem na module SIM800L i Arduino Nano


    Układ zasilany jest stabilizowanym napięciem 5 V z zasilacza o wydajności 1 A. Napięcie to zasila płytkę Arduino z mikrokontrolerem, a modem GSM zasilany jest napięciem 4,3 V. Większość modułów SIM800L dostępnych na rynku powinno działać bez problemu z napięciem 3,7 V, jednakże autor odkrył, że jego modem średnio działa z napięciami poniżej 4 V, stąd napięcie zasilania wynoszące 4,3 V.

    Kod programu na Arduino jest bardzo prosty. Modem nie wymaga żadnych dedykowanych bibliotek, a komunikacja z nim odbywa się poprzez prosty interfejs szeregowy. Piny RX i TX skonfigurowane są jako programowy port szeregowy, poprzez który Arduino komunikuje się z modułem SIM800L. Jest to zabieg celowy, ponieważ umożliwia podsłuchiwanie tej transmisji w celu debuggowania kodu.

    Po upewnieniu się, że wszystkie elementy połączone są poprawnie i wgraniu poniższego programu do modułu Arduino można przystąpić do uruchamiania urządzenia. W pierwszej kolejności musimy włożyć do modemu kartę SIM. Po uruchomieniu w kilka sekund karta powinna zarejestrować się w sieci - modem zasygnalizuje to mrugając co kilka (2..3) sekund diodą LED. W tym momencie możemy nacisnąć przycisk reset, aby w pełni uruchomić układ.

    Teraz wystarczy tylko wysłać SMSa na numer karty SIM. Po nadaniu SMSa o treści "ON" przekaźnik załączy się, a z kolei SMS o treści "OFF" wyłączy przekaźnik. Układ nie rozróżnia wielkich i małych liter. Przekaźnik podłączony może być do dowolnego urządzenia, jakim chcemy sterować. Pamiętajmy tylko, by nie przekraczać maksymalnego dopuszczalnego prądu i napięcia styków przekaźnika.

    Kod programu jest bardzo prosty. Oto on:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    A tak wygląda komunikacja na porcie szeregowym widziana poprzez podłączony do niego monitor w trakcie pracy układu.

    Przekaźnik kontrolowany SMSem na module SIM800L i Arduino Nano


    Przekaźnik kontrolowany SMSem na module SIM800L i Arduino Nano
    Na koniec kilka ważnych wskazówek:

    * Karta SIM włożona musi być w slot tak, aby wystawała ściętym końcem, tak jak pokazano na zdjęciu obok.
    * Moduł SIM800L potrzebuje napięcia zasilania od 3,4 V do 4,4 V i prądu od 1 do 2 A. W module nie ma ani zintegrowanego stabilizatora napięcia, ani układu translacji poziomów sygnałów - te elementy musimy dobudować samodzielnie.
    * Zasilacz musi mieć odpowiednią wydajność prądową. Jeśli napięcie nadmiernie spadnie, modem może niespodziewanie się wyłączyć lub zresetować podczas pracy.
    * Jeśli coś nie działa w przedstawionym systemie, dobrze jest wykonać twardy reset systemu.
    * Kod programu, jakkolwiek działający, wymagać może kilku poprawek itp., więc dobrze jest go prześledzić krok po kroku i ewentualnie wprowadzić własne modyfikacje. Autor (link poniżej) chętnie się dowie, jeśli popełnił w programie jakieś błędy.

    Źródło: http://www.electroschematics.com/13641/sim800l-one-channel-sms-relay/

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9538 postów o ocenie 7598, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • IGE-XAOIGE-XAO
  • #2
    czasnagli
    Poziom 16  
    Dawno temu też zrobiłem podobny projekt, ale miałem dodatkowe zabezpieczenie, aby przekaźnik można było włączać/wyłączać tylko z określonego numeru telefonu. Teraz zrobiłem sterowanie przekaźnikiem w oparciu o moduł gsm Air200. Napisany skrypt umożliwia nie tylko sterowanie włącz/wyłącz, ale także sterowanie czasowe. Posiada zabezpieczenie przed niepowołanym włączeniem/wyłączeniem z innego numeru. Jest też możliwość sprawdzenia aktualnego stanu pinu oraz przywracanie wcześniej ustawionego stanu pinu po zaniku zasilania. O szczegółach można przeczytać na tej stronie https://www.elektroda.pl/rtvforum/viewtopic.php?p=17008021#17008021.

    Przekaźnik kontrolowany SMSem na module SIM800L i Arduino Nano
  • #3
    pico1
    Poziom 14  
    Złożyłem powyższy układad. Zamiast rezystorów dopasowujących napięcia użyłem konwertera. Wszystko fajnie działa tylko jest problem po odłączeniu napięcia. Po każdorazowym odłączeniu z prądu moduł loguje się do sieci prawidłowo wysyłam sms a układ nie odpowiada przekaźnikiem i trzeba za każdym razem wcisnąć przycisk reset . Po wciśnięciu resetu jest ok do następnego odłączenia z prądu. Można jakoś temu zaradzić ?
    Zrobiłem test odłączając tylko sim800l od napięcia . Arduino cały czas zasilony. Po ponownym zasileniu sim800l trzeba na Arduino wcisnąć reset by sms przychodził i przekaźnik się przełączał
    Zrobiłem następny test. Zasiliłem sim800l i jak się zalogował podałem napięcie na Arduino i wszystko ok.
    Ewidentnie widać że moduł musi być zalogowany przed startem Arduino.
    Tymczasowo dałem na początku kodu 30 sekund zwłoki by moduł zdążył się zalogować i to działa. Po każdym zaniku napięcia wszystko fajnie działa.
    Następny test. Zdjęta antenka modułu . Plus 30 sekund zwłoki w programie w Arduino . Załączenie napięcia. Po minucie dołożona antenka . Moduł loguje się do sieci i układ działa prawidłowo.
    Wniosek taki że moduł nie musi być zalogowany przed startem Arduino.
    Można to jakoś inaczej rozwiązać ?