Пример получения температуры и влажности с датчика 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() { // бесконечный пустой цикл после отправки }