Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Materiały eksploatacyjne
- Krok 2: Podłącz Ardunio i moduły, jak pokazano na obrazku
- Krok 3: Dodaj niezbędne biblioteki do Arduino IDE
- Krok 4: Następnie musimy uzyskać kody do twoich czujników
- Krok 5: Szablon kodu Arduino
- Krok 6: Wklej kody, które uzyskałeś w kroku 5 do szablonu Arduino Sketch
- Krok 7: Prześlij poprawiony.ino do swojego Arduino i przetestuj
- Krok 8: Ustawianie czasu w module RTC i zmiana czasu uzbrojenia i rozbrojenia
- Krok 9: Dodatkowe uwagi
Wideo: Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Ten projekt można zbudować w około pół godziny za około 20,00 USD, jeśli masz istniejące bezprzewodowe czujniki alarmowe 433 MHz lub 315 MHz.
Może to być również zupełnie nowy projekt z bezprzewodowymi czujnikami alarmowymi, takimi jak czujniki ruchu na podczerwień i kontaktrony, łatwo i tanio dostępne online. Po prostu wyszukaj czujniki 433Mhz lub 315Mhz, które używają kodowania PT2262 lub EV1527.
Jestem pewien, że wiele osób takich jak ja kupiło system alarmowy GSM/2G z czujnikami bezprzewodowymi i było z niego zadowolonych, jednak gdy sieć 2G/GSM została wyłączona w miejscu, w którym mieszkam, został mi system alarmowy, który mogłem nie programować ani nawet ustawiać na nim czasu. Pewnego dnia, zastanawiając się, co mogę zrobić, aby mój alarm znów działał, przyszło mi do głowy, aby sprawdzić, czy Arduino może odbierać sygnały z czujników. Natknąłem się na niemożliwy do opanowania https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ i po kilku eksperymentach ustaliłem, że mogę odbierać sygnały z moich istniejących czujników. Rozpocząłem proces budowy systemu alarmowego, który mógłby zastąpić mój istniejący alarm, a także zapewnić zwiększoną funkcjonalność. Jednym z problemów ze starym alarmem było to, że nigdy nie wiedziałem dokładnie, który z 25 czujników się wyłączył. Po dodaniu ekranu LCD do mojej nowej kompilacji alarmu otrzymuję teraz tekst na wyświetlaczu LCD wskazujący dokładnie, który czujnik został aktywowany. Nowy alarm nadal może być ręcznie uzbrajany przez moje istniejące piloty bezprzewodowe i ma zegar czasu rzeczywistego, aby umożliwić automatyczne uzbrajanie i rozbrajanie o zaprogramowanych porach dnia.
Kieszonkowe dzieci
Zobacz dodatkowe uwagi na końcu, aby upewnić się, że używasz prawidłowej wersji tych części.
Arduino Uno lub podobny
Moduł odbiornika 433 lub 315 MHz dla Arduino
Moduł zegara czasu rzeczywistego DS3231 dla Arduino
Moduł I2C 16x2 LDC dla Arduino
Bezprzewodowe kontaktrony alarmowe, czujniki ruchu i piloty zdalnego sterowania zgodnie z potrzebami
Brzęczyk piezoelektryczny
Rezystor LED i 220 omów, Deska do krojenia chleba (opcjonalna, ale zalecana)
Odpowiedni zasilacz dla Arduino
przewody połączeniowe itp
PC z zainstalowanym Arduino IDE
Podstawowa znajomość Arduino
Krok 1: Materiały eksploatacyjne
Niektóre powyższe obrazy materiałów eksploatacyjnych, których będziesz potrzebować do tego projektu
Krok 2: Podłącz Ardunio i moduły, jak pokazano na obrazku
Piezo między pinem 5 Arduino a ziemią
Dioda LED między pinem 8 Arduino a rezystorem 220ohm, a następnie do masy
Odbiornik 433 lub 315 MHz, VCC do 5 V, GND do masy i jeden z 2 pinów danych do pinu 2 Arduino
Moduł LCD I2C 16X2 VCC do 5V, GND do masy, piny SCL SDA do SCL SDA Arduino (pin A5 to SCL, pin A4 to SDA)
DS3231 Moduł RTC VCC do 5V, GND do masy, piny SCL SDA do SCL SDA Arduino (drugi zestaw znajduje się nad pinami GND i AREF większości Arduino)
Wiem, że niektórzy z was nie będą potrzebować więcej informacji niż te i szkic załączony poniżej, ale omówię więcej szczegółów dla każdego, kto chciałby trochę dalszej pomocy.
Krok 3: Dodaj niezbędne biblioteki do Arduino IDE
Arduino Sketch do uruchamiania alarmu używa niektórych bibliotek, które nie są domyślnie zainstalowane w Arduino IDE.
Aby dodać bibliotekę RCSwitch do Arduino IDE. Otwórz Arduino IDE w górnym menu wybierz "Szkic", a następnie z rozwijanego menu wybierz "Dołącz bibliotekę", a z następnego menu wybierz "Zarządzaj bibliotekami". Następnie w polu "Filter your search" wpisz "RCSW", następnie kliknij na install dla "rc-switch by sui77"
Szczegółowe instrukcje dodawania bibliotek na
Skoro już przy tym jesteśmy, musimy również dodać biblioteki o nazwach Time, TimeAlarms, DS1307RTC i LiquidCrystal_I2C, taką samą procedurę jak powyżej, ale szukając nazwy każdej nowej biblioteki i instalując. Zobacz zrzuty ekranu powyżej, jeśli nie masz pewności, których bibliotek użyć.
Zegar czasu rzeczywistego DS3231 jest kompatybilny i wykorzystuje bibliotekę DS1307RTC.
Krok 4: Następnie musimy uzyskać kody do twoich czujników
Poniżej udostępniłem szablon kodu Arduino, ale musisz znaleźć wartości dla każdego z czujników i wkleić je do kodu.
W obu tych witrynach dostępne są obszerne informacje na temat tego, jak uzyskać te kody;
www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/
github.com/sui77/rc-switch/wiki
Jednak oto moja skrócona wersja;
Aby uzyskać kody wysyłane przez czujniki i zdalne breloki, podłącz Arduino zmontowane w kroku 1 do komputera za pomocą kabla USB i otwórz Arduino IDE. Następnie w Arduino IDE przejdź do menu rozwijanego „Plik”, a następnie przejdź do „Przykłady”, przewiń listę przykładowych szkiców, aż znajdziesz „RCSWITCH”, a następnie wybierz szkic „ReceiveDemo_Advanced” i prześlij go do Arduino. Po pomyślnym przesłaniu szkicu otwórz monitor szeregowy Arduino IDE z nadal podłączonym do komputera przez USB. Teraz uruchom pierwszy z czujników, dla których chcesz uzyskać kod, wyjście z RCSwitch pojawi się w oknie monitora szeregowego. W tym projekcie szukamy kodów dziesiętnych, jak pokazano na zrzucie 2. Będziesz musiał wielokrotnie wyzwalać czujnik, szukając wartości dziesiętnej, która pojawia się najczęściej, czasami będą różne wartości zmieszane z wartością prawdziwą, jest to spowodowane przez interferencję z przypadkowymi falami radiowymi lub innymi urządzeniami działającymi na tej samej częstotliwości.
Zanotuj kod dziesiętny czujnika do użycia w następnym kroku. Powtórz dla wszystkich czujników i pilotów, których chcesz użyć w projekcie, śledząc, który kod jest powiązany z którym czujnikiem. Jeśli używasz pilotów do uzbrajania i rozbrajania alarmu, musisz zanotować różne kody dla przycisku uzbrajania i przycisku rozbrajania każdego pilota.
Krok 5: Szablon kodu Arduino
Poniżej znajduje się kopia mojego kodu Arduino jako plik.ino o nazwie Wireless_Alarm. Możesz go kliknąć i powinien otworzyć się w Arduino IDE. Nie jestem programistą, mój kod jest częściowo zmontowany z przykładów znalezionych w Arduino IDE, prawdopodobnie nie jest szczególnie elegancki, ale działa i był niezawodny przez długi czas.
Pamiętaj, aby ponownie zapisać szkic po wprowadzeniu zmian, aby uwzględnić kody z własnych czujników.
Krok 6: Wklej kody, które uzyskałeś w kroku 5 do szablonu Arduino Sketch
Teraz kroki, aby dostosować kod dla używanych czujników i pilotów.
Jeśli otworzysz szkic Wireless_Alarm w swoim IDE, zobaczysz wiersz 111.
if (mySwitch.getReceivedValue() == 115166236) //Kod przycisku uzbrojenia pilota
Tam, gdzie w istniejącym kodzie czyta się 115166236, musisz zastąpić ten numer kodem dziesiętnym dla przycisku uzbrojenia pilota zdalnego sterowania, który zapisałeś w kroku 5.
Na przykład, jeśli w kroku 5 masz liczbę dziesiętną 1154321, zmodyfikuj wiersz 111, aby teraz czytać;
if (mySwitch.getReceivedValue() == 1154321) //Kod przycisku uzbrojenia pilota
Wykonaj tę samą procedurę dla linii 125.
if (mySwitch.getReceivedValue() == 115166234) //Kod przycisku rozbrojenia pilota
Zastąp 115166234 kodem przycisku rozbrojenia pilota, który zapisałeś w kroku 5.
Jeśli chcesz używać wielu pilotów do uzbrajania i rozbrajania, skopiuj i wklej linie od 111 do 136 tyle razy, ile jest to wymagane, a następnie zmień wartości tak, aby pasowały do innych pilotów, ale najlepiej po prostu zacząć od jednego pilota, dopóki nie będziesz pewien, że zmodyfikowano szkic działa.
Teraz do kodowania czujników alarmowych na szkicu w linii 140
if(ledState == HIGH && mySwitch.getReceivedValue() == 1151640) //Działanie dla szafki biurowej nadawcy sygnału
Wyjmij 1151640 i wstaw wartość dziesiętną jednego z czujników alarmowych.
Następnie w linii 158.
lcd.print(F("Szafa biurowa")); //wypisz wiadomość na lcd, aby wiedzieć, który czujnik został aktywowany (i idź i znajdź włamywacza:)
Zmień szafkę biurową na to, co chcesz wyświetlać na ekranie LCD dla tego czujnika. Na przykład, jeśli chcesz, aby czytał drzwi kuchenne, spraw, aby linia wyglądała tak;
lcd.print(F("Drzwi kuchenne")); //wypisz wiadomość na lcd, aby wiedzieć, który czujnik został aktywowany (i idź i znajdź włamywacza:)
Nazwy nie powinny przekraczać 16 znaków.
Pomiędzy wierszami 165 i 187 znajduje się szablon do kopiowania i wklejania tyle razy, ile jest to wymagane do wierszy bezpośrednio poniżej 187. Zastąp liczbę po mySwitch.getReceivedValue() == ułamkiem dziesiętnym jednego z innych czujników, które zarejestrowałeś w kroku 5 i zmień nazwę w " " w lcd.print(F("tutaj nazwa czujnika")); do nazwy, którą chcesz nadać swojemu czujnikowi.
Jeśli nie używasz zdalnych pilotów do uzbrajania i rozbrajania alarmu, możesz po prostu zignorować linie 111-136 lub umieścić // na początku każdej z niechcianych linii, a Arduino ich nie odczyta.
Pamiętaj, aby zapisać plik po dokonaniu zmian.
Krok 7: Prześlij poprawiony.ino do swojego Arduino i przetestuj
Z Arduino nadal podłączonym do komputera przez USB, prześlij szkic na płytkę Arduino. Po pomyślnym zakończeniu przesyłania na wyświetlaczu LCD powinien pojawić się komunikat „Alarm przy rozbrojeniu”. Naciśnij przycisk uzbrajania na pilocie, a na wyświetlaczu LCD powinien pojawić się komunikat „Alarm po uzbrojeniu”, a dioda LED powinna się zapalić, aby poinformować Cię, że jest uzbrojony, teraz uruchom czujnik, gdy jest uzbrojony, wyświetlacz LCD powinien wyświetlić Alarm, a następnie znacznik czasu i lokalizacji czujnika, brzęczyk powinien emitować dźwięk przez 2 minuty, chyba że naciśniesz przycisk rozbrojenia. Jeśli nie otrzymujesz tego wyniku, sprawdź ponownie kody otrzymane w kroku 5 i zmiany wprowadzone w kodzie w poprzednim kroku, sprawdź również ponownie okablowanie wszystkich komponentów. Jeśli wyświetlacz LCD w ogóle nie odczytuje, z tyłu modułu LCD znajduje się regulacja kontrastu. Po prawidłowym ustawieniu kontrastu, jeśli wyświetlacz LCD nadal nie czyta, spróbuj zmienić adres wyświetlacza LCD z 0x3f na 0x27 w linii 12 szkicu. Rozwiązywanie problemów z LCD tutaj samouczek LCD I2C
Krok 8: Ustawianie czasu w module RTC i zmiana czasu uzbrojenia i rozbrojenia
Mam nadzieję, że twój RTC został już ustawiony na poprawny czas, ale jeśli nie otworzysz IDE, wybierz „Plik” i z menu rozwijanego kliknij „Przykłady”, przewiń w dół do „DS1307RTC” i wybierz szkic „SetTime”, pobierz szkic do swojego Arduino i ustawi zegar czasu rzeczywistego z czasem z komputera. Następnie musisz ponownie załadować szkic Wireless_Alarm do Arduino.
Dostarczony przeze mnie Wireless_Alarm.ino domyślnie ustawi alarm na automatyczne uzbrajanie o 22:15 każdej nocy i rozbrajanie o 6:00 każdego ranka. Aby zmienić te czasy, zmodyfikuj Szkic w liniach 71 i 72. Czas jest w nawiasach po Alarm.alarmRepeat w formacie GG, MM, SS. zmień to na taki, który Ci odpowiada.
Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // ROZBROJENIE czasu
Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // czas ARM
Aby zmienić czas rozbrojenia na 9.15, a czas uzbrajania na 17:30, kod wyglądałby tak
Alarm.alarmRepeat(9, 15, 0, MorningAlarm); // ROZBROJENIE czasu
Alarm.alarmRepeat(17, 30, 0, EveningAlarm); // czas ARM
Jeśli nie chcesz, aby alarm uzbrajał się i rozbrajał automatycznie, umieść // przed 2 liniami i nie będą one używane.
//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // ROZBROJENIE czasu
//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); //Czas uzbrojenia
Czas, przez który rozlega się brzęczyk alarmu, można zmienić, modyfikując linię 22
const długi interwał = 120000; //dla milis opóźnienia dla czasu trwania alarmu dźwiękowego
Odstęp jest w milisekundach, więc 120000 = 120 sekund, zmiana 120000 na 30000 spowoduje, że alarm będzie brzmiał przez 30 sekund.
Solenoid do obsługi syreny, światła stroboskopowego, brzęczyka o dużej głośności itp. może być również podłączony do styku 7 lub 9 i będzie działał przez „interwał”, jak określono powyżej. Należy pamiętać, że maksymalne obciążenie pinu Arduino nie powinno przekraczać 40mA.
Krok 9: Dodatkowe uwagi
Wybierając moduł odbiornika 433 lub 315 MHz dla Arduino, należy wybrać częstotliwość odpowiadającą czujnikom alarmowym, których zamierzasz użyć. Sugeruję zakup modułu, który jest dostarczany z małą spiralną anteną spiralną, aby uzyskać najlepszą wydajność, alternatywnie antena z prostym drutem o długości 17,3 mm również zwiększa wydajność.
Z modułem LCD 16x2 musisz użyć 4-pinowego wyświetlacza LCD I2C, aby skorzystać z instrukcji i kodu, który tu podaję, może być wykonany ze standardowego 16-pinowego wyświetlacza LCD, ale nie będzie działał z okablowaniem lub kodem tutaj.
Bezprzewodowe kontaktrony alarmowe, czujniki ruchu i piloty zdalnego sterowania powinny mieć częstotliwość 433Mhz lub 315Mhz, aby pasowały do odbiornika, którego zamierzasz używać i powinny używać kodowania PT2262 lub EV1527.
Alarm można rozszerzyć i dostosować, dodałem już kartę SD, aby nagrywać, gdy czujniki są wyzwalane, zmodyfikowałem wyświetlacz LCD, aby świecił tylko po przytrzymaniu przycisku i dodałem syrenę 100 dB, ale nie podałem tutaj szczegółów, aby zachować artykuł jako możliwie najkrótsze i najprostsze. Mam nadzieję, że udostępnienie pracy, którą wykonałem nad tym alarmem, przyda się innym.
Chętnie odpowiem na wszelkie pytania.
Dziękuję.
Zalecana:
Prosty bezprzewodowy trenażer Taranis X9D+ wykorzystujący wejście odbiornika SBUS: 9 kroków
Prosty bezprzewodowy trenażer Taranis X9D+ wykorzystujący wejście odbiornika SBUS: Celem tego projektu jest podłączenie nadajnika FrSky X-Lite do nadajnika FrSky X9D+ w konfiguracji TRAINER za pomocą taniego odbiornika SBUS (12 $). Łącząc te dwa ze sobą w ten sposób, możliwe jest, że pilot instruktor korzystający z
Mały system alarmowy wykorzystujący płytkę zgodną z Super Tiny Arduino!: 10 kroków
Mały system alarmowy wykorzystujący płytkę zgodną z Super Tiny Arduino!: Witam, dzisiaj zrobimy mały fajny projekt. Zbudujemy malutkie urządzenie alarmowe, które mierzy odległość między sobą a obiektem przed nim. A gdy obiekt przesunie się poza ustaloną odległość, urządzenie powiadomi Cię za pomocą
Bezprzewodowy punkt dostępowy o zasięgu 50 metrów z TP Link WN7200ND Bezprzewodowy adapter USB na Raspbian Stretch: 6 kroków
Bezprzewodowy punkt dostępowy o zasięgu pięćdziesięciu metrów z bezprzewodowym adapterem TP Link WN7200ND USB na Raspbian Stretch: Raspberry Pi świetnie nadaje się do tworzenia bezpiecznych bezprzewodowych punktów dostępowych, ale nie ma dobrego zasięgu, użyłem bezprzewodowego adaptera USB TP Link WN7200ND, aby go rozszerzyć. Chcę się podzielić jak to zrobićDlaczego zamiast routera używać raspberry pi?T
Emulator myszy PC wykorzystujący Arduino Uno i czujniki.: 8 kroków
Emulator myszy PC wykorzystujący Arduino Uno i czujniki.: W tej instrukcji zbudujemy prototyp emulatora myszy. Emulator myszy to urządzenie, którego można używać, gdy mysz nie działa prawidłowo. Czujniki są używane do sterowania myszą ruchy. Projekt składa się z jednej ul
Konwertuj router bezprzewodowy na bezprzewodowy przedłużacz 2x punkt dostępowy: 5 kroków
Konwersja routera bezprzewodowego na bezprzewodowy przedłużacz 2x punkt dostępowy: Miałem słabe bezprzewodowe połączenie internetowe w moim domu z powodu RSJ (metalowa belka nośna w suficie) i chciałem wzmocnić sygnał lub dodać dodatkowy przedłużacz dla reszty domu. Widziałem przedłużacze przez około 50 funtów w elektro