Gsm модуль arduino

Использование GPRS в GSM модуле

В этом проекте мы использовали обычный GSM модуль с SIM картой для GPRS соединения. Технология GPRS в нашем проекте ответственна за передачу данных на сервер Sparkfun. Ранее на нашем сайте мы уже рассматривали передачу данных на веб-сервер с помощью Arduino и Wi-Fi модуля ESP8266, здесь же мы вместо технологии Wi-Fi применим технологию GPRS. Более подробно все описанные в статье процессы можно посмотреть на видео, приведенном в конце статьи.

GPRS расшифровывается как General Packet Radio Services и переводится как пакетная радиосвязь общего назначения. Данная технология способна обеспечивать выход в сеть интернет и работать со скоростями передачи данных 56-114 кбит/с.

При этом нет необходимости покупать какой то отдельный модуль для работы с GPRS поскольку она реализована в обычном GSM модуле. Для управления GSM модулем мы будем использовать так называемые AT команды. Далее рассмотрены некоторые из этих команд доступные для модуля SIMCOM SIM900A (на самом деле их достаточно много, информацию по ним легко найти в сети интернет), которые нам понадобятся в данном проекте.

Для передачи данных на веб-сервер с помощью технологии GPRS нам, прежде всего, необходимо инициализировать GSM модуль.

Команды для инициализации GSM модуля

AT : эта команда используется для проверки того отвечает ли GSM модуль или нет
AT+CPIN? : эта команда используется для проверки того вставлена ли SIM карта в GSM модуль или нет
ATE0 : эта команда отключает эхо, то есть чтобы модуль не повторял в ответ команды, которые мы ему передаем
ATE1 : эта команда используется для включения эхо

1
2
3
4

ATэтакомандаиспользуетсядляпроверкитогоотвечаетлиGSMмодульилинет

AT+CPIN?этакомандаиспользуетсядляпроверкитоговставленалиSIMкартавGSMмодульилинет

ATE0этакомандаотключаетэхо,тоестьчтобымодульнеповторялвответкоманды,которыемыемупередаем

ATE1этакомандаиспользуетсядлявключенияэхо

Команды для инициализации GPRS интернет соединения

AT+CIPSHUT : закрыть TCP порт, что означает прекращение всех соединений

AT+CGATT? : проверка имеет ли SIM карта интернет соединение или нет

AT+CSTT = «APN»,»userName»,»Pass» : соединение с интернет

(ex; AT+CSTT=»airtelgprs.com»,»»,»»)

AT+CIICR : соединение с беспроводной сетью. Проверяемая SIM карта должна иметь предоплаченный объем данных или положительный баланс

AT+CIFSR : получить IP (иногда без этой команды GSM не будет работать поэтому желательно ее использовать)

AT+CIPSTART = ”TCP”,”SERVER IP”,”PORT” : эта команда используется для создания TCP соединения с сервером который мы прописываем в поле SERVER IP

AT+CIPSEND : эта команда используется для передачи данных на сервер. After input, this command server asks for data.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

AT+CIPSHUTзакрытьTCPпорт,чтоозначаетпрекращениевсехсоединений
 

AT+CGATT?проверкаимеетлиSIMкартаинтернетсоединениеилинет
 

AT+CSTT=»APN»,»userName»,»Pass»соединениесинтернет
 

(ex;AT+CSTT=»airtelgprs.com»,»»,»»)

AT+CIICRсоединениесбеспроводнойсетью.ПроверяемаяSIMкартадолжнаиметьпредоплаченныйобъемданныхилиположительныйбаланс
 

AT+CIFSRполучитьIP(иногдабезэтойкомандыGSMнебудетработатьпоэтомужелательноееиспользовать)

AT+CIPSTART=”TCP”,”SERVER IP”,”PORT”этакомандаиспользуетсядлясозданияTCPсоединенияссерверомкоторыймыпрописываемвполеSERVER IP

AT+CIPSENDэтакомандаиспользуетсядляпередачиданныхнасервер.After input,thiscommand server asks fordata.

После ввода данных мы передаем 26 на сервер. Если все нормально, то данные будут успешно загружены на сервер и SparkFun (сервер в нашем рассматриваемом случае) отвечает что все нормально или произошла ошибка.

Использование

  • После сборки и прошивки устройство требует загрузки конфигурации (с помощью утилиты).
  • При подключении к USB нормальная работа устройства приостанавливается, очередь неотправленных сообщений очищается.
  • При неудачной отправке SMS, устройство произведет повторную попытку через 2 минуты, затем через 5, 10, 20, дважды через 40 и затем каждые 12 часов.
  • После принятого звонка, он будет завершен через 3 минуты.
  • Звуковая сигнализация включается на 30 секунд.
  • События «открытие двери», «движение» и «изменения освещения» срабатывают не чаще, чем раз в 20 мин.
  • Если питание устройства отсутствует более 3 часов, то записанная история измерения температуры сбрасывается.

Проблемы

За время эксплуатации температура в помещении понизилась с +10°С до -15°С и обнаружилась две проблемы.

  1. Используемый PIR датчик начинает давать ложные срабатывания при низких температурах. При +5°С использование стало совсем невозможным: число ложных срабатываний превысило одно в день. Попытка замены датчика на другой проблему не решило, поэтому сейчас этот датчик временно отключен. Что с этим делать пока не понятно.
  2. Датчик температуры, встроенный в DS3231 при -10°С и ниже начал сходить с ума: периодически выдает случайные значения, например, «-84°С» или «+115°С». Интересно, что RTC работает нормально. На текущий момент не понятно, проблема ли это конкретно моего экземпляра или нет. Жду для проверки второй идентичный модуль, при повторении с ним проблемы в устройство будет добавлен DS18B20.

В остальном полет нормальный.

Код Arduino – тестирование AT команд

Для отправки AT команд и взаимодействия с платой расширения SIM900 мы будем использовать монитор последовательного порта. Приведенный ниже скетч позволит Arduino связываться с платой расширения SIM900 в мониторе последовательного порта. Прежде чем приступить к подробному разбору кода, подключите Arduino к компьютеру, скомпилируйте приведенный ниже код и загрузите его в Arduino.

Открыв монитор последовательного порта, убедитесь, что выбрана опция «NL & CR»!

Скетч начинается с включения библиотеки и ее инициализации выводами Arduino, к которым подключены Tx и Rx платы расширения SIM900.

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

Теперь, когда мы установили базовое соединение, мы попытаемся установить связь с платой расширения SIM900, отправляя AT команды.

– это самая базовая AT команда. Она также инициализирует автоматическое определение скорости. Если всё работает, вы должны увидеть эхо символов AT, а затем ОК, сообщающее, что все в порядке, и модуль вас правильно понимает! Затем вы можете отправить несколько команд для запроса и получения информации о плате расширения, таких как:

– проверить «уровень сигнала» — первое число – это уровень в дБ, он должен быть выше 5. Чем выше, тем лучше. Конечно, это зависит от вашей антенны и местоположения!

– получить номер SIM-карты – она проверяет, что SIM карта найдена, и вы можете сверить номер, записанный на карте.

– убедиться, что вы зарегистрированы в сети. Второе число должно быть 1 или 5. 1 означает, что вы зарегистрированы в домашней сети, а 5 – в роуминге. Другие цифры, отличающиеся этих двух, означают, что вы не зарегистрированы ни в одной сети.

В основном цикле программы мы вызываем пользовательскую функцию , которая непрерывно ожидает любые входные данные от последовательного монитора и отправляет их на плату расширения SIM900 через вывод D8 (Rx платы расширения). Она также постоянно читает вывод D7 (Tx платы расширения) на случай, если плата расширения выдает какие-либо отклики.

В мониторе последовательного порта вы должны увидеть вывод, примерно такой как показан ниже.

Рисунок 16 – Базовые AT команды SIM900 GSM Shield на Arduino

Теперь вы можете свободно отправлять любые команды через монитор последовательного порта, например, те, которые показаны ниже, и которые дает дополнительную информацию о подключении к сети и состоянии аккумулятора:

– получить имя и версию платы расширения

– проверить, что вы подключены к сети

– вернуть список операторов, присутствующих в сети

– вернуть состояние литий-полимерного аккумулятора. Второе число является процентом от полного заряда (в данном случае это 93%), а третье число является фактическим напряжением в мВ (в данном случае 3,877 В)

Рисунок 17 – Получение дополнительной информации от SIM900 GSM Shield с помощью AT команд на Arduino

Для получения дополнительной информации о AT командах SIM900 смотрите документ ниже.

Проблемы

За время эксплуатации температура в помещении понизилась с +10°С до -15°С и обнаружилась две проблемы.

  1. Используемый PIR датчик начинает давать ложные срабатывания при низких температурах. При +5°С использование стало совсем невозможным: число ложных срабатываний превысило одно в день. Попытка замены датчика на другой проблему не решило, поэтому сейчас этот датчик временно отключен. Что с этим делать пока не понятно.
  2. Датчик температуры, встроенный в DS3231 при -10°С и ниже начал сходить с ума: периодически выдает случайные значения, например, «-84°С» или «+115°С». Интересно, что RTC работает нормально. На текущий момент не понятно, проблема ли это конкретно моего экземпляра или нет. Жду для проверки второй идентичный модуль, при повторении с ним проблемы в устройство будет добавлен DS18B20.

В остальном полет нормальный.

Типовые схемы

Рассмотрим примеры подключения указанных модулей к контроллерам Arduino.

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

Рассмотрим несколько примеров сборки аппаратной части.

Arduino Uno и контроллер SIM800L

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

Изучим распиновку устройства:

Последовательность действий:

  • подключаем плату UТO к компьютеру;
  • к ней подводится питание 12 В через конвертер;
  • минус источника выводится на контакт GND Ардуино, а GND — на контакт минуса конвертера;
  • плюс ИП идет к плюсу преобразователя;
  • плюс конвертера — к плюсу блока GSM;
  • минус с «земли» преобразователя на GND сотового блока;
  • RXT и TXD блока на 2, 3 пины микроконтроллера UNO соответственно.

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

UNO и A6

Здесь напряжение питания стандартное, и конвертер в схему не включается. Платы соединяются напрямую.

Общая схема распиновки:

Принцип соединения контактов:

  • UART_RXD выводится на TX 1 UNO;
  • UART_TXD — на RX 0;
  • GND соединяется с GND на GSM-блоке;
  • пин электропитания VCC0 c кнопкой включения PWR-KEY.

Шилд GSM SIM900 и контроллер Arduino Mega

Пиковая сила тока при активации устройства может достигать 2 А, в связи с чем напрямую питание подключать нежелательно. Перед соединением плат нужно поставить SIM-карту в предназначенный для нее слот и установить TX и RX джамперы:

Последовательность дальнейших действий:

  • желтый провод (TX) объединяется с TX Arduino;
  • зеленым соединяются контакты RX;
  • GND выводится на «землю» микроконтроллера.

Проверить собранный гаджет можно следующим экспериментом:

  • соединить GND и RESET главного микроконтроллера;
  • вставить в разъем сим-карту;
  • подать питание на модуль GSM;
  • подключить центральную плату Arduino к ПК через порт USB, нажать кнопку ON;
  • Если все собрано верно, красный светодиод загорится, а зеленый станет мигать.

Популярные GSM-модули связи

Модуль сотовой связи для Arduino представляет собой устройство из платы и размещенных на ней элементов, включая приемопередатчик. Все они скомпонованы в едином корпусе, снабженном выведенными контактами для подсоединения к материнскому контроллеру. Иногда такой компонент называют шилдом.

SIM900

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

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

  • рабочие частоты четырех стандартов — EGSM900, GSM850, DCS1800, PCS1900;
  • напряжение — от 3.2 до 4.8 вольт;
  • ток в состоянии простоя — 450 мА, пиковый – 2 А;
  • скорость канала GPRS — 14.4 Кбит/с;
  • рабочие температуры с гарантией отсутствия искажений — от −30 до +80 градусов, с таковыми от −40 до +85. В последнем диапазоне заявлены минимальные отклонения без потери работоспособности устройства;
  • масса — 6.5 г;
  • габариты — 24×24×3 мм.

Существует несколько модификаций модуля с индексами B, D. TE-C, R и X. Они обладают определенными отличиями. Так, модель D дооснащена подсистемой зарядки аккумулятора, а плата с индексом X содержит улучшенные режимы энергосбережения, продлевающие срок работы батареи без подзарядки. Это позволяет применить радиомодуль в требующих длительной автономности системах охраны, трекинга, промышленной автоматизации.

Вне зависимости от модификации этот GSM модуль Ардуино поставляется в корпусе SMT с выведенными на торец контактами для распайки. Существуют версии и в иных исполнениях.

Контроллер SIM800L

Чип SIM800L «умеет» обмениваться информацией в режиме дуплекса через GSM и технологию GPRS. В устройстве предусмотрен слот под сим-карту, интегрированная антенна и дополнительный выход для внешней. Питание подается как от конвертера тока DC-DC, так и от иных внешних источников. С главным контроллером SIM800L взаимодействует через UART.

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

  • четырехдиапазонный радиомодуль;
  • рабочее напряжение питания — от 3.8В до 4.2 В;
  • ток в standby 0.7 мА, в пиковом нагрузке — 500 мА;
  • слот под SIM карту;
  • имеется поддержка связи 2G;
  • температурный режим — от −30 до +75 градусов.

A6

Это популярный шилд от разработчика AI-Thinker. Контроллер А6 позволяет принимать и посылать GSM GPRS сигналы через сотовые сети и весьма популярен в проектах систем автоматизации и удаленного доступа к управлению.

Характеристики модуля:

  • четырехдиапазонный терминал мобильной связи;
  • питание — от источника 5 В;
  • потребляемый в состоянии «сна» ток — 3 мА, в standby 100 мА, при передаче 500 мА;
  • максимальная нагрузка гаджета — 2 А;
  • скорость GPRS — до 42.8 Кбит/с;
  • диапазон рабочих температур от −30 до +80 градусов.

А7

Он развивает модуль А6 и отличается встроенным чипом позиционирования GPS. Последний добавляет плате функциональности, одновременно упрощая конструкцию.

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

  • сотовый терминал с 4-мя диапазонами;
  • напряжение питания — от 3.3 до 4.6 В;
  • источник тока — 5 В;
  • модуль GPRS класса 10, скорость трансляции до 86.5 Кбит/с;
  • имеется встроенное подавление электронного эха, статических шумов и паразитных наводок.

NeoWay M590

Данное GSM GPRS устройство 10 класса подключается по UART и умеет осуществлять обмен SMS, работать со звонками и взаимодействовать по протоколу GPRS.

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

  • двухдиапазонный контроллер с поддержкой стандартов DCS1800 и EGSM 900;
  • 10 класс модуля GPRS;
  • напряжение питания от 3.3 до 5 В;
  • пиковый ток — 2 А;
  • рабочий ток устройства — 210 мА;
  • заявленный диапазон эксплуатационных температур — от −40 до +80 градусов.

Для подсоединения к Ардуино понадобится преобразователь электропитания 3.3–5 В.

Использование

  • После сборки и прошивки устройство требует загрузки конфигурации (с помощью утилиты).
  • При подключении к USB нормальная работа устройства приостанавливается, очередь неотправленных сообщений очищается.
  • При неудачной отправке SMS, устройство произведет повторную попытку через 2 минуты, затем через 5, 10, 20, дважды через 40 и затем каждые 12 часов.
  • После принятого звонка, он будет завершен через 3 минуты.
  • Звуковая сигнализация включается на 30 секунд.
  • События «открытие двери», «движение» и «изменения освещения» срабатывают не чаще, чем раз в 20 мин.
  • Если питание устройства отсутствует более 3 часов, то записанная история измерения температуры сбрасывается.

Сборка устройства

Себестоимость деталей устройства на момент публикации этой статьи составляет примерно 1000-1200 рублей (без учета заказа платы). Для удобства сборки и надежности в эксплуатации лучше заказать плату. Китайские друзья с известного сайта предлагают сделать 10 штук с доставкой за ~$7, а иногда и меньше. Но всегда можно собрать и на макетке, как я и поступил с первым прототипом:

Прототип.

Arduino и совместимые модули были заказаны с aliexpress. Понадобятся:

  • Arduino Pro Mini 3.3v 8MHz (5v 16MHz is also acceptable, but requires different firmware);
  • MH-SR602 MINI Motion Sensor;
  • SIM800C(L) GSM Module;
  • CP2102 MICRO USB to UART TTL Module;
  • DS3231 RTC Module For Raspberry Pi;
  • 3 AA battery holder With ON OFF Switch;
  • различная рассыпуха (резисторы, конденсаторы, зуммер и поч.).

В списке специально указаны названия, дающие нужный результат при вводе в поиск.

Схема устройства.

Для снижения энергопотребления с платы Arduino нужно обязательно удалить резистор светодиода питания и регулятор напряжения. Проект платы сделан в Ki-CAD.

Базовые блоки

Лазерный извещатель состоит из следующих элементов:

  • генератора;
  •  блока питания;
  • лазера;
  • реле;
  • цифровой микросхемы;
  • фотоэлемента;
  • звуковой извещатель (для пущего эффекта может применяться и светодиодная лампочка).

Обычно устанавливаю такой агрегат ближе к полу на расстоянии в 25-35 см, чтобы особо невнимательные грабители либо не заметили его, либо не смогли свободно проползти под ним или перепрыгнуть.

Закрепляют лазер, блок питания и реле с одной стороны, а фотоэлемент крепится на другой стене так, чтобы луч попадал на линзу.

Когда охранная сигнализация данного типа задействована, луч проходит по прямой линии к фотоэлементу. Так как пучок света преодолевает большое расстояние и не рассеивается, то его можно отражать неопределённое количество раз при помощи обычных зеркальных поверхностей, направленных под определённым углом друг к другу. Это помогает создать запутанный лабиринт, пройти который, не задев такую «растяжку», практически невозможно.

Если вор-неудачник пересечёт луч, сигнал не поступает к фотоэлементу, возникает сопротивление и реле блокируется. Таким образом реле передает сигнал резистору, а последний — извещателю.

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

Чтобы сигнализация не срабатывала от обычных солнечных лучей или иных источников света фоторезистор имеет специальную изоляцию.

Принцип работы любого модуля

DIY SIM800C GPRS GSM модуль в разобранном виде

GSM модуль принимает радиочастотные волны от сим-карты мобильного устройства любых операторов связи на частоте — 850/900/1800/1900 МГц. Затем обрабатывает данные контроллерами. Выполняет запрограммированный сценарий:

  • оповещают о форс-мажорной ситуации;
  • приводят в действие подключённые устройства;
  • передают информацию синхронно/асинхронно и в пакетной форме по SMS, в графическом формате и речевым способом.

В результате, оборудование работает в заданных пользователем условиях, автоматизирует процессы, экономит владельцам время и деньги.

Шаг 1. В чем идея?

Фактически, спасти GSM-модуль от телефона очень сложно и потребуется много времени и навыков, поэтому в этом проекте мы будем придерживаться немного другого подхода.

Всякий раз, когда телефон получает SMS или телефонный звонок, он либо загорается, либо гудит/вибрирует, либо издает звук. Зная это, мы сможем воспользоваться этими функциями с помощью Arduino. Мы сделаем это, используя двигатель, который нужен для того, чтобы заставить телефон вибрировать.  Arduino прочитает данные и посмотрит, когда двигатель работает, что именно получает телефон — SMS или телефонный звонок.

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

Общий принцип

Лазерная сигнализация – это специальное чувствительное устройство, простая схема которого основывается на взаимодействии лазерного луча и сирены. Пересекая лазерную «растяжку» срабатывает сигнализация, которую слышно в радиусе 100 метров. Она предназначена как для сигнала тревоги для охраны, так и для отпугивания преступников. Ещё существует смс-информирование или отправка голосового сообщения в качестве уведомления об опасности. Отметим, что системы периметральной сигнализации редко используют лазерный сигнал из-за потери мощности и зависимости от метеоусловий.

Обзор

Инфракрасные (ИК, IR) датчики обычно используются для измерения расстояний, но их также можно использовать и для обнаружения объектов. ИК-датчики состоят из инфракрасного передатчика и инфракрасного приемника. Передатчик выдает импульсы инфракрасного излучения в то время, как приемник детектирует любые отражения. Если приемник обнаруживает отражение, это означает, что перед датчиком на некотором расстоянии есть какой-то объект. Если отражения нет, нет и объекта.

IR-датчик, который мы будем использовать в данном проекте, обнаруживает отражение в определенном диапазоне. Эти датчики имеют небольшое линейное устройство с зарядовой связью (CCD), которое детектирует угол, с которым ИК-излучение возвращается к датчику. Как показано на рисунке ниже, датчик передает инфракрасный импульс в пространство, а когда перед датчиком появляется объект, импульс отражается обратно к датчику под углом, пропорциональным расстоянию между объектом и датчиком. Приемник датчика детектирует и выводит угол, и, используя это значение, вы можете рассчитать расстояние.

Принцип действия инфракрасного датчика расстояния

Подключив пару ИК-датчиков к Arduino, мы можем сделать простую охранную сигнализацию. Мы установим датчики на дверной косяк, и, правильно выровняв датчики, мы сможем обнаружить, когда кто-то проходит через дверь. Когда это произойдет, сигнал на выходе ИК-датчика изменится, а мы обнаружим это изменение, постоянно считывая выходной сигнал датчиков с помощью Arduino. В данном примере мы знаем, что объект проходит через дверь, когда показание на выходе ИК-датчика превышает 400. Когда это произойдет, Arduino включит сигнал тревоги. Чтобы сбросить срабатывание сигнализации, пользователь может нажать на кнопку.

Troubleshooting

Ensure stable data & power connection

Most modules require as much as 2A to properly connect to the network.
This is 4x what a «standard» USB will supply!
Improving the power supply actually solves stability problems in many cases!

  • Read about powering your module.
  • Keep your wires as short as possible
  • Consider soldering them for a stable connection
  • Do not put your wires next to noisy signal sources (buck converters, antennas, oscillators etc.)
  • If everything else seems to be working but you are unable to connect to the network, check your power supply!

Broken initial configuration

Sometimes (especially if you played with AT commands), your module configuration may become invalid.
This may result in problems such as:

  • Can’t connect to the GPRS network
  • Can’t connect to the server
  • Sent/received data contains invalid bytes
  • etc.

To return module to Factory Defaults, use this sketch:
File -> Examples -> TinyGSM -> tools -> FactoryReset

In some cases, you may need to set an initial APN to connect to the cellular network.
Try using the function to set an initial APN if you are unable to register on the network.
You may need set the APN again after registering.
(In most cases, you should set the APN after registration.)

Diagnostics sketch

Use this sketch to help diagnose SIM card and GPRS connection issues:
File -> Examples -> TinyGSM -> tools -> Diagnostics

If the diagnostics fail, uncomment this line to output some debugging comments from the library:

#define TINY_GSM_DEBUG SerialMon

In any custom code, must be defined before including the TinyGSM library.

If you are unable to see any obvious errors in the library debugging, use StreamDebugger to copy the entire AT command sequence to the main serial port.
In the diagnostics example, simply uncomment the line:

#define DUMP_AT_COMMANDS

In custom code, you can add this snippit:

#ifdef DUMP_AT_COMMANDS
  #include <StreamDebugger.h>
  StreamDebugger debugger(SerialAT, SerialMon);
  TinyGsm modem(debugger);
#else
  TinyGsm modem(SerialAT);
#endif

Web request formatting problems — «but it works with PostMan»

  • Look at the «WebClient» example
  • Make sure you are including all required headers.
  • Use , or , or even , not to help prevent text being sent out one character at a time (typewriter style)
  • Enclose the entirety of each header or line within a single string or print statement
    client.print(String("GET ") + resource + " HTTP/1.1\r\n");

    instead of

    client.print("GET ");
    client.print(resource);
    client.println(" HTTP/1.1")
  • Make sure there is one entirely blank line between the last header and the content of any POST request.
    • Add two lines to the last header or put in an extra
    • This is an HTTP requirement and is really easy to miss.

SoftwareSerial problems

When using (on Uno, Nano, etc), the speed 115200 may not work.
Try selecting 57600, 38400, or even lower — the one that works best for you.
In some cases 9600 is unstable, but using 38400 helps, etc.
Be sure to set correct TX/RX pins in the sketch. Please note that not every Arduino pin can serve as TX or RX pin.

ESP32 Notes

HttpClient

You will not be able to compile the HttpClient or HttpsClient examples with ESP32 core 1.0.2. Upgrade to 1.0.3, downgrade to version 1.0.1 or use the WebClient example.

Goouuu Tech IOT-GA6 vs AI-Thinker A6 confusion

It turns out that Goouuu Tech IOT-GA6 is not the same as AI-Thinker A6. Unfortunately IOT-GA6 is not supported out of the box yet. There are some hints that IOT-GA6 firmware may be updated to match A6… See this topic.

This project is released under
The GNU Lesser General Public License (LGPL-3.0)

Проект

Ультразвуковой датчик HC-SR04 мы уже использовали во многих проектах и он же используется здесь для распознавания присутствия любого человека за дверью.

Модуль датчика включает в себя ультразвуковой передатчик, приемник, а также схему управления. Он включает в себя два «круглых глаза», один из которых используется для передачи ультразвуковой волны, а другой — для ее приема.

Мы можем оценить расстояние до объекта, зависящее от времени, затрачиваемого ультразвуковыми волнами, чтобы вернуться обратно к датчику. Это делается с помощью формулы:

Расстояние = (Время х Скорость звука) / 2

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

Мы можем проверить всю цепь, просто поместив что-нибудь перед датчиком в пределах определенного диапазона

Перейдем к схеме соединения нашего устройства.

Заключение

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

Разумеется, использовать их как средство передачи крупных объемов данных нельзя, поскольку доступ в интернет этим классом устройств обеспечивается только через GPRS, с небольшими скоростями. Но в задачах создания дешевой и надежной охранной системы, комплекса мониторинга или хаба «умного дома» такие решения находят обширное применение — как у энтузиастов, так и профессионалов.

Оцените статью:
Оставить комментарий