|
|||||||
SMS_Arduino
Время создания: 23.02.2023 22:20
Автор: alensav
Текстовые метки: sms arduino
Раздел: ARDUINO
Запись: alensav/MyTetra2/main/base/1677180055l7m16uvhl6/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
// подключение библиотек #include <SoftwareSerial.h> #include "DHT.h" // создание объектов SoftwareSerial gsm(7, 8); DHT sensorDHT(2, DHT22); // переменные String phone = "" String str1 = ""; // boolean isSMS = false; void setup() { // подключение последовательного порта Serial.begin(9600); // запуск датчика DHT dht.begin(); // запуск SoftwareSerial gsm.begin(9600); // Настройка приёма сообщений gsm.print("AT+CMGF=1\r"); delay(500); gsm.print("AT+IFC=1, 1\r"); delay(500); gsm.print("AT+CPBS=\"SM\"\r"); delay(500); gsm.print("AT+CNMI=1,2,2,1,0\r"); delay(500); } void loop() { if (gsm.available()) { char c = gsm.read(); if ('\r' == c) { if (isSMS) { // текущая строка - sms-сообщение, if (!str1.compareTo("tmp")) { // текст sms - tmp // отправить sms на приходящий номер // получение данных int t = dht.readTemperature(); // AT-команда установки text mode gsm.print("AT+CMGF=1\r"); delay(100); // номер телефона получателя gsm.println("AT + CMGS = \""); gsm.println(phone); gsm.println("\""); delay(50); // сообщение – данные температуры gsm.println(t); delay(50); // окончание передачи gsm.println((char)26); delay(50); gsm.println(); } Serial.println(currStr); isSMS = false; } else { if (str1.startsWith("+CMT")) { Serial.println(str1); // выделить из сообщения номер телефона phone=str1.substring(7,19); Serial.println(phone); // если текущая строка начинается с "+CMT", // то следующая строка является сообщением isSMS = true; } } str1 = ""; } else if ('\n' != c) { str1 += String(c); } } } |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|