LAN Control

  • Час 14-09-2015, 19:32
  • Автор admin
  • Коментарів 0 Комент.
  • Силка url

Майже 2 роки тому, я розробив пристрій Universal Device (http://unidev.org.ua/), але, як виявилося, воно занадто багатофункціональне, друга його проблема була в тому, що він дуже залежний від ПК. Мені присилали багато листів, в яких користувачі пристрою перераховували плюси і мінуси. Тепер я вирішив розробити пристрій, який буде підходити більшості критеріїв:

  1. Пристрій повинен бути незалежно від ПК.
  2. Управління функціями ПК (Вінамп, курсор і т.д.) теж безглуздо.
  3. Зменшити кількість індикаторів.
  4. І найважливіший критерій: повне віддалене управління на будь-якій відстані (зрозуміло, через інет).

Ще писали, сподобалося те, що таке багатофункціональний пристрій вмістилося на односторонній платі, тому, і це я теж постарався вмістити на односторонньою платі.

Який інтерфейс застосувати? Не довго думаючи, я вибрав Ethernet, а в якості інтерфейсної мікросхеми -  ENC28J60. З моменту появи цієї мікросхеми, вже створено багато саморобок, вони підключаються до роутера, і мають WEB інтерфейс, це означає, що за допомогою браузера до пристрою можна достукатися через його IP, до того ж, не тільки в межах локальної мережі, налаштувавши в роутере проброс порту, можна отримати доступ по IP роутера через будь-який пристрій, підключений до інету. Але якщо такі пристрої вже є, навіщо ж мені розробляти ще одне? Якщо у Вас IP статичний, то знаючи його, ви завжди можете отримати доступ до пристрою через інет, але статичний є далеко не у всіх, а якщо ви використовуєте GPRS / 3G інет (як я, CDMA), то статична адреса доводиться купувати за додаткову плату. Але в моєму пристрої немає цього недоліку, до нього можна отримати доступ за допомогою логіна і пароля, не знаючи IP.

Я розробив пристрій з такими характеристиками:

  1. Підключення до роутера за допомогою кручений пари.
  2. Кількість виходять каналів: 7 (максимальний струм 500мАна кожен), вихідна напруга дорівнює напрузі харчування.
  3. Кількість вхідних каналів: 4.
  4. Мережа 1-wire, до якої можна підключити до 20 датчиків DS18B20.
  5. Управління та налаштування пристрою за допомогою браузера.
  6. Можливість управління виходять каналами за допомогою пульта з RC5.
  7. Можливість встановлювати ім'я для каналів і датчиків, зберігається в незалежній пам'яті.
  8. Оновлення прошивки через USB.

На жаль, ENC28J60 вимагає обвіс, у мене так і не вийшло зробити для нього односторонню плату, тому, я вирішив купити готовий модуль:

LAN Control

Купити можна тут. Ціна 6-7 $ з урахуванням доставки. Але при цьому, у нас вже є сама мікра і роз'єм з трансформатором з світлодіодами, якщо купувати це окремо, то ціна буде точно вище.

Схема 1. Харчування:

LAN Control

Харчування 6-35В постійного струму, знижується до 5В за допомогою імпульсного стабілізатора MC34063A. Дросель раджу брати мінімум на 1А.

Схема 2:

LAN Control

Мікроконтролер Atmega32, пам'ять AT24C64, як ключів вихідних каналів використовується мікросхема ULN2003. Харчування Ethernet модуля вимагає 3,3В, тому, встановлений стабілізатор REG1117-3.3. Для прийому сигналів з пульта встановлений TSOP1736, перемичкою біля нього можна відключити можливість прийому команд з ПДУ. 2 транзистора 2N7002 використовуються для 1-wire, поруч 2 діода захищають лінію від напруги, вище напруги живлення (якщо буде довгий дріт, то будуть наводки), ще встановлений один датчик DS18B20. PORT6 для підключення Ethernet модуля. Ну і пар'ем USB для підключення до ПК. Перемичка BOOTLOADER призначена для переведення пристрою в режим оновлення прошивки.

Вийшла ось така плата:

LAN Control

Я тут забув поставити перемичку бутлоадере. Угорі ліворуч показано, куди треба підключати модуль. Виходять замикаються на землю, тоесть, якщо Ви хочете підключити світлодіод, то його «+» треба підключить до VCC а «-» до одного з каналів. Вхідні канали вважаються активними, якщо замкнуті на землю (GND). Додаткові датчики DS18B20 підключаються роз'єму U4.

LAN Control

Тепер треба прошити МК. Прошийте його файлом 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 відповіді:

LAN Control

Це означає, що зв'язок нормальна.

Відкрийте браузер і перейдіть за адресою http://192.168.1.170/, має з'явитися приблизно таке вікно:

LAN Control

У мене підключений один зовнішній датчик, тому відображається 2. Тепер можна управляти вихідними каналами, але краще спочатку поставити їм імена, натисніть Налаштування, з'явиться така сторінка:

LAN Control

І задайте для кожного компонента ім'я (латинськими літерами). Для цього, виберіть Термодатчик, номер 1 і введіть какое то ім'я, потім для кожного термодатчика, після цього, для 7 вихідних і 4 вхідних каналів. Тепер натисніть Вихідні канали.

LAN Control

Як бачите, у мене для першого каналу встановлено ім'я «one», для другого - «two» і т.д. Якщо вихід активний, то біля нього буде ON, якщо не активний - OFF. Щоб змінити стан, натисніть «Змінити».

Приблизно так само виглядає вкладка «Вхідні канали»:

LAN Control

Продовжуємо настройку пристрою. Для цього, потрібно зайти в панель адміністрування. Для цього, при включеному пристрої потрібно встановити перемичку бутлоадере і перейти за адресою http://192.168.1.170/admin

LAN Control

Тут можна змінити IP адреса, МАС і порт (інше поки що не потрібно). Встановлені зміни застосовуються тільки після перезавантаження пристрою. Майте на увазі, що порт 80 - це стандартний порт сервера, якщо він буде не 80, а наприклад, 200, то в адресному рядку після IP треба через двокрапку вказувати порт, тоесть http://192.168.1.170:200/.

Тепер спробуємо достукатися до пристрою через інет, знаючи його IP.

Для початку, потрібно налаштувати кидок порту на IP пристрою. Після цього, його хтось перейде з зовнішньої мережі IP: порт_устройства, то запит перейде на сам пристрій.

Налаштування проброса порту не викликає ніяких труднощів, у мене роутер WR1043 з прошивкою OpenWrt. Для налаштування проброса потрібно зайти в веб-інтерфейс роутера (зазвичай http://192.168.1.1), потім Мережа-gt; Брандмауер, там знайдіть Перенаправлення і натисніть Додати.

LAN Control

Ім'я введіть будь-яке, Протокол 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

Прикріплені файли:
  • lan-control.rar (64 Кб)
Tags

Коментарі до новини