Arduino gsm управление отоплением
Появилась потребность изготовить бюджетный контроллер отопления. Да такой, чтобы можно было управлять им удаленно с помощью SMS команд, и получать данные о температуре влажности и состоянии сети 220 вольт.
Для проекта понадобятся:
Плата Arduino UNO,
GSM модуль SIM800L, Провода,
Твердотельное реле G3MB-202P,
Модуль зарядки LI-ION батарей от MICROUSB,
LI-ION батарея на 3.7 вольта с емкостью от 1000 миллиампер,
Зарядка от телефона, или блок питания на 5 вольт, и от 500 до 1000 миллиампер,
Датчик температуры и влажности DHT11,
Датчик температуры LM35,
4 сопротивления на 250-500 ом, 2k, 2.4k и 10k
Для индикации любой маломощный светодиод,
Еще понадобится: активная сим карта с положительным балансом на счету.
Вилка, розетка, и коробка в корой все поместится.
Коробку для корпуса лучше использовать из негорючего пластика!
В 16 строке скетча, необходимо вписать номера телефонов, с которых будет разрешено принимать SMS команды.
Также в 245 строке необходимо указать номер, на который будут приходить данные о температуре, влажности, состоянии сети 220 вольт и какую программу выполняет контроллер.
Я прописал в этот скетч 8 SMS команд.
Часть из них служат для переключения на интересующую программу, а остальные для запроса отчета, и настройки климат контроля.
Более подробно я рассказываю на видео, которое закреплено в конце этой статьи
//Начало скетча
//Конец скетча
Указав свои номера в скетче, загружаю его на плату.
Затем надо подготовить GSM модуль SIM800L. Припаять антенну, делитель напряжения, и еще 3 провода, как показано на схеме ниже.
Делитель напряжения нужен, для того чтобы не спалить GSM модуль. Сигнал входящего высокого уровня, для модуля SIM800L должен быть в пределах от 2.1 до 2.8 вольта!
Затем собираю все как показано на этой схеме.
Я в схеме применил твердотельное реле G3MB-202P, которое рассчитано на нагрузку до 2 Ампер. Этого вполне достаточно для обычного циркуляционного насоса!
Если вы планируете, управлять мощным обогревателем или теплым полом, то используйте более мощное твердотельное реле, на пример SSR-40DA, которое выдерживает до 40 Ампер, или SSR-80DA до 80 Ампер. И провода соответствующего сечения!
Не используйте слишком тонкие провода для питания GSM модуля, так как при запуске модуля, нагрузка может достигать 2 Ампер. При использовании очень тонких проводов, возникает просадка по напряжению, и модуль не сможет найти сеть GSM.
Подробная видео инструкция о том как пользоваться GSM контроллером.
Творческая мастерская Мастер Колотушкин 2021
Проекты на базе Arduino для начинающих, электронные самоделки своими руками.
Управление отоплением на ардуино по gsm. Подключение с помощью GSM-GPRS шилда. Основные характеристики Arduino Uno
GSM-lib написанна под Arduino IDE версии 1.0. Скачать последную версию библиотеки с готовыми примерами использования можно из репозитория проекта . Для установки — распакуйте архив GSM в директорию libraries (/arduino-1.0/libraries/GSM). После запуска среды разработки Arduino, в меню программы «File -> Examples» появится пункт GSM, с примерами скетчей.
Библиотека GSM разработана для работы с шилдом « ». Она аппаратно совместима с платами Arduino (Uno, Duemilanove и прочие аналоги). При использовании других плат, возможно, потребуется внесение правок в GSM.cpp для указания правильного порта, на который выведена с шилда линия включения модема.
В настоящий момент в библиотеке реализованы следующие функциональные возможности.
- Регистрация в GSM-сети
- Отправка SMS
- Прием и разбор SMS
- Прием входящих вызовов
- Проверка статуса соединения с сетью GSM, восстановление сети при потере сигнала
Регистрация в GSM-сети
Для регистрация модема в сети необходимо указать пин-код симкарты. Важно помнить, что если вы укажете неправильный номер, симкарта может заблокироваться, т.к. функция инициализация будет периодически повторяться до удачной попытки. Процесс инициализации обычно занимает около 1 минуты.
Первичная инициализация выполняется в функции setup().
Постановка задачи
- Используя только Arduino и GSM модуль управлять светодиодом посредством звонка с телефона.
- Отправлять СМС (пока через команду поступающую через монитор порта в Arduino IDE)
Подключение к Arduino
Соединяем GSM модуль с Arduino.
5В модуля -> 5V Arduino
GND модуля -> GND Arduino
ТХ модуля -> digital pin2 Arduino
RX модуля -> digital pin3 Arduino
Распиновку можно посмотреть на фото. Порядок контактов такой: 1 — +5В, 2 — GND, 7 — TX, 8 — RX.
Запитать модуль можно от 4В до 5В, я использовал 5 вольтовый выход.
Модуль требует отдельного питания, потому что потребляет в пике до 2А. Конденсатор скорей всего не спасет. Поэтому при запитке от Ардуино может не работать или глючить.
Землю Ардуино и модуля GSM при раздельном питании надо соединить, но сначала нужно мультиметром замерить напряжение между этими «землями». Некоторые компьютерные блоки питания имеют перепад потенциала на корпусе и земле USB до 100В. Ток там мизерный и убить не может, но уничтожить Ардуино или модуль GSM или то и другое вместе — запросто.
Скетч
Проверка
В рассматриваемой версии модуля 1.30 поддержка GPRS урезанная. Мне не удалось подключиться к серверу по его DNS имени (например mysite.ru), получилось только по IP-адресу. В другом модуле SIM800L таких проблем не было.
Перечень некоторых AT команд:
AT+CMGF=1 | Вкл. текстового режима (смс только латиницей) |
AT+CSCS= «GSM» | Вкл. режима |
AT+CLIP=1 | включение определения номера входящего звонка Если отправить команду с 0, то определение номера отключится и модуль вместо номера вызывающего будет слать только сообщение «RING». |
AT+CMGS=»+79123456789″ | Отправка СМС |
ATI | Получить информацию об устройстве |
AT+IPR=19200 | настройка скорости порта |
AT+GSN | вернет IMEI модуля |
AT+CCLK? | считываем время с модуля |
AT+CCLK=«yy/mm/dd,hh:mm:ss+zz» | где по порядку идут «год/месяц/дата,час:минуты:секунды+часовой пояс» Данные обязательно отправляются с ведущими нулями, то есть, к примеру, если месяц у нас «4», то отправить должны «04». Получить обратно текущие время и дату можно отправив ту же команду, только со знаком «?»: |
AT+CMEE=0 | уровень информации об ошибке. Может быть от 0 до 2. 0 — отключено. Будет просто писать ERROR. 1 — код ошибки. Будет возвращать цифровой код ошибки. 2 — описание ошибки. Напишет что именно ему не нравится в команде. Для работы с модулем через терминал удобней режимы ATV1, ATE1 AT+CMEE=2, для общения с микроконтроллером лучше использовать ATV0, ATE0 и AT+CMEE=0 — так проще будет обрабатывать полученные ответы. Данные настройки не сохраняются после перезагрузки модуля, поэтому необходимо включать эти команды в код программы. |
AT+CSQ | информация о качестве сигнала. Модуль вернет два числа +CSQ: 17,0 17 — уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие. 0 — коэффициент ошибок связи (т.н. RXQUAL). Может быть от 0 до 7, чем число меньше тем качество связи лучше. |
AT+COPS? | информация об операторе, в сети которого зарегистрирован модуль |
ATD+79121234567; | набор номера. («;» обязательно) Модуль позвонит по указанному номеру и вернет один из вариантов BUSY — номер занят NO DIALTONE — нет сигнала на линии NO CARRIER — нет сети или другая проблема (например, нет денег на счету) NA ANSWER — нет ответа CONNECT — есть контакт! |
AT+CMGR=3,0 |
Shield GPRS/GSM SIM900 с антенной
SIM900 GPRS/GSM Shield Development Board Quad-Band Kit For Arduino Compatible
Модуль для работы микроконтроллерных устройств Arduino и аналогичных в сетях сотовой связи по стандартам GSM и GPRS. Ориентирован на использование в системах автоматики и управления. Обмен данными с другими модулями происходит через интерфейс UART. Shield GPRS/GSM SIM900 с антенной может сопрягаться непосредственно с микроконтроллером через интерфейс UART или работать совместно с персональным компьютером при использовании преобразователя интерфейса портПК-UART. Это возможно благодаря программной совместимости на уровне класса команд используемых для управления модемами — АТ команды.
Мониторинг объектов и управление ими происходит благодаря обмену данными в пределах досягаемости мобильной связи. Обеспечивается голосовая связь, отправка СМС, ММС и много других функций и сервисов. Работа модуля основана на компоненте SIM900.
Статья на русском из журнала о компоненте SIM900 . Компонент разработан компанией SIMCom Wireless Solutions. Сайт SIMCom имеет русскоязычную версию . Плата GSM модуля на стороне компонентов содержит соединители для подключения антенны, наушников и микрофона. На стороне пайки платы размещены держатель батареи CR1220 3 вольта поддерживающей работу часов модуля и контейнер для установки симкарты.
Одно из применений устройства — система слежения за перемещениями транспорта совместно с ГЛОНАСС или GPS прибором. Отправка СМС сообщений позволяет использовать модуль в диспетчеризации, беспроводной сигнализации и в охранных системах. В результате происходящих событий могут отправляться различные СМС: “Аварийный стоп лифта 2 дома №34”, “Дверь автомобиля открыта”, “Подвал открыт”, “Напряжение 220 В выключено”, “Входная дверь дачи открыта”, “Включено освещение”, “Температура в теплице ниже критической”. Модуль незаменим для контроля и управления подвижными объектами, перемещающимися на большие расстояния. Или в случае удаления оператора на большое расстояние от стационарного объекта.
Shield GPRS/GSM SIM900 с антенной дает широкие возможности изучения работы компонента SIM900. Монтаж компонента SIM900 выполняется по самым современным технологиям из-за чего припаять к печатной плате SIM900 в лабораторных условиях весьма затруднительно. Имея модуль с установленным SIM900 можно проводить эксперименты по применению компонента SIM900. При использовании в собственных разработках компонента SIM900 появляется возможность отладки программного обеспечения и проверки схемотехнических решений.
Питание
напряжение, В
номинальное 5
диапазон 4,8-5,2
ток
обычный режим 50-450 мА
в спящем режиме 1,5 мА
предельный импульсный 2 А
Поддерживает симкарты питанием 1,8 и 3 В
Диапазоны связи 850, 900, 1800, 1900 МГц
Поддерживает сеть 2G
Мощность передачи в различных диапазонах
1 Вт 1800 и 1900 МГц
2 Вт 850 и 900 МГц
Соответствует стандарту GSM фазы 2/2+
Встроенные протоколы TCP и UDP
Класс передачи данных GPRS multi-slot class 10/8
Аудиокодеки HR, FR, EFR, AMR, подавление эха
CSD до 14,4кбит/сек
PPP стек
MUX (07.10)
Протоколы HTTP и FTP
Есть возможность отправлять сигналы DTMF и проигрывать записи как на автоответчике
Поддержка часов реального времени RTC
Температура, ℃
воздуха при работе -30. 75
хранения -45. 90
размеры 86 х 58 х 19 мм
Переключателем Power select устанавливается источник питания: внешний, подключенный к коаксиальному соединителю или источник питания микроконтроллерного модуля Arduino.
Кнопкой Power key включается или выключается питание при нажатии и удерживании в течение 2 с.
О состоянии модуля сообщают 3 светодиода:
PWR (зеленый) — индикатор питания модуля,
Status (красный) — индикатор питания компонента SIM900,
Net Light (зеленый) — соединение с сетью.
Сообщения светодиода Net Light.
Выключен — SIM900 не работает.
Мигает с интервалами, указано в секундах:
0,064 включен и 0,8 выключен — сеть не обнаружена,
0,064 включен и 0,3 выключен — сеть обнаружена,
0,064 включен, 0,03 выключен — GPRS подключен.
Компонент SIM900 содержит порт UART, его сигналы выведены на выводы компонента и соединены с перемычками, устанавливающими с какими контактами модуля Shield GPRS/GSM SIM900 будет соединен порт UART компонента SIM900 с D0, D1 или D7, D8.
UART Shield GPRS/GSM можно подключнить: к аппаратному интерфейсу МК через контакты TXD и RXD модуля Shield GPRS/GSM, для этого используются D0, D1. Или к программно эмулируемому средствами ардуино, для этого используются контакты D7 и D8 модуля Shield GPRS/GSM. Полный интерфейс UART имеет 10 сигналов выведенных на контакты в углу платы: R1, DCD, DSR, CTS, RTS, GND, 2V8, TX, RX, DTR.
12 подписанных контактов цифровых линий ввода-вывода GPIO расположены в углу платы. Имеется 2 контакта выходных сигналов с широтно-импульсной модуляцией PWM1, PWM2. Вход АЦП контакт ADC. Интерфейс встроенного счетчика времени имеет 4 контакта. Обозначение контактов: DISP_CLK, DISP_DATA, DISP_D/C, DISP_CS.
Контакт D9 используется для программного контроля включения или выключения SIM900.
На плате установлен соединитель для подключения антенны.
Назначение выводов компонента SIM900.
Внешнее включение и выключение питания
Включить или выключить питание модуля можно с помощью сигнала на управляющем входе D9. Для изменения состояния на D9 подается импульс продолжительностью 1 с. Изменение состояния происходит спустя 3,2 с после начала импульса.
Включение модуля. Графики напряжения питания модуля, внешнего управляющего импульса и индикатора питания STATUS.
При управлении модулем руководящим устройством включение должно происходить без применения кнопки Power key, т. е. сразу после подачи питания. Для этого в программу МК следует добавить несколько команд.
Void powerUpOrDown()
<
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
>
Эту группу команд в программе можно использовать и для выключения модуля. Также выключить GSM модуль можно посылая AT команду.