Inhaltsverzeichnis:

Android und Arduino SMS-basierte Hausautomation - Gunook
Android und Arduino SMS-basierte Hausautomation - Gunook

Video: Android und Arduino SMS-basierte Hausautomation - Gunook

Video: Android und Arduino SMS-basierte Hausautomation - Gunook
Video: 📱 #04 Handy App einrichten 🏡 Hausautomatisierung mit Home Assistant 2024, Juli
Anonim
Android und Arduino SMS-basierte Hausautomation
Android und Arduino SMS-basierte Hausautomation
Android und Arduino SMS-basierte Hausautomation
Android und Arduino SMS-basierte Hausautomation

! ! ! NOTIZ ! ! !

Da der lokale Mobilfunkmast in meiner Nähe aufgerüstet wird, kann ich dieses GSM-Modul nicht mehr verwenden. Der neuere Tower unterstützt keine 2G-Geräte mehr. Daher kann ich dieses Projekt nicht mehr unterstützen

Vor kurzem habe ich ein relativ günstiges Quad Band GSM/GPRS Modul zum Spielen bekommen. Es ist ein SIM800L-Modul und kommuniziert mit jedem Mikro über eine serielle Schnittstelle. Es kam komplett mit einer Panel-Mount-Antenne.

Ich beschloss, ein einfaches SMS-Controller-System zu bauen, das Befehle des Kurznachrichtendienstes (SMS) verwendet, um Geräte zu steuern und Alarme anzuzeigen.

Schritt 1: SMS-Befehle

SMS-Befehle
SMS-Befehle

Wie bei jedem Kommunikationssystem müssen bestimmte Befehle an ein entferntes Gerät gesendet werden, um ihm mitzuteilen, was zu tun ist. Ebenso muss das entfernte Gerät auf diese Befehle antworten oder reagieren. Dieses Projekt besteht aus zwei Teilen, dem SMS-Controller und einem Standard-Mobiltelefon.

Die Idee war, einen einfachen SMS-Controller mit vier digitalen Ausgängen zu schaffen. Abhängig von der empfangenen SMS muss das Gerät die einzelnen Ausgänge steuern können.

Ich habe mich auch für vier digitale Eingänge entschieden. Dies kann verwendet werden, um Alarme oder andere Informationen anzuzeigen.

Bevor ich mit dem Build begann, habe ich beschlossen, bestimmte Befehle für bestimmte Funktionen zu erstellen. Diese „Befehle“werden per SMS von einem Mobiltelefon gesendet.

SMS-Controller-Empfangsbefehle:

o1:1 - Ausgang 1 einschalten

o1:0 - Ausgang 1 ausschalten

o1:p - Impulsausgang 1 Ein, dann ausschalten

o2:1 - Ausgang 2 einschalten

o2:0 - Ausgang 2 ausschalten

o2:p - Impulsausgang 2 Ein, dann ausschalten

o3:1 - Ausgang 3 einschalten

o3:0 - Ausgang 3 ausschalten

o3:p - Impulsausgang 3 Ein, dann ausschalten

o4:1 - Ausgang 4 einschalten

o4:0 - Ausgang 4 ausschalten

o4:p - Impulsausgang 4 Ein, dann ausschalten

???? - Status der Ein- und Ausgänge abfragen

#### - System zurücksetzen

Für Rückmeldungen sollte der SMS Controller auf die empfangenen Befehle reagieren und mit einer SMS antworten. Ich entschied, dass diese Antwort-SMS den Status aller I/O-Pins enthalten sollte.

Antwortbefehle des SMS-Controllers:

i1:x i2:x i3:x i4:x o1:x o2:x o3:x o4:x

wobei x der E/A-Status ist, 1 für Ein, 0 für Aus.

Schritt 2: Aufbau des SMS-Controllers

Aufbau des SMS-Controllers
Aufbau des SMS-Controllers
Aufbau des SMS-Controllers
Aufbau des SMS-Controllers
Aufbau des SMS-Controllers
Aufbau des SMS-Controllers

Benötigte Ausrüstung:

Jeder Arduino oder eigenständiger ATMEGA328p auf einem Steckbrett

SIM800L GSM/GPRS-Modul mit einer SIM-Karte, die SMS senden und empfangen kann

Step-Down-DC/DC-Wandler

HINWEIS !

Der DC/DC-Wandler wird zur Stromversorgung des SIM800L-Moduls benötigt. Dieses Modul arbeitet je nach Version zwischen 3,7 V und 5 V. Dieses Modul benötigt auch eine Stromversorgung, die bis zu 2A liefern kann, wenn das Modul Daten überträgt. Es kann nicht direkt vom Arduino Uno mit Strom versorgt werden !

Die Schaltung ist ganz einfach. Ich habe es zusammengebaut und auf Steckbrett getestet.

Die Stromversorgung der Schaltung erfolgt über den DC/DC-Wandler, wobei die Ausgangsspannung auf 4,5 V eingestellt ist. Es gibt vier LEDs zur Simulation der digitalen Ausgänge und vier Tasten für die digitalen Eingänge. Der SIM800L wird an die Rx/Tx-Pins des ATMEGA328p angeschlossen.

Eine 5. LED wird verwendet, um anzuzeigen, wenn das System mit dem Senden einer SMS beschäftigt ist.

Schritt 3: Programmierung des ATMEGA328p

Programmierung des ATMEGA328p
Programmierung des ATMEGA328p
Programmierung des ATMEGA328p
Programmierung des ATMEGA328p

Öffnen Sie vor dem Programmieren die INO-Datei und bearbeiten Sie die Telefonnummer. Ersetzen Sie xxxxxxxxxx in Zeile 46 durch Ihre eigene Mobilfunknummer. Kompilieren Sie die Datei erneut und laden Sie sie hoch.

Lesen Sie auch die Anweisungen zum Konfigurieren des seriellen Software-Ports in der INO-Datei.

//=============================================================================//

// ! ! ! HINWEIS ! ! !

// ================

//

// PUFFER IN DER SERIELLEN SOFTWAREBIBLIOTHEK WIRD AUF 200. GEÄNDERT

//

// Um Software Serial zu verwenden, sollte der Benutzer auch den Software Serial BUFFER auf 200 ändern.

// Dies muss in der folgenden Datei bearbeitet werden:

//

// C:/Programme/Arduino x.x.x/Hardware/Arduino/AVR/Libraries/SoftwareSerial/src/SoftWareSerial.h

//

// Ändern Sie den Puffer wie folgt:

//

// #ifndef_SS_MAX_RX_BUFF

// #define _SS_MAX_RX_BUFF 200

// RX-Puffergröße

// #endif

//

//=============================================================================

Beziehen Sie sich auf diese Anleitung, um den ATMEGA328p auf dem Steckbrett mit einem Arduino UNO zu programmieren.

www.instructables.com/id/Arduino-UNO-as-AtM…

Schritt 4: Verwenden des SMS-Controllers

Verwenden des SMS-Controllers
Verwenden des SMS-Controllers

Verwenden des SMS-Controllers

Der SMS Controller sendet automatisch eine SMS an Ihr Telefon, wenn einer der vier Eingänge ausgelöst wird. Die Details des Auslösers sind im SMS-Text enthalten.

Die SMS-Nachrichten und Befehle können in der INO-Datei nach Ihren Wünschen bearbeitet werden.

Testen der SMS-Controller-Ausgänge

Senden Sie von Ihrem Mobiltelefon die folgenden Befehle an Ihre SIM800L-Simkartennummer:

o1:1, dies schaltet Ausgang 1 ein.

Auf Ihrem Telefon erhalten Sie folgende SMS:

i1:0 i2:0 i3:0 i4:0 o1:1 o2:0 03:0 o4:0

01:0, dies schaltet Ausgang 1 aus.

Auf Ihrem Telefon erhalten Sie folgende SMS:

i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0

01:p, dadurch wird Ausgang 1 für 1 Sekunde eingeschaltet und dann Ausgang 1 wieder ausgeschaltet (gepulst).

Auf Ihrem Telefon erhalten Sie folgende SMS:

i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0

Testen der SMS-Controller-Eingänge

Am SMS Controller Taste 1 kurz drücken

Auf Ihrem Telefon erhalten Sie automatisch folgende SMS:

i1:1 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0

Am SMS Controller Taste 2 kurz drücken

Auf Ihrem Telefon erhalten Sie automatisch folgende SMS:

i1:1 i2:1 i3:0 i4:0 o1:0 o2:0 03:0 o4:0

Am SMS Controller Taste 3 kurz drücken

Auf Ihrem Telefon erhalten Sie automatisch folgende SMS:

i1:1 i2:1i3:1 i4:0 o1:0 o2:0 03:0 o4:0

Wie auf der empfangenen SMS zu sehen ist, ändern sich die Ausgänge entsprechend den empfangenen Befehlen. Die Eingänge wechseln jedoch nach dem Drücken der Tasten nicht von 1 auf 0 zurück. Da ich Änderungen an den Eingängen sehen wollte, habe ich mich entschieden, den Eingangsstatus zu versiegeln, bis ein Reset-Befehl an den SMS-Controller gesendet wird.

Alarme zurücksetzen

Um den Eingangsstatus zurückzusetzen, senden Sie den folgenden Befehl:

####, dadurch wird der Eingangsstatus zurückgesetzt.

Auf Ihrem Telefon erhalten Sie folgende SMS:

i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0

Status Updates

Sie können den Status auch jederzeit durch Senden des folgenden Befehls abfragen:

????, wird eine Statusaktualisierung der I/Os angefordert.

Auf Ihrem Telefon erhalten Sie folgende SMS:

i1:x i2:x i3:x i4:x o1:x o2:x 03:x o4:x

wobei x den Status angibt, 1 für ein, 0 für aus.

Schritt 5: Android-Anwendung

Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung
Android-Anwendung

Mit MIT App Inventor 2 (https://ai2.appinventor.mit.edu/) habe ich eine einfache Benutzeroberfläche für mein Android-Handy erstellt. Mit dieser App können Sie die Beschreibung jedes E/A anpassen. Es ermöglicht auch die Eingabe der Telefonnummer.

Die vier Schaltflächen dienen zur Steuerung der Ausgänge, während die Kontrollkästchen den Eingangsstatus anzeigen.

Um die App zu bearbeiten, erstellen Sie ein MIT App Inventor 2-Konto und importieren Sie die AIA-Datei.

Um die App auf Ihrem Telefon zu installieren, kopieren Sie die APK-Datei auf Ihr Telefon und installieren Sie sie. Sie müssen die Installation von Apps aus "Unbekannten Quellen" in den Sicherheitseinstellungen Ihres Telefons aktivieren.

Empfohlen: