Enc28j60 описание на русском. ENC28J60 Подключаем Микроконтроллер к сети Ethernet

Категория ~ Технические советы – Игорь (Администратор)

Порой складывается впечатление, что Microsoft пытается спрятать от пользователей как можно дальше различные системные инструменты. При чем ряд таких инструментов так хорошо спрятан, что их необходимо именно "искать". Либо путь к ним очень тернистый, либо найти их можно только тогда, когда вы о них уже знаете. Среди этих утилит существует группа системных приложений с общим названием "Консоль управления Microsoft" (MMC). Их еще называют оснастками. Существует около двух-трех десятков таких оснасток. Они есть в Windows XP, Vista и 7. Будучи системными утилитами, для запусками им необходимы права администратора.

Примечание : стремление Microsoft спрятать системные инструменты вполне оправдано. Практически каждая системная утилита способна привести к возникновению серьезных проблем, вплоть до поломки операционной системы.

Консоль или оснастка MMC имеет специальное расширение.msc и запускается как обычный исполняемый файл. Просто введите полное название с расширением, например, в командную строку . Так же можно использовать диалоговое окно выполнить или строку поиска в Windows Vista/7.

Примечание : Необходимо всегда полностью вводить название оснастки, так как расширение.msc не входит в список автоматически добавляемых.

Как говорилось ранее, по умолчанию в системе существует около двух-трех десятков таких оснасток. Так же оснастки могут добавляться сторонними программами, например, MS SQL добавляет свои оснастки. А еще есть специальный конструктор, благодаря которому вы можете собрать из всех имеющихся оснасток собственную консоль. Но, к последнему лучше переходить только после того, как вы разберетесь с несколькими оснастками (по сути, хоть немного разберетесь с двумя вопросами: "зачем они нужны?" и "как их использовать?").

Одна из наиболее известных оснасток, которая пригодится как новичкам, так и опытным пользователям, называется "Управление компьютером". Оснастка содержит в себе большинство системных инструментов, которые когда-либо могут понадобиться среднему пользователю.

Чтобы открыть консоль, вам необходимо ввести "compmgmt.msc" (без кавычек) или, в случае Windows Vista и 7, найти ее по имени в строке поиска меню Пуска. На рисунке ниже показан интерфейс из Windows 7. Кроме внешних эффектов, каких-то серьезных различий по сравнению с оснастками в Windows XP и Vista нет.

Как вы можете видеть, такая оснастка содержит в себе самые часто используемые системные утилиты и функции. Диспетчер устройств, управление дисками, локальные пользователи, планировщик задач и так далее. При этом каждую из вложенных оснасток можно открывать в отдельном окне. Например, три наиболее известные оснастки:

  • Диспетчер устройств (devmgmt.msc)
  • Управление дисками (diskmgmt.msc)
  • Службы (services.msc)

Примечание : Средний пользователь сталкивался с большей частью всех утилит и функций, которые доступны в оснастке "Управление компьютером". Просто они были разнесены как по времени жизни ОС Windows (например, разбивка дисков), так и по разным путям доступа к ним (например, переустановка драйверов из диспетчера устройств или же настройка пользователей).

  • Tutorial

Вы видели кабину пилота? Всё под рукой, никаких лишних телодвижений. Для того, чтобы взлететь, пилот не идёт в другой конец самолёта включать двигатель.

Так и в ситуации с консолями MMC. Вы создаёте для себя «пульт управления» и при определённых ситуациях нажимаете на нужные «кнопки».
Публикация рассчитана на системных администраторов, желающих познакомиться с методом создания консолей управления Windows, путём использования mmc.exe.

Что такое консоль MMC?

Microsoft отвечает :
Консоль MMC (Microsoft Management Console) - место для хранения и отображения средств администрирования, созданных корпорацией Майкрософт и другими поставщиками программного обеспечения. Эти средства называются оснастками и служат для управления оборудованием, программным обеспечением и сетевыми компонентами Windows. Некоторые средства, расположенные в папке «Администрирование», например «Управление компьютером», являются оснастками MMC.

Введение

Мне больше нравится характеризовать консоль MMC как пульт управления. Добавив в неё все необходимые инструменты, можно здорово сэкономить время. Всё необходимое всегда перед тобой, в одном месте.
Плюсы от использования:
+ Вы не ищете постоянно ярлыки на используемые оснастки, программы, скрипты;
+ Для начала рабочего дня, потребуется запустить лишь один файл;
+ Возможность создать свои консоли для разных задач, проектов или под каждый обслуживаемый офис.

Модульная система позволяет объединить в одном месте различные оснастки, это может быть и монитор ресурсов сервера и самый обычный браузер веб-страниц. Мы с вами будем рассматривать последнюю MMC версии 3.0 поставляемую с Windows Server 2003 SP2, Windows Server 2003 R2, Windows Vista, Windows 7 и Windows Server 2008. История консолей управления началась с MMC 1.0 и Windows 95.

Консоль управления находится по пути C:\Windows\System32\mmc.exe .

Запуская консоль таким образом, мы откроем её в Авторском режиме, т.е. сможем вносить изменения в структуру. У консолей MMC два режима запуска:

  • Авторский - в котором у нас будут полная свобода действий и мы сможем удалять и добавлять оснастки;
  • Пользовательский - запрещающий изменения в структуре и подходящий для конечного пользователя.
Изменить режим запуска можно в самой консоли или, например, для авторского режима, запустить с параметром /a . Этот момент мы рассмотрим в конце, когда уже создадим нашу первую консоль.
Пустая консоль выглядит так:

Момент про разрядность консолей (MMC32 и ММС64)
Для запуска 32-разрядных консолей MMC в 64-разрядных системах, консоль нужно запускать с параметром /32.
Если запустить 64-разрядную консоль в 32-разрядной системе, то она будет завершена.

«Моя первая консоль»

Мы решили, что консоль должна упрощать процесс системного администрирования. Для наглядности, предлагаю выделить набор оснасток и функционал, который есть в том или ином виде у типового системного администратора в любой из компаний:
  • Оснастка Active Directory;
  • Оснастка DHCP;
  • Управление серверами печати;
  • Управление компьютерами;
  • Управление службами;
  • Набор скриптов и утилит;
  • Набор сетевых ресурсов;
  • Набор удалённых рабочих столов;
Выбрав всё самое основное, приступим к созданию собственной консоли управления.
Процесс добавления оснасток в консоль интуитивно понятен:

Для добавления одних оснасток, вам не понадобятся сразу производить какие-либо дополнительные настройки:

При добавлении других, вам будет предложено сразу их настроить:

При добавлении ряда оснасток предлагается выбор компьютера для управления. Например, при добавлении оснасток Управление компьютером и Службы . Так как мы планируем использовать консоль для управления другими компьютерами, то стоит обратить внимание на чекбокс и проставить его:

Разрешать изменять выбранный для управления компьютер при запуске из командной строки. Применяется при сохранении консоли.

Если вы делаете делаете оснастку универсальной, для подключения к любому компьютеру, то лучший вариант в этом пункте - локальный компьютер . Если будет стоять «другой компьютер», то при каждом запуске созданной нами консоли, будут идти запросы на удалённый компьютер… А если он будет выключен? То придётся подождать, пока оснастка поймёт это и выдаст ошибку.

После нажатия на ОК мы получим консоль с добавленными нами оснастками:

Но нас не устраивает как она выглядит, мы хотим скрыть некоторые элементы. Поле Действия занимает слишком много места, мы хотим от него избавиться и, например, избавиться от строки состояния . Настройки вида можно произвести в меню консоли Вид - Настроить... .

Здесь мы можем убрать и включить отображение нужных нам элементов. Проставляем чекбоксы и видим результат:

На панели задач одних оснасток, мы можем увидеть набор каких-то стандартных действий и свойств. У других оснасток может не быть стандартной панели задач совсем.
Оснастка Службы , например, содержит кнопки, позволяющие Остановить и Перезапустить службу. Мы можем менять внешний вид панели задач и добавлять на неё те действия, которые нам нужны.

Для этого делаем сначала клик по оснастке в корне консоли (в данном случае, клик по Службы (локальные) ) и проваливаемся в меню Действия - Новый вид панели задач...

Открывается мастер создания вида панели задач. Нажимаем далее.

Выбираем стиль для нашей новой панели задач. Обращаем внимание на то, что мастер даёт нам подсказки, какой стиль для чего подходит и показывает в окне предпросмотра как это будет выглядеть:

На следующем шаге выбираем к каким элементам консоли мы добавляем созданный нами вид панели задач. Если выбрать пункт Ко всем элементам, имеющим тип выбранного элемента , то если бы у нас в консоли была ещё одна оснастка Службы , к ней тоже применился бы данный вид. Если выбираем К выбранному элементу дерева , то вид применяется только к выбранной оснастке в корне консоли.

Теперь нам остаётся дать название панели задач и, если хотим, добавить описание.

На завершающем шаге, нам предлагается после нажатия на кнопку Готово добавить новую задачу в только что созданную панель задач.

Так как мы не сняли чекбокс на прошлом шаге, перед нами открывается Мастер создания задачи .

Выбираем тип команды для создаваемой задачи. Нам даётся три типа на выбор:

  • Команда меню - запускает стандартную команду меню оснастки.
  • Команда операционной системы - позволяет нам выполнить запуск программы, сценария или скрипта.
  • Команда перехода - отображает панель задач для элемента из списка избранного MMC.

Мы выберем пункт Команда меню .

Источником команд выбираем Элемент на панели результатов .

Указываем имя и по желанию описание нашей команды.

Выбираем понравившийся значок задачи из имеющихся или загружаем свой.

На завершающем шаге нажимаем кнопку Готово . Если хотим добавить ещё одну задачу, ставим соответствующий чекбокс

После завершения работы мастера, выбирая какую-либо службу, на созданной нами панели задач, мы увидим добавленную нами задачу Перезапустить, при нажатии на которую, служба начнёт перезапускаться

Добавить такие панели задач с задачами можно для любой оснастки.
Следующим шагом, мы добавим в корень нашей консоли пункт из которого будем запускать наши рабочие скрипты и сценарии: Файл - Добавить или удалить оснастку...
Добавляем оснастку Папка :

В корне консоли переименовываем её и создаём новую панель задач: Действие - Новый вид панели задач...

Стиль панели, для удобства, выбираем без списка и применяем к выбранному элементу списка.

Заканчиваем создание выбором названия и добавления описания.
Запускаем мастер создания задач и на этот раз выбираем пункт Команда операционной системы :

Для запуска, например, PowerShell сценария, в поле Команда пишем powershell , а в поле Параметры - путь до сценария. В нашем случае, мы указываем путь до сценария C:\Console\script\new-user.ps1 .
Если мы сохраним нашу консоль в папку C:\Console , то до скрипта можем указать путь script\new-user.ps1 .

Добавляем название и описание, выбираем иконку задачи и завершаем создание.

При выборе в корне консоли папки Сценарии мы видим созданную только что ссылку на сценарий.

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

Вкладка Общие для настройки стиля отображения панели задач.

Вкладка Задачи для добавления новых задач, удаления и изменения существующий.

Для добавления новой задачи нажимаем кнопку Создать... , открывается Мастер создания задачи и мы можем добавлять новую задачу, аналогично предыдущей. Мы, для примера, добавим ссылку на выполнение.reg файла. Для этого, при создании в поле команда пропишем путь C:\Console\Настройки.reg .
Для запуска, например, .exe файла с параметрами, нам надо будет прописать путь до файла в поле Команда и параметры запуска в поле Параметры .

Далее приступим к добавлению к ссылками на сетевые ресурсы. Это могут быть как папки находящиеся локально на компьютере или в сети, так и ссылки на веб-страницы.
Файл - Добавить или удалить оснастку...
Так как мы хотим, чтобы все ресурсы были упорядочены, добавляем новую оснастку Папка и чтобы в неё можно было вкладывать другие оснастки, нажимаем на кнопку Дополнительно и ставим чекбокс Разрешить изменять родительскую оснастку .

В выпадающем списке Родительская оснастка выбираем Папка и добавляем ещё одну оснастку - Ссылка на веб-ресурс :

Если расположение находится в сети, вводим путь. Например, на сервере server1 папка с общим доступом soft

Вводим имя и нажимаем Готово

В корне консоли переименовывание нашу папку, например, в Сетевые ресурсы. Раскрываем её и видим созданную нами ссылку на сетевую папку soft . Нажав на папку soft , увидим её содержимое.
Как было сказано ранее, таким образом можно добавлять как ссылки на локальные и сетевые папки, так и на веб-ресурсы.

Напоследок, мы добавим в нашу консоль оснастку Удалённые рабочие столы .

После добавление оснастки, делаем по ней клик правой кнопкой мыши и выбираем пункт Добавление нового подключения... .

Вводим имя компьютера или ip-адрес и имя для подключения.

При выборе нашего терминала, мы подключимся к нему из окна консоли.

В начале мы говорили о том, что некоторые оснастки работают либо с текущим локальным компьютером, либо с другим, удалённым.
Возьмём, к примеру, оснастку Управление компьютером . Делаем клик правой кнопкой мыши по оснастке - Подключиться к другому компьютеру... .

Вводим имя другого компьютера, нажимаем ОК .

Если компьютер существует, мы получаем консоль управление другим компьютером.

Если нет, то видим ошибку.

При повторном открытии консоли мы снова войдём в неё в Авторском режиме, позволяющим делать изменения в структуре. Но мы, например, не хотим, чтобы конечный пользователь мог вносить какие-либо изменения. Для этого, изменим режим запуска по умолчанию.
Выбираем Файл - Параметры...

Выбираем, например Пользовательский - полный доступ . Нажимаем Применить и ОК .
Данный режим позволит работать с имеющимися оснастками и не позволит добавить или удалить новые

Выходим из оснастки с сохранением.
Если при выходе, например, у нас была развёрнута оснастка Управление компьютером, при сохранении и после повторного открытия консоли перед нами так же появится развёрнутая оснастка Управление компьютером.

На этом мы закончили создание нашей консоли управления. Она полностью готова для использования системным администратором.
Создавайте консоли, экспериментируйте, упрощайте работу!

Опубліковано 04.11.2011

Отдельно работающее устройство на микроконтроллере становится более полезным, если с него можно получить интересующую нас информацию. Для этого мы подключали .

Однако, зависимость от компьютера – это не всегда хорошо. Иногда требуется создать автономное сетевое устройство со своим сетевым адресом и, желательно, с уже ставшим привычным, Web-интерфейсом. Этим мы и займемся.

Я начинал с реализации схемы, опубликованной в этой статье:
http://www.rlocman.ru/shem/schematics.html?di=55059
http://www.radiolocman.com/shem/schematics.html?di=55059

Все оказалось не так сложно, как может показаться на первый взгляд. Мое первое устройство для удаленного отключения/включения питания через web интерфейс.

Как видите, ENC28J60 упрощает схему подключения микроконтроллера с компьютерной сети до простейшей.

После того, как компания Microchip выпустила микросхему Ehernet интерфейса ENC28J60 , имеющую SPI интерфейс, подключения микроконтроллера в компьютерную сеть стала довольно простой задачей. Подключенный к сети микроконтроллер становится сетевым устройством и доступ к нему может быть организован по локальной сети, интернет, беспроводным сетям. В общем, открываются очень радужные перспективы.

Итак, микросхема Ethernet интерфейса ENC28J60 включает протокол приема/передачи данных, MAC адрес, и протокол физического уровня в одном чипе. Микросхема имеет 28 ног.
Требует подключение всего нескольких внешних элементов. Кварц, Ethernet трансформатор, Ethernet-разъем, несколько конденсаторов и резисторов, пару светодиодов. Вот схема подключения к микроконтроллеру Atmega88 /Atmega168 .

Обращаю внимание, что все схемы и софт распространяются по лицензии GPL2. Т.е. общедоступны, и если Вы использовали что либо из софта, то свой софт Вы обязаны опубликовать и сделать общедоступным.

Микросхема Ehernet интерфейса ENC28J60 греется. Причем в SMD корпусе чуть больше, чем DIP. Вероятнее всего, это субъективное ощущение, но я в конце концов, перешел на DIP корпуса. Что касается Ehernet трансформаторов, сразу я выпаивал их из старых сетевых карточек. Мне ни разу не попадалось два одинаковых трансформатора. Отдельно их купить в Украине нереально. Утомившись каждый раз по новому разводить плату, я перешел на разъем со встроенным трансформатором и светодиодами. Цена немного кусается, но зато на плате сразу освобождается место, да и внешний вид устройства становится значительно симпатичнее.

ENC28J60 подключал к Atmega88 , ATMEga168 , ATMEga32 . Питание всей схемы 3.3В. Собственно, по железу все, ничего сложного. Проблем с запуском ни разу не испытывал. Все работало сразу и без вопросов.

Исходный пример для работы с ENC28J60 на CGG (WinAVR ) можно скачать в указанной выше статье. Я же расскажу о том, что получилось у меня в конечном итоге. Все основано на этом же примере и распространяется по лицензии GPL2.

Создавался как устройство для контроля климатических условий в серверных помещениях. Но его можно применять везде, где требуется удаленный контроль и управление. Например, дома или на даче, в качестве устройства для удаленного контроля поливом, вентиляцией, и т.п. Чуть позже я расскажу, как на базе была создана метеостанция, работающая в сети интернет. Задача контролировать состояние датчиков (аналоговых, дискретных, датчиков температуры), предоставлять Web интерфейс для контроля и управления, с заданной периодичностью отправлять данные на сервер. Отправлять сообщения для предотвращения аварийных ситуаций.

Характеристики Устройства:
– 3 цифровых датчика DS18B20
– 2 аналоговых входа (0…3,3В)
– 4 дискретных входа
– два дискретных выхода (управляются программно (настраивается через Web-интерфейс) или вручную)
– web-интерфейс, позволяющий настроить все параметры устройства, в том числе сетевые, и алгоритм срабатывания на разные состояния датчиков.
– отправка данных демону Syslog на указанный сервер через указанный промежуток времени
– отправка сообщений по UDP протоколу на указанный сервер в случае превышения критических показаний датчиков (настраивается через Web-интерфейс).

Схема

Внимание! В схеме используется микросхема Atmega32A или Atmega32L . Atmega32 не подойдет по напряжению питания.

Печатная плата двусторонняя сторона 1:

сторона 2:

Фьюзами нужно установить тактирование от внешнего источника и отключить JTAG. Все остальные по умолчанию.

Описание работы

Краткое описание NETAlarm

– устройство для отслеживания состояния различных датчиков и передачи данных по компьютерным сетям. Специализирован для контроля за климатической обстановкой в помещениях. Имеет Web-интерфейс для настройки и отслеживания состояния. Позволяет в случае аварийных ситуаций организовать уведомление серверов. Отправляет данные по протоколу Syslog через определенный промежуток времени. Позволяет подключить через два дискретных выхода внешние устройства и управлять ими по заданному алгоритму.

Характеристики и возможности

  • – до 3 цифровых датчиков температуры DS18B20 с интервалом измеряемых температур от -55 до +125 0C.
  • – 2 аналоговых входа 0…3,3В. Внутренний АЦП обеспечивает 10 разрядное преобразование.
  • – 4 дискретных входа (внутренняя подтяжка к логической 1)
  • – 2 дискретных выхода с нагрузочной способностью 10 мА
  • – отправка состояния датчиков на указанный сервер по протоколу Syslog
  • – отправка уведомления списку серверов или одному из списка, при наступлении указанного условия
  • – возможность управления выходами и отправкой данных по указанной логической схеме
  • – web-интерфейс для управления и получения данных

Требования к питанию и окружающей среде

Питание прибора осуществляется от внешнего стабилизированного источника питания +5В, 500mA. Прибор рассчитан на работу при температуре 0…85 0С. При относительно влажности до 90% в неагрессивной среде. Не рассчитан на прямое попадание воды и ВЧ излучений.

Подключение и установка датчиков

Позволяет подключить до 6 внешних датчиков помимо 3 датчиков температуры DS18B20. Для этого применяются клеммы.

На клеммы также выведено стабилизированное питание +5В от источника питания.


Подключение дополнительных датчиков температуры

Общее количество датчиков температуры DS18B20 не должно превышать трех. Датчики подключаются параллельно друг другу. Никаких других элементов не требуется. Длина провода не более 3 метров.

Подключение аналоговых датчиков

Подключаемый аналоговый датчик должен выдавать напряжение в пределах 0…3,3В. В противном случае, необходимо обеспечить согласование сигналов. При этом вся защита от возможного перенапряжения должна ложиться на схему согласования. Прибор имеет 10 разрядный АЦП. Уровень измеренного сигнала отображается в числовом выражении от 0 до 1023. Пересчет в милливольты и другие величины прибор не выполняет.

Подключение дискретных датчиков

Подключаемые датчики могут быть как контактными (герконы, переключатели, кнопки) так и электронными ключами (цифровые датчики Холла, датчики, имеющие на выходе транзистор с открытым коллектором) Подключение датчика выполняется между нужным входом и “GND”. Вход контроллера “подтягивается” к логической 1 через внутренний резистор 10…60 кОм. Поэтому, при разомкнутом датчике на входе будет 1. При замыкании датчика на входе 0. Использование схемы для предотвращения дребезжания контактов при замыкании/размыкании необязательна. Если существует возможность попадания в цепь датчика напряжения, превышающего 3,3В, необходимо реализовать схему защиты входов от перенапряжения.

Подключение исполнительных устройств

Номинальная нагрузочная способность выходов OUT9, OUT10 10 мА (максимальная 20 мА). Используя внешние исполнительные устройства, можно реализовать управление сильноточной нагрузкой (вентиляцией, кондиционером, насосом, генератором и т.п.)

Настройка NETAlarm через web-интерфейс

Вход на страницу управления выполняется по ссылке следующего вида: http://IP-адрес /пароль

Http://192.168.114.20/whfynl

Если выполняется первичная настройка устройства, IP-адрес и пароль, заданный производителем можно узнать на наклейке корпуса .
После удачного входа, первой откроется страница состояния датчиков. Используя меню, перемещайтесь по закладкам.

Сетевые настройки

В закладке “Settings” выполняются основные сетевые настройки. А именно настройка MAC-адреса, IP-адреса, маски подсети, адрес шлюза, пароль доступа.

Настройки заголовков

В закладке “Titles” можно установить короткие текстовые подписи длинной до 20 символов к входам . Эти подписи отображаются на страницах состояния датчиков.

Настройки лог-сервера

Настройка списка “Alarm”

В закладке “Alarm List” указывается список IP-адресов серверов и портов, сообщений, которые будут отправлять серверам при условиях, указанных в следующей закладке “Events”. При этом несколько строк могут содержать одну и ту же комбинацию IP-адреса и порта, но с разными сообщениями. Сообщения отправятся, если будет включено поле ‘Enable/Disable’.

Настройка списка “Events”

В закладке “”Events” настраивается логическая таблица работы . В каждой строке указывается:

  • – опрашиваемый датчик
  • – условие сравнения (> = <)
  • – значение для сравнения
  • – действие, которое необходимо выполнить при выполнении условия в течение времени, указанного в поле ‘Delay time
  • – поле ‘Delay time ‘ задающее время, в течении которого должно выполняться условие прежде чем указанное действие будет выполнено. Задается в секундах. Если установлен 0 – немедленное выполнение.
  • – поле Enable/Disable Для включения/отключения обработки строки.

Прибор проверяет таблицу условий 10 раз в секунду, проходя последовательно по таблице, начиная со строки 0 до строки 9. Проверка условий выполняется только для строк, у которых включено поле Enable/Disable .
При выполнении условия в течении указанного периода выполняется указанное действие. В списке действий имеется проверка другого условия, что позволяет реализовать операцию логического “И “. При этом желательно указывать строки с отключенным полем Enable/Disable . В этом случае условие будет проверено, но будет проигнорировано в основном цикле проверке.

Если Вам, вдруг, захочется “зациклить” проверку условий, Вы сможете это сделать, но прибор работать правильно не будет.

Подробное описание полей:

Первое поле содержит список датчиков :

  • T0 – цифровой датчик температуры #1
  • T1 – цифровой датчик температуры #2
  • T2 – цифровой датчик температуры #3
  • A3 – аналоговый вход #1
  • A4 – аналоговый вход #2
  • IN5 – дискретный вход #1
  • IN6 – дискретный вход #2
  • IN7 – дискретный вход #3
  • IN8 – дискретный вход #4
  • OUT9 – дискретный выход #1
  • OUT10 – дискретный выход #2

Как видно, в условиях может использоваться проверка состояния выходов.

Условие сравнения :

  • > – если значение датчика превышает указанное в поле ‘Value’ значение
  • = – если значение датчика равно указанному в поле ‘Value’ значению
  • < – если значение датчика меньше указанного в поле ‘Value’ значения

В Поле ‘Value’ можно указывать целые числа в диапазоне от -9999 до 32767

Поле ‘What to do’

  • On OUT9 -включить OUT9
  • On OUT10 -включить OUT10
  • Off OUT9 -выключить OUT9
  • Off OUT10 -выключить OUT10
  • Send to Log -отправить состояние датчиков серверу, указанному в закладке “Log-Server”
  • Send Alarm#0..#9 -отправить сообщения всем со списка
  • Send Alarm#0 -отправить сообщение серверу, указанному в строке #0 из списка ‘Alarm List’
  • Send Alarm#1 -отправить сообщение серверу, указанному в строке #1 из списка ‘Alarm List’
  • Send Alarm#2 -отправить сообщение серверу, указанному в строке #2 из списка ‘Alarm List’
  • Send Alarm#3 -отправить сообщение серверу, указанному в строке #3 из списка ‘Alarm List’
  • Send Alarm#4 -отправить сообщение серверу, указанному в строке #4 из списка ‘Alarm List’
  • Send Alarm#5 -отправить сообщение серверу, указанному в строке #5 из списка ‘Alarm List’
  • Send Alarm#6 -отправить сообщение серверу, указанному в строке #6 из списка ‘Alarm List’
  • Send Alarm#7 -отправить сообщение серверу, указанному в строке #7 из списка ‘Alarm List’
  • Send Alarm#8 -отправить сообщение серверу, указанному в строке #8 из списка ‘Alarm List’
  • Send Alarm#9 -отправить сообщение серверу, указанному в строке #9 из списка ‘Alarm List’
  • Event#0 -проверить условие в строке #0
  • Event#1 -проверить условие в строке #1
  • Event#2 -проверить условие в строке #2
  • Event#3 -проверить условие в строке #3
  • Event#4 -проверить условие в строке #4
  • Event#5 -проверить условие в строке #5
  • Event#6 -проверить условие в строке #6
  • Event#7 -проверить условие в строке #7
  • Event#8 -проверить условие в строке #8
  • Event#9 -проверить условие в строке #9

Поле ‘Delay time’

В этом поле следует указывать период в секундах, на протяжении которого условие должно выполняться, прежде, чем будет выполнено указанное действие.
Технически возможно указать значения в диапазоне от -9999 до 32767. Но отрицательные значения, лишенные логического смысла, лишат логики всего, что вы делаете.

Поле ‘Enable/Disable’

Если Вы хотите, чтобы условие проверялось, установите это поле. Если условие используется как подчиненное в цепочке логического “И”, и Вам не нужно чтобы эту условие работало как самостоятельное, не устанавливайте это поле.

Пример #1:

Задача:

При превышении температуры 27 градусов на протяжении 1 минуты включать вентиляцию.
Если температура превышает 30 градусов на протяжении 30 сек, рассылать сообщения всем серверам.
Выключать вентиляцию при температуре ниже 25 градусов

Решение:

0 T0 > 27 On OUT9 60
1 T0 > 30 Send Alarm#0..#9 30
2 T0 < 25 Off OUT9 0

Пример #2:

Задача:

Регистрировать момент открытия/закрытия двери серверной (датчик IN5)

Решение:

0 IN5 = 0 Send to Log 0
1 IN5 = 1 Send to Log 0

Пример #3:

Задача:

Отправлять сообщение серверам, если дверь в серверную (датчик IN5) закрыта более часа, вентилятор включен (Выход OUT9) более 30 минут, а температура превышает значение 30 градусов в течении 30 секунд.
При наличии воды на полу (датчик IN6) более 5 секунд отправлять сообщения.

Решение:

0 IN5 = 1 Event#1 3600
1 OUT9 = 1 Event#2 1800
2 T0 > 30 Send Alarm#0..#9 30
3 IN6 = 0 Send Alarm#0..#9 5

Настройка прибора через последовательный порт

Этот способ предназначен для возвращения контроля над устройством, если его основные параметры (IP-адрес, пароль доступа) безвозвратно утеряны и не представляется возможным их восстановить.

!ВАЖНО! Кабель последовательного интерфейса в комплект не входит. Для изменения настроек по последовательному порту нужно выполнить следующие действия:

  • открыть крышку прибора
  • подключить кабель последовательного интерфейса к разъему USART
  • подключить кабель к компьютеру
  • включить прибор
  • запустить терминальную программу (например HyperTerminal) и подключиться к по соответствующему COM порту

В таком варианте подключения имеет ограниченный набор команд:

  • AT – проверка связи, в случае успеха, возвращает ‘OK’
  • CONFIG – выводит на дисплей текущую конфигурацию в сжатом виде
  • SETMAC – устанавливает MAC-адрес. Пример:

    SETMAC 88-255-114-17-50-117

    Обратите внимание! MAC-адрес указывается в десятичном формате

  • SETIP – устанавливает IP-адрес.

    SETIP 192.168.0.1

  • SETPWD – устанавливает пароль.

    SETPWD qwerty

    Пароль может содержать латинские буквы и цифры. Использование других символов крайне не рекомендуется.

  • HELP – выводит подсказку по командам.

Страницы состояния датчиков

Кроме страницы состояния в главном web-интерфейсе, предоставляет дополнительные страницы, где можно получить состояние датчиков.

С описание входов: http:///status

http://192.168.114.20/status

Сокращенная информация: http:///stat

http://192.168.114.20/stat

Эти данные могут быть получены и обработаны любым ПО с любой операционной системы, что расширяет сферу использования .

Настройка Syslog на FreeBSD

Для настройки syslog необходимо в файл syslog.conf добавить строку

Local0.info /var/log/climate.log

где /var/log/climate.log – файл, в который будут записываться данные .

Пример файла syslog.conf :

# $FreeBSD: src/etc/syslog.conf,v 1.28 2005/03/12 12:31:16 glebius Exp $ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manpage. *.err;kern.warning;auth.notice;mail.crit /dev/console *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security auth.info;authpriv.info /var/log/auth.log mail.info /var/log/maillog lpr.info /var/log/lpd-errs ftp.info /var/log/xferlog cron.* /var/log/cron local0.info /var/log/climate.log *.=debug /var/log/debug.log *.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log # touch /var/log/all.log and chmod it to mode 600 before it will work *.* /var/log/all.log # uncomment this to enable logging to a remote loghost named loghost #*.* @10.20.27.111 # uncomment these if you"re running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !mpd *.* /var/log/mpd.log !startslip *.* /var/log/slip.log !ppp *.* /var/log/ppp.log

В rc.conf устанавливаем флаг syslog, и указываем от кого ему можно принимать данные. Пример:

syslogd_flags= “-a 192.168.114.20/32:*”

Настройка FreeBSD для приема и обработки сообщений

Предположим, отправка сообщений будет выполняться на порт 773. Смотрим в файле /etc/services 773/ud p – это notify

В файле inetd.conf добавляем строку

Notify dgram udp wait root /root/scripts/alarm.sh alarm.sh

/root/scripts/alarm.sh – это скрипт, который будет принимать, и обрабатывать полученное сообщение.

Пример скрипта:

#!/usr/local/bin/bash #LOG="/var/log/alarm.log" LOG=`mktemp /tmp/alarm.XXXXXX` || exit 1 MY_IP_AND_PORT="192.168.144.1 773" SECRET_STRING="balar" WAIT_CNT=3 # get modify time of log LOG_MODIFY=`stat -f "%m" ${LOG}` /usr/bin/nc -l -u ${MY_IP_AND_PORT} > ${LOG} & BG_PID=$! while [ $WAIT_CNT -gt 0 ]; do sleep 1 LOG_MODIFY_CUR=`stat -f "%m" ${LOG}` if [ $LOG_MODIFY -eq $LOG_MODIFY_CUR ]; then WAIT_CNT=$((WAIT_CNT-1)) else WAIT_CNT=0 fi done kill $BG_PID # bug fix BEGIN read -t 1 sss # bug fix END MSG=`cat ${LOG}` if [ $MSG=$SECRET_STRING ]; then echo ALARM! SHUTDOWN! | mail -s ALARM [email protected] logger AHTUNG! SHUTDOWN else logger GADI PITALIS POTUSHIT SERVER fi unlink ${LOG} exit 0

ВНИМАНИЕ! На разных версиях операционных систем скрипт может не работать как следует или не работать вовсе. Придется применить свое умение.

Настройка MRTG для построения графиков температуры

Создаем скрипт /usr/local/etc/periodic/daily/climate.sh Следующего содержания:

#!/bin/sh read=`cut -f 4 -d: /var/log/climate.log | tail -1` write=${read} echo ${read} echo ${write} echo 0 echo items

где /var/log/climate.log – файл, в который принимаются данные от .

В файле /usr/local/etc/mrtg/mrtg.cfg добавляем следующие строки:

Target:`/usr/local/etc/mrtg_scripts/climate.sh` Options: nopercent,growright,gauge,noinfo Title: Temperature PageTop:

Temperature

MaxBytes: 10000 YLegend: temperature, oC ShortLegend: items LegendI: Temperature: LegendO: Temperature: Legend1: temperature, oC Legend2: temperature, oC

Установка и настройка сервиса для обработки сообщений на Windows серверах

Для приема сообщений серверами под управлением Windows систем создан специальный сервис .exe . Установить как сервис командой:

Exe -install

Проверьте, служба Net Alarm должна появиться в списке сервисов.

Udpport=773 fromip=192.168.114.20 string=alarm todo="C:\Atmel_Projects\AVRWeb\WinUDPServer\WinService\1.bat"

  • udpport=773 – порт на котором служба будет принимать сообщения
  • fromip=192.168.114.20 – адрес от куда принимать сообщения, другие адреса будут игнорироваться
  • string=alarm – текст сообщения, после приема которого нужно выполнить команду
  • todo=”C:\NETAlarm\alarm.bat” – команда, которая выполняется после получения сообщения

На той же основе была создана метеостанция для работы в интернет.

Принцип тот же, что и . Добавлены:
– датчик давления HP02
– “тахометр” для измерения скорости ветра
– работа с 4 битным энкодером для определения направления ветра
– отправка данных на сервер по http протоколу
– вывод данных в XML формате

Со схемой и прошивкой метеостанции познакомлю Вас немного позже.

В свое время я реализовал управления выводами GPIO на Raspberry Pi. Это управление осуществлялось через веб-интерфейс путем установки на малинку веб-сервера и использования фреймворка webiopi. В тот раз я сделал управления 4 модульным реле через интернет (обо всем этом еще будет публикация).

Так вот, давно собирался попробовать нечто подобное на . С Raspberry Pi проблем не было. Оно и неудивительно: полноценный ethernet интерфейс + полноценная многозадачная ОС. А как же быть с Arduino? Все просто, используем ethernet модуль . Буду откровенным, мне очень в этом деле помог видео урок Дмитрия Осипова .

Итак сделано следующее:

1) Ethernet модуль підключен к Arduino следующим образом

VCC - 3.3V Arduino
GND - GND Arduino
SCK - Pin 13 Arduino
SO - Pin 12 Arduino
SI - Pin 11 Arduino
CS - Pin 10 Arduino

2) Загружены необходимые библиотеки или

3) Релешка подключена к Arduino так:

VCC - 5V Arduino
In1 - Pin 2 Arduino
In2 - Pin 3 Arduino
In3 - Pin 4 Arduino
In4 - Pin 5 Arduino
GND - GND Arduino

4) Немножко пидрехтований под мои нужды скетч Осипова:
Программа хорошо прокомментирована, поэтому здесь принцип ее работы объяснять не буду.

5) Модуль ENC28J60 подключен ethernet кабелем к моему роутера. Моей ардуинке автоматически присвоено IP адрес 192.168.0.106 . Обратиться к Arduino можно введя данную IP в адресную строку браузера. Перед нами откроется веб-страница, с которой можно управлять нашей релешкою 😉 И вуаля:

Всем привет.
Как многие слышат, что нужно создать WEB сервер – сразу становится не по себе, всячески пытаются отойти от этой темы применив другие варианты управления и мониторинга своих устройств. Но ведь интернет и сеть есть уже почти в каждом устройстве. Так чем Ваш творение хуже?
Так что Если Вам интересно – идем дальше.

Не так страшен Волк, как его рисуют. Среди Нас много специалистов, но и много новичков. Учится никогда не поздно, я сам многому учусь, и многое познаю в практике. Надеюсь, эта статья поможет начинающим или освежит память начавшим.
За основу взят популярный модуль с контроллером ENC28j60.

А также я взял Arduino UNO(также можно Nano или Pro Mini). Все они работают на ATmega328.
В этой статье я покажу основы создания WEB сервера на самых простых библиотеках.
В данном случае:
#include «etherShield.h»
#include «ETHER_28J60.h»
Они просты для понимания – но и возможностей тоже меньше. Для обычного мониторинга и управления нагрузками – более чем достаточно.
Давайте рассмотрим, что нам нужно для этого.

Для начала идет инициализация библиотек.
Далее я указал пины для подключения модуля с контроллером ENC28j60. Так же Нам необходимо указать параметры нашего сетевого устройства. Для этого указываем MAC адрес –помните он не должен совпасть с MAC адресом Ваших сетевых устройств. Так же и IP Адрес – должен быть индивидуальным – но находиться в Вашей подсети.
К примеру, у Вас роутер(192,168,0,1), Ваш ПК(192,168,0,5) то Ваше устройство может быть(192,168,0,100).
К примеру, у Вас роутер(192,168,4,1), Ваш ПК(192,168,4,10) то Ваше устройство может быть(192,168,4,100).
Далее нужно указать порт. По умолчанию 80 – так как Веб браузеры по умолчанию опрашивают именно его(смотрите тест изменения порта в видео ниже).
Далее ETHER_28J60 ethernet; - указываем на имя объекта для обращения(ethernet), ниже в программе мы будем обращаться по этому имени.
Далее Нам необходима инициализация сетевого контроллера – применяем все установки адресов и портов.

Ну тут думаю самое сложное и не интересное закончилось …

Далее в основном цикле программы мы должны поставить условие которое будет проверять, есть ли запрос по нашему IP адресу?.. Если есть то отправить строчки нашей странички, а браузер уже придаст ей привычный нам вид. Давайте посмотрим пример:

Выделенная строка создает крупный тест на страничке, его легко редактировать и таких строчек можно добавлять по необходимости(но все упирается в количество Flash памяти контроллера).
Команда ethernet.respond(); отправляет все наши строчки сайта на браузер с которого сделали запрос на сайт(в данном случае 192.168.0.100).
Но если Вы заметили то названия у этого сайта нет(просто IP адрес).Не волнуйтесь, это поправимо, если добавить одну строчку:

Вот… теперь уже лучше.
Далее добавляя, строчки мы будем добавлять объекты на страничке которые помогут нам отображать информацию или управлять нею.
Начнем с ссылки, при нажатии на которую, мы отправим на контроллер запрос с тестом (который нужен будет нам позже для обработки).

Красной стрелкой название кнопки, а синей мы указываем на текст в запросе при нажатии на ссылку. Значит, если Мы нажмем на ссылку «Стоп» то отправим запрос на наш сервер: «192.168.0.100/stop» - где «stop» будет текст запроса.
Далее рассмотрим такой же вариант только с кнопкой:

Добавились атрибуты необходимые для отображения браузером кнопки. При нажатии, на которую, уже отправится запрос с тестом «start». Думаю здесь все понятно.
Для любителей красоты можно добавить параметры и создать интересную кнопку:

Для следующего варианта нам понадобятся переменные, добавим их в начале скетча:

Сейчас отобразим на Нашей страничке таблицу:

Для обозначения объекта таблица используется атрибут table. Далее я красным подчеркнул (tr) внешние границы таблицы и синим - внутренние рамочки. Обратите внимание что они попарно, а в центре пары Ваше значение или переменная(к примеру ves1 или ves2). Так же вы можете заметить что пара создает жирный текст а обычный текст. В конце объект таблица завершается /table.
Думаю с отображением объектов на странице достаточно для создания не сложных WEB страниц(более подробно и наглядно вы можете увидеть ниже в видео уроках для начинающих).
Но как же обработать запрос – для этого немного модифицируем наше условие с самого начала, добавив при этом переменную для строки. Так же создадим для примера два условия обработки запросов: 1-е это пустой запрос (192.168.0.100); 2-е это запрос с текстом «start»(192.168.0.100/start)

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

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

Более детально и наглядно можно увидеть все, выше упомянутое, в Видео уроках для начинающих:



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: