Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.39 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. SoftwareSerial gsm(7, 8); // Piny 2 i 3 do komunikacji z SIMxxx
  4.  
  5. String atCommand;
  6. String numerTelefonu;
  7. String trescSMS;
  8.  
  9. void setup()  
  10. {
  11.   pinMode(9, OUTPUT);
  12.   digitalWrite(9, HIGH);
  13.   delay(500);
  14.   digitalWrite(9, LOW);
  15.  
  16.   // Ustawiamy transmisje na 9600 bodow Arduino--PC
  17.   Serial.begin(9600);
  18.  
  19.   // Czekamy na inicjalizacje
  20.   while (!Serial) {}
  21.  
  22.   // Ustawiamy transmisje na 9600 bodow SIMxxx-Arduino
  23.   gsm.begin(9600);
  24. }
  25.  
  26. String odczytajNumerTelefonu()
  27. {
  28.   String numer = "";
  29.  
  30.   Serial.println("Wpisz numer telefonu.");
  31.  
  32.  
  33.  
  34.   // Czekamy az wpiszemy cos w konsole
  35.   while (!Serial.available()) {}
  36.  
  37.   // Odczytujemy z konsoli do zmiennej
  38.   while (Serial.available())
  39.   {
  40.     delay(5);
  41.     if (Serial.available() > 0)
  42.     {
  43.       char c = Serial.read();
  44.       numer += c;
  45.     }
  46.   }
  47.  
  48.   return numer;
  49. }
  50.  
  51. String odczytajTrescSMS()
  52. {
  53.   String tresc = "";
  54.  
  55.   Serial.println("Wpisz tresc SMS.");
  56.  
  57.   // Czekamy az wpiszemy cos w konsole
  58.   while (!Serial.available()) {}
  59.  
  60.   // Odczytujemy z konsoli do zmiennej
  61.   while (Serial.available())
  62.   {
  63.     delay(5);
  64.     if (Serial.available() > 0)
  65.     {
  66.       char c = Serial.read();
  67.       tresc += c;
  68.     }
  69.   }
  70.  
  71.   return tresc;
  72. }
  73.  
  74. void gsmAnswer(void)
  75. {
  76.   // Czekamy az modul odpowie
  77.   while (!gsm.available()) {}
  78.  
  79.   // Wyswietlamy odpowiedz
  80.   while (gsm.available())
  81.   {
  82.     delay(5);
  83.     if (gsm.available() > 0)
  84.     {
  85.       Serial.write(gsm.read());
  86.     }
  87.   }
  88. }
  89.  
  90. // Wysylanie komendy AT
  91. void gsmCommand(String cmd)
  92. {
  93.   gsm.println(cmd);
  94.   //gsm.println("\r");
  95.   // print nie wysyla znaku nowej linii. println robi to automatycznie
  96.   gsmAnswer();
  97. }
  98.  
  99. // Wysylanie SMS
  100. void gsmSMS(String phone, String message)
  101. {
  102.   gsmCommand("AT+CMGF=1");
  103.   delay(100);
  104.   gsmCommand("AT+CSCS=\"GSM\"");  
  105.   delay(100);
  106.  
  107. gsmCommand("AT+CMGS=\""+phone+"\""); ///orginalnie przerzuca do drugiej lini myślnik
  108.  
  109.  
  110.  
  111.  delay(100);
  112.   gsm.print(message);
  113.   gsm.print((char)26);
  114.  
  115.   gsmAnswer();
  116. }
  117.  
  118. void loop()
  119. {
  120.   gsmCommand("AT");
  121.  
  122.   numerTelefonu = odczytajNumerTelefonu();
  123.   trescSMS = odczytajTrescSMS();
  124.  
  125.   Serial.println();
  126.   Serial.print("numerTelefonu=");
  127.   Serial.println(numerTelefonu);
  128.   Serial.print("trescSMS=");
  129.   Serial.println(trescSMS);
  130.   Serial.println();  
  131.  
  132.   gsmSMS(numerTelefonu, trescSMS);
  133.  
  134.   Serial.println();    
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement