Inhaltsverzeichnis:

Arduino drahtloses Alarmsystem mit vorhandenen Sensoren - Gunook
Arduino drahtloses Alarmsystem mit vorhandenen Sensoren - Gunook

Video: Arduino drahtloses Alarmsystem mit vorhandenen Sensoren - Gunook

Video: Arduino drahtloses Alarmsystem mit vorhandenen Sensoren - Gunook
Video: Füllstandsanzeige mit Ultraschallsensor | reichelt packt's an 2024, Juli
Anonim
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren
Arduino Wireless-Alarmsystem mit vorhandenen Sensoren

Dieses Projekt kann in etwa einer halben Stunde zu einem Preis von etwa 20,00 USD erstellt werden, wenn Sie über Funkalarmsensoren mit 433 MHz oder 315 MHz verfügen.

Es kann auch ein komplett neues Projekt mit drahtlosen Alarmsensoren wie Infrarot-Bewegungsmeldern und Reed-Schaltern sein, die einfach und günstig online verfügbar sind. Suchen Sie einfach nach 433Mhz- oder 315Mhz-Sensoren, die die Codierung PT2262 oder EV1527 verwenden.

Ich bin sicher, es gibt viele Leute wie mich, die ein GSM/2G-Alarmsystem mit Funksensoren gekauft haben und damit zufrieden waren, aber als das 2G/GSM-Netz in meinem Wohnort ausgeschaltet wurde, blieb mir ein Alarmsystem zurück, das ich konnte nicht mehr programmieren oder gar die Uhrzeit darauf einstellen. Als ich mich eines Tages fragte, was ich tun könnte, um meinen Alarm wieder funktionsfähig zu machen, fiel mir ein, zu überprüfen, ob ein Arduino Signale von den Sensoren empfangen könnte. Ich stolperte über ein instuctable https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ und stellte nach einigen Experimenten fest, dass ich die Signale von meinen vorhandenen Sensoren empfangen konnte. Ich begann damit, ein Alarmsystem zu bauen, das meinen bestehenden Alarm ersetzen könnte und auch eine verbesserte Funktionalität bieten würde. Eines der Probleme mit dem alten Alarm war, nie genau zu wissen, welcher der 25 Sensoren ausgelöst wurde. Durch Hinzufügen eines LCD-Bildschirms zu meinem neuen Alarmaufbau erhalte ich jetzt Text auf dem LCD, der genau angibt, welcher Sensor aktiviert wurde. Der neue Wecker kann weiterhin manuell über meine vorhandenen drahtlosen Schlüsselanhänger aktiviert werden und verfügt über eine Echtzeituhr, damit er zu voreingestellten Tageszeiten automatisch scharf- und unscharf geschaltet werden kann.

Lieferungen

Beachten Sie die zusätzlichen Hinweise am Ende, um sicherzustellen, dass Sie die richtige Version dieser Teile verwenden.

Arduino Uno oder ähnlich

433 oder 315 MHz Empfängermodul für Arduino

DS3231 Echtzeituhrmodul für Arduino

I2C 16x2 LDC-Modul für Arduino

Drahtlose Alarm-Reed-Schalter, Bewegungssensoren und Fernbedienungen nach Wunsch

Piezo-Summer

LED & 220 Ohm Widerstand

Steckbrett (optional, aber empfohlen)

Passendes Netzteil für Arduino

Überbrückungsdrähte usw

PC mit installierter Arduino IDE

Arduino-Grundkenntnisse

Schritt 1: Zubehör

Lieferungen
Lieferungen
Lieferungen
Lieferungen
Lieferungen
Lieferungen

Einige Bilder oben von den Materialien, die Sie für dieses Projekt benötigen

Schritt 2: Verdrahten Sie das Ardunio und die Module wie im Bild gezeigt

Verdrahten Sie das Ardunio und die Module wie im Bild gezeigt
Verdrahten Sie das Ardunio und die Module wie im Bild gezeigt

Piezo zwischen Pin 5 des Arduino und Erde

LED zwischen Pin 8 des Arduino und einem 220 Ohm Widerstand dann auf Masse

433 oder 315 Mhz Empfänger, VCC an 5V, GND an Masse und einer der 2 Datenpins an Pin2 des Arduino

I2C 16X2 LCD-Modul VCC auf 5V, GND auf Masse, SCL SDA-Pins auf SCL SDA des Arduino (Pin A5 ist SCL, Pin A4 ist SDA)

DS3231 RTC-Modul VCC auf 5V, GND auf Masse, SCL-SDA-Pins auf SCL-SDA des Arduino (der zweite Satz befindet sich über den GND- und AREF-Pins der meisten Arduinos)

Ich weiß, dass einige von Ihnen keine weiteren Informationen als diese und die unten angehängte Skizze benötigen werden, aber ich werde für alle, die ein wenig weitere Hilfe benötigen, etwas mehr ins Detail gehen.

Schritt 3: Erforderliche Bibliotheken zur Arduino-IDE hinzufügen

Erforderliche Bibliotheken zur Arduino-IDE hinzufügen
Erforderliche Bibliotheken zur Arduino-IDE hinzufügen
Erforderliche Bibliotheken zur Arduino-IDE hinzufügen
Erforderliche Bibliotheken zur Arduino-IDE hinzufügen
Erforderliche Bibliotheken zur Arduino-IDE hinzufügen
Erforderliche Bibliotheken zur Arduino-IDE hinzufügen

Die Arduino-Skizze zum Ausführen des Alarms verwendet einige Bibliotheken, die nicht standardmäßig auf der Arduino-IDE installiert sind.

So fügen Sie der Arduino IDE die RCSwitch-Bibliothek hinzu. Öffnen Sie die Arduino IDE im oberen Menü, wählen Sie "Skizze", wählen Sie dann aus der Dropdown-Liste "Bibliothek einbeziehen" und wählen Sie aus der nächsten Dropdown-Liste "Bibliotheken verwalten". Geben Sie dann in das Feld "Filtern Sie Ihre Suche" "RCSW" ein, klicken Sie dann auf Installieren für "rc-switch by sui77"

Detaillierte Anweisungen zum Hinzufügen von Bibliotheken unter

Wenn wir schon dabei sind, müssen wir auch die Bibliotheken Time, TimeAlarms, DS1307RTC und LiquidCrystal_I2C hinzufügen, das gleiche Verfahren wie oben, aber nach dem Namen jeder neuen Bibliothek suchen und installieren. Sehen Sie sich die Screenshots oben an, wenn Sie sich nicht sicher sind, welche Bibliotheken Sie verwenden sollen.

Die Echtzeituhr DS3231 ist mit der DS1307RTC-Bibliothek kompatibel und verwendet diese.

Schritt 4: Als nächstes müssen wir die Codes für Ihre Sensoren abrufen

Als nächstes müssen wir die Codes für Ihre Sensoren erhalten
Als nächstes müssen wir die Codes für Ihre Sensoren erhalten
Als nächstes müssen wir die Codes für Ihre Sensoren abrufen
Als nächstes müssen wir die Codes für Ihre Sensoren abrufen

Ich habe die Vorlage des Arduino-Codes unten bereitgestellt, aber Sie müssen die Werte für jeden Ihrer Sensoren finden und in den Code einfügen.

Auf beiden Seiten finden Sie ausführliche Informationen darüber, wie Sie diese Codes erhalten.

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Hier ist jedoch meine gekürzte Version;

Um die Codes zu erhalten, die Ihre Sensoren und Fernbedienungen senden, schließen Sie das Arduino wie in Schritt 1 zusammengebaut über ein USB-Kabel an einen PC an und öffnen Sie die Arduino IDE. Gehen Sie dann in der Arduino IDE zum Dropdown-Menü "Datei", dann zu "Beispiele", scrollen Sie in der Liste der Beispielskizzen nach unten, bis Sie "RCSWITCH" finden, wählen Sie dann die Skizze "ReceiveDemo_Advanced" aus und laden Sie sie auf das Arduino hoch. Sobald die Skizze erfolgreich hochgeladen wurde, öffnen Sie den seriellen Monitor der Arduino IDE, wobei er noch über USB an Ihren PC angeschlossen ist. Lösen Sie nun den ersten der Sensoren aus, für die Sie den Code erhalten möchten, die Ausgabe von RCSwitch wird im seriellen Monitorfenster angezeigt. Für dieses Projekt suchen wir nach den Dezimalcodes, wie in Screenshot 2 hervorgehoben. Sie müssen den Sensor mehrmals auslösen, um nach dem Dezimalwert zu suchen, der am häufigsten angezeigt wird. Manchmal werden verschiedene Werte mit dem wahren Wert vermischt, dies wird verursacht durch Interferenzen durch zufällige Funkwellen oder andere Geräte, die auf derselben Frequenz arbeiten.

Notieren Sie den Dezimalcode des Sensors zur Verwendung im nächsten Schritt. Wiederholen Sie dies für alle Sensoren und Fernbedienungen, die Sie im Projekt verwenden möchten, und verfolgen Sie, welcher Code zu welchem Sensor gehört. Wenn Sie Handsender zum Scharf- und Unscharfschalten des Alarms verwenden, müssen Sie die unterschiedlichen Codes für die Scharfschalttaste und die Unscharfschalttaste jeder Fernbedienung notieren.

Schritt 5: Arduino-Code-Vorlage

Unten ist eine Kopie meines Arduino-Codes als.ino-Datei namens Wireless_Alarm. Sie können darauf klicken und es sollte sich in der Arduino IDE öffnen. Ich bin kein Programmierer, mein Code ist teilweise aus den Beispielen in der Arduino-IDE zusammengestellt, er ist wahrscheinlich nicht besonders elegant, aber er funktioniert und war über einen langen Zeitraum zuverlässig.

Denken Sie daran, die Skizze erneut zu speichern, nachdem Sie die Änderungen vorgenommen haben, um die Codes von Ihren eigenen Sensoren einzuschließen.

Schritt 6: Fügen Sie die Codes, die Sie in Schritt 5 erhalten haben, in die Vorlage Arduino Sketch ein

Jetzt die Schritte zum Anpassen des Codes für die von Ihnen verwendeten Sensoren und Fernbedienungen.

Wenn Sie die Wireless_Alarm-Skizze in Ihrer IDE öffnen, sehen Sie in Zeile 111.

if (mySwitch.getReceivedValue () == 115166236) // Code für die Taste zum Aktivieren des Schlüsselanhängers

Wo im vorhandenen Code 115166236 steht, müssen Sie diese Zahl durch den Dezimalcode für die Armtaste Ihres Fernbedienungsschlüssels ersetzen, den Sie in Schritt 5 aufgezeichnet haben.

Wenn Sie beispielsweise in Schritt 5 eine Dezimalzahl 1154321 erhalten, würden Sie Zeile 111 ändern, um jetzt zu lesen;

if (mySwitch.getReceivedValue () == 1154321) // Code für die Taste zum Aktivieren des Schlüsselanhängers

Befolgen Sie das gleiche Verfahren für Zeile 125.

if (mySwitch.getReceivedValue() == 115166234) // Tastencode für die Deaktivierung des Schlüsselanhängers

Ersetzen Sie 115166234 für den Code der Deaktivierungstaste Ihrer Fernbedienung, den Sie in Schritt 5 aufgezeichnet haben.

Wenn Sie mehrere Fernbedienungen zum Scharf- und Unscharfschalten verwenden möchten, kopieren und fügen Sie die Zeilen 111 bis 136 so oft wie nötig ein, dann ändern Sie die Werte entsprechend Ihren anderen Fernbedienungen, aber am besten beginnen Sie einfach mit einer Fernbedienung, bis Sie sicher sind, dass Sie Ihre Änderung vorgenommen haben Skizze funktioniert.

Nun zur Codierung der Alarmsensoren in der Skizze in Zeile 140

if(ledState == HIGH && mySwitch.getReceivedValue() == 1151640) //Aktion für Signalsender-Büroschrank

Nehmen Sie 1151640 heraus und geben Sie den Dezimalwert eines Ihrer Alarmsensoren ein.

Dann in Linie 158.

lcd.print(F("Büroschrank")); // Nachricht auf LCD ausdrucken, um zu wissen, welcher Sensor aktiviert wurde (und den Einbrecher finden:)

Ändern Sie den Büroschrank auf das, was auf dem LCD für diesen Sensor angezeigt werden soll. Wenn Sie zum Beispiel Küchentür lesen möchten, sehen Sie die Zeile so aus;

lcd.print (F ("Küchentür")); // Nachricht auf LCD ausdrucken, um zu wissen, welcher Sensor aktiviert wurde (und den Einbrecher finden:)

Namen sollten 16 Zeichen nicht überschreiten.

Zwischen Zeile 165 und 187 befindet sich eine Vorlage, die Sie so oft wie nötig kopieren und in die Zeilen direkt unter 187 einfügen können. Ersetzen Sie die Zahl nach mySwitch.getReceivedValue() == durch die Dezimalzahl eines Ihrer anderen Sensoren, die Sie in Schritt 5 aufgezeichnet haben und ändern Sie den Namen innerhalb des " " in lcd.print(F("sensornamehere")); auf den Namen, den Sie Ihrem Sensor geben möchten.

Wenn Sie keine Fernbedienungen verwenden, um Ihren Alarm zu aktivieren und zu deaktivieren, können Sie die Zeilen 111-136 einfach ignorieren oder // an den Anfang jeder der unerwünschten Zeilen setzen, und der Arduino liest sie nicht.

Denken Sie daran, die Datei zu speichern, nachdem Sie Ihre Änderungen vorgenommen haben.

Schritt 7: Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie

Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie
Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie
Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie
Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie
Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie
Laden Sie die geänderte.ino-Datei auf Ihr Arduino hoch und testen Sie

Wenn das Arduino noch per USB mit Ihrem PC verbunden ist, laden Sie die Skizze auf das Arduino Board hoch. Sobald der Upload erfolgreich abgeschlossen ist, sollte das LCD "Alarm On Disarmed" anzeigen. Drücken Sie die Scharfschalttaste auf Ihrer Fernbedienung und das LCD sollte "Alarm On Armed" anzeigen und die LED sollte leuchten, um Sie wissen zu lassen, dass es scharf ist. Lösen Sie jetzt einen Sensor aus, während es scharf ist, LCD sollte Alarm gefolgt von einem Zeitstempel anzeigen und der Position des Sensors, sollte der Piepser 2 Minuten lang ertönen, es sei denn, Sie drücken die Entschärfen-Taste. Wenn Sie dieses Ergebnis nicht erhalten, überprüfen Sie die Codes, die Sie in Schritt 5 erhalten haben, und die Änderungen, die Sie im vorherigen Schritt am Code vorgenommen haben, und überprüfen Sie auch die Verdrahtung aller Komponenten. Wenn das LCD überhaupt nicht liest, befindet sich auf der Rückseite des LCD-Moduls eine Kontrasteinstellung. Sobald der Kontrast richtig eingestellt ist und das LCD immer noch nicht liest, versuchen Sie, die Adresse des LCD von 0x3f auf 0x27 in Zeile 12 in der Skizze zu ändern. LCD-Fehlerbehebung hier I2C LCD-Tutorial

Schritt 8: Einstellen der Uhrzeit auf dem RTC-Modul und Ändern der Scharf- und Unscharfzeiten

Hoffentlich wurde Ihre RTC bereits mit der richtigen Zeit eingestellt, aber wenn Sie die IDE nicht öffnen, wählen Sie "Datei" und klicken Sie im Dropdown-Menü auf "Beispiele", scrollen Sie nach unten zu "DS1307RTC" und wählen Sie die Skizze "SetTime" aus, laden Sie die Skizze zu Ihrem herunter Arduino und es wird die Echtzeituhr mit der Zeit von Ihrem PC stellen. Sie müssen dann die Wireless_Alarm-Skizze auf Ihr Arduino neu laden.

Das von mir bereitgestellte Wireless_Alarm.ino stellt den Wecker standardmäßig so ein, dass er jeden Abend um 22.15 Uhr automatisch aktiviert und jeden Morgen um 6.00 Uhr deaktiviert wird. Um diese Zeiten zu ändern, modifizieren Sie den Sketch in den Zeilen 71 und 72. Die Zeit steht in Klammern hinter Alarm.alarmRepeat im Format HH, MM, SS. ändern Sie dies zu jeder Zeit, die Ihnen passt.

Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // UNSCHARF-Zeit

Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // ARM-Zeit

Um also die Unscharfzeit auf 9.15 Uhr und die Scharfschaltzeit auf 17.30 Uhr zu ändern, würde der Code so aussehen

Alarm.alarmRepeat(9, 15, 0, MorningAlarm); // UNSCHARF-Zeit

Alarm.alarmRepeat(17, 30, 0, EveningAlarm); // ARM-Zeit

Wenn Sie nicht möchten, dass der Alarm automatisch aktiviert und deaktiviert wird, setzen Sie // vor die 2 Zeilen und sie werden nicht verwendet.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // UNSCHARF-Zeit

//Alarm.alarmRepeat (22, 15, 0, EveningAlarm); //Scharfzeit

Die Zeit, für die der Alarmton ertönt, kann durch Ändern von Zeile 22 geändert werden

const langes Intervall = 120000; // für Millis Verzögerung für die Dauer des Alarmtons

Das Intervall ist in Millisekunden angegeben, also 120000 = 120 Sekunden, eine Änderung von 120000 auf 30000 würde den Alarm 30 Sekunden lang tönen lassen.

Ein Solenoid zum Betrieb einer Sirene, eines Blitzlichts, eines lauten Piepsers usw. kann auch an Pin 7 oder Pin 9 angeschlossen werden und läuft für das oben eingestellte "Intervall". Beachten Sie, dass die maximale Last für einen Arduino-Pin 40 mA nicht überschreiten sollte.

Schritt 9: Zusätzliche Hinweise

Bei der Auswahl eines 433- oder 315-MHz-Empfängermoduls für Arduino sollten Sie die Frequenz entsprechend den zu verwendenden Alarmsensoren auswählen. Ich schlage vor, ein Modul zu kaufen, das mit einer kleinen spiralförmigen Wendelantenne für beste Leistung geliefert wird, alternativ erhöht auch eine 17,3 mm lange gerade Drahtantenne die Leistung.

Mit dem 16x2-LCD-Modul müssen Sie ein 4-poliges I2C-LCD verwenden, um die Anweisungen und den Code zu verwenden, die ich hier bereitstelle. Es könnte mit einem 16-poligen Standard-LCD hergestellt werden, aber es funktioniert nicht mit der Verkabelung oder dem Code hier.

Drahtlose Alarm-Reed-Schalter, Bewegungssensoren und Fernbedienungen sollten 433Mhz oder 315Mhz haben, um dem Empfänger zu entsprechen, den Sie verwenden möchten, und sollten die Codierung PT2262 oder EV1527 verwenden.

Der Alarm ist erweiterbar und anpassbar, ich habe bereits eine SD-Karte hinzugefügt, um aufzuzeichnen, wenn Sensoren ausgelöst werden, das LCD so modifiziert, dass es nur leuchtet, wenn eine Taste gedrückt wird, und eine 100-dB-Sirene hinzugefügt, aber hier keine Details aufgenommen, um den Artikel so zu halten, wie kurz und einfach wie möglich. Ich hoffe, dass das Teilen der Arbeit, die ich an diesem Alarm geleistet habe, für andere von Nutzen ist.

Beantworte gerne alle Fragen.

Vielen Dank.

Empfohlen: