Пример отправки SMS

Пример получения температуры и влажности с датчика DHT-11 и отправка на телефон в виде SMS посредством любого GSM-модуля, совместимого с AT-командами. GSM-модуль подключён портами Rx / Tx к соответствующим портам Arduino (Tx / Rx).

Здесь вывод 2 датчика (DATA) подключён к 12-му выводу Arduino Uno.

Пауза перед запуском скетча сделаем паузу в 30 секунд для того чтобы GSM-модуль успел зарегистрироваться в сети.

Отправка SMS-сообщения выполняется в функции setup, то есть один раз после запуска или сброса платы.

#include "DHT.h"

unsigned long delaytime = 30000;//подождём 30 секунд
unsigned int ledPin = 13;

DHT dht;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(115200);
  dht.setup(12); // DHT-11 подключён к 12-му порту нашей платы
  delay(dht.getMinimumSamplingPeriod());

  for (unsigned long int i = 0; i < delaytime; i++) {
    delay(1);
  }

  digitalWrite(ledPin, HIGH);

  float humidity = dht.getHumidity();
  float temperature = dht.getTemperature();

  Serial.println("AT+CMGF=1");    // устанавливаем текстовый режим SMS
  delay(100);
  Serial.print("AT+CSCS=");
  Serial.print((char)34);  // передача в порт символа "
  Serial.print("IRA");
  Serial.print((char)34);   // передача в порт символа "
  Serial.print((char)13);   // передача в порт Enter
  delay(1500);
  Serial.print("AT+CMGS="); // send the SMS the number
  Serial.print((char)34); // передача в порт символа "
  Serial.print((String)"+38095705xxxx"); // передача номера телефона
  Serial.print((char)34); // передача в порт символа "
  Serial.print((char)13);
  delay(250);
  Serial.print("Humidity, %: ");
  Serial.println(humidity, 1);
  Serial.print("Temperature, C: ");
  Serial.println(temperature, 1);
  delay(500);
  Serial.print((char)26); // передача ^Z
  Serial.print((char)13); // передача Enter
}

void loop() {
// бесконечный пустой цикл после отправки
}

Залишити відповідь