Шановні друзі!
31 грудня магазин працюватиме до 16 години. 1 та 2 січня магазин працювати не буде.
Вітаємо всіх з Різдвом та Новим Роком!
Мобильная версия Форум Arduino Документация Гарантийные условия 0 0
UA RU
График работы магазина:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Вс: выходной
Каталог
Напиши статью и получи скидку!

Комплекс домашней автоматизации (Часть 1)

2017-04-03

Все статьи →

Юрий Иванов

Модуль сбора данных, поступающих от датчиков, собран на основе платы GBoard SIM900 от Itead Studio. Плату пришлось немного доработать напильником, чтобы она поместилась в корпус, и заменить некоторые разъемы. Вместо разъема питания впаян USB разъем, питание осталось на стандартных местах, а на место D+ и D- подключены I2C_SDA и I2C_SCK. Разъем антенны также был удален.

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

К плате подключены следующие датчики:

- Фоторезистор (2шт.)

- Датчик газа MQ-2

- Датчик температуры цифровой ds18b20

- Датчик влажности и температуры DHT11

- Резистивный делитель в цепи питания 12В

- Электретный микрофон от мобильного телефона

Поскольку встроенный в плату DC-DC понижает напряжение до 4.2 В для питания датчика MQ-2 из подручных средств был спаян преобразователь 12-на-5 В на микросхеме MC34063. Повторять я его не рекомендую, микросхема морально устарела, но на всякий случай схему привожу ниже.

Ct=200
pFIpk=400
mARsc=0.75
OhmLmin=71
uHCo=5 uF
R1=6.8k R2=22k


На пины А2, А3, А6, А7 подключены соответственно делитель напряжения питания, датчик газа и два фоторезистора, А4 и А5 используются для I2C связи с мастером, А0 для датчика ds18b20 и А1 для DHT11.

Программа для ардуины в основном работает в режиме подчиненного устройства. По шине I2C принимается команда от мастер-устройства, в ответ посылается результат записи или считывания байта из памяти. Также модуль может самостоятельно посылать предупреждение на заранее запрограммированный номер телефона и адрес почты если датчик регистрирует серьезное повышение количества газа или при пропадании напряжения питания.

Для работы в аварийной ситуации установлен аккумулятор Li-Ion 18650. По команде от мастера модуль набирает номер телефона, отсылает и принимает SMS, отсылает электронную почту, регистрирует показания датчиков. Через Hardware Serial можно наблюдать загрузочную информацию и сообщения об ошибках.

Показания датчиков хранятся в десятичном виде, по два байта на датчик – карта памяти приведена ниже.

mem-map

Номер запрашиваемой команды записывается по адресу 0xF6 (246 байт), если есть параметр, то он записывается в буфер начиная с 0x3C (60 байт) адреса, а его длина в 0xF7 (247 байт). Если модуль должен что-то ответить, то он записывает номер события в 0xF8 (248 байт), а параметр записывает в 0xF9 (249 байт).

Список поддерживаемых команд метеостанции:

Список ответов модуля:

1 - готов ответ на команду (ответ в буфере обмена)

2 - новое смс (номер сообщения в буфере обмена)

3 - входящий вызов

Для работы с SIM900 вначале думал взять библиотеку от SeeedStudio, но пришлось от нее отказаться из-за утечки более килобайта оперативной памяти (у ATmega328P всего 2КБ SRAM). Пришлось переписывать и вносить изменения в функции работы с GPRS модулем, а также дописывать функции работы с SMTP сервером почты (SMTP, SSL, DTMF и другие приятные плюшки доступны в расширенной прошивке модуля, необходимо отдельно перепрошивать модуль), функции для работы с микрофоном, DTMF декодером и воспроизведение AMR звуков. Эти функции необходимы для реализации голосового меню. Голосовое меню доступно при входящем и исходящем вызове.

Голосовое меню имеет следующую структуру при входящем вызове:

  1. Проигрывается запись “Абонент временно недоступен” для отпугивания ошибающихся номером абонентов.
  2. Ждем ввода пинкода и при успешном вводе проигрывается соответствующая мелодия, в ином случае, вызов сбрасывается.
  3. По нажатию кнопки “1” - включается усиление микрофона для прослушивания ситуации вокруг метеостанции (после запуска усиление выставлено на минимум).
  4. По нажатию кнопки “5” - воспроизводится отчет о состоянии датчиков метеостанции и других датчиков дома (утечка газа, утечка воды, отключено электричество, отключен интернет, сработка сигнализации)
  5. По нажатию кнопки “3” - отправляется электронное письмо с показаниями датчиков и вызов завершается.
  6. По нажатию кнопки “7” - отправляется СМС с показаниями аварийных датчиков (вода, газ, свет,сигнализация, интернет).
  7. По нажатию кнопки “4” - отправляется СМС с показаниями дополнительных датчиков (свет, температура, влажность, СО2, состояние SIM900).

Устройство уже находится на своем месте (где-то на шкафу) и исправно передает показания датчиков. В дальнейшем планируется добавить в сеть исполнительные устройства, которые будут управляться на основе показаний датчиков, в том числе и этого модуля. Сейчас один из фоторезисторов используется для обратной связи от светодиодной ленты MiLight, в которой китайские мастера не сделали подтверждение включения, а второй отслеживает общую освещенность комнаты. На основе собранных данных сервер в автоматическом режиме включает, выключает либо изменяет яркость освещения.

Ссылки:

  1. Прошивки для модуля SIM900, я установил 1137B06SIM900M64_ST_ENHANCE, там же скачивается Download Tool
  2. Хорошая статья по AT коммандам
  3. Файлы используемые в данной статье – Home-meteo_1.zip

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Пока нет отзывов на эту статью.
оплата картами Visa и MasterCard