Share
Pin
Tweet
Send
Share
Send
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 rozhraní TTL s napětím 5 V, které vám umožňuje přímé připojení k Arduino nebo jinému systému s napájením 5 V. Většina modulů GSM / GPRS na trhu vyžaduje připojení regulátoru nebo převod úrovně, zatímco u SIM800L V.2 GSM / GPRS nevyžaduje další obvody převodu na úrovni rozhraní.
Zde je příklad projektu využívajícího SIM800L V.2 GSM / GPRS. Smyslem projektu je ovládat přepínače pomocí SMS kontroleru. Můžete snadno zapnout a vypnout většinu domácích spotřebičů v domě, jako je například lama, ventilátor atd.
Vlastnosti modulu GSM / GPRS SIM800L V.2
Níže jsou uvedeny všechny technické specifikace modulu SIM800L V.2 GSM / GPRS:
- Sériové rozhraní TTL kompatibilní s mikrokontroléry 3.3V a 5V kompatibilními s Arduino.
- Modul SIM800L má sériové rozhraní TTL.
- Zástrčka antény
- Podpora sítě: čtyři pásma 850/900/1800/1900 MHz, schopná volat, SMS a datových přenosů s výrazně sníženou spotřebou baterie.
- Rozhraní UDD TTL UART, takže můžete přímo připojit MCU, jako je 51MCU, ARM nebo MSP430. Zástrčka VDD použitá pro přizpůsobení napětí TTL.
- Model: SIMCOM SIM800L
- Pracovní napětí: od 3,7 V do 5 V;
- rozměry: 40 mm x 28 mm x 3 mm
- GPRS multislot třída 12/10
- GPRS Batch Service Class B
- Odpovídá fázi GSM 2/2 +
- Třída 4 (2 watty @ 850/900 MHz)
- Třída 1 (1 Wat @ 1800/1900 MHz)
Požadované materiály
Budete potřebovat:
1. Modul SIM800L V.2 GSM / GPRS.
2. Arduino Uno.
3. 4-kanálový 5-voltový reléový modul.
4. Dráty - propojky.
5. Napájení 5 V.
(Aktivní odkazy na obchod pro nákup)
Montáž a konfigurace
Po připojení všech součástí vytvořte program a stáhněte si jej do svého Arduina. Nejprve však musíte nainstalovat knihovnu GPRS, kterou si můžete stáhnout:
gprs.zip 28,02 Kb (počet stažení: 509)
Programový kód pro Arduino
Po připojení SIM800L, 4-kanálového reléového modulu a Arduina k počítači zadejte níže uvedený kód a máte hotovo.
#include #include #define TIMEOUT 5000 #define AKTIVNÍ NÍZKÉ #define VYP VYSOKÝ bajt Relé = {A0, A1, A2, A3}; byte StatRelay4; char buffNumber20; char currentLine500 = ""; int currentLineIndex = 0; bool nextLineIsMessage = false; String answerNumber = "089510863958"; GPRS GPR; void setup () {for (int i = 0; i >> Automaticky číst SMS "); gprs.preInit (); delay (1000); while (0! = gprs.init ()) {delay (1000); Serial .print ("init errorrn");} // Správa zprávy do režimu ASCII, pokud (0! = gprs.sendCmdAndWaitForResp ("AT + CMGF = 1rn", "OK", TIMEOUT)) {ERROR ("ERROR: CNMI") ; return;} // Číst příchozí SMS, pokud (0! = gprs.sendCmdAndWaitForResp ("AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {ERROR ("CHYBA: CNMI") ; return;} int pjg = answerNumber.length () + 1; buffNumberpjg; answerNumber.toCharArray (buffNumber, pjg); Serial.print ("Odeslat odpověď na číslo =>"); Serial.println (buffNumber); Serial.println („Inicializace byla dokončena“); Serial.println („============================================ ========================))} void loop () {// Změna stavu Relé ON / OFF for (int i = 0; i 0) {if (nextLineIsMessage) {Serial.println (lastLine); // ======================================== ============================= >> Funkce reléového ovladače // Ovladač relé 1, pokud (lastLine.indexOf ("relé 1 ZAPNUTO") ")> = 0) {StatRelay0 = AKTIF; Serial.print („Odpovědět ==== >>>>“); Serial.println ("Stav relé 1 aktivní"); gprs.sendSMS (buffNumber, "Relay 1 Status Active"); } jinak if (lastLine.indexOf ("Relé 1 OFF")> = 0) {StatRelay0 = MATI; Serial.print („Odpovědět ==== >>>>“); Serial.println („Stav 1 stavu vypnuto“); gprs.sendSMS (buffNumber, "Relay 1 Status Off"); } // Řadič 2 relé, pokud (lastLine.indexOf ("Relé 2 ZAP")> = 0) {StatRelay1 = AKTIF; Serial.print („Odpovědět ==== >>>>“); Serial.println ("Stav relé 2 aktivní"); gprs.sendSMS (buffNumber, "Relay 2 Status Active"); } jinak if (lastLine.indexOf ("Relé 2 VYP")> = 0) {StatRelay1 = MATI; Serial.print („Odpovědět ==== >>>>“); Serial.println („Stav 2 relé vypnuto“); gprs.sendSMS (buffNumber, "Relay 2 Status Off"); } // Řadič 3 relé, pokud (lastLine.indexOf ("Relé 3 ON")> = 0) {StatRelay2 = AKTIF; Serial.print („Odpovědět ==== >>>>“); Serial.println ("Stav relé 3 aktivní"); gprs.sendSMS (buffNumber, "Relay 3 Status Active"); } jinak if (lastLine.indexOf ("Relé 3 OFF")> = 0) {StatRelay2 = MATI; Serial.print („Odpovědět ==== >>>>“); Serial.println ("Stav relé 3 vypnutý"); gprs.sendSMS (buffNumber, "Relay 3 Status Off"); } // Řadič 4 relé, pokud (lastLine.indexOf ("Relé 4 ZAP")> = 0) {StatRelay3 = AKTIF; Serial.print („Odpovědět ==== >>>>“); Serial.println ("Stav relé 4 aktivní"); gprs.sendSMS (buffNumber, "Relay 1 Status Active"); } jinak if (lastLine.indexOf ("Relé 4 OFF")> = 0) {StatRelay3 = MATI; Serial.print („Odpovědět ==== >>>>“); Serial.println ("Stav 4 stavu vypnuto"); gprs.sendSMS (buffNumber, "Relay 4 Status Off"); } nextLineIsMessage = false; } // ================================================ =====================} >>} // Vymazat pole char pro další řádek čtení pro (int i = 0; i <sizeof (currentLine); ++ i) {currentLinei = (char) 0; } currentLineIndex = 0; } else {currentLinecurcurrentLineIndex ++ = lastCharRead; }}}
Kontrola zařízení
Nástroj funguje tak, že odešle SMS na SIM800L se specifickou posloupností znaků. Například pro povolení relé 1 použijte příkaz „Relé 1 zapnuto“ a pro jeho vypnutí použijte příkaz „Relé 1 VYPNUTO“. Zbytek relé má téměř stejné příkazy, s výjimkou sériového čísla každého relé, se kterým chcete pracovat. Po automatickém odeslání zprávy odešle SIM800 odpověď ve formě stavové zprávy pro každou SIM kartu.
Sestavení videa, konfigurace a ověření zařízení
Původní článek v angličtině
Share
Pin
Tweet
Send
Share
Send