Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
! ! ! ZAUWAŻYĆ ! ! !
Ze względu na modernizację lokalnej wieży telefonicznej w mojej okolicy nie mogę już korzystać z tego modułu GSM. Nowsza wieża nie obsługuje już urządzeń 2G. Dlatego nie mogę już dłużej wspierać tego projektu
Niedawno otrzymałem do zabawy stosunkowo tani czterozakresowy moduł GSM/GPRS. Jest to moduł SIM800L, który komunikuje się z dowolnym micro poprzez port szeregowy. W komplecie z anteną do montażu na panelu.
Zdecydowałem się zbudować prosty system SMS Controller, który wykorzystuje polecenia obsługi krótkich wiadomości (SMS) do sterowania urządzeniami i sygnalizowania alarmów.
Krok 1: Polecenia SMS
Podobnie jak w przypadku każdego systemu komunikacyjnego, określone polecenia muszą być wysłane do zdalnego urządzenia, aby powiedzieć mu, co ma robić. Podobnie urządzenie zdalne musi odpowiedzieć lub zareagować na te polecenia. Projekt składa się z dwóch części, Kontrolera SMS i standardowego telefonu komórkowego.
Pomysł polegał na stworzeniu prostego Kontrolera SMS z czterema wyjściami cyfrowymi. W zależności od otrzymanego SMS-a urządzenie musi mieć możliwość sterowania poszczególnymi wyjściami.
Zdecydowałem się też dołączyć cztery wejścia cyfrowe. Może być używany do wskazywania alarmów lub innych informacji.
Przed rozpoczęciem budowania postanowiłem stworzyć konkretne polecenia dla konkretnych funkcji. To „polecenie” zostanie wysłane za pomocą SMS-a z telefonu komórkowego.
Polecenia odbierania kontrolera SMS:
o1:1 - włącz wyjście 1
o1:0 - wyłącz wyjście 1
o1:p - wyjście impulsowe 1 włączone, a następnie wyłączone
o2:1 - włącz wyjście 2
o2:0 - wyłącz wyjście 2
o2:p - wyjście impulsowe 2 włączone, a następnie wyłączone
o3:1 - włącz wyjście 3 ON
o3:0 - wyłącz wyjście 3
o3:p - wyjście impulsowe 3 włączone, a następnie wyłączone
o4:1 - włącz wyjście 4 wł
o4:0 - wyłącz wyjście 4
o4:p - wyjście impulsowe 4 Włącz, a następnie wyłącz
???? - Żądaj statusu wejść i wyjść
#### - Zresetuj system
Aby uzyskać informację zwrotną, Kontroler SMS powinien odpowiedzieć na otrzymane polecenia i odpowiedzieć SMS-em. Zdecydowałem, że ten SMS zwrotny powinien zawierać stan wszystkich pinów I/O.
Polecenia odpowiedzi kontrolera SMS:
i1:x i2:x i3:x i4:x o1:x o2:x o3:x o4:x
gdzie x oznacza stan we/wy, 1 oznacza włączenie, 0 oznacza wyłączenie.
Krok 2: Budowanie kontrolera SMS
Wymagany sprzęt:
Dowolne Arduino lub samodzielny ATMEGA328p na płytce stykowej
SIM800L Moduł GSM/GPRS z kartą SIM umożliwiającą wysyłanie i odbieranie wiadomości SMS
Przetwornica DC/DC obniżająca napięcie
NOTATKA !
Do zasilania modułu SIM800L wymagany jest przetwornik DC/DC. Ten moduł działa od 3,7 V do 5 V, w zależności od posiadanej wersji. Moduł ten wymaga również zasilacza, który może dostarczyć do 2A, gdy moduł przesyła dane. Nie może być zasilany bezpośrednio z Arduino Uno !
Obwód jest dość prosty. Zmontowałem i przetestowałem na płytce stykowej.
Zasilanie układu odbywa się za pośrednictwem przetwornika DC/DC o napięciu wyjściowym ustawionym na 4,5V. Istnieją cztery diody LED do symulacji wyjść cyfrowych i cztery przyciski dla wejść cyfrowych. SIM800L jest podłączony do pinów Rx/Tx w ATMEGA328p.
Piąta dioda LED służy do wskazania, kiedy system jest zajęty wysyłaniem wiadomości SMS.
Krok 3: Programowanie ATMEGA328p
Przed programowaniem otwórz plik INO i edytuj numer telefonu. Zastąp xxxxxxxxxx własnym numerem telefonu komórkowego w linii 46. Przekompiluj i prześlij plik.
Przeczytaj również instrukcje dotyczące konfiguracji portu szeregowego oprogramowania w pliku INO.
//=============================================================================//
// ! ! ! NOTATKA ! ! !
// ================
//
// BUFOR W BIBLIOTECE SZEREGOWEJ OPROGRAMOWANIA DO ZMIANY NA 200
//
// Aby użyć Software Serial, użytkownik powinien również zmienić Software Serial BUFFER na 200.
// To musi być edytowane w następującym pliku:
//
// C:/Pliki programów/Arduino x.x.x/Sprzęt/Arduino/AVR/Biblioteki/SoftwareSerial/src/SoftWareSerial.h
//
// Zmień bufor jak poniżej:
//
// #ifndef _SS_MAX_RX_BUFF
// #define _SS_MAX_RX_BUFF 200
// Rozmiar bufora RX
// #endif
//
//=============================================================================
Zapoznaj się z tą instrukcją, aby zaprogramować ATMEGA328p na płytce stykowej za pomocą Arduino UNO.
www.instructables.com/id/Arduino-UNO-as-AtM…
Krok 4: Korzystanie z kontrolera SMS
Korzystanie z kontrolera SMS
Kontroler SMS automatycznie wyśle SMS na Twój telefon, jeśli którekolwiek z czterech wejść zostanie wyzwolone. Szczegóły wyzwalacza będą zawarte w tekście SMS.
Wiadomości SMS i polecenia można edytować według własnych potrzeb w pliku INO.
Testowanie wyjść kontrolera SMS
Z telefonu komórkowego wyślij następujące polecenia na numer karty SIM SIM800L:
o1:1, włączy wyjście 1.
Na swój telefon otrzymasz następujący SMS:
i1:0 i2:0 i3:0 i4:0 o1:1 o2:0 03:0 o4:0
01:0, spowoduje to wyłączenie wyjścia 1.
Na swój telefon otrzymasz następujący SMS:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
01:p, spowoduje to włączenie wyjścia 1 na 1 sekundę, a następnie ponowne wyłączenie wyjścia 1 (impulsowe).
Na swój telefon otrzymasz następujący SMS:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Testowanie wejść kontrolera SMS
Na kontrolerze SMS naciśnij krótko przycisk 1
Na swój telefon automatycznie otrzymasz następujący SMS:
i1:1 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Na kontrolerze SMS naciśnij krótko przycisk 2
Na swój telefon automatycznie otrzymasz następujący SMS:
i1:1 i2:1 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Na kontrolerze SMS naciśnij krótko przycisk 3
Na swój telefon automatycznie otrzymasz następujący SMS:
i1:1 i2:1i3:1 i4:0 o1:0 o2:0 03:0 o4:0
Jak widać na odebranej wiadomości SMS, wyjścia zmieniają się zgodnie z otrzymanymi poleceniami. Jednak wejścia nie zmieniają się z powrotem z 1 na 0 po naciśnięciu przycisków. Ponieważ chciałem widzieć wszelkie zmiany na wejściach, postanowiłem zapieczętować stan wejścia do momentu wysłania polecenia resetowania do Kontrolera SMS.
Resetuj alarmy
Aby zresetować stan wejścia, wyślij następujące polecenie:
####, spowoduje to zresetowanie stanu wejścia.
Na swój telefon otrzymasz następujący SMS:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
Aktualizacje statusu
Możesz również poprosić o status w dowolnym momencie, wysyłając następujące polecenie:
????, zażąda aktualizacji statusu wejść/wyjść.
Na swój telefon otrzymasz następujący SMS:
i1:x i2:x i3:x i4:x o1:x o2:x 03:x o4:x
gdzie x oznacza stan, 1 oznacza włączenie, 0 oznacza wyłączenie.
Krok 5: Aplikacja na Androida
Używając MIT App Inventor 2 (https://ai2.appinventor.mit.edu/), stworzyłem prosty interfejs użytkownika dla mojego telefonu komórkowego z Androidem. Ta aplikacja umożliwia dostosowanie opisu każdego wejścia/wyjścia. Pozwala również na wprowadzenie numeru telefonu.
Cztery przyciski służą do sterowania wyjściami, a pola wyboru wskazują stan wejścia.
Aby edytować aplikację, utwórz konto MIT App Inventor 2 i zaimportuj plik AIA.
Aby zainstalować aplikację na telefonie, skopiuj plik APK do telefonu i zainstaluj go. Będziesz musiał włączyć instalację aplikacji z „Nieznanych źródeł” w ustawieniach zabezpieczeń telefonu.