SMS-ohjain perustuu SIM800L

SIM800L V2.0 GSM/GPRS on Arduinon kanssa yhteensopiva nelikaistainen GSM/GPRS-moduuli. Moduulia käytetään GSM- (puhelut ja SMS) ja GPRS-toimintojen toteuttamiseen. Tämän moduulin etuna on TTL-liitäntä, jonka jännite on 5 V, jonka avulla voit kytkeä sen suoraan Arduinoon tai mihin tahansa muuhun järjestelmään, jossa on 5 V syöttöjännite. Useimmat markkinoilla olevat GSM/GPRS-moduulit vaativat säädinliitäntöjä tai tasonmuunnoksia, kun taas SIM800L V.2:ssa GSM/GPRS ei vaadi ylimääräisiä rajapintatason muunnospiirejä.
Otetaan esimerkki projektista, jossa käytetään SIM800L V.2 GSM/GPRS:ää. Projektin tarkoitus on ohjata kytkimiä SMS-ohjaimella. Voit helposti kytkeä päälle ja pois päältä useimmat kodin kodinkoneet, kuten laama, tuuletin ja niin edelleen.
SIM800L V.2 GSM/GPRS-moduulin ominaisuudet
Alla on kaikki SIM800L V.2 GSM/GPRS -moduulin tekniset ominaisuudet:
- TTL-sarjaliitäntä, joka on yhteensopiva 3,3 V:n ja 5 V:n Arduino-yhteensopivien mikro-ohjainten kanssa.
- SIM800L-moduulissa on TTL-sarjaliitäntä.
- Antenniliitäntäpistoke.
- Verkkotuki: neljä taajuutta 850/900/1800/1900 MHz, pystyvät soittamaan puheluita, tekstiviestejä ja tiedonsiirtoja huomattavasti pienemmällä akun kulutuksella.
- VDD TTL UART -liitäntä, joten voit liittää suoraan MCU:n, kuten 51MCU, ARM tai MSP430.VDD-pistoketta käytetään sovittamaan TTL-jännite.
- Malli: SIMCOM SIM800L
- Käyttöjännite: 3,7 V - 5 V;
- mitat: 40mm x 28mm x 3mm
- GPRS-monipaikkaluokka 12/10
- GPRS-pakettipalveluluokka B
- Yhteensopiva GSM-vaiheen 2/2+ kanssa
- Luokka 4 (2 wattia @ 850/900 MHz)
- Luokka 1 (1 watti @ 1800/1900 MHz)
Tarvittavat materiaalit

Sinä tulet tarvitsemaan:
1. SIM800L V.2 GSM/GPRS-moduuli.
2. Arduino Uno.
3. 4-kanavainen 5V relemoduuli.
4. Johdot - jumpperit.
5. Virtalähde 5V.
(Aktiiviset linkit kauppaan ostettavaksi)
Kokoonpano ja konfigurointi

Kun olet yhdistänyt kaikki komponentit, luo ohjelma ja lataa se sitten Arduinoosi. Mutta ensin sinun on asennettava GPRS-kirjasto, jonka voit ladata:
gprs.zip
[28,02 Kb] (lataukset: 887)
Ohjelmakoodi Arduinolle

Kun olet liittänyt SIM800L:n, 4-kanavaisen relemoduulin ja Arduinon tietokoneeseen, syötä alla oleva koodi ja olet valmis.
#sisältää
#sisältää
#define TIMEOUT 5000
#define ACTIVE LOW
#define OFF HIGH
tavuvälitys[] = {A0,A1,A2,A3};
tavu StatRelay[4];
char buffNumber[20];
char currentLine[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;
Merkkijono 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(!Serial);
Serial.println("Aktivoi SIM800L V2 >>> Lue tekstiviestit automaattisesti");
gprs.preInit();
viive (1000);
while (0 != gprs.init()) {
viive (1000);
Serial.print("init errorrn");
}
// Hallitse viestiä ASCII-tilaan
if (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "OK", TIMEOUT)) {
VIRHE("VIRHE:CNMI");
palata;
}
// Lue saapuvat tekstiviestit
if (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "OK", TIMEOUT)) {
VIRHE("VIRHE:CNMI");
palata;
}
int pjg = vastausNumber.length() + 1;
buffNumber[pjg];
vastausNumber.toCharArray(buffNumber,pjg);
Serial.print("Lähetä vastaus numeroon => ");
Serial.println(buffNumber);
Serial.println("Alustus valmis");
Serial.println("============================================== =============== =================");
}
void loop() {
// Muuta tilaa Rele ON / OFF
for(int i=0; i < 4; i++) {
digitalWrite(Relay[i], StatRelay[i]);
}
// Jos SIM800:lta on syöttödataa
if (gprs.serialSIM800.available()) {
char lastCharRead = gprs.serialSIM800.read();
// Tallenna kaikki tiedot lastCharReadiin ja jos on r tai n, saapuvan viestin viimeisenä signaalina
if (lastCharRead == 'r' || lastCharRead == 'n') {
String lastLine = Merkkijono(nykyinen rivi);
// Jos viimeinen viesti +CMT osoittaa uuden viestin saapuvan
if (lastLine.startsWith("+CMT:")) {
Serial.println(lastLine);
nextLineIsMessage = tosi;
} else if (lastLine.length() > 0) {
if (nextLineIsMessage) {
Serial.println(lastLine);
// ================================================== ==== ================>> Releohjaimen toiminta
//Rele 1 -ohjain
if (lastLine.indexOf("Rele 1 PÄÄLLÄ") >= 0) {
StatRelay[0] = AKTIF;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 1 Status Active");
gprs.sendSMS(buffNumber, "Relay 1 Status Active");
}
else if (lastLine.indexOf("Relay 1 OFF") >= 0) {
StatRelay[0] = MATI;
Serial.print("Vastaa====>>>> ");
Serial.println("Rele 1 Status Off");
gprs.sendSMS(buffNumber, "Relay 1 Status Off");
}
//Rele 2 -ohjain
if (lastLine.indexOf("Rele 2 PÄÄLLÄ") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 2 Status Active");
gprs.sendSMS(buffNumber, "Relay 2 Status Active");
}
else if (lastLine.indexOf("Relay 2 OFF") >= 0) {
StatRelay[1] = MATI;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 2 Status Off");
gprs.sendSMS(buffNumber, "Relay 2 Status Off");
}
//Rele 3 -ohjain
if (lastLine.indexOf("Rele 3 PÄÄLLÄ") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 3 Status Active");
gprs.sendSMS(buffNumber, "Relay 3 Status Active");
}
else if (lastLine.indexOf("Relay 3 OFF") >= 0) {
StatRelay[2] = MATI;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 3 Status Off");
gprs.sendSMS(buffNumber, "Relay 3 Status Off");
}
//Rele 4 -ohjain
if (lastLine.indexOf("Rele 4 PÄÄLLÄ") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 4 Status Active");
gprs.sendSMS(buffNumber, "Relay 1 Status Active");
}
else if (lastLine.indexOf("Relay 4 OFF") >= 0) {
StatRelay[3] = MATI;
Serial.print("Vastaa====>>>> ");
Serial.println("Relay 4 Status Off");
gprs.sendSMS(buffNumber, "Relay 4 Status Off");
}
nextLineIsMessage = false;
}
// ================================================== ==== ====================>>
}
//Tyhjennä char-taulukko seuraavaa lukuriviä varten
for ( int i = 0; i < koko(nykyisen rivin); ++i ) {
nykyinen rivi[i] = (merkki)0;
}
nykyinenLineIndex = 0;
}
else {
nykyinenLine[nykyinenLineIndex++] = lastCharRead;
}
}
}
Laitteen tarkistus

Työkalu toimii lähettämällä SMS-viestin SIM800L:lle tietyllä merkkijonolla. Esimerkiksi kytkeäksesi releen 1 päälle, käytä "Relay 1 ON" -komentoa ja sammuttaaksesi sen käyttämällä "Relay 1 OFF" -komentoa. Muiden releiden komennot ovat lähes samat, lukuun ottamatta kunkin releen järjestysnumeroa, johon haluat vaikuttaa. Viestin automaattisen lähettämisen jälkeen SIM800 lähettää vastauksen viestin muodossa kunkin SIM-kortin tilasta.
Video laitteen kokoamisesta, konfiguroinnista ja testauksesta
Alkuperäinen artikkeli englanniksi
Samanlaisia mestarikursseja
Erityisen mielenkiintoista
Kommentit (4)