Почти 2 года назад, я разработал устройство Universal Device, но, как оказалось, оно слишком многофункциональное, вторая его проблема была в том, что он очень зависим от ПК. Мне присылали много писем, в которых пользователи устройства перечисляли плюсы и минусы. Теперь я решил разработать устройство, которое будет подходить большинству критериев:
- Устройство должно быть независимо от ПК.
- Управление функциями ПК (Винамп, курсор и т.д.) тоже бессмысленно.
- Уменьшить количество индикаторов.
- И самый важный критерий: полное удаленное управление на любом расстоянии (разумеется, через инет).
Еще писали, понравилось то, что такое многофункциональное устройство уместилось на односторонней плате, поэтому, и это я тоже постарался уместить на односторонней плате.
Какой интерфейс применить? Не долго думая, я выбрал Ethernet, а в качестве интерфейсной микросхемы - ENC28J60. С момента появления этой микросхемы, уже создано много самоделок, они подключаются к роутеру, и имеют WEB интерфейс, это значит, что с помощью браузера до устройства можно достучаться через его IP, к тому же, не только в пределах локальной сети, настроив в роутере проброс порта, можно получить доступ по IP роутера через любое устройство, подключенное к инету. Но если такие устройства уже есть, зачем же мне разрабатывать еще одно? Если у Вас IP статический, то зная его, вы всегда можете получить доступ к устройству через инет, но статический есть далеко не у всех, а если вы используете GPRS/3G инет (как я, CDMA), то статический адрес приходится покупать за дополнительную плату. Но в моем устройстве нет этого недостатка, к нему можно получить доступ с помощью логина и пароля, не зная IP.
Я разработал устройство с такими характеристиками:
- Подключение к роутеру с помощью витой пары.
- Количество выходящих каналов: 7 (максимальный ток 500мАна каждый), выходящее напряжение равно напряжению питания.
- Количество входящих каналов: 4.
- Сеть 1-wire, к которой можно подключить до 20 датчиков DS18B20.
- Управление и настройка устройства с помощью браузера.
- Возможность управления выходящими каналами с помощью пульта с RC5.
- Возможность устанавливать имя для каналов и датчиков, сохраняется в энергонезависимой памяти.
- Обновление прошивки через USB.
К сожалению, ENC28J60 требует обвес, у меня так и не получилось сделать для него одностороннюю плату, поэтому, я решил купить готовый модуль:
Купить можно AliExpress. Цена 3-4$ с учетом доставки. Но при этом, у нас уже есть сама микра и разъем с трансформатором с светодиодами, если покупать это по отдельности, то цена будет точно выше.
Схема 1. Питание:
Питание 6-35В постоянного тока, понижается до 5В с помощью импульсного стабилизатора MC34063A. Дроссель советую брать минимум на 1А.
Схема 2:
Микроконтроллер Atmega32, память AT24C64, в качестве ключей выходных каналов используется микросхема ULN2003. Питание Ethernet модуля требует 3,3В, поэтому, установлен стабилизатор REG1117-3.3. Для приема сигналов с пульта установлен TSOP1736, перемычкой возле него можно отключить возможность приема комманд с ПДУ. 2 транзистора 2N7002 используются для 1-wire, рядом 2 диода защищают линию от напряжения, выше напряжения питания (если будет длинный провод, то будут наводки), еще установлен один датчик DS18B20. PORT6 для подключения Ethernet модуля. Ну и паръем USB для подключения к ПК. Перемычка BOOTLOADER предназначена для перевода устройства в режим обновления прошивки.
Получилась вот такая плата:
Я здесь забыл поставить перемычку бутлоадера. Вверху слева показано, куда надо подключать модуль. Выходящие замыкаются на землю, тоесть, если Вы хотите подключить светодиод, то его «+» надо подключит к VCC а «-» к одному из каналов. Входящие каналы считаются активными, если замкнуты на землю (GND). Дополнительные датчики DS18B20 подключаются разъему U4.
Теперь надо прошить МК. Прошейте его файлом bootloader.hex, затем выставьте фьюзы LOW=0x3F, HIGH=0xDA, если программа вашего программатора не позволяет просто выставить верхний и нижний байты, тогда зайдите сюда http://avr.roboforum.ru/calc.html?part=ATmega32, слева введите эти 2 байта и увидите, как правильно надо расставить фьюзы. Бутлоадер прошит, теперь программатор не нужен. Вставьте МК в устройство, подключите кабель USB, установите перемычку бутлоадера, и затем подключите питание, комп должен найти новое HID устройство и установить его (драйверы не нужны), устройств успешно переведено в режим прошивки. Для прошивки используются 3 файла: bootloadHID.exe – программа хоста, boot.bat файл и командами и LAN_Control.hex – это сама прошивка, когда будете обновлять прошивку, то замените этот файл новым. Все 3 файла должны лежать в одной директории. Запустите boot.bat, должно выскочить черное окно, в нем пару минут будут бегать цифры и оно закроется, прошивка завершена.
Отключите перемычку, подключите питание, загорится D6 на 1 секунду и потухнет, если пока он горит, установить перемычку бутлоадера, то установляться стандартные настройки, это нужно обязательно сделать при первом включении. После их установки дважды мигнет светодиод. Стандартные настройки такие:
- IP: 192.168.1.170
- MAC: 84.85.88.16.0.41
- Порт: 80
Если зайти в меню вашего роутера, то ВОЗМОЖНО там будет отображаться подключение этого устройства, но далеко не всегда (у меня он вообще его не показывал). Чтобы убедиться, что есть нормальная связь между компом и устройством (они должны быть в одной локальной сети, тоесть, подключены к одному роутеру), откройте Командную строку и напишите ping 192.168.1.170, должно прийти 4 ответа:
Это значит, что связь нормальная.
Откройте браузер и перейдите по адресу http://192.168.1.170/, должно появиться примерно такое окно:
У меня подключен один внешний датчик, поэтому отображается 2. Теперь можно управлять выходными каналами, но лучше сначала задать им имена, нажмите Настройки, появится такая страница:
И задайте для каждого компонента имя(латинскими буквами). Для этого, выберите Термодатчик, номер 1 и введите какое то имя, затем для каждого термодатчика, после этого, для 7 выходных и 4 входных каналов. Теперь нажмите Выходящие каналы.
Как видите, у меня для первого канала установлено имя «one», для второго – «two» и т.д. Если выход активный, то возле него будет ON, если не активный – OFF. Чтобы изменить состояние, нажмите «Изменить».
Примерно так же выглядит вкладка «Входящие каналы»:
Продолжаем настройку устройства. Для этого, нужно зайти в панель администрирования. Для этого, при включенном устройстве нужно установить перемычку бутлоадера и перейти по адресу http://192.168.1.170/admin
Здесь можно изменить IP адрес, МАС и порт(остальное пока что не нужно). Установленные изменения применяются только после перезагрузки устройства. Имейте ввиду, что порт 80 – это стандартный порт сервера, если он будет не 80, а к примеру, 200, то в адресной строке после IP надо через двоеточие указывать порт, тоесть http://192.168.1.170:200/.
Теперь попробуем достучаться к устройству через инет, зная его IP.
Для начала, нужно настроить проброс порта на IP устройства. После этого, его кто-то перейдет с внешней сети IP:порт_устройства, то запрос перейдет на само устройство.
Настройка проброса порта не вызывает никаких трудностей, у меня роутер WR1043 с прошивкой OpenWrt. Для настройки проброса нужно зайти в веб-интерфейс роутера (обычно http://192.168.1.1), затем Сеть->Межсетевой экран, там найдите Перенаправления и нажмите Добавить.
Имя введите любое, Протокол TCP+UDP или просто TCP, Внешний порт – это порт устройства, Внутренний IP адрес – это IP устройства, Внутренний порт можете оставить пустым. Сохраните и примените настройки. Попробуйте достучаться к устройству через инет(можно делать и в локальной сети). Узнайте IP роутера во внешней сети, для этого можно открыть http://speedtest.net/, в самом большом окне внизу слева будет отображаться ваш IP. Теперь откройте в браузере этот IP, и через двоеточие порт (к примеру, у меня http://130.185.30.125:80/), должно отобразиться то же самое что и при переходе по IP устройства.
Теперь наше устройство доступно через инет. Но мы подключались к нему зная IP, а если мы его не знаем?
Для этого, я создал небольшой сервис, принцип его работы в том, что пользователь на нем регистрируется, затем вводит логин и пароль в панели администрирования, и устройство с установленной периодичностью отправляет логин, пароль и порт на этот сервис, сервис вычисляет IP, откуда пришли дынные (это будет IP роутера во внешней сети) и сохраняет данные в базе данных. Затем, пользователь заходит на сайт, вводит логин и пароль, после чего отображается страница с фреймом, в котором переход по IP:port. Теперь более подробно.
Регистрируется на сайте http://kibermaster.net/, затем открываем http://lc.kibermaster.net/, «Регистрация» и вводим те же самые логин, пароль и имейл, которые на http://kibermaster.net/. Теперь заходим в админ-панель устройства (у меня http://192.168.1.170/admin), вводим там логин, пароль, частоту репорта (как часто отправлять данные на сервис) и IP роутера по внутренний сети (обычно 192.168.1.1), сохраняем, вытягиваем перемычку бутлоадера и перезагружаем устройство. Если частота репорта не равна 0, тогда при включении будет отправлять на сервис данные устройства, так же, они будут отправляться через установленный интервал времени (частота репорта).
Внимание! Автор проекта принимает заказы на разработку устройств на микроконтроллерах, обращайтесь на devices2000 {собака} ya.ru
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот | |
---|---|---|---|---|---|---|---|
Схема 1. Питание | |||||||
DC/DC импульсный конвертер | MC34063A | 1 | Поиск в магазине Отрон | ||||
Выпрямительный диод | 1N4007 | 1 | Поиск в магазине Отрон | ||||
Диод | 1812 | 1 | Поиск в магазине Отрон | ||||
Конденсатор | 470 пФ | 1 | Поиск в магазине Отрон | ||||
Конденсатор | 0.1 мкФ | 5 | Поиск в магазине Отрон | ||||
Электролитический конденсатор | 10 мкФ | 1 | Поиск в магазине Отрон | ||||
Электролитический конденсатор | 100 мкФ | 1 | Поиск в магазине Отрон | ||||
Электролитический конденсатор | 1000 мкФ | 1 | Поиск в магазине Отрон | ||||
Резистор | 680 Ом | 1 | Поиск в магазине Отрон | ||||
Резистор | 1.5 кОм | 1 | Поиск в магазине Отрон | ||||
Резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||||
Светодиод | 1 | Поиск в магазине Отрон | |||||
Дроссель | 220 мкГн | 1 | Минимальный ток 1 А | Поиск в магазине Отрон | |||
Разьем для подключения питания | DG301-5.0-02P | 1 | Поиск в магазине Отрон | ||||
Схема 2 | |||||||
МК AVR 8-бит | ATmega32 | 1 | 32-16PI | Поиск в магазине Отрон | |||
Линейный регулятор | REG1117-33 | 1 | Поиск в магазине Отрон | ||||
Микросхема | M24C64MN1 | 1 | Поиск в магазине Отрон | ||||
Датчик температуры | DS18B20 | 1 | Поиск в магазине Отрон | ||||
Составной транзистор | ULN2003 | 1 | Поиск в магазине Отрон | ||||
MOSFET-транзистор | 2N7002 | 2 | Поиск в магазине Отрон | ||||
Стабилитрон | 3.6 В | 2 | Защита USB | Поиск в магазине Отрон | |||
Диод | 1206 | 4 | Поиск в магазине Отрон | ||||
Диод | 1812 | 2 | Поиск в магазине Отрон | ||||
Конденсатор | 22 пФ | 2 | Поиск в магазине Отрон | ||||
Конденсатор | 0.1 мкФ | 2 | Поиск в магазине Отрон | ||||
Резистор | 68 Ом | 2 | Поиск в магазине Отрон | ||||
Резистор | 1 кОм | 8 | Поиск в магазине Отрон | ||||
Резистор | 1.5 кОм | 1 | Поиск в магазине Отрон | ||||
Резистор | 2.4 кОм | 3 | Поиск в магазине Отрон | ||||
Резистор | 4.7 кОм | 3 | Поиск в магазине Отрон | ||||
Резистор | 100 кОм | 1 | Поиск в магазине Отрон | ||||
Кварцевый резонатор | 16 МГц | 1 | Поиск в магазине Отрон | ||||
Кварцевый резонатор | 1 | Поиск в магазине Отрон | |||||
LED | Светодиод | 1 | Поиск в магазине Отрон | ||||
USB-разьем | 1 | Поиск в магазине Отрон | |||||
Разьем | DG301-5.0-02P | 1 | Поиск в магазине Отрон | ||||
Разьем | DG301-5.0-03P | 5 | Поиск в магазине Отрон | ||||
Разьем | PORT2 | 2 | Поиск в магазине Отрон | ||||
Разьем | PORT3 | 1 | Поиск в магазине Отрон | ||||
Разьем | PORT6 | 1 | Поиск в магазине Отрон | ||||
Скачать список элементов (PDF)
Прикрепленные файлы:
- lan-control.rar (64 Кб)
Комментарии (2) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация