Температура по смс ардуино: Отправка температуры через SMS (GSM) и Arduino. – RobotChip

Содержание

Отправка температуры через SMS (GSM) и Arduino. – RobotChip

/*

Тестировалось на Arduino IDE 1.8.5

Дата тестирования 24.10.2020г.

*/

#include <SoftwareSerial.h>                 // Подключаем библиотеку SoftwareSerial

#include <OneWire.h>                        // Подключаем библиотеку OneWire

#include <DallasTemperature.h>              // Подключаем библиотеку DallasTempature

SoftwareSerial mySerial(3, 2);              // Выводы SIM800L Tx & Rx подключены к выводам Arduino 3 и 2

char incomingByte;

String inputString;

int relay_1 = A0;                           // Вывод управления реле 1

int relay_2 = A1;                           // Вывод управления реле 2

#define ONE_WIRE_BUS A2                      // Указываем, к какому выводу подключена DQ

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

  

void setup()

{

   pinMode(relay_1, OUTPUT);                 // Установим вывод как выход

   digitalWrite(relay_1, HIGH);              // Устанавливаем высокий уровень

   pinMode(relay_2, OUTPUT);                 // Установим вывод как выход

   digitalWrite(relay_2, HIGH);              // Устанавливаем высокий уровень

   Serial.begin(9600);                  

   mySerial.begin(9600);

while(!mySerial.available()){               // Зацикливаем и ждем инициализацию SIM800L

    mySerial.println(«AT»);                  // Отправка команды AT

    delay(1000);                             // Пауза

    Serial.println(«Connecting…»);          // Печатаем текст

    }

    Serial.println(«Connected!»);            // Печатаем текст

    mySerial.println(«AT+CMGF=1»);           // Отправка команды AT+CMGF=1

    delay(1000);                             // Пауза

    mySerial.println(«AT+CNMI=1,2,0,0,0»);   // Отправка команды AT+CNMI=1,2,0,0,0

    delay(1000);                             // Пауза

    mySerial.println(«AT+CMGL=\»REC UNREAD\»»);

}

void loop()

{  

   if(mySerial.available()){                  // Проверяем, если есть доступные данные

       delay(100);                            // Пауза

      while(mySerial.available()){            // Проверяем, есть ли еще данные.  

      incomingByte = mySerial.read();         // Считываем байт и записываем в переменную incomingByte  

      inputString += incomingByte;            // Записываем считанный байт в массив inputString  

     }  

       delay(10);                             // Пауза        

       Serial.println(inputString);           // Отправка в «Мониторинг порта» считанные данные

       inputString.toUpperCase();             // Меняем все буквы на заглавные  

 

       if (inputString.indexOf(«ON_1») > -1){ // Проверяем полученные данные, если ON_1 включаем реле 1

        digitalWrite(relay_1, LOW);      

        sms(String(«Relay 1 — ON»), String(«+7xxxxxxxxxx»));

        delay(50);}

    

       if (inputString.indexOf(«OFF_1») > -1){ // Проверяем полученные данные, если OFF_1 выклюем реле 1  

        digitalWrite(relay_1, HIGH);      

        sms(String(«Relay 1 — OFF»), String(«+7xxxxxxxxxx»)); // Отправка SMS      

        delay(50);}

      

       if (inputString.indexOf(«ON_2») > -1){ // Проверяем полученные данные, если ON_2 включаем реле 2

        digitalWrite(relay_2, LOW);      

        sms(String(«Relay 2 — ON»), String(«+7xxxxxxxxxx»));  // Отправка SMS    

        delay(50);}

      

       if (inputString.indexOf(«OFF_2») > -1){     // Проверяем  полученные  данные, если OFF_2 выключаем реле 2

        digitalWrite(relay_2, HIGH);      

        sms(String(«Relay 2 — OFF»), String(«+7xxxxxxxxxx»)); // Отправка SMS    

        delay(50);}

      

       if (inputString.indexOf(«TEMP_1») > -1){     // Проверка полученные данные, если TEMP_1 отправляем температуру

        sensors.requestTemperatures();    

        float temp = sensors.getTempCByIndex(0);  

        Serial.print(sensors.getTempCByIndex(0));

        sms(String(temp), String(«+7xxxxxxxxxx»)); // Отправка SMS    

        delay(50);}

      

       if (inputString.indexOf(«TEMP_2») > -1){     // Проверка полученные данные, если TEMP_2 отправляем температуру

        sensors.requestTemperatures();    

        float temp2 = sensors.getTempCByIndex(1);  

        Serial.print(sensors.getTempCByIndex(1));      

        sms(String(temp2), String(«+7xxxxxxxxxx»)); // Отправка SMS    

        delay(50);}

    

       if (inputString.indexOf(«OK») == -1){    

        mySerial.println(«AT+CMGDA=\»DEL ALL\»»);      

        delay(1000);}    

        inputString = «»;}

 

}

void sms(String text, String phone)  // Процедура Отправка SMS

{

   Serial.println(«SMS send started»);

   mySerial.println(«AT+CMGS=\»» + phone + «\»»);

   delay(500);

   mySerial.print(text);

   delay(500);

   mySerial.print((char)26);

   delay(500);

   Serial.println(«SMS send complete»);

   delay(2000);

}

Бюджетный GSM термометр на Arduino Nano

Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Команды можно отправлять через смс сообщения или вводить в командной строке монитора порта Arduino IDE.

Команды управления не чувствительны к регистру:
AddPhone — Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone, FullResetили MemTest. То есть кто первый позвонил на устройство после его сброса на заводские установки тот и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс.
Пример команды:

AddPhone:2+71234567891risp
AddPhone:3+71234567892s
AddPhone:4+71234567893sp
AddPhone:5+71234567894r

Синтаксис команды:

AddPhone — команда
: — разделитель
5 — записать в пятую ячейку памяти
+71234567890 — номер телефона
s — Параметр «SMS» — будет отправлено sms сообщение при срабатывании датчиков
r — Параметр «Ring» — будет совершен голосовой вызов при срабатывании датчиков
p — Параметр «Power» — будет отправлено sms сообщение при включении/отключении внешнего питания
i — Параметр «Info» — будет отправлено sms сообщение о включении или отключении оповещения при изменении температуры
При отсутствии параметров «s», «r», «p»,«i» телефон заносится в память, но никак не используется.


DeletePhone — Удалить номер телефона.
Пример команды:
DeletePhone:+71234567891

Синтаксис команды:

DeletePhone — команда
: — разделитель
+71234567891 — номер телефона


EditMainPhone — Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
EditMainPhone:spri

Синтаксис команды:

EditMainPhone — команда
: — разделитель
srpi — параметры


RingTime — Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
RingTime:40

Синтаксис команды:

RingTime — команда
: — разделитель
40 — длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.


ModemID — Принудительная установка модели используемого модема. Возможные значения: 0 — автоопределение модема, 1 — M590, 2 — SIM800l, 3 — A6_Mini.
Пример команды:
ModemID:2

Синтаксис команды:

ModemID — команда
: — разделитель
2 — ID модема.


NetCheckTime — Интервал проверки регистрации модема в сети оператора в минутах, параметр может иметь значение от 1 до 60 минут. При значении 0 проверка отключена.
Пример команды:
NetCheckTime:10

Синтаксис команды:

NetCheckTime — команда
: — разделитель
10 — каждые 10 минут будет производиться поочерёдная проверка уровня сигнала сети или проверка регистрации модема в домашней сети оператора, то есть весь цикл проверки будет занимать 20 минут. В случае отсутствия сигнала или регистрации в домашней сети модем будет перезагружен.


TempCheckTime — Интервал автоматического обновления температуры, параметр может иметь значение от 1 до 60 минут.
Пример команды:
TempCheckTime:10

Синтаксис команды:

TempCheckTime — команда
: — разделитель
10 — каждые 10 минут будет производиться снятие показаний с датчика температуры.


LowTemp — Нижний порог температуры при достижении которого будет отправлено оповещение. Параметр может иметь значение от -50 до 125 и не может превышать или равняться значению параметра HighTemp.
Пример команды:
LowTemp:25

Синтаксис команды:

LowTemp — команда
: — разделитель
25 — температура


HighTemp — Верхний порог температуры при достижении которого будет отправлено оповещение. Параметр может иметь значение от -50 до 125 и не может быть меньше или равняться значению параметра LowTemp.
Пример команды:
HighTemp:60

Синтаксис команды:

HighTemp — команда
: — разделитель
60 — температура


WatchPowerTime — Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
WatchPowerTime:5

Синтаксис команды:

WatchPowerTime — команда
: — разделитель
5 — 5 минут до отправки смс сообщения


WatchPowerOn1 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что включено оповещение при изменении температуры (GuardOn).

WatchPowerOn2 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено

WatchPowerOff — выключить контроль внешнего питания

BalanceNum — Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:

BalanceNum:#103#L24

Синтаксис команды:

BalanceNum — команда
: — разделитель
#103# — номер запроса баланса

L24 — Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.


Reboot — перезагрузка устройства (только Arduino)

ResetConfig — сброс настроек на заводские установки

ResetPhone — удаление из памяти всех телефонных номеров

FullReset — сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.

GuardOn — включить оповещение при изменении температуры
GuardOff — выключить оповещение при изменении температуры

Info — проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о текущей температуре, нижней и верхней границах контроля температуры, о частоте автоматического обновления температуры, и о том с какого номера было включено или выключено оповещение при изменении температуры и текущее состояние.

TestOn — включается тестовый режим.
TestOff — выключается тестовый режим.

LedOff — выключает светодиод режима ожидания.
LedOn — включает светодиод режима ожидания.

Money — запроса баланса.

ClearSms — Удалить из памяти все sms

ListPhone — вывод в монитор порта списка сохранённых в памяти телефонов

Memtest — тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.

ListConfig — вывод в монитор порта текущей конфигурации устройства.

Мониторинг температуры через интернет. Урок 2.

В предыдущем уроке мы разобрались как в теории работает устройство, передающее данные о температуре на сервер и принимающее от него команды для реле. Настало время перейти от теории к практике и собрать это устройство. Поехали…

Собираем передающее устройство

Шаг 1: Устанавливаем модуль SIM900 на плату Arduino Mega:

Рис. 1

Вставьте SIM-карту в модем и соедините его с платой Arduino, как показано на рисунке. Клеммники, помеченные на схеме одним цветом, должны быть совмещены после соединения.

Обратите внимание, что пины D7, D8 (интерфейс последовательного порта) на плате модема SIM900 нужно отогнуть, т.к. они не должны вставляться в соответствующие разъёмы Arduino Mega. Это обеспечивает совместимость этих модулей, поскольку соответствующие пины у Arduino Mega не могут быть назначены как линии последовательного порта.

Пин «5V» на плате SIM900 также нужно отогнуть, чтобы модем не получал питание напрямую с платы контроллера. Его нужно запитать через реле, чтобы можно было аппаратно перезагружать SIM900.

Шаг 2: Соединяем последовательный порт модуля SIM900 с последовательным портом Arduino :

Рис. 2

Пин «D7(RX)» модуля SIM900 соединяем с пином «19 (RX1)» модуля Arduino Mega, а пин «D8(TX)» c пином «18 (TX1)».

Шаг 3: Создаём вспомогательные контактные линии с помощью макетной платы:

Рис. 3

На плате контроллера:

  • Пин 5v – линия питания 5 В
  • пин 42 — линия данных датчика DS18B20
  • пин 49 — линия управления светодиодом «В работе»
  • пин 50 — линия управления светодиодом «Запрос»
  • пин 52 — линия управления светодиодом «GPRS»
  • пин GND – линия «Земля»

Вспомогательные точки удобны для сборки схемы.

Горизонтальные линии макетной платы объединены между собой «внутри», поэтому чтобы сделать из одной точки четыре, установим соответствующую перемычку для каждой из «размножаемых» точек.

Шаг 4: Подключаем датчик температуры DS18B20:

Рис. 4

У датчика DS18B20:

  • красный провод – питание
  • чёрный провод – земля
  • белый (жёлтый) провод – шина данных

Вставляем провода датчика в соответствующие контактные линии на макетной плате. Между линией питания и шиной данных датчика устанавливаем нагрузочный резистор 4,7 кОм.

Шаг 5: Подаём питание на релейный модуль:

Рис. 5

С помощью двух перемычек соединяем  пины  VCC и GND релейного модуля с линиями макетной платы 5V и GND соответственно.

Шаг 6: Подключаем линии управления релейным модулем:

Рис. 6

Пин 38 модуля Arduino Mega отвечает за включение/выключение выходного реле (К1). Соединяем этот пин с пином «IN1» релейного модуля.

Пин 48 модуля Arduino Mega отвечает за аппаратную перезагрузку модема и управляет реле К2. Соединяем этот пин с пином «IN2» релейного модуля.

Шаг 7: Подаём питание на модем через нормально-закрытый контакт реле:

Рис. 7

Ещё раз напоминаем, что пин «5V» на плате модема SIM900 нужно отогнуть, чтобы он не вставлялся в соответствующий пин на плате Arduino Mega.

Шаг 8: Подключаем светодиоды:

Рис. 8

Устанавливаем светодиоды, как показано на рисунке.

Готово! В результате должна получиться следующая схема:

 
Рис. 9

Заключение

На этом мы заканчиваем второй урок! Надеемся, что он вам понравился! В следующем уроке мы изучим алгоритм работы собранного нами устройства, посмотрим, как оно обменивается данными с сервером. До скорой встречи на LAZY SMART! Чтобы не пропустить новую статью, вступай в нашу группу Вконтакте, а также подписывайся на наш канал YouTube.


управление умным домом с телефона

Аппаратная платформа Arduino используется для реализации множества электронных приборов и систем умного дома, включая GSM-извещатель охранной системы. Конструктор Arduino, в паре с простым и доступным языком программирования, позволит создать собственные типовые проекты умного дома, с применением GSM модуля.

Назначение и принцип работы

GSM-модуль (Global System for Mobile Communications) использует сеть телефонной связи оператора, для получения и передачи сигнала на удаленный объект управления. Например, с помощью СМС команд можно:

  • получать оповещение о состоянии объекта через используемые датчики;
  • узнавать о срабатывании сигнализации;
  • включать и выключать охранную систему.

С помощью GPRS, который также поддерживают GSM-модули, можно аналогичные команды обрабатывать через Internet.

С помощью такого функционала можно организовать автономную сигнализацию на удаленном объекте. Датчики будут фиксировать изменение состояния, а по каналам связи будет транслироваться информация об этом на ваш смартфон. По сути, можно организовать Smart Home самостоятельно, постепенно добавляя в схему дополнительное комплектующее.

Работает такое устройство на базе платы Arduino Uno. Никто не запрещает использовать платы Nano (mini-схема) или Mega если необходимо, но для удобства монтажа устройства минимальной комплектации, достаточно материнской платы Uno.

За передачу GSM или GPRS отвечает модуль, который соединяется с основной платой. Он расширяет возможности Arduino UNO, позволяя принимать и совершать звонки, отправлять SMS, обмениваться данными через GPRS. На рынке представлены несколько версий отличных GSM-плат, которые можно сопоставлять и программировать через AT-команды на необходимый функционал.

Топ 6 самых популярных модулей

Представленные ниже модули – популярный продукт для монтажа систем автономной сигнализации и иных проектов, для передачи управляющего сигнала через сети мобильных операторов.

Под модулем понимается изделие, состоящие из платы и элементов на ней (включая компонент, состоящий из чипсета и приемопередатчика). Компонент находятся под крышкой в едином форм-факторе (напоминает процессор для материнской платы компьютера). Распайка на плате расширения происходит через торцевые контактные ножки. Такая полноценная плата и называется модулем. Если на ней есть множество других элементов, ее иногда именуют шилд.

Ниже будут приведены модули, такие как Neoway M590, A6 и A7, и прочие, представлены их характеристики.

SIM900

Разработанный компанией SIMCom Wireless Solution модуль SIM900 подключается и обменивается данными через распространенный физический протокол передачи данных UART. Подключение к ПК осуществляется через USB-UART преобразователь.

Плата позволяет в двухстороннем режиме работать с сообщениями и звонками адресата.

Спецификация:

  1. Диапазон частот EGSM900, DCS1800, GSM850, PCS1900.
  2. Напряжение 3,2-4,8 В.
  3. Сила тока в режиме простоя – 450 мА.
  4. Максимальный ток – 2 А.
  5. Канал связи до 14.4 кбит/с.
  6. Диапазон температур от -30 °C до +80 °C без искажения, и от -40 °C до +85 °C, с незначительным отклонением радиочастотных характеристик, с сохранением работоспособности.
  7. Вес 6,2 г.
  8. Размеры 24 x 24 x 3 мм.

У компонента есть модификации: 900B, 900D, 900TE-C, 900R 900X. У каждой модификации своя специфика. SIM900D дополнен блоком заряда аккумулятора, а в SIM900X введены новые режимы энергосбережения, что позволяет использовать модули в современных системах трекинга автомобилей, охранной и промышленной автоматики. Все модификации компонентов можно найти в едином форм-факторе SMT, с торцевыми контактами под пайку. Но, не исключены варианты нахождения в других форм факторах.

SIM800L

Основа модуля – компонент SIM800L с реализацией обмена данными по каналам GSM и GPRS с помощью дуплексного режима. В модуль устанавливается SIM-карта, есть встроенная антенна и выход под еще одну антенну. Питание на плату подается через преобразователь напряжения DC-DC. Еще, есть возможность подключиться к другому источнику питания. Интерфейс подключения – UART.

Спецификация:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение 3,8-4,2В.
  3. Ток в режиме ожидания – 0,7 мА. Предельный ток – 500 мА.
  4. Слот
  5. Поддержка 2G сети.
  6. Диапазон температур от -30 °C до +75 °C.

A6

Шилд A6 работает в сетях мобильной связи и позволяет принимать и передавать сигналы с помощью GSM и GPRS. Модуль, созданный компанией AI-THINKER несколько лет назад, успешно показал себя и пользуется популярностью в системах автоматики.

ТТХ А6:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение питания 5 В.
  3. Ток в спящем режиме – 3 мА.
  4. Ток режима ожидания – 100 мА.
  5. Ток режима соединения – 500 мА.
  6. Ток пиковой нагрузки – 2А.
  7. Разъем
  8. Скорость GPRS во время передачи сигнала 42,8 Кбит/сек.
  9. Температура от -30 °C до +80 °C.

A7

Новый модуль А7 отличается от предшественника тем, что в него встроен GPS. Это решение позволило упростить конструкцию платы.

Основные параметры:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение 3,3-4,6 В.
  3. Напряжение питания 5В.
  4. 10 Класс GPRS: канал передачи данных 85,6 кбит/с.
  5. Jammer эха и шумов.

Neoway M590

Модуль на основе компонента Neoway M590 позволяет принимать звонки, обмениваться данными и сообщениями. Имеет интерфейс подключения UART.

Характеристики:

  1. Диапазон частот EGSM900, DCS1800.
  2. 10 Класс
  3. Напряжение 3,3-5 В.
  4. Пиковый ток 2 А.
  5. Рабочий ток 210 мА.
  6. Коммуникационный сигнал 3,3 В.
  7. Температура от -40 °C до +80 °C.

Подключая модуль к контроллеру, потребуется преобразователь 3,3 В -> 5 В.

GSM GPRS модуль SIM900

На базе модуля SIM900 разработали и успешно используют SIM900 GSM GPRS Shield, в качестве модуля для подключения к Arduino UNO. По сравнению с остальными платами, стоимость этой на порядок дороже, и она укомплектована множеством разъемов и контактов. Среди основных параметров:

  1. Подключается плата к Arduino Mega и UNO.
  2. Четыре рабочих частоты, как и в остальных платах.
  3. Низкое энергопотребление 1.5 А в спящем режиме.
  4. GPRS мульти-слот класса 10/8.
  5. Рабочие температуры от -40°C до +85 °C.

Схема сборки типового проекта Умного дома

Рассмотрим варианты подключения нескольких модулей GSM к платам Arduino. В качестве примера рассматриваются платы Arduino UNO и MEGA.

Перед подключением модулей, вставьте соответствующего размера симку мобильного оператора в слот модуля. Далее, модуль соединяется с основной платой. Для этого нужно внимательно изучить инструкцию, определив распиновку модулей. После, подключив плату к питанию, с помощью переходника USB-UART контроллер подключается к компьютеру, через среду программирования Arduino IDE, или ее более комфортную альтернативу, прошивается и программируется AT-командами.

Естественно, по мере увеличения функционала вашего проекта, к плате необходимо добавить датчики, реле, розетки и другие компоненты. Об этом вы можете почитать на других страницах сайта.

Аппаратная часть: составляющие

В зависимости от того, какой GSM-модуль будет использоваться, зависят и составляющие схемы.

В основном это: микроконтроллер Arduino UNO, совместимый с платой GSM-модуль, DC-DC преобразователь понижающий (если коммуникационный сигнал ниже 5В), проводки и переходники для подключения.

SIM800L + Arduino UNO

Например, для подключения SIM800L к Arduino UNO, из-за малого напряжения в 3,8 В нужно подключить через преобразователь DC-DC. Распиновка модуля SIM800L выглядит так.

Подключение происходит в такой последовательности:

  1. Подключите Arduino UNO к компьютеру через порт USB.
  2. Источник питания на 12 В подключите через DC-DC.
  3. Минус с ИП на GND платы контроллера, и с GND в минус преобразователя.
  4. Плюс с ИП на плюс DC-DC.
  5. Плюс с DC-DC на плюс (Vcc) GSM модуля.
  6. Минус с земли преобразователя на GND модуля.
  7. RXD и TXD модуля соедините с пинами 2 и 3 Arduino UNO.

К любым digital pin (цифровые входы/выходы), если необходимо, можно соединять несколько модулей.

A6 + Arduino UNO

Так как GSM-модуль имеет стандартное напряжение питания, поэтому преобразователь в схеме не нужен. Подключать платы можно напрямую. Схема распиновки A6 на рисунке ниже.

Соединение происходит следующим образом:

  1. UART_RXD модуля к TX→1 микроконтроллера.
  2. UART_TXD модуля к RX ←0 микроконтроллера.
  3. GND контроллера с GND GSM-модуля.
  4. Пин VCC0 (питание) к кнопке питания на модуле PWR_KEY (power).
SIM900 Шилд + Arduino MEGA

Особенность платы в том, что при вызове устройства, сила тока достигает пикового предела в 2А. Поэтому, не подключайте питание напрямую. Прежде чем соединить, установите в слот сим карту и выставите TXD и RXD перемычку для слаботочной цепи, согласно картинке.

Далее, подключайте платы между собой:

  1. Желтым проводом соедините контакт TxD.
  2. Салатовым –
  3. Черным соедините GND плат.
  4. Через USB-порт соединить Микроконтроллер с ПК.

Чтобы удостовериться, что схема собрана верно, установите в IDE GPRS_Shield_Arduino.

Проверка правильной отработки схемы выглядит так:

  1. На плате Arduino соедините RESET и землю, чтобы информация поступала от Shield к ПК.
  2. Установите SIM-карту в слот и дайте напряжение на модуль.
  3. Основную плату по USB соедините с ПК и нажмите кнопку «ON».
  4. При правильной работе схемы, зеленый светодиод будет мигать, а красный постоянно гореть.

Программная часть: скетчи и библиотеки

После разбора аппаратной части, нужно запрограммировать собранное устройство. С помощью текстовых короткого AT-кода, можно задавать устройству прямые команды. Они воспринимаются устройством во время нахождения программируемого устройства в командном режиме. Команды устройство считывает напрямую с клавиатуры или с помощью ПО, такого как IDE. Программу или ее аналоги доступны для устройств, работающих на Linux, MacOS, Windows, Android. Поэтому, задавать команды удаленно с телефона можно тоже.

На примере программирования модуля SIM900, можно рассмотреть настройку основных инструментов взаимодействия с будущим охранным проектом, сделанным своими руками.

Работа с СМС уведомлениями

Сперва настройте кодировку, с которой нет проблем у компилятора, а затем отправляйте СМС:

  1. Зайдите в IDE и выполните команду AT+CMGF=1 для перевода в текстовый формат сообщения.
  2. Затем, командой AT+CSCS=«GSM» выберите ASCII-кодировку.
  3. За набор сообщения отвечает команда AT+CMGS=«+79********».
  4. После команды введите текст мессенджа и отправьте его.
  5. Отправив SMS, нажмите CTRL+Z и устройство отправит SMS-сообщение на приемник.
  6. После правильного выполнения команд, вернется «ОК».

Чтобы получить сообщение, следуйте example:

  1. Отправьте команду AT + CNMI = 2,2,0,0,0, чтобы прочитать SMS.
  2. Обратной связью от порта будет +CMTI: «SM»,2 – двойка значит номер SMS в порядке очереди.
  3. Отправьте команду AT+CMGR=2 для чтения SMS.
Звонки

Естественно, пока к схеме не подключены микрофон и динамик, ни о каком приеме звонка и речи быть не может. Когда осуществиться звонок, будет выведен номер, с которого звонили. Чтобы далее работать со звонками:

  1. Загрузите библиотеку #include <GSM.h>.
  2. Если на сим установлен PIN, то введите команду #define PINNUMBER “”, где в скобках пропишите его. В случае, если пин не установлен, оставьте скобки пустыми.
  3. Выполнив данную команду, следует узнать статус симки с подключением к сети с помощью boolean notConnected = true.
  4. Установить активацию с сетью можно через begin(). Если соединение готово к работе, в обратной связи покажется статус GSM_READY.

Выводы

Соорудить собственноручную автономную GSM-сигнализацию не составит большого труда для технически не подкованных людей, в вопросах электро и схемотехники. Прочитав инструкцию и ознакомившись с распиновкой схем, можно подключить микроконтроллер к отвечающему за GSM передачу данных модуль. Также, для подключения доступны разнообразные модели GSM модулей, которые в соответствии со своими характеристиками можно применять для различных задач и так называемых project-объектов.

Касаемо программирования контроллеров, с этим тоже не возникнет проблем. С помощью библиотек, АТ-команд и скетчев, можно определять статус SIM-карты, получать и отправлять SMS сообщения, принимать звонки и тому прочее. Осуществляется это в среде программирования Arduino IDE или в аналогичных средах, установленных на удаленном устройстве, которыми могут быть как смартфон, так компьютер, что непосредственно подключен к программируемому устройству.

Бюджетная GSM сигнализация с мозгами из Arduino

Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Остальные команды могут быть выполнены с номеров с признаком «Management».

SMS — команды управления не чувствительны к регистру:
AddPhone — Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone или FullReset. Т.е. кто первый позвонил на устройство после его сброска на заводские установки тот и и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс. Невозможно добавить два одинаковых номера.
Пример команды:
До версии GSM_2017_05_26-20-22.hex:

AddPhone:2+71234567891m
AddPhone:3+71234567892a
AddPhone:4+71234567893
AddPhone:5+71234567894ma

Начиная с версии GSM_2017_05_26-20-22.hex:
AddPhone:2+71234567891mrsp
AddPhone:3+71234567892ms
AddPhone:4+71234567893sp
AddPhone:5+71234567894r

Синтаксис команды:

AddPhone — команда
: — разделитель
5 — записать в пятую ячейку памяти
+71234567890 — номер телефона
До версии GSM_2017_05_26-20-22.hex:
а — Параметр «Alarm» — на номера с этим параметром будут отправляться смс — сообщения о срабатывании сигнализации и сообщения постановке или снятии с охраны.
Начиная с версии GSM_2017_05_26-20-22.hex:
m — Параметр «Management» — разрешено управление сигнализацией
s — Параметр «SMS» — будет отправлено sms сообщение при срабатывании датчиков
r — Параметр «Ring» — будет совершен голосовой вызов при срабатывании датчиков
p — Параметр «Power» — будет отправлено sms сообщение при включении/отключении внешнего питания
i — Параметр «Info» — будет отправлено sms сообщение при постановке или снятии с охраны
При отсутствии параметров «m», «s», «r», «p»,«i» телефон заносится в память, но никак не используется.


DeletePhone — Удалить номер телефона.
Пример команды:
DeletePhone:+71234567891

Синтаксис команды:

DeletePhone — команда
: — разделитель
+71234567891 — номер телефона


EditMainPhone — Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
EditMainPhone:spri

Синтаксис команды:

EditMainPhone — команда
: — разделитель
srpi — параметры


BalanceNum — Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:
BalanceNum:#103#L24

Синтаксис команды:

BalanceNum — команда
: — разделитель
#103# — номер запроса баланса
L24 — Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.


EditSensor — Изменить название датчика и логический уровень срабатывания. Всего может быть не более 8 дополнительных датчиков. После изменения параметров необходима перезагрузка устройства.
Пример команды:
EditSensor:1+Datchik dvizheniya v koridore#h
EditSensor:2+Gerkon na okne

Синтаксис команды:

EditSensor — команда
: — разделитель
1 — записать в первую ячейку памяти
+ — разделитель
Datchik dvizheniya v koridore — название датчика, не может превышать 36 символов, включая пробелы.
#h — Признак высокого логического уровня с датчика, при получении которого сработает сигнализация. Если отсутствует «#h», сигнализация будет срабатывать при получении с датчика низкого логического уровня.


SleepTime — Время «засыпания» сигнализации при получении смс — команды «Pause», указывается в минутах. Значение по умолчанию: 15, не может быть менее 1 и более 60.
Пример команды:
SleepTime:20

Синтаксис команды:

SleepTime — команда
: — разделитель
20 — 20 минут «сна».


AlarmPinTime — Время на которое включается/выключается тревожный/инверсный пин, указывается в секундах. Значение по умолчанию: 60, не может быть менее 1 секунды и более 43200 секунд (12 часов).
Пример команды:
AlarmPinTime:30

Синтаксис команды:

AlarmPinTime — команда
: — разделитель
30 — 30 секунд включения/выключения тревожного пина.


DelayBeforeGuard — Время до постановки устройства на охрану, после получения соответствующей команды.
Пример команды:
DelayBeforeGuard:25

Синтаксис команды:

DelayBeforeGuard — команда
: — разделитель
25 — 25 секунд до постановки на охрану


DelayBeforeAlarm — Время по истечении которого будет отправлено «тревожное» смс уведомление, если за этот период времени сигнализация не была снята с охраны. Заменена расширенными командами начиная с версии GSM_2017_08_10-12-17.hex
Пример команды:
DelayBeforeAlarm:40

Синтаксис команды:

DelayBeforeAlarm — команда
: — разделитель
40 — 40 секунд до отправки «тревожного» уведомления


WatchPowerTime — Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
WatchPowerTime:5

Синтаксис команды:

WatchPowerTime — команда
: — разделитель
5 — 5 минут до отправки смс сообщения


RingTime — Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
RingTime:40

Синтаксис команды:

RingTime — команда
: — разделитель
40 — 40 длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.


ModemID — Принудительная установка модели используемого модема. Возможные значения: 0 — автоопределение модема, 1 — M590, 2 — SIM800l, 3 — A6_Mini.
Пример команды:
ModemID:2

Синтаксис команды:

ModemID — команда
: — разделитель
2 — ID модема.


ExtDeviceTime — Количество секунд на которое изменится уровень сигнала на выходе управления внешним устройством.
Пример команды:
ExtDeviceTime:5

Синтаксис команды:

ExtDeviceTime- команда
: — разделитель
5 — 5 секунд


ExtDeviceLevelLow — Внешнее устройство подключенное к выходу A3 управляется низким уровнем сигнала (GND). На выходе по умолчанию будет присутствовать высокий уровень +5В, пока не поступит команда управления внешним устройством
ExtDeviceLevelHigh — Внешнее устройство подключенное к выходу A3 управляется высоким уровнем сигнала (+5V). На выходе по умолчанию будет присутствовать низкий уровень GND, пока не поступит команда управления внешним устройством

ResetSensor — сброс параметров датчиков расширителя порта

ResetConfig — сброс настроек на заводские установки

ResetPhone — удаление из памяти всех телефонных номеров

FullReset — сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.

RingOn — включить уведомление звонком на «главный» номер записанный в первую ячейку памяти при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
RingOff — выключить уведомление звонком при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex

SmsOn — включить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex
SmsOff — выключить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex

PIROn — включить обработку датчика движения
PIROff — выключить обработку датчика движения

ReedSwitchOn — включить обработку основного герконового датчика
ReedSwitchOff — выключить обработку основного герконового датчика

WatchPowerOn — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану. Удалена начиная с версии GSM_2017_03_01-23-37.

WatchPowerOn1 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану.
WatchPowerOn2 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено

WatchPowerOff — выключить контроль внешнего питания

GuardButtonOn — управление сигнализацией внешними устройствами или кнопкой включено Удалена начиная с версии GSM_2017_04_16-12-00.
GuardButtonOn1 — функция постановки или снятия охраны внешними устройствами или кнопкой включена
GuardButtonOn2 — функция только постановки на охрану внешними устройствами или кнопкой включена, снятие с охраны производится по звонку на устройство или с помощью смс команды.
GuardButtonOff — управление сигнализацией внешними устройствами или кнопкой выключено

Reboot — перезагрузка устройства (Arduino)

PCFForceOn — постоянный мониторинг группы всех датчиков модуля расширения
PCFForceOff — мониторинг группы всех датчиков модуля расширения только при постановке устройства на охрану

MainSensorLevelHigh — тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (D6) от датчика
MainSensorLevelLow — тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (D6) от датчика
MainSensorLevelOff — обработка датчика на входе (D6) отключена

SecondSensorLevelHigh — тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (A0) от датчика
SecondSensorLevelLow — тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (A0) от датчика
SecondSensorLevelOff — обработка датчика на входе (A0) отключена

MainDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании основного датчика (D6), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
SecondDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании дополнительного датчика (A0), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
PCFDelayBeforeAlarm — время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании датчиков платы расширения (PCF8574), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.

GuardOn — поставить на охрану
GuardOff — снять охраны

Open — команда управления внешним устройством

Info — проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о том с какого номера была включена/выключена охрана

Pause — приостанавливает работу системы на время установленное командой sleeptime в минутах, система не реагирует на срабатывания датчика.

TestOn — включается тестовый режим, мигает синим светодиодом.
TestOff — выключается тестовый режим.

LedOff — выключает светодиод режима ожидания.
LedOn — включает светодиод режима ожидания.

Money — запроса баланса.

ClearSms — Удалить из памяти все sms

Консольные команды (до версии GSM_2017_04_24-13-22.hex) — вводятся в мониторе порта Arduino IDE:

AddPhone — аналогична sms-команде AddPhone

DeletePhone — аналогична sms-команде DeletePhone

EditSensor — аналогична sms-команде EditSensor

ListPhone — вывод в монитор порта списка сохранённых в памяти телефонов

ResetConfig — аналогична sms-команде ResetConfig

ResetPhone — аналогична sms-команде ResetPhone

FullReset — аналогична sms-команде FullReset

ClearSms — аналогична sms-команде ClearSms

WatchPowerOn1 — аналогична sms-команде WatchPowerOn1
WatchPowerOn2 — аналогична sms-команде WatchPowerOn2
WatchPowerOff — аналогична sms-команде WatchPowerOff

GuardButtonOn — аналогична sms-команде GuardButtonOn . Удалена начиная с версии GSM_2017_04_16-12-00
GuardButtonOn1 — аналогична sms-команде GuardButtonOn1
GuardButtonOn2 — аналогична sms-команде GuardButtonOn2
GuardButtonOff — аналогична sms-команде GuardButtonOff

Memtest — тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.

I2CScan — поиск и инициализация поддерживаемых устройств на шине I2C.

ListConfig — вывод в монитор порта текущей конфигурации устройства.

ListSensor — вывод в монитор порта текущей конфигурации датчиков.

Фриланс-проекты › Arduino метеостанция с отправкой смс через GSM модуль Arduino метеостанция с отправкой смс через GSM модуль

Задание состоит из 2х частей.
1я часть включает в себя «главный» контроллер на базе mega с 4х строчным дисплеем и GsM shield sim900a ли sim800l
главный модуль опрашивает контрольные модули на которых находятся датчик температуры и разомкнутое реле. На главном модуле выводится информация по контрольным реле в 4х строчках, где 1я строчка — название комнаты\места. 2я строчка — текущая температура в данной комнате\месте. 3я строчка — состояние реле (ок\alarм). 4я строчка пока будет пустая.
При срабатывании реле, а именно его замыкании на контрольном модуле, главный модуль отправляет смс на 3-5-10 телефонных номеров с определенным содержанием. отправка на 3-5-10 телефонных номеров происходит с задержкой в 30 секунд (сначала 1й через 30 секунд 2й и т.д.
смс отсылается на 3-5-10 телефонных номеров с периодом в 7 минут 3 раза. ( на 1й телефонный номер отсылается 1я смс, через 7 минут 2я и.д. до тех пор пока на каждый указанный номер не будет отослано 3 смс) возможно добавить звонок на указанный номер с проигрыванием определенного звукового файла. в содержании смс указываем статус предупреждение и температуру с датчика температуры конкретного контроллера. Если происходит срабатывание реле на 2х и более контроллерах то в текст смс помещается информация с 2х контроллеров и предупреждение.

Возможность управлять командой по смс главным устройством. команды: 1. отложить тревогу на 30 минут. 2. выключить тревогу. 3. Статус устройства с обратным ответом смс с информацией расположенной на дисплее главного модуля. 4. включить тревогу. 5 тестовое смс на все указанные номера с текстом «тест»
колличество контроллеров подключенных к головному устройству: от 1го до 8ми.
2я часть проекта.
на микроконтроллер, установленный в отдельной комнате собираются данные с датчиков и реле, которые подключены к нему. количество датчиков на 1м контроллере от 1 до 4х. и 1 разомкнутое реле на которое приходит «минус» от контроллера и возвращается обратно. Контроллер мониторит температуру и разомкнут\замкнут ли датчик и эти данные отправляет на головное устройство или главное устройство опрашивает контроллер(ы) и получает от них ответ с данными, которые в последствии обрабатывает. в контроллерах заложить в коде функцию на подключение датчиков холла.
код должен быть аккуратный с русскоязычными подробными комментариями где что менять или добавлять. (где вписать номера для смс рассылки и прочее)
Главный блок:

1. Arduino Mega 2560
2. LCD-1602 i2c (можно LCD-2004 i2c)
3. GSM/GPRS модуль SIM800L (MINI)
4. Конвертер RS-485 (ардуиновский)
5. DC-DC понижающий преобразователь XM1584 или LM2596S или лучше XL4015
6. Любой блок питания (12В 2-3А)

Блок в комнату\обьект:

1. Ардуино нано и подобные (Уно…)
2. Конвертер RS-485 (ардуиновский)
3. Датчик DS18B20 — 2шт (±0.5 °C (при температуре от -10 до +85), ±2 °С (при температуре от -55 до +125)
4. DC-DC понижающий преобразователь XM1584 или LM2596S или лучше XL4015 — любой, так как тут нет GSM и никаких нагрузок
5. Если все же сеть переменка 12В — то можно любой выпрямитель (диодный мост + конденсатор 16х2200)

GSM/GPRS | arduinoLab

О правильном подключении GSM модема SIM800L или по чему не работает модем с Arduino.

Читать далее → Запись опубликована автором admin в рубрике Обзоры с метками GSM/GPRS, sim800.

 

пока только код (

Читать далее →

Запись опубликована автором admin в рубрике Arduino, Проекты с метками GSM/GPRS, код из видео, Коммутация нагрузки.

GPS\GSM маячок отправляющий SMS сообщение с координатами местоположения и скорости движения по запросу. подробнее в видео.

Пока только код

Читать далее →

Запись опубликована автором admin в рубрике Arduino, Проекты с метками GPS, GSM/GPRS, NEOWAY M590, проект.

Итоговая версия GSM сигнализации для дачи на Arduino UNO и GSM модеме NEOWAY M590, установка на охрану по звонку с заданного в коде номера.

ниже код из видео и схема подключения.


Читать далее →

Запись опубликована автором admin в рубрике Arduino, Проекты с метками AiThinker A6, GSM/GPRS, NEOWAY M590, код из видео.

Примитивная и автономная GSM сигнализация с использованием GSM\GPRS модемом NEOWAY M590 и Arduino, ниже схема подключения и код из видео

Читать далее →

Запись опубликована автором admin в рубрике Arduino, Проекты с метками GSM/GPRS, NEOWAY M590, код из видео.

Примеры из видео

Читать далее →

Запись опубликована автором admin в рубрике Arduino, Проекты с метками GSM/GPRS, NEOWAY M590, код из видео.

примеры из видео, что по этой ссылки

Читать далее →

Запись опубликована автором admin в рубрике Обзоры с метками GSM/GPRS, NEOWAY M590. SMS-оповещение о температуре

Arduino — система теплового контроля 3G GSM | Сообщество RobotShop

Об этом руководстве

Создайте свой собственный Arduino, SMS-сигнализация температуры Arduino — система теплового мониторинга, имеющая МАКСИМАЛЬНЫЕ и МИНИМАЛЬНЫЕ пороги температуры, поддерживающие сообщения и (старые, но золотые) SMS-пейджинг и систему удаленного включения / выключения. Вы можете контролировать один или несколько температурных датчиков 1WIRE и вызывать через SMS «события нагрева и охлаждения» и поддерживать сообщения, включая последнюю температуру.Вы можете ВКЛЮЧИТЬ / ОТКЛЮЧИТЬ систему охранной сигнализации удаленно с помощью одного SMS. В этом проекте для интеграции SMS используется совместимый штыревой экран GSM (c-uGSM) или экран 3G (d-u3G).

Необходимые детали

Кредиты

В этом проекте мы использовали для измерения температуры 1WIRE «Библиотеку контроля температуры Далласа», разработанную Майлзом Бертоном и Тимом Ньюсомом >> Библиотека Arduino для температурных ИС Далласа, ссылка на которую приведена здесь. Спасибо вам, ребята! Отличная работа!

О щитах c-uGSM (только GSM) и d-u3G (3G / UMTS)

Это щиты, совместимые с контактами 2, первый, c-uGSM, поддерживает только четырехдиапазонный GSM (всемирно совместимый) и поддерживает 2 SIM-карты, а второй, экран d-u3G, поддерживает только SINGLE SIM 3G (север) Американская версия) или 3G + GSM (европейская версия и версия для остального мира).Эти экраны компактны: 1,25 x 1,57 дюйма (31,75 x 39,88 мм) / 1,35 x 1,57 дюйма (34,29 x 39,88 мм), весят менее 10 г, имеют поддержку USB (связь и питание), автоматический уровень 3,3 — Встроенные цифровые интерфейсы 5 В и зарядное устройство LiPo.

О датчике температуры DS18B20

Припаяйте резистор 2,2 кОм между выводом DS18B20 Vdd (3) и выводом DS18B20 DQ (2). Вывод DS18B20 Vdd (3) должен быть подключен к Arduino 5V, вывод DS18B20 DQ (2) — к Arduino D4, а вывод DS18B20 GND (1) — к Arduino GND. Подробности см. Ниже. Ссылка на DS18B20 здесь.

Аппаратная проводка

На рисунке ниже (пример подключения экрана d-u3G — 3G) вы можете увидеть все логические соединения (проводку). Для использования экрана c-uGSM (версия только для GSM): просто подключите провода к тем же контактам, что и экран GSM. Система теплового контроля Arduino SMS — логическая схема Краткая разводка экрана 3G / GSM (питание):
    • Конфигурация «без литиево-полимерного соединения» >> подключите источник питания +4 В (рекомендуется g-SPS 4V [DDRV]) к контакту экрана 3G / GSM «Vcc 4V».
    • Конфигурация «С литий-полимерным» >> подключите источник питания + 5 В (рекомендуется g-SPS 5 В [LiPOL]) к контакту «Vin 5V» экрана 3G / GSM. Подключите литий-полимерный аккумулятор к литиево-полимерным контактным площадкам / разъему.
Прочтите ссылку: c-uGSM и d-u3G как запустить. Датчик температуры подключается следующим образом: вывод DS18B20 Vdd (3) должен быть подключен к Arduino 5V, вывод DS18B20 DQ (2) — к Arduino D4, а вывод DS18B20 GND (1) — к Arduino GND. Не забудьте припаять 2.Резистор 2 кОм между выводом DS18B20 Vdd (3) и выводом DS18B20 DQ (2). Проводка датчика температуры DS18B20 1WIRE ПОДСКАЗКА: , если вы хотите иметь несколько датчиков температуры 1WIRE, просто подключите их в параллельном режиме (требуется один подтягивающий резистор; проверьте правильность значений в таблицах данных) и взломайте программное обеспечение (используйте 1,2 .. sensorIndex в » sensor.getTempCByIndex (sensorIndex) «).

Программное обеспечение Arduino для контроля температуры

а. Мы используем версию Dallas Temperature library 3.7.2 beta. Загрузите отсюда: Miles Burton Dallas Temperature library v 3.72 бета. б. Установите эту библиотеку >> как установить здесь. c. Создайте папку с именем «SMS_THERMAL_alarm_supervisor». d. Затем загрузите «c-uGSM kickstart for Arduino» из c-uGSM CODE SAMPLES and UTILITIES или «d-u3G kickstart for Arduino» из d-u3G CODE SAMPLES and UTILITIES, если вы используете d-u3G shield. IMEI продукта (*) и ваш адрес электронной почты необходимы для выполнения загрузки. * IMEI можно найти в верхней части модуля GSM / 3G, установленного на вашем щитке GSM / 3G itbrainpower.net, или вы можете обнаружить выполнение «AT + CIMI «команда.c. Распакуйте архив и скопируйте «cuGSM_basic_lbr.h», «cuGSM_basic_lbr.ino», «cuGSM_SMS_lbr.h» или «cuGSM_SMS_lbr.ino» («du3_basic_lbr.h», «du3G_basic_lbr.lbr.h» или «du3G_basic_lbr.lbr.ino», «du3G_basic_lbr.lbr.ino», «du3G_basic_lbr.lbr.ino», «du3G_basic_lbr.lbr_MS_. ino «- 4 пользователя d-u3G) в ранее созданную папку. d. Скопируйте код по ссылке ниже и создайте файл с именем «SMS_THERMAL_alarm_supervisor.ino» в той же папке, что и выше. Вы также можете скачать отсюда (щелкните правой кнопкой мыши и сохраните как): SMS_THERMAL_alarm_supervisor.ino: ARDUINO THERMAL SMS ALARM & GSM / 3G SHIELD — основной код е. Отредактируйте «SMS_THERMAL_alarm_supervisor.ino» (дважды щелкните файл; он будет открыт средой ARDUINO). Введите желаемый номер мобильного телефона назначения в строке 19. (Перед этим вы можете проверить поддерживаемый формат номера SMS своим NMO, используя наше программное обеспечение кикстарта.) Введите желаемые значения для пороговых значений температуры, выборки и времени поддержки. Вы можете редактировать SMS-команды и SMS-сообщения, присвоенные тревожным событиям. Если вы используете экран c-uGSM, прокомментируйте строку 17.

Поведение приложения — как его использовать

# 0 ВЫКЛЮЧИТЬ ТРЕВОГУ, # 1 ВКЛЮЧИТЬ ТРЕВОГУ. Любое другое полученное SMS-сообщение вызывает ТРЕВОГА в виде «справочного сообщения». KEEP ALIVE SMS >> тепловой супервизор отправляет SMS (с СОСТОЯНИЕМ и последней температурой) в каждый «keepAlivePeriod» (секунды), если температура находится внутри порогового интервала «lowTempLevel» и «highTempLevel», или в каждом «keepAlivePeriod» / 10 «(секунд), если температура вне интервала (ALARM STATUS).Светодиод Arduino (D13) копирует состояние постановки / снятия с охраны.

… некоторые (сумасшедшие !?) предложения по использованию

    • Контроль температуры новорожденного …. ПРОСТО ДЕТСКИЕ РЕБЯТА! НИКОГДА НЕ ДЕЛАЙТЕ ЭТОГО!
    • бочка для брожения домашнего пива;)
    • Контроль температуры погреба
    • мониторинг аквариумов
    • морозильные камеры
    • обогреватели
… другие. В любом случае всегда адаптируйте датчик (и) температуры к окружающей среде (например.: жидкости, пыль, вибрация, тепло и т. д.) или используйте подходящие герметизированные датчики. РУКОВОДСТВО И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЮТСЯ БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ !!! ИСПОЛЬЗУЙТЕ ЕГО НА СВОЙ СТРАХ И РИСК!!!!

Возможные улучшения

  • Ограничить обработку SMS только с «phoneNumber» (главный номер) … Достаточно посмотреть в функции readSMS (библиотека SMS), после второй строки readline () переменная buffd содержит заголовок SMS (номер отправителя, дата + время). Просто обработайте там, чтобы извлечь номер отправителя SMS…
  • Добавьте дополнительные пороговые уровни температуры, чтобы контролировать и компенсировать температурный дрейф, используя один или несколько ЯЧЕЕК ПЕЛЬТЬЕ через цифровой выход Arduino плюс TIP122 в конфигурации с открытым коллектором или реле ??
Пожалуйста, не стесняйтесь вносить любые изменения, которые вам нравятся, и добавлять предложения в поле для комментариев! Наслаждаться! Первоначально опубликовано Dragos Iosub & itbrainpower team Значения датчика

Arduino через SMS — education8s.телевизор

В этом проекте Arduino мы узнаем, как отправлять SMS со значениями датчиков с помощью щита GSM. Мы собираемся отправить SMS с пропущенным звонком бесплатно! Есть много чего рассказать, так что приступим!

По соображениям конфиденциальности YouTube требуется ваше разрешение для загрузки. Для получения дополнительной информации, пожалуйста, ознакомьтесь с нашей Политикой конфиденциальности. Я принимаю

Введение в учебник Arduino SMS

В этом видео мы создаем проект, в котором, когда мы вызываем Arduino, он отправляет SMS с температурой и влажностью, которые он измеряет с помощью датчика DHT22.Этот проект отлично подходит, когда мы хотим удаленно определять удаленное местоположение или заставить Arduino выполнять действие удаленно бесплатно. Когда мы вызываем Arduino, он немедленно прерывает вызов и выполняет действие. Таким образом, мы получаем сигнал «занято», и плата за этот пропущенный вызов не взимается. Давайте попробуем и посмотрим, как это работает. Хорошо, я сейчас позвоню в Ардуино. Мы слышим сигнал «занято» и собираемся получить SMS. Жду смс сейчас. Это может произойти в любую минуту. Вот. Как видите, температура 21,7, влажность 59.3 процента Отлично, не правда ли?

——————–


ГДЕ КУПИТЬ
——————–

1. GSM Shield: https://educ8s.tv/part/GSMShield

2. Датчик DHT22: https://educ8s.tv/part/DHT22

3. Arduino Uno: https://educ8s.tv/part/ArduinoUno

4. Тестер напряжения USB: https://educ8s.tv/part/UsbDoctorOLED

5. Powerbank: https://educ8s.tv/part/Powerbank

6. Провода: https://educ8s.tv/part/Wires

Полное раскрытие информации: все приведенные выше ссылки являются партнерскими.Я получаю небольшой процент от каждой продажи, которую они производят. Спасибо за поддержку!

[AdSense]

Теперь давайте посмотрим, как построить этот проект. Для этого проекта все, что нам нужно, это Arduino Uno, экран GSM от tinySine и датчик DHT22. Мы подготовили подробные руководства о том, как использовать экран tinySine GSM, так что ознакомьтесь с ними! Все, что нам нужно сделать, это подключить экран к Arduino Uno. ОК. Далее нам нужно подключить датчик DHT22. Подключаем вывод с минусом к Arduino Ground.Мы подключаем контакт со знаком плюс к Arduino 5V, и, наконец, мы подключаем выходной сигнал к цифровому контакту 7. Цифровой контакт 8 не работает, потому что он используется экраном tinySine GSM, а также контактами 0 и 1. У меня нет. Я тестировал любые другие контакты, но я уверен, что цифровой контакт 7 работает нормально. Давайте теперь включим его с помощью небольшого блока питания. Я подключил этот небольшой блок питания, и теперь, как вы можете видеть, ток составляет около 70 мА, а потребляемая мощность — 0,35 Вт. Итак, этот проект может питаться от батареи, если вы находитесь в удаленном месте, вы можете использовать солнечную энергию для питания этого устройства.

——————–


БИБЛИОТЕКИ
——————–

GSM Shield Library: http://www.tinyosshop.com/datasheet/GSM_GPRS_GPS_Shield_GSMSHIELD.rar

Библиотека DHT22: https://github.com/adafruit/DHT-sensor-library

Теперь перейдем к компьютеру и посмотрим код проекта. Код проекта прост. Мы используем библиотеку от tinySIne, разработчика щита. В коде мы каждую секунду проверяем состояние щита. Если есть входящий звонок, мы немедленно отключаем его, а затем считываем температуру и влажность с датчика DHT22.Затем мы составляем SMS с данными и отправляем SMS на заранее определенный номер телефона. В этой части кода вы можете разместить любое действие, которое вы хотите выполнить с помощью Arduino. Это так просто! Конечно, вы можете найти код в описании видео. Итак, это сегодняшний проект. Довольно полезное устройство для удаленного определения местоположения или отдельной команды для Arduino без каких-либо затрат. В следующих видеороликах мы увидим, как отправлять команды в Arduino с помощью SMS-сообщений, так что следите за обновлениями!

——————–


КОД
——————–