Проект "SmartDX" или умный дом своими руками

"Умный Дом" это система централизованного управления системами жизнеобеспечения. Начиная от простого мониторинга температуры внутри, за окном; поддержание температуры воды в системе отопления и заканчивая сложными расчетными задачами, такими как автономное питание дачного дома от солнечных батарей и тому подобное.
Информации в сети на данную тему огромное количество. Каждый проектирует как хочет и как умеет. Вот и я решил создать нечто подобное.

Характеристики системы, средства разработки, комплектующие:

  • Среда разработки: BascomAVR, Proteus
  • Серверная часть: MySQL, Delphi, Flash
  • Питание автономных модулей (датчики температуры) от литиевой батарейки 3v
  • Все взаимодействие основано на радиопередатчиках nRF24L01, чтобы не таскать провода 
Модуль nRF24L01
Характеристики:
- Напряжение питания от 1.9 до 3.6 Вольт DC
- Ток потребления:
   - пиковый ток при 2Мбит 12.5 мА
   - рабочий ток 11мА
   - режим ожидания 32 мкА
   - потребление в выключенном (power down) состоянии: 4мкА
Режимы передачи данных: 2Мбит/с, 1Мбит/с 250Kбит/с
Время включения (wake-up): 130 мкс
SPI интерфейс
125 каналов связи, скачкообразная перестройка частоты
Поддержка многоточечной связи, аппаратный контроль ошибок
Встроенная 2.4 ГГц антенна
Встроенный стабилизатор напряжения
Количество PIN – 8
Радиус действия 100 метров (открытое пространство)
Размер 33 х 14 мм
Вес до 10 гр

Каждое устройство системы имеет на борту такой модуль и сливает необходимые данные на сервер по радиоканалу. Цена модуля около 50 рублей (www.ebay.com). Проверка на дальность показала, что сигнал проходит по прямой две железобетонные стены и примерно через 4 метра после второй начинает теряться. Мне таких показателей достаточно. Модуль обладает низким энергопотреблением и управляется микроконтроллером по SPI интерфейсу (примеры есть в сети, описание в даташите)

1. Термодатчики.
В основе термодатчиков лежит высокоточный цифровой термометр DS18B20.


Характеристики:
Точность ±0.5°C от -10°C до +85°C
Настраиваемое пользователем разрешение от 9 до 12 бит
Данные передаются посредством 1-проводного® последовательного интерфейса
64-битныйt уникальный и неизменяемый серийный номер
Многоточечное считывание
Рабочее напряжение от 3.0В до 5.5В
Потребляемый ток:  
- в режиме жидания 750 нA
- при расчете температуры 1.5 мА

Для обеспечения стабильного питания датчика от трехвольтовой литиевой батарейки используется DC/DC Step-Up преобразователь NCP1400ASN50T1G

Типовая схема включения
Характеристики:
Входное напряжение от 0.8В до 4.9В
Выходное напряжение 5В
Выходной ток 100 мА

Для тестов и отладки была собрана вот такая маленькая платка:

Управляет всем этим микроконтроллер AVR ATtiny2313. Для снижения энергопотребления задействован режим Power Down. Контроллер просыпается от прерывания сторожевого таймера (WDT) каждые 8 секунд, увеличивает значение переменной на единицу и опять засыпает. Когда счетчик срабатываний достигнет заданного значения (у меня 8, то есть 8 раз по 8 секунд, получится 64 секунды) будет измерена температура и отправлена по радиоканалу на сервер. 

Со временем батарейка будет садиться. Неплохо было бы иметь информацию о ее состоянии в процессе работы. Но в ATtiny2313 нет АЦП. Что же делать? АЦП нет, но есть аналоговый компаратор! А еще есть внутренний источник опорного напряжения. Я использовал RC цепочку, запитанную от порта контроллера и подключенную на вход компаратора. Когда надо оценить здоровье батарейки, запускаем счетчик и выставляем на порту высокий уровень, конденсатор начинает заряжаться через резистор. Когда измеряемое напряжение сравняется с опорным сработает прерывание и мы получим значение счетчика. Чем выше напряжение питания (более свежая батарейка), тем быстрее будет заряжаться конденсатор и соответственно быстрее сработает компаратор. И тем меньшее значение мы получим в счетчике.

Вот в таком виде производится отладка системы:


СТАТЬЯ НЕ ДОПИСАНА. ЖДИТЕ ПРОДОЛЖЕНИЯ.













При использовании материалов статьи ссылка на источник обязательна. AlexDX©

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



Комментариев нет:

Отправить комментарий