SMS ovladač založený na SIM800L
SIM800L V2.0 GSM/GPRS je čtyřpásmový modul GSM/GPRS kompatibilní s Arduino. Modul slouží k implementaci funkcí GSM (volání a SMS) a GPRS. Výhodou tohoto modulu je TTL rozhraní, které má napětí 5V, což umožňuje přímé připojení k Arduinu nebo jinému systému s napájecím napětím 5V. Většina modulů GSM/GPRS na trhu vyžaduje připojení regulátoru nebo konverzi úrovně, zatímco v SIM800L V.2 GSM/GPRS nevyžaduje další obvody pro konverzi úrovně rozhraní.
Uveďme příklad projektu využívajícího SIM800L V.2 GSM/GPRS. Smyslem projektu je ovládání spínačů pomocí SMS ovladače. Většinu domácích spotřebičů v domě, jako je lama, ventilátor a podobně, můžete snadno zapnout a vypnout.
Charakteristika modulu SIM800L V.2 GSM/GPRS
Níže jsou uvedeny všechny technické vlastnosti modulu SIM800L V.2 GSM/GPRS:
- Sériové rozhraní TTL kompatibilní s 3,3V a 5V kompatibilními mikrokontroléry Arduino.
- Modul SIM800L má sériové rozhraní TTL.
- Zástrčka pro připojení antény.
- Podpora sítě: čtyři pásma 850/900/1800/1900 MHz, schopná volat, SMS a datové přenosy s výrazně sníženou spotřebou baterie.
- Rozhraní VDD TTL UART, takže můžete přímo připojit MCU, jako je 51MCU, ARM nebo MSP430.Zástrčka VDD se používá k přizpůsobení napětí TTL.
- Model: SIMCOM SIM800L
- Provozní napětí: od 3,7V do 5V;
- rozměry: 40 mm x 28 mm x 3 mm
- GPRS multislot třídy 12/10
- Paketová služba GPRS třídy B
- Vyhovuje GSM fázi 2/2+
- Třída 4 (2 Watt při 850/900 MHz)
- Třída 1 (1 Watt @ 1800/1900 MHz)
Potřebné materiály
Budeš potřebovat:
1. SIM800L V.2 GSM/GPRS modul.
2. Arduino Uno.
3. 4kanálový 5V reléový modul.
4. Dráty - propojky.
5. Napájení 5V.
(aktivní odkazy na obchod pro nákup)
Montáž a konfigurace
Jakmile připojíte všechny komponenty, vytvořte program a poté jej nahrajte do svého Arduina. Nejprve však musíte nainstalovat knihovnu GPRS, kterou si můžete stáhnout:
gprs.zip
[28,02 Kb] (stažení: 887)
Programový kód pro Arduino
Jakmile připojíte SIM800L, 4kanálový reléový modul a Arduino k počítači, zadejte níže uvedený kód a máte hotovo.
#zahrnout
#zahrnout
#define TIMEOUT 5000
#define AKTIVNÍ NÍZKÁ
#define OFF HIGH
byte Relay[] = {A0,A1,A2,A3};
byte StatRelay[4];
char buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
String replyNumber = "089510863958";
GPRS gprs;
void setup() {
for(int i=0; i < 4; i++) {
pinMode(Relay[i] , OUTPUT);
digitalWrite(Relay[i], MATI);
StatRelay[i] = MATI;
}
Serial.begin(9600);
while(!Seriál);
Serial.println("Aktivovat SIM800L V2 >>> Automaticky číst SMS");
gprs.preInit();
zpoždění(1000);
while (0 != gprs.init()) {
zpoždění(1000);
Serial.print("init errorrn");
}
// Správa zprávy do režimu ASCII
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", ČASOVÝ LIMIT)) {
ERROR("CHYBA:CNMI");
vrátit se;
}
// Čtení příchozích SMS
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", ČASOVÝ LIMIT)) {
ERROR("CHYBA:CNMI");
vrátit se;
}
int pjg = replyCislo.length() + 1;
buffNumber[pjg];
answerNumber.toCharArray(buffNumber,pjg);
Serial.print("Odeslat odpověď na číslo => ");
Serial.println(buffNumber);
Serial.println("Inicializace dokončena");
Serial.println("============================================== =================================");
}
void loop() {
// Změna stavu relé ZAP / VYP
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}
// Pokud existují vstupní data ze SIM800
if (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();
// Uložte všechna data na lastCharRead, pak pokud je r nebo n, jako konečný signál příchozí zprávy
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = String(currentLine);
// Pokud poslední zpráva +CMT indikuje příchod nové zprávy
if (lastLine.startsWith("+CMT:")) {
Serial.println(lastLine);
nextLineIsMessage = true;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(lastLine);
// ================================================== ==== ================>> Funkce reléového ovladače
//Řadič relé 1
if (lastLine.indexOf("Relé 1 ON") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 1 aktivní");
gprs.sendSMS(buffNumber, "Stav relé 1 aktivní");
}
else if (lastLine.indexOf("Relé 1 VYPNUTO") >= 0) {
StatRelay[0] = MATI;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 1 vypnutý");
gprs.sendSMS(buffNumber, "Stav relé 1 vypnuto");
}
//Řadič relé 2
if (lastLine.indexOf("Relé 2 ON") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 2 aktivní");
gprs.sendSMS(buffNumber, "Stav relé 2 aktivní");
}
else if (lastLine.indexOf("Relé 2 VYP") >= 0) {
StatRelay[1] = MATI;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 2 vypnutý");
gprs.sendSMS(číslo buff, "Stav relé 2 vypnuto");
}
//Řadič relé 3
if (lastLine.indexOf("Relé 3 ON") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 3 aktivní");
gprs.sendSMS(buffNumber, "Stav relé 3 aktivní");
}
else if (lastLine.indexOf("Relé 3 VYPNUTO") >= 0) {
StatRelay[2] = MATI;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 3 vypnutý");
gprs.sendSMS(číslo buff, "Stav relé 3 vypnuto");
}
//Řadič relé 4
if (lastLine.indexOf("Relé 4 ON") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 4 aktivní");
gprs.sendSMS(buffNumber, "Stav relé 1 aktivní");
}
else if (lastLine.indexOf("Relé 4 VYP") >= 0) {
StatRelay[3] = MATI;
Serial.print("Odpovědět====>>>>");
Serial.println("Stav relé 4 vypnutý");
gprs.sendSMS(číslo buff, "Stav relé 4 vypnuto");
}
nextLineIsMessage = false;
}
// ================================================== ==== ====================>>
}
//Vymazat pole znaků pro další řádek čtení
for ( int i = 0; i < sizeof(currentLine); ++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
}
jinak {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}
Kontrola zařízení
Nástroj funguje tak, že na SIM800L odešle SMS se specifickou sekvencí znaků. Například pro zapnutí relé 1 použijte příkaz „Relé 1 ON“ a pro jeho vypnutí použijte příkaz „Relay 1 OFF“. U zbývajících relé jsou příkazy téměř stejné, s výjimkou pořadového čísla každého relé, které chcete ovlivnit. Po automatickém odeslání zprávy SIM800 odešle odpověď ve formě zprávy o stavu každé SIM karty.
Video montáže, konfigurace a testování zařízení
Původní článek v angličtině
Podobné mistrovské kurzy
Zvláště zajímavé
Komentáře (4)