Spisu treści:

Moduł zdalnego sterowania GSM/SMS oparty na Arduino: 16 kroków (ze zdjęciami)
Moduł zdalnego sterowania GSM/SMS oparty na Arduino: 16 kroków (ze zdjęciami)

Wideo: Moduł zdalnego sterowania GSM/SMS oparty na Arduino: 16 kroków (ze zdjęciami)

Wideo: Moduł zdalnego sterowania GSM/SMS oparty na Arduino: 16 kroków (ze zdjęciami)
Wideo: #16 Moduł GSM dla Raspberry Pi i Arduino 2024, Listopad
Anonim
Moduł zdalnego sterowania GSM/SMS oparty na Arduino
Moduł zdalnego sterowania GSM/SMS oparty na Arduino

! ! ! 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.

Przy tak szerokiej gamie modułów GSM dostępnych dla hobbystów większość z nas zakończyła zakup jednego. Kupiłem lokalnie moduł SIM800L i zacząłem bawić się różnymi poleceniami modułu.

Korzystając z Arduino Uno i Arduino IDE, mogłem urzeczywistnić moje pomysły. Nie przyszło to łatwo, ponieważ JEDNYM NAJWIĘKSZYM PROBLEMEM jest ograniczenie tylko do 2 KB SRAM. Po wielu poszukiwaniach w Internecie i na różnych forach udało mi się przezwyciężyć to ograniczenie.

Różne techniki programowania, znacznie lepsze zrozumienie kompilatora Arduino oraz wykorzystanie karty SIM i EEPROM jako dodatkowej pamięci, uratowały ten projekt. Po kilku zmianach w kodzie zbudowano stabilny prototyp i testowano go przez okres tygodnia.

Wadą ograniczonej pamięci SRAM było to, że urządzenie nie mogło być wyposażone w wyświetlacz i klawisze użytkownika. Doprowadziło to do całkowitego przepisania kodu. Bez interfejsu użytkownika jedyną możliwością kontynuowania projektu było wykorzystanie wiadomości SMS do konfiguracji urządzenia, a także użytkowników.

Okazało się, że był to ekscytujący projekt, a wraz z postępem rozwoju dodawano więcej przyszłości.

Moim głównym celem było trzymanie się Arduino Uno, lub w tym przypadku ATMEGA328p, i nie używanie żadnych elementów do montażu powierzchniowego. Ułatwi to ogółowi społeczeństwa kopiowanie i budowanie jednostki.

Specyfikacja urządzenia:

  • W urządzeniu można zaprogramować maksymalnie 250 użytkowników
  • Cztery wyjścia cyfrowe
  • Cztery wejścia cyfrowe
  • Każde wyjście można skonfigurować jako wyjście PULSE lub ON/OFF
  • Czas trwania impulsu wyjściowego można ustawić w zakresie od 0,5 do 10 sekund
  • Każde wejście można skonfigurować do wyzwalania przy zmianach z WYŁ na WŁ.
  • Każde wejście można skonfigurować tak, aby wyzwalało zmiany od ON do OFF
  • Każdy czas opóźnienia wejścia można ustawić w zakresie od 0 sekund do 1 godziny
  • Wiadomości SMS o zmianach na wejściach można wysyłać do 5 różnych użytkowników
  • Użytkownik może ustawić nazwy i tekst stanu dla każdego wejścia
  • Użytkownik może ustawić nazwy i tekst statusu dla każdego wyjścia
  • Urządzenie można skonfigurować do odbierania wiadomości o saldzie karty SIM za pośrednictwem wiadomości USSD.
  • Wszyscy użytkownicy mogą zażądać aktualizacji stanu we/wy urządzenia
  • Wszyscy użytkownicy mogą sterować poszczególnymi wyjściami za pomocą wiadomości SMS
  • Wszyscy użytkownicy mogą sterować poszczególnymi wyjściami, dzwoniąc do jednostki

Funkcje bezpieczeństwa

  • Wstępną konfigurację urządzenia można przeprowadzić tylko podczas pobytu w urządzeniu.
  • Wstępna konfiguracja może być wykonana tylko przez GŁÓWNEGO UŻYTKOWNIKA
  • Polecenia konfiguracji początkowej są automatycznie wyłączane po dziesięciu minutach.
  • Tylko połączenia i wiadomości SMS od znanych użytkowników mogą sterować jednostką
  • Użytkownicy mogą obsługiwać tylko wyjścia przypisane im przez UŻYTKOWNIKA GŁÓWNEGO

Inne funkcje

  • Połączenia z tym urządzeniem są bezpłatne, ponieważ połączenie nigdy nie zostanie odebrane.
  • Gdy urządzenie zostanie wywołane, połączenie zostanie przerwane dopiero po 2 sekundach. Jest to potwierdzenie dla dzwoniącego, że urządzenie odpowiedziało na połączenie.
  • Jeżeli operator karty SIM obsługuje wiadomości USSD, zapytania o saldo może dokonywać UŻYTKOWNIK GŁÓWNY. Wiadomość USSD zawierająca wagę zostanie następnie przesłana do UŻYTKOWNIKA GŁÓWNEGO.

Krok 1: Zasilanie

Zasilacz
Zasilacz

Aby urządzenie mogło być podłączone do standardowych systemów bezpieczeństwa (systemy alarmowe, elektryczne bramy garażowe, elektryczne napędy do bram), urządzenie będzie zasilane z 12V DC, które jest normalnie dostępne w takich systemach.

Zasilanie jest podawane na zaciski 12V IN i 0V i jest chronione bezpiecznikiem 1A. Dostępne są dodatkowe zaciski 12V OUT, również zabezpieczone bezpiecznikiem.

Dioda D1 zabezpiecza urządzenie przed odwrotną polaryzacją połączeń na liniach 12V.

Kondensatory C1 i C2 odfiltrowują wszelkie zakłócenia obecne na liniach zasilających 12V. Zasilanie 12V służy do zasilania przekaźników urządzenia.

Zasilanie 5V składa się z regulatora napięcia LM7805L i wyprowadza stabilne napięcie +5V potrzebne do modułu SIM800L GSM oraz mikroprocesora. Kondensatory C3 i C4 odfiltrowują wszelkie zakłócenia, które mogą występować na linii zasilającej +5V. Zastosowano stosunkowo duże kondensatory elektrolityczne, ponieważ moduł GSM SIM800L pobiera sporo energii podczas transmisji.

Na regulatorze napięcia nie jest wymagany radiator.

Krok 2: Wejścia cyfrowe

Wejścia cyfrowe
Wejścia cyfrowe
Wejścia cyfrowe
Wejścia cyfrowe

Wszystkie cyfrowe sygnały wejściowe mają napięcie 12 V i muszą być połączone z mikrokontrolerem 5 V. W tym celu stosuje się transoptory do izolowania sygnałów 12V z systemu 5V.

Rezystor wejściowy 1K ogranicza prąd wejściowy do sprzęgacza optycznego do około 10mA.

Ze względu na ograniczenia miejsca na płytce drukowanej nie było miejsca na rezystory podciągające 5V. Mikrokontroler jest skonfigurowany tak, aby umożliwić słabe podciąganie pinów wejściowych.

Przy braku sygnału na wejściu (LOW) transoptora, prąd nie będzie przepływał przez diodę LED transoptora. W ten sposób tranzystor transoptora zostaje wyłączony. Słabe podciąganie mikrokontrolera podciągnie kolektor do prawie 5V i będzie postrzegane jako logiczne HIGH przez mikrokontroler.

Po doprowadzeniu 12V (HIGH) do wejścia optozłącza, około 10mA będzie przepływać przez diodę LED transoptora. W ten sposób tranzystor sprzęgacza optycznego zostanie włączony. Spowoduje to obniżenie kolektora do prawie 0 V i będzie postrzegane przez mikrokontroler jako logiczne LOW.

Zauważ, że wejście widziane przez mikrokontroler jest odwrócone w porównaniu z wejściem 12V.

Normalny kod do odczytu pinu wejściowego wygląda następująco:

Wejście logiczne = digitalRead(inputpin);

Aby skorygować odwrócony sygnał, użyj następującego kodu:

Wejście logiczne = !digitalRead(inputpin); // Zanotuj ! przed czytaniem

Teraz wejście widziane przez mikrokontroler będzie odpowiadać wejściu na wejściu 12V.

Końcowy obwód wejściowy składa się z 4 wejść cyfrowych. Każde wejście jest podłączone do zacisków na płycie PC.

Krok 3: Wyjścia cyfrowe

Wyjścia cyfrowe
Wyjścia cyfrowe
Wyjścia cyfrowe
Wyjścia cyfrowe
Wyjścia cyfrowe
Wyjścia cyfrowe

Zwykle, gdy obwód steruje tylko minimalną liczbą przekaźników, najlepszym sposobem jest użycie obwodu sterownika tranzystora, jak pokazano. Jest prosty, tani i skuteczny.

Rezystory zapewniają obniżenie do masy i ograniczenie prądu bazy tranzystora. Tranzystor służy do zwiększenia prądu dostępnego do sterowania przekaźnikiem. Przy pobieraniu tylko 1mA z pinu mikrokontrolera, tranzystor może przełączać obciążenie 100mA. Więcej niż wystarczające dla większości typów przekaźników. Dioda jest diodą typu fly-back, chroniącą obwód przed skokami wysokiego napięcia podczas przełączania przekaźnika. Dodatkową zaletą korzystania z tego obwodu jest to, że napięcie robocze przekaźnika może różnić się od napięcia mikrokontrolera. Tak więc zamiast przekaźnika 5V można użyć dowolnego napięcia stałego do 48V.

Przedstawiamy ULN2803

Im więcej przekaźników wymaga projekt, tym większa liczba komponentów. Utrudni to projektowanie PCB i może zająć cenną przestrzeń na PCB. Jednak użycie macierzy tranzystorów, takich jak ULN2803, z pewnością pomoże w utrzymaniu niewielkich rozmiarów PCB. ULN2803 idealnie nadaje się do wejść 3,3 V i 5 V z mikrokontrolera i może sterować przekaźnikami do 48 V DC. Ten ULN2803 ma 8 oddzielnych obwodów tranzystorowych, każdy obwód wyposażony we wszystkie elementy wymagane do przełączania przekaźnika.

Końcowy obwód wyjściowy składa się z ULN3803, sterującego 4 przekaźnikami wyjściowymi 12 V DC. Każdy styk przekaźnika jest dostępny na zaciskach płytki PC.

Krok 4: Oscylator mikrokontrolera

Oscylator mikrokontrolera
Oscylator mikrokontrolera
Oscylator mikrokontrolera
Oscylator mikrokontrolera
Oscylator mikrokontrolera
Oscylator mikrokontrolera

Obwód oscylatora

Mikrokontroler potrzebuje oscylatora do poprawnego działania. Aby zachować konstrukcję Arduino Uno, obwód będzie wykorzystywał standardowy oscylator 16 MHz. Dostępne są dwie opcje:

Kryształ

Ta metoda wykorzystuje kryształ połączony z dwoma kondensatorami ładującymi. To najczęstsza opcja.

Rezonator

Rezonator to w zasadzie kryształ i dwa kondensatory ładujące w jednej 3-pinowej obudowie. Zmniejsza to ilość komponentów i zwiększa dostępną przestrzeń na płycie PC.

Aby liczba komponentów była jak najniższa, zdecydowałem się na użycie rezonatora 16 MHz.

Krok 5: Wskaźniki LED

Wskaźniki LED
Wskaźniki LED
Wskaźniki LED
Wskaźniki LED

Czym będzie jakikolwiek obwód bez niektórych diod LED? Na płytce PC przewidziano 3mm diody LED.

Rezystory 1K służą do ograniczania prądu przez diodę LED do mniej niż 5mA. Przy użyciu diod LED o wysokiej jasności 3mm jasność jest doskonała.

Dla łatwej interpretacji stanu diod LED używane są dwa kolory. Łącząc dwie diody LED z migającymi wskazaniami, można uzyskać całkiem sporo informacji z zaledwie dwóch diod LED.

Czerwona dioda LED

Czerwona dioda LED służy do sygnalizowania stanów awarii, długich opóźnień, wszelkich błędnych poleceń.

Zielona dioda LED

Zielona dioda LED służy do wskazywania zdrowych i/lub prawidłowych wejść i poleceń.

Krok 6: Obwód resetowania mikroprocesora

Obwód resetowania mikroprocesora
Obwód resetowania mikroprocesora

Ze względów bezpieczeństwa niektóre funkcje urządzenia są dostępne tylko w ciągu pierwszych 10 minut po uruchomieniu urządzenia.

Za pomocą przycisku resetowania zasilanie urządzenia nie musi być wyłączane w celu zresetowania urządzenia.

Jak to działa

Rezystor 10K utrzyma linię RESET blisko 5V. Po naciśnięciu przycisku linia RESET zostanie podciągnięta do 0V, dzięki czemu mikrokontroler zostanie zresetowany. Po zwolnieniu przycisku linia RESET powraca do %v, ponownie uruchamiając mikrokontroler.

Krok 7: Moduł SIM800L

Moduł SIM800L
Moduł SIM800L
Moduł SIM800L
Moduł SIM800L
Moduł SIM800L
Moduł SIM800L

Sercem urządzenia jest moduł GSM SIM800L. Ten moduł używa tylko 3 pinów I/O na mikrokontrolerze.

Moduł łączy się z mikrokontrolerem przez standardowy port szeregowy.

  • Wszystkie polecenia do urządzenia są wysyłane przez port szeregowy za pomocą standardowych poleceń AT.
  • W przypadku połączenia przychodzącego lub po odebraniu wiadomości SMS informacje są przesyłane do mikrokontrolera przez port szeregowy za pomocą tekstu ASCII.

Aby zaoszczędzić miejsce, moduł GSM jest podłączony do płytki PC za pomocą 7-pinowego złącza. Ułatwia to usunięcie modułu GSM. Umożliwia to również łatwe włożenie/wyjęcie karty SIM w dolnej części modułu.

Wymagana jest aktywna karta SIM, a karta SIM musi mieć możliwość wysyłania i odbierania wiadomości SMS.

Konfiguracja modułu SIM800L GSM

Po włączeniu zasilania, pin resetowania modułu GSM jest przez sekundę obniżany. Gwarantuje to, że moduł GSM uruchomi się dopiero po ustabilizowaniu się zasilania. Ponowne uruchomienie modułu GSM zajmuje kilka sekund, więc odczekaj 5 sekund przed wysłaniem jakichkolwiek poleceń AT do modułu.

Aby upewnić się, że moduł GSM jest skonfigurowany do poprawnej komunikacji z mikrokontrolerem, podczas uruchamiania używane są następujące polecenia AT:

W

służy do określenia, czy moduł GSM jest dostępny

AT+CREG?

Odpytywanie tego polecenia do momentu zarejestrowania modułu GSM w sieci komórkowej

AT+CMGF=1

Ustaw tryb wiadomości SMS na ASCII

AT+CNMI=1, 2, 0, 0, 0

Jeśli SMS jest dostępny, wyślij szczegóły SMS na port szeregowy modułu GSM

AT+CMGD=1, 4

Usuń wszystkie wiadomości SMS zapisane na karcie SIM

AT+CPBS=\"SM

Ustaw książkę telefoniczną modułu GSM na kartę SIM

AT+COPS=2, potem AT+CLTS=1, potem AT+COPS=0

Ustaw czas modułu GSM na czas sieci komórkowej

Poczekaj 5 sekund na ustawienie czasu

AT+CUSD=1

Włącz funkcję przesyłania wiadomości USSD

Krok 8: Mikrokontroler

Mikrokontroler
Mikrokontroler
Mikrokontroler
Mikrokontroler
Mikrokontroler
Mikrokontroler

Mikrokontroler to standardowy AtMega328p, taki sam jak w Arduino Uno. Kod jest zatem porównywalny z obydwoma. Aby umożliwić łatwe programowanie na płycie, na płycie PC dostępne jest 6-pinowe złącze programowania.

Poszczególne sekcje urządzenia są połączone z mikroprocesorem i obejmują:

  • Cztery wejścia cyfrowe
  • Cztery wyjścia cyfrowe
  • Oscylator
  • Dwie diody sygnalizacyjne
  • Zresetuj obwód
  • SIM800L moduł GSM

Cała komunikacja do iz modułu GSM odbywa się za pomocą funkcji SoftwareSerial(). Ta metoda została wykorzystana do zwolnienia głównego portu szeregowego dla Arduino IDE w fazie rozwoju.

Przy zaledwie 2KB SRAM i 1KB EEPROM, nie ma wystarczającej ilości pamięci do przechowywania więcej niż kilku użytkowników, którzy mogą być podłączeni do urządzenia. Aby zwolnić pamięć SRAM, wszystkie informacje o użytkowniku są przechowywane na karcie SIM w module GSM. W takim układzie jednostka może obsłużyć do 250 różnych użytkowników.

Dane konfiguracyjne urządzenia są przechowywane w pamięci EEPROM, oddzielając w ten sposób dane użytkownika i dane systemowe od siebie.

Wciąż dostępnych jest kilka zapasowych pinów I/O, jednak opcja dodania wyświetlacza LCD i/lub klawiatury nie była możliwa ze względu na dużą ilość pamięci SRAM wykorzystywanej przez bufory odbioru i transmisji SoftWareSerial(), Ze względu na brak jakiegokolwiek interfejsu użytkownika w urządzeniu, wszystkie ustawienia i użytkownicy programowani są za pomocą wiadomości SMS.

Krok 9: Optymalizacja pamięci SRAM

Optymalizacja pamięci SRAM
Optymalizacja pamięci SRAM

Dość wcześnie na etapie rozwoju, Arduino IDE zgłosiło niski poziom pamięci SRAM podczas kompilowania kodu. Aby to przezwyciężyć, zastosowano kilka metod.

Ogranicz dane odbierane przez port szeregowy

Moduł GSM zgłosi wszystkie wiadomości do mikrokontrolera przez port szeregowy. W przypadku odbierania niektórych wiadomości SMS łączna długość otrzymanej wiadomości może przekraczać 200 znaków. Może to szybko zużyć całą pamięć SRAM dostępną na chipie AtMega i spowodować problemy ze stabilnością.

aby temu zapobiec, zostanie użytych tylko pierwszych 200 znaków DOWOLNEGO komunikatu otrzymanego z modułu GSM. Poniższy przykład pokazuje, jak to się robi, zliczając odebrane znaki w zmiennej Licznik.

// skanowanie w poszukiwaniu danych z portu szeregowego oprogramowania

//----------------------------------------------- RxString = ""; Licznik = 0; while(SSerial.available()){ delay(1); // krótkie opóźnienie dające czas na umieszczenie nowych danych w buforze // pobranie nowego znaku RxChar = char(SSerial.read()); //dodaj pierwsze 200 znaków do ciągu if (Counter < 200) { RxString.concat(RxChar); Licznik = Licznik + 1; } }

Redukcja kodu Serial.print()

Chociaż jest przydatny podczas projektowania, Arduino Serial Monitor może zużywać dużo pamięci SRAM. Kod został opracowany przy użyciu jak najmniejszej ilości kodu Serial.print(). Jedna sekcja kodu została przetestowana pod kątem działania, cały kod Serial.print() został usunięty z tej części kodu.

Korzystanie z kodu Serial.print(F((")))

Wiele informacji normalnie wyświetlanych na Arduino Serial Monitor ma więcej sensu, gdy dodawane są opisy. Weźmy następujący przykład:

Serial.println("Oczekiwanie na określone działania");

Ciąg „Oczekiwanie na określone działania” jest stały i nie można go zmienić.

Podczas kompilacji kodu kompilator umieści w pamięci FLASH ciąg „Oczekiwanie na określone akcje”.

Dodatkowo kompilator widzi, że ciąg jest stałą, używaną przez instrukcje „Serial.print” lub „Serial.println”. Podczas uruchamiania mikro, ta stała jest również umieszczana w pamięci SRAM.

Użycie prefiksu "F" w funkcjach Serial.print() informuje kompilator, że ten ciąg jest dostępny tylko w pamięci FLASH. W tym przykładzie ciąg zawiera 28 znaków. Jest to 28 bajtów, które można zwolnić w SRAM.

Serial.println(F("Oczekiwanie na określone akcje"));

Ta metoda dotyczy również poleceń SoftwareSerial.print(). Ponieważ moduł GSM pracuje na komendach AT, kod zawiera liczne komendy SoftwareSerial.print("xxxx"). Użycie prefiksu "F" zwolniło prawie 300 bajtów SRAM.

Nie używaj sprzętowego portu szeregowego

Po debugowaniu kodu sprzętowy port szeregowy został wyłączony przez usunięcie WSZYSTKICH poleceń Serial.print(). To uwolniło kilka dodatkowych bajtów SRAM.

Bez pozostawienia jakichkolwiek poleceń Serial.print() w kodzie udostępniono dodatkowe 128 bajtów SRAM. Dokonano tego poprzez usunięcie sprzętowego portu szeregowego z kodu. Spowodowało to uwolnienie 64-bajtowych buforów transmisji i 64-bajtowych buforów odbioru.

// Serial.początek(9600); // sprzętowy port szeregowy wyłączony

Używanie pamięci EEPROM dla ciągów

Dla każdego wejścia i wyjścia należało zapisać trzy ciągi znaków. Są to nazwa kanału, ciąg znaków, gdy kanał jest włączony, i ciąg znaków, gdy kanał jest wyłączony.

Łącznie 8 kanałów we/wy będzie

  • 8 ciągów zawierających nazwy kanałów, każdy o długości 10 znaków
  • 8 ciągów zawierających opis kanału Na, każdy o długości 10 znaków
  • 8 ciągów zawierających opis kanału Off, każdy o długości 10 znaków

To reklamuje do 240 bajtów SRAM. Zamiast przechowywać te ciągi w SRAM, są one przechowywane w EEPROM. To uwolniło dodatkowe 240 bajtów SRAM.

Deklarowanie ciągów o prawidłowej długości

Zmienne są zwykle deklarowane na początku kodu. Częstym błędem podczas deklarowania zmiennej łańcuchowej jest to, że nie deklarujemy łańcucha z poprawną liczbą znaków.

Ciąg GSM_Nr = "";

String Nazwa_GSM = ""; Ciąg GSM_Msg = "";

Podczas uruchamiania mikrokontroler nie przydzieli pamięci w SRAM dla tych zmiennych. Może to później spowodować niestabilność, gdy te ciągi są używane.

Aby temu zapobiec, zadeklaruj łańcuchy z odpowiednią liczbą znaków, których będzie używał w oprogramowaniu.

Ciąg GSM_Nr = "1000000000";

String Nazwa_GSM = "2000000000"; Ciąg GSM_Msg = "3000000000";

Zauważ, że nie zadeklarowałem ciągów z tymi samymi znakami. Jeśli zadeklarujesz wszystkie te ciągi, powiedzmy „1234567890”, kompilator zobaczy ten sam ciąg w trzech zmiennych i przydzieli wystarczającą ilość pamięci w SRAM dla jednego z ciągów.

Krok 10: Rozmiar bufora szeregowego oprogramowania

Rozmiar bufora szeregowego oprogramowania
Rozmiar bufora szeregowego oprogramowania

W poniższym kodzie zauważysz, że z portu szeregowego oprogramowania można odczytać do 200 znaków.

// skanowanie w poszukiwaniu danych z portu szeregowego oprogramowania

//----------------------------------------------- RxString = ""; Licznik = 0; while(SSerial.available()){ delay(1); // krótkie opóźnienie dające czas na umieszczenie nowych danych w buforze // pobranie nowego znaku RxChar = char(SSerial.read()); //dodaj pierwsze 200 znaków do ciągu if (Counter < 200) { RxString.concat(RxChar); Licznik = Licznik + 1; } }

Wymaga to również bufora o wielkości co najmniej 200 bajtów dla portu szeregowego oprogramowania. domyślnie bufor portu szeregowego oprogramowania ma tylko 64 bajty. Aby zwiększyć ten bufor, wyszukaj następujący plik:

SoftwareSerial.h

Otwórz plik w edytorze tekstu i zmień rozmiar bufora na 200.

/******************************************************************************

* Definicje ************************************************** ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // Rozmiar bufora RX #endif

Krok 11: Tworzenie płyty PC

Tworzenie płyty PC
Tworzenie płyty PC

Płyta PC została zaprojektowana przy użyciu darmowej wersji Cadsoft Eagle (wierzę, że nazwa się zmieniła).

  • Płyta PC to konstrukcja jednostronna.
  • Nie są używane żadne elementy do montażu powierzchniowego.
  • Wszystkie komponenty są zamontowane na płytce PC, w tym moduł SIM800L.
  • Nie są wymagane żadne elementy zewnętrzne ani połączenia
  • Zworki z drutu są ukryte pod komponentami, aby uzyskać bardziej przejrzysty wygląd.

Do wykonania płyt PC używam następującej metody:

  • Obraz płytki PC jest drukowany na Press-n-Peel za pomocą drukarki laserowej.
  • Press-n-Peel jest następnie umieszczany na czystym kawałku płytki PC i zabezpieczany taśmą.
  • Obraz płytki PC jest następnie przenoszony z Press-n-Peel na pustą płytkę PC przez przepuszczenie płytki przez laminator. U mnie najlepiej sprawdza się 10 karnetów.
  • Po schłodzeniu płytki PC do temperatury pokojowej, Press-n-Peel jest powoli podnoszony z płytki.
  • Płyta PC jest następnie trawiona kryształami nadsiarczanu amonu rozpuszczonymi w gorącej wodzie.
  • Po wytrawieniu, niebieski Press-n-Peel i czarny toner są usuwane poprzez wyczyszczenie wytrawionej płytki PC za pomocą acetonu.
  • Deska jest następnie przycinana na wymiar za pomocą narzędzia Dremel
  • Otwory na wszystkie elementy z otworami przelotowymi wierci się wiertłem 1 mm.
  • Złącza śrubowe zacisków są wiercone wiertłem o średnicy 1,2 mm.

Krok 12: Montaż płyty PC

Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC
Montaż płyty PC

Montaż odbywa się poprzez dodanie najpierw najmniejszych komponentów i przejście do największych komponentów.

Wszystkie komponenty użyte w tej instrukcji, z wyjątkiem modułu SIM800, pochodziły od mojego lokalnego dostawcy. Myśli, że zawsze mają zapasy. Proszę spojrzeć na ich południowoafrykańską stronę internetową:

www.shop.rabtron.co.za/catalog/index.php

NOTATKA! Najpierw przylutuj dwie zworki znajdujące się pod układem ATMEGA328p

Kolejność jest następująca:

  • Rezystory i dioda
  • Przycisk reset
  • Gniazda IC
  • Regulator napięcia
  • Kołki nagłówka
  • Małe kondensatory
  • diody LED
  • Uchwyt bezpiecznika
  • Bloki zaciskowe
  • Przekaźniki
  • Kondensatory elektrolityczne

Przed włożeniem układów scalonych podłącz urządzenie do 12 V i sprawdź, czy wszystkie napięcia są prawidłowe.

Na koniec, używając bezbarwnego lakieru, pokryj miedzianą stronę płytki drukowanej, aby chronić ją przed żywiołami.

Po wyschnięciu lakieru włóż układy scalone, ale pozostaw moduł GSM do czasu zaprogramowania AtMega.

Krok 13: Programowanie AtMega328p

Programowanie AtMega328p
Programowanie AtMega328p
Programowanie AtMega328p
Programowanie AtMega328p
Programowanie AtMega328p
Programowanie AtMega328p

# # Aktualizacja oprogramowania do wersji 3.02 # #

Umożliwiono wysłanie SMS-a do UŻYTKOWNIKA GŁÓWNEGO po przywróceniu zasilania urządzenia

Do programowania jednostki używam Arduino Uno z tarczą programistyczną. Aby uzyskać więcej informacji na temat korzystania z Arduino Uno jako programisty, zapoznaj się z tą instrukcją:

Arduino UNO jako programator AtMega328P

Moduł GSM musi zostać usunięty z płytki PC, aby uzyskać dostęp do nagłówka programowania. Uważaj, aby nie uszkodzić przewodu antenowego podczas wyjmowania modułu GSM.

Podłącz kabel do programowania między programatorem a jednostką za pomocą nagłówka programowania na płycie PC i załaduj szkic do jednostki.

Do programowania urządzenia nie jest potrzebne zewnętrzne zasilanie 12V. Płytka PC będzie zasilana z Arduino za pomocą kabla do programowania.

Otwórz załączony plik w Arduino IDE i zaprogramuj go w urządzeniu.

Po zaprogramowaniu odłącz kabel do programowania i włóż moduł GSM.

Urządzenie jest teraz gotowe do użycia.

Krok 14: Podłączanie urządzenia

Podłączanie urządzenia
Podłączanie urządzenia
Podłączanie urządzenia
Podłączanie urządzenia
Podłączanie urządzenia
Podłączanie urządzenia

Wszystkie połączenia z urządzeniem wykonuje się za pomocą zacisków śrubowych.

Zasilanie urządzenia

Upewnij się, że włożyłeś zarejestrowaną kartę SIM do modułu GSM i że karta SIM może wysyłać i odbierać wiadomości SMS.

Podłącz zasilacz 12 V DC do wejścia 12 V IN i dowolnego z zacisków 0 V. Po włączeniu zapali się czerwona dioda LED na płycie PC. Po około minucie moduł GSM powinien połączyć się z siecią komórkową. Czerwona dioda LED zgaśnie, a czerwona dioda LED na module GSM zacznie szybko migać.

Po osiągnięciu tego etapu urządzenie jest gotowe do konfiguracji.

Połączenia wejściowe

Wejścia cyfrowe działają na 12V. Aby włączyć wejście, należy do niego przyłożyć 12V. Usunięcie 12V spowoduje wyłączenie wejścia.

Połączenia wyjściowe

Każde wyjście składa się ze styku przełącznego. Podłącz każdy kontakt zgodnie z wymaganiami.

Krok 15: Konfiguracja wstępna

Początkowe ustawienia
Początkowe ustawienia

Należy przeprowadzić wstępną konfigurację urządzenia, aby upewnić się, że wszystkie parametry są ustawione na domyślne ustawienia fabryczne, a karta SIM jest skonfigurowana do akceptowania informacji użytkownika we właściwym formacie.

Ponieważ wszystkie polecenia są oparte na wiadomościach SMS, do przeprowadzenia konfiguracji potrzebny będzie inny telefon.

Aby przeprowadzić wstępną konfigurację, musisz być przy jednostce.

Ustaw numer telefonu GŁÓWNEGO UŻYTKOWNIKA

Ponieważ tylko GŁÓWNY UŻYTKOWNIK może konfigurować urządzenie, ten krok musi być wykonany jako pierwszy.

  • Urządzenie musi być zasilane.
  • Naciśnij i zwolnij przycisk Reset i poczekaj, aż czerwona dioda LED na płycie PC zgaśnie.
  • Dioda NET na module GSM zacznie szybko migać.
  • Urządzenie jest teraz gotowe do przyjęcia poleceń początkowej konfiguracji. Musi to nastąpić w ciągu 10 minut.
  • Wyślij wiadomość SMS zawierającą MASTER, opis na numer telefonu urządzenia.
  • Jeśli zostanie odebrany, zielona dioda LED na płycie PC zamiga dwukrotnie.
  • UŻYTKOWNIK GŁÓWNY został zaprogramowany.

Przywróć urządzenie do ustawień fabrycznych

Po zaprogramowaniu UŻYTKOWNIKA GŁÓWNEGO, ustawienia urządzenia muszą zostać przywrócone do wartości fabrycznych.

  • Wyślij wiadomość SMS o treści CLEARALL na numer telefonu jednostki.
  • Jeśli zostanie odebrany, zielona i czerwona dioda LED na płytce drukowanej będą migać naprzemiennie raz na sekundę. Urządzenie zostało przywrócone z domyślnymi ustawieniami fabrycznymi.
  • Wszystkie ustawienia zostały przywrócone do ustawień fabrycznych.
  • Naciśnij i zwolnij przycisk Reset, aby ponownie uruchomić urządzenie.

Formatowanie karty SIM

Ostatnim krokiem jest usunięcie wszystkich informacji zapisanych na karcie SIM i skonfigurowanie jej do użycia w tym urządzeniu.

  • Naciśnij i zwolnij przycisk Reset i poczekaj, aż czerwona dioda LED na płycie PC zgaśnie.
  • Dioda NET na module GSM zacznie szybko migać.
  • Urządzenie jest teraz gotowe do przyjęcia poleceń początkowej konfiguracji. Musi to nastąpić w ciągu 10 minut.
  • Wyślij wiadomość SMS tylko z ERASESIM na numer telefonu jednostki.
  • Jeśli zostanie odebrany, zielona dioda LED na płytce drukowanej zamiga trzy razy.

Urządzenie zostało skonfigurowane i jest gotowe do użycia.

Krok 16: Polecenia SMS

Polecenia SMS
Polecenia SMS

Urządzenie posiada trzy różne typy poleceń. Wszystkie polecenia są wysyłane SMS-em i mają następujący format:

KOMENDA,,,,,

  • Wszystkie polecenia, z wyjątkiem poleceń NORMAL USER, rozróżniają wielkość liter.
  • W parametrach nie jest rozróżniana wielkość liter.

Polecenia konfiguracji początkowej

MISTRZ, imię

Numer telefonu nadawcy SMS jest używany jako numer telefonu UŻYTKOWNIKA GŁÓWNEGO. Tutaj można dodać opis jednostki.

WYCZYŚĆ WSZYSTKO

Zresetuj urządzenie do ustawień fabrycznych

WYCZYŚĆS

Usuń wszystkie dane z karty SIM

RESETOWANIE

Uruchom ponownie urządzenie

MASTER USER Komendy do konfiguracji urządzenia

TRYB OUT, c, m, t UWAGA ! ! ! JESZCZE NIE ZAIMPLEMENTOWANE

Ustaw określone kanały, aby miały wyjścia PULSED, TIMED lub LATCHING. t to czas trwania w minutach dla wyjść TIMED

PULS, cccc

Ustaw określone kanały na wyjścia PULSED. Jeśli nie jest ustawiony, kanały będą ustawione jako wyjścia typu LATCHING.

CZAS IMPULS, t Ustawia czas trwania wyjścia impulsowego w sekundach (0..10s)

WEJŚCIE, cccc

Ustaw kanały, które muszą wyzwalać i wyślij wiadomość SMS, gdy stan zmieni się z OFF na ON

INPUTOFF, cccc

Ustaw kanały, które muszą wyzwalać i wyślij wiadomość SMS, gdy stan zmieni się z ON na OFF

INTIME, c, t

Ustawia czas opóźnienia wejścia dla wykrywania zmian stanu w sekundach

INTEXT, ch, nazwa, wł., wył.

Ustaw nazwę każdego kanału wejściowego, tekst włączony i wyłączony

OUTTEXT, ch, nazwa, wł., wył.

Ustaw nazwę każdego kanału wyjściowego, tekst włączony i wyłączony

Dodaj, lokalizacja, numer, wywołania, wyjścia SMS, wejścia

Dodaj użytkownika do karty SIM w „lokalizacji” pamięci, z kanałami wyjściowymi i wejściowymi przypisanymi do użytkownika

Del, lokalizacja

Usuń użytkownika z „lokalizacji” pamięci karty SIM

Nazwa kanału

Czy wyjście impulsowe o nazwie NazwaKanału

NazwaKanału, onText lub NazwaKanału, offText

Włącza/wyłącza wyjście z nazwą ChannelName i onText/offText

Normalne polecenia użytkownika do sterowania urządzeniem

????Zażądaj aktualizacji stanu we/wy. SMS o statusie zostanie wysłany do nadawcy.

Nazwa kanału

Czy wyjście impulsowe o nazwie NazwaKanału

NazwaKanału, onText

Włączy wyjście z nazwą ChannelName i tekstem statusu onText

ChannelName, offText Wyłączy wyjście z nazwą ChannelName i tekstem statusu offText

Szczegółowy opis poleceń znajduje się w załączonym dokumencie PDF.

Zalecana: