Spisu treści:

Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki: 9 kroków (ze zdjęciami)
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki: 9 kroków (ze zdjęciami)

Wideo: Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki: 9 kroków (ze zdjęciami)

Wideo: Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki: 9 kroków (ze zdjęciami)
Wideo: GSM-X - Uniwersalny moduł komunikacyjny 2024, Lipiec
Anonim
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki
Bezprzewodowy system alarmowy Arduino wykorzystujący istniejące czujniki

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

Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci

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

Podłącz Ardunio i moduły, jak pokazano na obrazku
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

Dodaj niezbędne biblioteki do Arduino IDE
Dodaj niezbędne biblioteki do Arduino IDE
Dodaj niezbędne biblioteki do Arduino IDE
Dodaj niezbędne biblioteki do Arduino IDE
Dodaj niezbędne biblioteki do Arduino IDE
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

Następnie musimy uzyskać kody do Twoich czujników
Następnie musimy uzyskać kody do Twoich czujników
Następnie musimy uzyskać kody do Twoich czujników
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

Prześlij poprawiony.ino do swojego Arduino i przetestuj
Prześlij poprawiony.ino do swojego Arduino i przetestuj
Prześlij poprawiony.ino do swojego Arduino i przetestuj
Prześlij poprawiony.ino do swojego Arduino i przetestuj
Prześlij poprawiony.ino do swojego Arduino i przetestuj
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: