Каталог
|
Комплекс домашней автоматизации (Часть 1)2017-04-03 Все статьи →Юрий Иванов Модуль сбора данных, поступающих от датчиков, собран на основе платы GBoard SIM900 от Itead Studio. Плату пришлось немного доработать напильником, чтобы она поместилась в корпус, и заменить некоторые разъемы. Вместо разъема питания впаян USB разъем, питание осталось на стандартных местах, а на место D+ и D- подключены I2C_SDA и I2C_SCK. Разъем антенны также был удален.
Основная функция устройства — это сигнализация об аварийных ситуациях, но поскольку на плате установлен микроконтроллер ATmega328P, я решил добавить несколько датчиков для автономности и организации обратной связи.
К плате подключены следующие датчики: - Фоторезистор (2шт.) - Датчик температуры цифровой ds18b20 - Датчик влажности и температуры DHT11 - Резистивный делитель в цепи питания 12В - Электретный микрофон от мобильного телефона Поскольку встроенный в плату DC-DC понижает напряжение до 4.2 В для питания датчика MQ-2 из подручных средств был спаян преобразователь 12-на-5 В на микросхеме MC34063. Повторять я его не рекомендую, микросхема морально устарела, но на всякий случай схему привожу ниже.
Программа для ардуины в основном работает в режиме подчиненного устройства. По шине I2C принимается команда от мастер-устройства, в ответ посылается результат записи или считывания байта из памяти. Также модуль может самостоятельно посылать предупреждение на заранее запрограммированный номер телефона и адрес почты если датчик регистрирует серьезное повышение количества газа или при пропадании напряжения питания. Для работы в аварийной ситуации установлен аккумулятор Li-Ion 18650. По команде от мастера модуль набирает номер телефона, отсылает и принимает SMS, отсылает электронную почту, регистрирует показания датчиков. Через Hardware Serial можно наблюдать загрузочную информацию и сообщения об ошибках. Показания датчиков хранятся в десятичном виде, по два байта на датчик – карта памяти приведена ниже.
Номер запрашиваемой команды записывается по адресу 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 звуков. Эти функции необходимы для реализации голосового меню. Голосовое меню доступно при входящем и исходящем вызове. Голосовое меню имеет следующую структуру при входящем вызове:
Устройство уже находится на своем месте (где-то на шкафу) и исправно передает показания датчиков. В дальнейшем планируется добавить в сеть исполнительные устройства, которые будут управляться на основе показаний датчиков, в том числе и этого модуля. Сейчас один из фоторезисторов используется для обратной связи от светодиодной ленты MiLight, в которой китайские мастера не сделали подтверждение включения, а второй отслеживает общую освещенность комнаты. На основе собранных данных сервер в автоматическом режиме включает, выключает либо изменяет яркость освещения. Ссылки:
Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Пока нет отзывов на эту статью.
|