USB Контроллер умного дома (или GPIO на любом компьютере II)

 Рассмотрим простой способ сделать USB контроллер умного дома из USBasp на базе Atmega8.Прошивку можно адаптировать и для других микроконтроллеров,например Atmega32 c 32 входами/выходами.

Ожидается обновление версии до 1.1,где будет возможна поддержка до 4 датчиков DHT и исправлены ошибки.

К сожалению на USBasp доступны без пайки только 6 выводов микроконтоллера и 2 светодиода,но это самый быстрый способ получить готовое устройство USB контроллера,умеющего на данный момент:

-Управление внешними разнообразными нагрузками (выводы GPIO ) ,например реле.Чтение состояния выводов.2 вывода умеют работать как PWM (ШИМ) и могут например управлять яркостью светодиодной подсветки.

-Один из выводов устройства умеет работать как RCremote ,к которому можно подключить передатчик на 433 или 315 мгц для управления популярными сейчас радиорозетками или люстрами с радиоуправлением.Так же можно передавать данные на удаленное устройство,например на монитор отображения какой либо информации.Описание  передачи информации по данному алгоритму можно посмотреть тут.Протокол совместим с микросхемами,использующуеся в радиопультах.

-Подключение датчиков DHT11 или DHT22 для мониторинга температуры и влажности. 

Клиентская программа написана на Си и может работать как в операционной системе Windows так и в Linux.Драйвера для HID варианта не требуются.Для USB варианта устанавливаются стандартные драйвера V-USB.

Прошивка микроконтроллера основана на проекте V-USB,создающим программный USB.

Архив с прошивкой ,утилитой управления и её исходный код можно скачать  по ссылке.В архиве имеется вариант usb-gpio как USB устройство,в том числе исходный код на Си утилиты управления и откомпилированый вариант для windows.Для его необходимы стандартные V-USB драйвера.В разработке вариант usb-gpio как HID устройство.

Прошивка м/к:

Микроконтроллер прошивается стандартно ,через другой программатор USBasp или Arduino .Прошивка возможна и при установленном USBasp загрузчике.

 

Подключение устройств к контроллеру:

gpioUSB

Не забывайте,что на шлейфе,идущим в комплекте контакты будут зеркальны относительно ключа у 5 контакта.

 

 

 Номер контакта 

 Номер GPIO 

 Доп.Функции 
Светодиод 1 -
Светодиод 2 -
5 3 PWM
1 4 PWM
9 5 DHT
7 6 RCremote
6 7  -
4 8  -

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

DHT- подключение датчика влажности DHT 11 или DHT 22 ,датчик определяется автоматически.

PWM- на портах возможен режим ШИМ для управления мощностью(яркостю) устройств.

RCremote - Отправка команды для управления радиоустройствами.К данному выводу подключается радиопередатчик 433 или 315 мгц.

Управление через консольную утилиту:

Утилитой можно управлять из других программ , используя следущие команды:

gpio-usb on <номер GPIO> -Включает высокий уровень на соотвествующем порте.

gpio-usb off <номер GPIO> -Выключает высокий уровень на соотвествующем порте.

gpio-usb status - Чтение статуса GPIO на вывод.

gpio-usb statusin  -Чтение статуса GPIO на ввод.

gpio-usb mode -Управление режимом порта.Для того,чтобы например назначить 7 порт на ввод необходимо ввести gpio-usb mode 7 1  .Режимы записываются в энергонезависимую память.

gpio-usb rcsend <key> -Отправить ключ RCremote.

gpio-usb dhtread -Чтение датчика DHT11 или DHT22,подключенного на GPIO 5.

gpio-usb dhtsetup -Запрос статуса и вкл/выкл опроса датчика DHT.Опрос происходит раз в минуту.Статус записывается в энергонезависимую память.

gpio-usb pwm3 <level> -Управление ШИМ на 3 GPIO.

gpio-usb pwm4 <level> -Управление ШИМ на 4 GPIO.

Исходный код утилиты можно интегрировать в свои проекты..Например можно дополнить оболочкой (GUI) для управления.

Принимаются предложения и пожелания по доработке утилиты.

Стороннее приложение для работы в датчиками BMP085/180 и DHT11/22 ссылка в windows.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.