Relais schakelen met SMS

Vandaag hun klanten in Frankrijk heeft de aandacht van ons naar een interessant project. We hadden al zelf bijdragen met slimme woning bezetten, aldus z.b. De slimme woning hoofdkwartier van Lechner ook Gerald of OpenHAB waar we nu al mee voor de verpakking hebben geïnstalleerd. Vandaag komen wij met een eenvoudige staan Allone te projecteren voor je slimme woning. We ruilen via SMS doorgeven aan / uit het vizier.

We moeten dus:

UnoR3/MEGA
SIM900 gsm schild
Relais module
Externe stroom
SIM card (activeert en zonder PIN)

Eerst nemen we onze gsm schild Inbetrieb, dat wil zeggen banden, potlood soldeer houden vanuit de lucht op, SIM kaart lezen. In het kader van levering van onze schilden adaptor kaarten zijn opgenomen voor de verschillende formaten SIM :-)

Als het potlood gesoldeerde stroken zijn doe je binnenkort op je schild Arduino om te zien hoe op de foto:

Op de proef van het bedrijf komt in na de onze E-Book Aan het werk om alle die moet gaan als het fungeerde ook als. We zetten beide truien in de buurt, dus dat het schild seriële werken over software en blijft onze serie hardware los voor de monitor van de serie ArduinoIDE.

Volg je ook voor het schild een externe stroomvoorziening nodig er maximaal 2 bis, dit kan bewegen.

Over te schakelen op het schild, je moet druk op de sleutel gemarkeerd met ben PWR, aan de andere kant leidde zowel schitteren. Toen het boek op een schild voor zichzelf in het net.
Pin is de toewijzing snel uitgelegd, 6-9 Pin worden ingevoerd, door het schild, de andere pennen van de durchgeroutet UnoR3 geworden. Dus ook voor Pin12 ons hoge niveau module relay.

Hier onze code:

 

Software bibliotheek //include serie te communiceren met GSM
# include <SoftwareSerial.H>

Software //configure seriële poort
SoftwareSerial SIM900(7, 8);

Bewaart u //variables sms
String SMS;

Een variabele //create bewaart u staat estafette
String lampState = "Hoog";

Pin //relay verbonden met 12
const int Estafette = 12;

Leegte Valstrik() {   //Automatically turnt op het schild   digitalWrite(9, HOGE);   Vertraging(1000);   digitalWrite(9, LAAG);   Vertraging(3000);      Ace //set estafette OUTPUT   pinMode(Estafette, OUTPUT);   //By standaard is de relais uit het vizier   digitalWrite(Estafette, LAAG);      Seriële //initializing commmunication   Serie.beginnen(9600);    SIM900.beginnen(2400);   //Give tijd voor je schild op GSM loog om te netwerken   Vertraging(20000);   Serie.Afdrukken("SIM900 gereed.");   Vertraging(100);   //AT commando te stellen op SMS SIM900 mode   SIM900.Afdrukken("Op = CMGF 1\r");    Vertraging(100);   //Set modules te sturen SMS naar serieuze gegevens uit na ontvangst    SIM900.Afdrukken("Op = CNMI 2.2,0.0,0\r");   Vertraging(100);
}

Leegte Lus(){   Als(SIM900.beschikbaar()>0){     SMS = SIM900.Lezen is string();     Serie.Afdrukken(SMS);         Vertraging(10);   }    Als(SMS.indexOf("ON")>=0){     Gymnastiek //do van transmissie redden en stand     digitalWrite(Estafette, HOGE);     lampState = "on";     Serie.println("relais op ingesteld op");       SMS = "";      }   Als(SMS.indexOf("Uit het vizier")>=0){     Gymnastiek //do uit het vizier relais en huidige stand redden     digitalWrite(Estafette, LAAG);     lampState = "uit het vizier";      Serie.println("relay ingesteld op uit het vizier");     SMS = "";    }   Als(SMS.indexOf("Staat")>=0){     String Boodschap = "Relais is" + lampState;     sendSMS(Boodschap);     Serie.println("Resquest Relais");     SMS = "";   }
}   Dat //function stuurt SMS
Leegte sendSMS(String Boodschap){   //AT commando te stellen op SMS SIM900 mode   SIM900.Afdrukken("Op = CMGF 1\r");    Vertraging(100);   //MOBILE vervangen de X is er met de ontvanger 'S nummer   Internationaal formaat //use CODE voor 49 mobiele nummers is Duitsland   SIM900.println("Op = CMGS\" 49\ "" 5 jaar in de toekomst.);    Vertraging(100);   De //send SMS   SIM900.println(Boodschap);    Vertraging(100);   //AT commando met een ^ Z, ASCII code 26   SIM900.println((char)26);    Vertraging(100);   SIM900.println();   //Give modules moeten sturen SMS   Vertraging(5000);   }

 

Als Duitsland veroorzaakt het EU-land met de meeste mobiele radio vergoedingen, de oplossing is niet bedoeld als een wondermiddel er volgens contract een SMS met 10ct aan. Uw account geladen. Niettemin, voor de pomp mijn tuin bij de toewijzing in het volgende dorp de oplossing is een ideaal, als ik het een keer qua tijd niet tot stand brengen te gieten om te gaan.

Veel plezier met het knoeiwerk; -)

Für arduinoProjekte für anfängerSmart home

10 Kommentare

HansiEdi

HansiEdi

Noch eine kleine info, haltet euch bitte immer an das Datenblatt, das gilt auch für die Spannungsversorgung.
Wenn Ihr das Modul mit einem Akku betreibt ist ein Kondensator mit 100µF empfehlenswert, wenn Ihr aber stattdessen eine andere geregelte Spannungsquelle verwendet, verwendet doch wie im Datenblatt empfohlen einen Low ESR 1000µF Elko, damit gibt es keine Probleme mit Spannungseinbrüchen die einen ungewollten Reset des Moduls auslösen.
Ich habe meinen 1000µF Kondensator direkt an das Modul gelötet und mit einem Oszilloskop überprüft.

LG

HansiEdi

HansiEdi

Guten Tag,

ich finde es sehr schade dass der Autor den Programmcode mit Fehler anbietet.
1. der Charakter String muss auf GSM gesetzt werden.
SIM900.println(“AT+CSCS=\”GSM\"");
delay(100);

der Befehl wird nach (“AT+CMGF=1\r”) übermittelt

2. wie bereits schon Ernst geschrieben hat müssen beim übergeben der Empfängernummer die Leerzeichen aus dem Code entfernt werden.
SIM900.println(“AT+CMGS=\”+43XXXXXXXXXX\"");

Ich habe zudem alle Timings erhöht, erst mal für Probezwecke.

Nun funktioniert der Programmcode mit meinem Neoway M590E Modul.

Lg Hans

michael

michael

Hallo
Habe die Schaltung mit SIM800 nachgebaut, funktioniert soweit gut, sendet aber keine SMS. Vielleicht gibts doch kleine Unterschiede und könnte mir dabei helfen.

Ernst

Ernst

Vielen Dank, hat mir sehr geholfen!
Das Senden der SMS hat bei mir aber erst funktioniert, nachdem ich die Leerzeichen aus dem String herausgenommen habe:
Also statt
SIM900.println(“AT + CMGS = \”49XXXXXXXX\"");
Jetzt
SIM900.println("ATCMGS=\“+49XXXXXXXX\”");

Viele Grüße

Horst

Horst

Hallo,

vielen Dank für den Hinweis und die gute Beschreibung. Leider ist das PDF nicht mehr verfügbar (https://bibliothek.az-delivery.de/wp-content/uploads/2018/01/16-AZ-Delivery_GPRS-Shield_Startertutorial-deutsch.pdf). Hat jemand zu das noch zufällig?

Beste Grüße

Christos

Christos

Guten Morgen zusammen!
Ich würde gerne um Euren Support bzw Eure Meinung bitten.
Ich würde gerne das obere Projekt nachbauen allerdings müsste ich 8 Schaltkreise per SMS einzeln Ein-, bzw Ausschalten. Die Schaltkreise werden zur Ohm Messung zwecks Fehlersuche in Kunststoff-Mantel-Rohre gebraucht.
Würde mich über Eure Antworten freuen!

Mit freundlichem Gruß
Chris

Christian Zittier

Christian Zittier

Super Sache funktioniert eigentlich ohne Probleme,
aber ich musste die delay von 100 auf 1000 erhöhen vorher ging es nicht und der on pin (9) schaltet sich zwar auf high aber Sim900 startet nicht der reset pin (6) funktioniert.

Es sollte sich bei Stromausfall durch die Konfiguration mit pin 9 doch auf on gehen ?
Ist dieses Problem bekannt? Oder bin ich nur zu Blöd?

Wolfgang Noel

Wolfgang Noel

Eine Frage an die Spezialisten: Wenn ich den Arduino Uno mit SIM900 laut E-Book https://bibliothek.az-delivery.de/wp-content/uploads/2018/01/16-AZ-Delivery_GPRS-Shield_Startertutorial-deutsch.pdf in Betrieb nehme, funktioniert alles super. Wenn ich den obigen Code nehme (natürlich mit geänderter Rufnummer), läuft das Programm ohne Fehlermeldung durch, es wird aber keine SMS gesendet bzw. empfangen. Natürlich tut sich beim Relais auch nichts. Muss hierfür eine andere Bibliothek verwendet werden. Ich nutze die https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield
SIM900 und Uno sind laut E-Book verbunden. Über einen Tip wäre ich dankbar. VG Wolfgang

Maik

Maik

Interessant Wäre ja noch den Status im EPROM zu speichern falls stom mal aus ist oder ein Resett ausgelöst wird !

Thomas

Thomas

Klasse. Besten Dank für die Veröffentlichung

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Aanbevolen blog berichten

  1. Installeer ESP32 nu van de raad van bestuur
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmeren via Wi-Fi