SIM800L põhinev SMS-kontroller

Pin
Send
Share
Send


SIM800L V2.0 GSM / GPRS on neljaribaline GSM / GPRS moodul, mis ühildub Arduinoga. Moodulit kasutatakse GSM (kõned ja SMS) ning GPRS funktsioonide rakendamiseks. Selle mooduli eeliseks on TTL-liides pingega 5V, mis võimaldab teil selle otse ühendada Arduino või mõne muu 5V toiteallikaga süsteemiga. Enamik turul olevaid GSM / GPRS-mooduleid vajavad regulaatori ühendusi või taseme muundamist, samas kui SIM800L V.2 puhul ei vaja GSM / GPRS täiendavaid liidese taseme muundamise ahelaid.
Siin on näidisprojekt, milles kasutatakse SIM800L V.2 GSM / GPRS. Projekti mõte on lülitite juhtimine SMS-kontrolleri abil. Saate hõlpsasti sisse lülitada ja välja lülitada enamiku maja kodumasinaid, näiteks laama, ventilaatori jne.

GSM / GPRS-mooduli SIM800L V.2 omadused


Allpool on esitatud kõik GSM / GPRS-mooduli SIM800L V.2 tehnilised andmed:
  • TTL jadaliides ühildub 3,3 V ja 5 V mikrokontrolleritega, mis ühilduvad Arduinoga.
  • Moodulil SIM800L on jada TTL-liides.
  • Antenni pistik
  • Võrgu tugi: neli sagedusriba 850/900/1800/1900 MHz, mis võimaldavad märkimisväärselt vähendatud aku tarbimisega helistada, SMS-e ja andmeedastust edastada.
  • VDD TTL UART-liides, nii et saate otse ühendada MCU, näiteks 51MCU, ARM või MSP430. VDD-pistik, mida kasutatakse TTL-i pinge sobitamiseks.
  • Mudel: SIMCOM SIM800L
  • Tööpinge: alates 3,7 V kuni 5 V;
  • mõõtmed: 40mm x 28mm x 3mm
  • GPRS multislot klass 12/10
  • GPRS-pakiteenuse klass B
  • Vastab GSM faasile 2/2 +
  • 4. klass (2 vatti @ 850/900 MHz)
  • 1. klass (1 W @ 1800/1900 MHz)

Vajalikud materjalid


Te vajate:


1. GSM / GPRS-moodul SIM800L V.2.
2. Arduino Uno.
3. 4-kanaliline 5-voldine releemoodul.
4. Juhtmed - džemprid.
5. Toiteallikas 5 V
(Aktiivsed poe lingid ostmiseks)

Kokkupanek ja konfiguratsioon


Kui olete kõik komponendid ühendanud, looge programm ja laadige see oma Arduinole alla. Kuid kõigepealt peate installima GPRS-teegi, mille saate alla laadida:
gprs.zip 28,02 Kb (allalaadimised: 509)

Programmi kood Arduino jaoks


Kui olete oma SIM800L, 4-kanalilise releemooduli ja Arduino arvutiga ühendanud, sisestage allolev kood ja oletegi valmis.
# hõlmama # hõlmama #defineerima TIMEOUT 5000 #defineeri aktiivne madal #defineeri OFF HIGH baiti relee = {A0, A1, A2, A3}; bait StatRelay4; char buffNumber20; char currentLine500 = ""; int currentLineIndex = 0; bool nextLineIsMessage = vale; Stringi vastusnumber = "089510863958"; GPRS GPRS-id; void setup () {jaoks (int i = 0; i >> SMS-i automaatne lugemine "); gprs.preInit (); viivitus (1000); samas (0! = gprs.init ()) {viivitus (1000); jada .print ("init errorrn");} // Halda sõnumit režiimi ASCII, kui (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {ERROR ("ERROR: CNMI") ; tagasi;} // Loe saabuvat SMS-i, kui (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {ERROR ("VIGA: CNMI") ; tagastamine;} int pjg = vastusNumber.length () + 1; buffNumberpjg; repliiknumber.toCharArray (buffNumber, pjg); Serial.print ("Saada vastus numbrile =>"); Serial.println (buffNumber); Serial.println ("Initsialiseerimine tehtud"); Serial.println ("====================================== ========================))} void loop () {// Muutke oleku relee sisse / välja lülitamiseks (int i = 0; i 0) {if (nextLineIsMessage) {Serial.println (lastLine); // =================================== ============================== >> Releekontrolleri funktsioon // 1. relee kontroller, kui (lastLine.indexOf ("Relay 1 ON") ")> = 0) {StatRelay0 = AKTIF; Serial.print ("Vasta ==== >>>>"); Serial.println ("1. relee olek aktiivne"); gprs.sendSMS (buffNumber, "1. relee olek aktiivne"); } else if (lastLine.indexOf ("Relay 1 OFF")> = 0) {StatRelay0 = MATI; Serial.print ("Vasta ==== >>>>"); Serial.println ("1. relee olek välja lülitatud"); gprs.sendSMS (buffNumber, "1. relee olek välja lülitatud"); } // 2. relee kontroller, kui (lastLine.indexOf ("relee 2 ON")> = 0) {StatRelay1 = AKTIF; Serial.print ("Vasta ==== >>>>"); Serial.println ("2. relee olek aktiivne"); gprs.sendSMS (buffNumber, "2. relee olek aktiivne"); } else if (lastLine.indexOf ("Relay 2 OFF")> = 0) {StatRelay1 = MATI; Serial.print ("Vasta ==== >>>>"); Serial.println ("2. relee olek välja lülitatud"); gprs.sendSMS (buffNumber, "2. relee olek välja lülitatud"); } // 3. relee kontroller, kui (lastLine.indexOf ("Relay 3 ON")> = 0) {StatRelay2 = AKTIF; Serial.print ("Vasta ==== >>>>"); Serial.println ("3. relee olek aktiivne"); gprs.sendSMS (buffNumber, "3. relee olek aktiivne"); } else if (lastLine.indexOf ("Relay 3 OFF")> = 0) {StatRelay2 = MATI; Serial.print ("Vasta ==== >>>>"); Serial.println ("3. relee olek välja lülitatud"); gprs.sendSMS (buffNumber, "3. relee olek välja lülitatud"); } // Relay 4 kontroller, kui (lastLine.indexOf ("Relay 4 ON")> = 0) {StatRelay3 = AKTIF; Serial.print ("Vasta ==== >>>>"); Serial.println ("4. relee olek aktiivne"); gprs.sendSMS (buffNumber, "1. relee olek aktiivne"); } else if (lastLine.indexOf ("Relay 4 OFF")> = 0) {StatRelay3 = MATI; Serial.print ("Vasta ==== >>>>"); Serial.println ("4. relee olek välja lülitatud"); gprs.sendSMS (buffNumber, "Relay 4 Status Off"); } nextLineIsMessage = vale; } // ================================================ ==================== >>} // Järgmise lugemisrea tühjendatud sümbolimass (int i = 0; i <sizeof (currentLine); ++ i) {currentLinei = (char) 0; } currentLineIndex = 0; } else {currentLinecurcurrentLineIndex ++ = lastCharRead; }}}

Seadme kontroll


Tööriist töötab SMS-ide saatmisega SIM800L-le kindla tähemärgiseeriaga. Näiteks relee 1 lubamiseks kasutage käsku "Relay 1 ON" ja selle väljalülitamiseks käsku "Relay 1 OFF". Ülejäänud releedel on peaaegu samad käsud, välja arvatud iga relee seerianumber, millel soovite tegutseda. Pärast automaatse sõnumi saatmist saadab SIM800 vastuse olekuteatena iga SIM-kaardi kohta.

Video kokkupanek, konfigureerimine ja seadme kinnitamine



Algne artikkel inglise keeles

Pin
Send
Share
Send