Spisu treści:
- Krok 1: Zasilanie
- Krok 2: Wejścia cyfrowe
- Krok 3: Wyjścia cyfrowe
- Krok 4: Oscylator mikrokontrolera
- Krok 5: Wskaźniki LED
- Krok 6: Obwód resetowania mikroprocesora
- Krok 7: Moduł SIM800L
- Krok 8: Mikrokontroler
- Krok 9: Optymalizacja pamięci SRAM
- Krok 10: Rozmiar bufora szeregowego oprogramowania
- Krok 11: Tworzenie płyty PC
- Krok 12: Montaż płyty PC
- Krok 13: Programowanie AtMega328p
- Krok 14: Podłączanie urządzenia
- Krok 15: Konfiguracja wstępna
- Krok 16: Polecenia SMS
Wideo: Moduł zdalnego sterowania GSM/SMS oparty na Arduino: 16 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
! ! ! 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
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
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
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
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
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
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
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 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
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
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
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ż 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
# # 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
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
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
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:
Pilot zdalnego sterowania oparty na LoRa - Sterowanie urządzeniami z dużych odległości: 8 kroków
Pilot zdalnego sterowania oparty na LoRa | Kontroluj urządzenia z dużych odległości: Hej, co słychać, chłopaki! Akarsh tutaj z CETech. W tym projekcie stworzymy pilota, który może być używany do sterowania różnymi instrumentami, takimi jak diody LED, silniki lub jeśli mówimy o naszym codziennym życiu, możemy sterować naszym urządzeniem domowym
Podwodny dron zdalnego sterowania: 10 kroków (ze zdjęciami)
Podwodny zdalnie sterowany dron: Zdecydowałem się zbudować ten ROV w celu eksploracji i podziwiania podwodnego świata, ponieważ nie ma tam wielu tanich podwodnych dronów. Chociaż zajmuje to dużo czasu, badań i samodydaktyki, jest to zabawny projekt
Moduł zdalnego sterowania VISUINO Smart Robot Car 315 mhz XD-YK04: 7 kroków
Moduł zdalnego sterowania VISUINO Smart Robot Car 315mhz XD-YK04: W tym samouczku użyjemy Smart Robot Car, modułu L298N DC MOTOR CONTROL, modułu zdalnego sterowania 4ch 315mhz XD-YK04, Arduino Uno i Visuino do sterowania samochodem robota za pomocą pilota . Obejrzyj film demonstracyjny
Kamera zdalnego sterowania przez Raspberry Pi: 5 kroków (ze zdjęciami)
Kamera zdalnego sterowania firmy Raspberry Pi: Ta instrukcja poprowadzi, jak: Umieść kamerę w sieci lokalnej (w celu zdalnego widzenia za pomocą komputera lub telefonu)2. Kontrola kamery wizyjnej (za pomocą motoreduktora) Lista części dla projektu:1. Silnik z przekładnią https://amzn.to/2OLQxxq2. Raspberry Pi B https://amzn.to
Zwykły zestaw zdalnego sterowania przekształcony w czterokanałowy pilot zdalnego sterowania RC: 4 kroki
Zwykły zestaw zdalnego sterowania przekształcony w czterokanałowy pilot zdalnego sterowania RC: 如何将通用遥控器套件转换为玩具模型中使用的四通道遥控器。遥控器套件非常便宜。它采用2262和2272芯片和433个模块构建。 ja