Як працює мікросхема мережевого контролера. Ethernet контролер для дистанційного керування обладнанням. Сторінки стану датчиків

Як показала практика, побутові супутникові тюнери, які використовуються кабельними операторами, нерідко доводиться перезапускати через періодичне пропадання звуку або зображення. Викликано це різними факторами: неоднорідний рівень сигналу з конвектора, перегрів приймача або висихання електролітів. Можна тримати черговий персонал для оперативного перемикання, проте коли це економічно невигідно допоможе описуваний девайс. У принципі застосування розробленого пристрою не обмежене тільки цією сферою діяльності.

Коротко:
Призначення.Дозволяє за допомогою локальної мережі (або Інтернету) керувати включенням та вимкненням навантажень, підключених до керованих реле.
Пристрій.Принципово пристрій складається з трьох модулів: модуль Ethernet, модуль мікроконтролера, модуль управління навантаженнями.
Ethernet-модуль зібраний на мікросхемі від Microchip ENC28J60 та його доцільніше взяти готовий, наприклад тут: http://www.aliexpress.com/wholesale?SearchText=enc28j60 . Як мікроконтролер використовував мікросхему Atmega32. У модулі керування стоять транзисторні ключі, що включають відповідні реле. Кожне реле включає або відключає живлення на споживачі, який цього потребує.
Принцип дії.Принцип дії пристрою неважко зрозуміти з принципової схеми:

Для інтерактивного використання системи передбачено веб-інтерфейс, зайшовши в який оператор включає або відключає відповідний порт (див. малюнок). Конструкцією та прошивкою передбачено використання 20 портів виведення: PA0…PA7, PC0…PC7, PD4…PD7. Однак, за бажання кількість виходів можна збільшити до 80 штук — для цього необхідно використовувати дешифратори (наприклад, К155ІД3) і переписати яваскрипт веб-панелі, щоб виходи МК генерували слова, що управляють (0x0…0xF). Такий підхід дещо ускладнить схему пристрою та з'явиться необхідність перезавантаження тюнерів «по черзі». Набагато доречніше використовувати кілька описуваних пристроїв під різними IP-адресами.

Прошивка мікроконтролера. Щоб прошити Atmega32 я використав програматор «4 проводки» для COM-порту та софт. Прошивав на старому ПК під керуванням Windows XP. На сучасних операційних системах не пробував, через відсутність COM-а. прошивки.

Ще необхідно встановити ф'юзи як на зображенні.

Вихідні коди прошивки з коментарями можна завантажити. У папці з вихідними джерелами лежить робочий Makefile. Щоб скомпілювати проект, я користувався безкоштовним. Для цього відкриваємо командний рядок, заходимо до папки з проектом і набираємо «make». В результаті роботи компілятора в папці з'явиться кілька проміжних файлів лінкування та файл прошивки HEX.

Щоб очистити результат роботи компілеру — там же, у командному рядку, пишемо make clean.

Якщо пилятимете вихідники, то зверніть увагу на дві функції:

Fill_tcp_data_p(buf,plen,PSTR("рядок, що передається в пакет")); char stroka = "рядок, що передається в пакет"; fill_tcp_data(buf,plen,stroka);

Першу функцію використовуємо там, де необхідно передати рядок (статичний текст). Другу юзаєм з рядковими змінними.
З файлу ip_arp_udp_tcp.c:

Uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s) ( char c; ((c = pgm_read_byte(progmem_s++))) ( buf=c; pos++; ) return(pos); ) ... uint16_t fill_tcp_data(uint8_t *buf,uint16_t pos, const char *s) ( return(fill_tcp_da ,(uint8_t*)s,strlen(s)));

Зібрані екземпляри:

Демонстрація роботи:

У прошивці мікроконтролера передбачена зміна IP-адреси (за замовчуванням 192.168.1.99) та домену яваскрипту. Так, перехід на адресу: 192.168.1.99/? i = 91змінить адресу пристрою на 192.168.1.91 після перезавантаження (користуйтесь дуже акуратно і лише за гострої необхідності, щоб не втратити пристрій!!! :)). Домен скрипта змінюється так: 192.168.1.99/?d=mydomain.com, тобто. ваш скрипт підвантажуватиметься з адреси: mydomain.com/eth/script.js. Зауважте, що в директорії eth на сервері повинні лежати .

Відкриваєте script.js та змінюєте описи портів під свої потреби:

Var name = "Керування портами:"; // заголовок // нижче за назву портів (можна замінити на що-небудь осмислене) var title = ["PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", " PA7", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PD4", "PD5", "PD6", "PD7" ];

Наприклад, у мене так:

Var name = "Райдуга", 75 градусів; // заголовок // нижче назви портів (можна замінити на щось осмислене) var title = ["Російський ілюзіон", "24 техно", "Садиба", "Здорове ТБ", "Ретро", "Драйв", "Фенікс" +кіно", "Дитячий", "Полювання та риболовля", "Europa Plus", "Sony Entertaiment", "Sony Sci-Fi", "Мультиманія", "National Geographic", "НСТ", "не використовується", " не використовується", "не використовується", "не використовується", "WWW-СЕРВЕР"];

Для живлення можна використовувати зарядний пристрій для мобільного телефону (вихідна напруга близько 7 вольт). У режимі очікування струм споживання близько 120 мА. При включенні одного реле струм споживання зростає до 180 мА. Необхідно враховувати, що якщо буде потреба активувати все реле одночасно (відключати всі ресивери), то і блок живлення має бути вже відповідною потужністю (як мінімум 1.5 А).

Подана стаття є лише демонстрацією пристрою. У комерційній версії напрямок цієї розробки суттєво розширено — портів до 150 штук, три датчики температури та інше, все залежить від замовлення. (Ще один приклад на 40 портів:)

Конструктивно пристрій можна розмістити в корпусі якого-небудь комутатора, що відслужив свій термін, в телекомунікаційну стійку 19″. Так як такого комутатора під рукою не виявилося, то замовив у «Мобільному сервісі» ось таку коробочку від оптоволоконної вступно-розподільчої системи (коштує 290 тиш без ПДВ):

Автори: В'ячеслав Гавриков (м. Смоленськ)

Інтерес до Інтернету (Internet of Things, IoT) постійно зростає. Проте головним чинником, який стримує поширення цієї технології, залишається складність її реалізації. Це стосується як апаратної, так і програмної частини. Тим не менш, існує можливість обійти ці проблеми за рахунок використання готових рішень, таких, як мініатюрні веб-сервери xPico від Lantronix. Нещодавно компанія випустила новий модуль xPico 110, який відрізняється від попередника вищим рівнем захисту даних і передбачає прямий SMD-монтаж на материнську плату.

Мал. 1. Новий веб-сервер xPico 110 від Lantronix

Концепція "Інтернету речей" або Internet of Things (IoT) передбачає включення до складу звичних інформаційних мереж широкого кола різних пристроїв - від побутових приладів до промислового обладнання. Розумний телевізор, розумний холодильник – ось лише низка прикладів, які вже стали нормою для споживачів.

На даний момент існує лише дві основні причини, які стримують розвиток IoT: економічна та технічна. Економічна полягає в тому, що інтеграція підтримки IoT значно підвищує вартість кінцевого пристрою. З технічної погляду створення «розумних» пристроїв є складне завдання, на вирішення якої знадобиться група досвідчених розробників. Розглянемо приклад розробки IoT-пристрою.

По-перше, у найпростішому випадку для створення IoT-пристрою буде потрібна підтримка дротового Ethernet. Як відомо, Ethernet не такий простий у реалізації, і вимагає розробки складних принципових схем, виконання розведення високошвидкісних ліній і т.д.

По-друге, після створення апаратної частини необхідно забезпечити підтримку програмних протоколів (TCP/IP, UDP тощо), а для цього потрібно написати десятки та сотні кілобайт програмного коду для реалізації необхідних рівнів мережевої моделі OSI: від драйверів інтерфейсних мікросхем до протоколів вищих рівнів (TCP/IP, UDP тощо. буд.).

По-третє, будь-який пристрій, крім роботи в мережі Ethernet, повинен виконувати і свої основні функції: холодильник - зберігати продукти, промисловий верстат - робити деталі тощо.

Всі ці проблеми можна обійти за рахунок готових рішень. Зокрема, компанія Lantronix пропонує до послуг розробників закінчені модулі веб-серверів xPico (рис. 2). Незважаючи на високий функціонал, вони відрізняються мініатюрними розмірами, які можна порівняти з габаритами невеликої монети.

Мал. 2. Веб-сервери xPico та xPico 110 від Lantronix

Суть рішення від Lantronix стає зрозумілою під час розгляду схеми включення модулів xPico (рис. 3). З їх допомогою навіть найпростіший мікроконтролер може бути підключений до мережі Ethernet, оскільки xPico бере на себе всю складну частину реалізації мережного інтерфейсу, як з апаратної, так і з програмної точки зору. За вирішення цих завдань відповідає 16-бітний контролер DSTni-EX з архітектурою x86. Він здатний працювати з максимальною частотою до 120 МГц і відрізняється солідним об'ємом пам'яті 512 кбайт FLASH, 256 кбайт ОЗП та 384 кбайт пам'яті для веб-сторінок. Для підключення до Ethernet знадобиться лише трансформатор, а програмні протоколи вже інтегровані в модуль сервера. Обмін даними з керуючим мікроконтролером здійснюється за допомогою звичайного UART зі швидкістю до 921 кбайт/с. Втім, xPico може працювати самостійно.

Мал. 3. Схема підключення мікроконтролера до мережі Ethernet за допомогою веб-серверів Lantronix

Для самостійної роботи у модулів xPico є 8 портів вводу-виводу 3,3 В. Крім того, за допомогою додаткового приймача можна реалізувати найпростіший міст між мережею Ethernet і RS-422/485 або RS-232.

Налаштування модулів xPico здійснюється або через мережу Ethernet за допомогою спеціального веб-менеджера (рис. 4), або за допомогою додаткової утиліти та COM-порту комп'ютера. xPico підтримують усі популярні протоколи TCP/IP, UDP/IP, DHCP, ARP, ICMP, DHCP, Auto-IP, DNS, SNMPv1, TFTP та ін.

Мал. 4. Вікно налаштування веб-сервера xPico 110 від Lantronix

Нова лінійка веб-серверів xPico 110 відрізняється від попередника xPico за двома пунктами:

  • способом монтажу на материнську плату;
  • підвищеним рівнем безпеки та захисту даних.

Почнемо з очевиднішого першого пункту. Модулі лінійки xPico передбачають підключення до материнської плати за допомогою 40-контактного гнізда. Для цього на материнській платі необхідно помістити роз'єм у відповідь для з'єднання типу плата-плата. Виробники рекомендують для цього використовувати DF40C(2.0)-40DS-0.4V(51) від компанії Hirose. Для механічного кріплення модулів xPico потрібні додаткові стійки. Для полегшення життя розробників Lantronix пропонує використовувати спеціальну кліпсу швидкого монтажу (рис. 5).

Мал. 5. Монтаж кліпси на модуль xPico від Lantronix

Після фіксації в кліпсі користувачеві залишиться лише встановити отриману конструкцію на плату (рис. 6).

Мал. 6. Монтаж модуля xPico на материнську плату

Неважко помітити, що недоліком такої конструкції є значне збільшення габаритів. Якщо потрібно отримати «тонке» рішення, то модулі xPico 110 будуть кращими, оскільки вони навіть без урахування кліпси виявляються вдвічі тоншими, ніж xPico: 3 мм замість 5,6 мм.

Другою відмінністю xPico 110 є підвищений рівень безпеки. З урахуванням зростання рівня кібер-загроз це, напевно, виявиться важливою перевагою нових серверів. У порівнянні з попередниками сервери xPico 110 можуть похвалитися такими новими механізмами безпеки:

  • Сертифікація NISTAES (FIPS-197);
  • Криптографія 256/192/128-біт AES;
  • пароль, що настроюється (Telnet, Serial);
  • Програмне керування увімкненням/вимкненням мережевого порту.

Крім стандартного модуля xPico 110 (код замовлення XPC100200B-01) до послуги розробників пропонується і сервер з підтримкою Modbus (код замовлення XPC100200K-02).

Варто сказати кілька слів про споживання цих мініатюрних модулів. Сервери xPico 110 вимагають джерела напруги 3,3 В, а струм живлення для них становить 240 мА при максимальній продуктивності (100 BaseT, 120 МГц CPU).

Щоб створити найпростіший Ethernet пристрій на базі xPico або xPico 110, можна обійтися не тільки без програмування, але і без глибоких знань схемотехніки. Для цього слід скористатися налагоджувальним набором xPico Development Kit Solutions:

  • XPC100100K-02 для xPico;
  • XPC100200K-02 для xPico 110 (рис. 7).

Набір XPC100200K-02 включає зовнішній мережевий блок живлення з вилками-адаптерами і безпосередньо налагоджувальну плату. Плата містить модуль xPico 110, мікросхеми приймачів, роз'єми, користувальницькі світлодіоди, джампери і кнопки.

Мал. 7. Зовнішній вигляд налагоджувальної плати XPC100200K-02

Так як мініатюрні модульні веб-сервери xPico і xPico 110 дозволяють підключити практично будь-який мікроконтролер до Ethernet, то сфери застосування кінцевих пристроїв можуть бути різними:

  • віддалене керування промисловим обладнанням;
  • системи сигналізації та безпеки;
  • системи «Розумний дім»;
  • системи керування дорожнім рухом;
  • спортивне обладнання;
  • медичні системи тощо.

Характеристики веб-сервера xPico 110 XPC100200B-01:

  • Вбудований процесор: 16-бітовий контролер DSTni-EX (з архітектурою x86);
  • Вбудована пам'ять: 512 кбайт FLASH та 256 кбайт ОЗУ;
  • Пам'ять веб-сторінок: 384 кбайт;
  • Інтерфейс Ethernet: 10/110 Ethernet;
  • Інтерфейси, що підтримуються: TCP/IP, UDP/IP, DHCP, ARP, ICMP, DHCP, Auto-IP, DNS, SNMPv1, TFTP;
  • Інтерфейс із керуючим контролером: 2 x UART зі швидкістю до 921 кбайт/с;
  • Число портів введення-виводу: 8;
  • Напруга живлення: 3,3 В;
  • Типовий струм споживання: 240 мкА;
  • Діапазон робочих температур: -40 ... +85 ° C;
  • Корпус: 18,3 х 31,1 х 3,0 мм.

Опубликовано 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 OUT960
1 T0> 30 Send Alarm#0..#930
2 T0< 25 Off OUT90

Приклад #2:

Завдання:

Реєструвати момент відкриття/закриття дверей серверних (датчик IN5)

Рішення:

0 IN5= 0 Send to Log0
1 IN5= 1 Send to Log0

Приклад #3:

Завдання:

Надсилати повідомлення серверам, якщо двері до серверної (датчик IN5) закриті більше години, вентилятор увімкнений (Вихід OUT9) більше 30 хвилин, а температура перевищує значення 30 градусів протягом 30 секунд.
За наявності води на підлозі (датчик IN6) більше 5 секунд надсилати повідомлення.

Рішення:

0 IN5= 1 Event#13600
1 OUT9= 1 Event#21800
2 T0> 30 Send Alarm#0..#930
3 IN6= 0 Send Alarm#0..#95

Налаштування приладу через послідовний порт

Цей спосіб призначений для повернення контролю над пристроєм, якщо його основні параметри (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 12/03/2005 12:31:16 glebius Exp $ # # Spaces ARE valid field separators in this file. However, # інші *nix-like systems still insist on using tabs as field # separators. Якщо ви збираєтеся цього файлу між системами, ви #можете, щоб використовувати лише tabs як області 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 log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging 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 #*.* 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, o C ShortLegend: items LegendI: Temperature: LegendO: Temperature: Legend1: temperature, o C Legend2: temperature, o C

Встановлення та налаштування сервісу для обробки повідомлень на серверах 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 форматі

Зі схемою та прошивкою метеостанції познайомлю Вас трохи пізніше.

Ethernet ("езернет", "ефірна мережа", отлат. "aether" - ефір) - одна з найпопулярніших в даний час мережевих архітектур. Вона використовує вузькосмугову передачу даних зі швидкістю 10…100 Мбіт/с на комп'ютерних кабелях UTP/FTP. Основною топологією є "зірка" з можливістю каскадування мережі хабами. Відстань поодиноких прольотів до 100 м, кількість вузлів до 1024.

Технологія Ethernet була розроблена у 1970-х роках у дослідному центрі PARC фірми Xerox. 1980 р. опубліковано перший офіційний стандарт.

На сьогоднішній день забезпечуються такі швидкості передачі: 10 Мбіт/с (Ethernet), 100 Мбіт/с (Fast Ethernet), 1…100 Гбіт/с (Gigabit Ethernet), у перспективі 1 Тбіт/с (Terabit Ethernet). Щоб легше було орієнтуватися, вводять скорочені назви, наприклад, 10BaseT, де число "10" означає швидкість передачі даних 10 Мбіт/с, "Base" - немодульований сигнал, T - дві виті пари в кабелі. Для універсальних двошвидкісних інтерфейсів застосовують написи через дріб подібно до 10/100BASE-T.

Логічна структура сигналів Ethernet досить складна, тому для сполучення комп'ютера з MK зазвичай ставлять спеціалізовані буферні контролери, наприклад, Microchip ENC28J60, Realtek RTL8019AS, Crystal Semiconductor CS8900A, Silicon Laboratories CP220x або навіть окрему мікрос5. Всі вони забезпечують упаковку/розпакування даних на максимальній швидкості 10 Мбіт/с, яка є крейсерською для MK загального застосування. Спілкування MK з контролером Ethemet здійснюється через програмно доступні регістри, що визначають той чи інший режим роботи.

Фізично для зв'язку з комп'ютером використовується стандартний чотирижильний мережевий кабель. Гальванічна розв'язка здійснюється через імпульсні трансформатори, причому часто вони поєднуються з екранованим роз'ємом RJ-45 та двома світлодіодами (Рис. 4.16). Коефіцієнт трансформації на прийомі зазвичай становить 1:1, передачі 1:1 або 1:1.25. Ланцюг GND з'єднується з металевим екраном. Елементи R1…R4, C1 можуть бути відсутніми.

Мал. 4.16. Схема блоку трансформаторів Ethemet із роз'ємом XS1 RJ-45.

На основі зв'язки "МК + контролер Ethernet" (Рис. 4.17, а ... д) роблять не тільки локальні мережі, але і веб-сервери з генераторами html-сторінок. Це дозволяє здійснювати дистанційне керування та контроль за станом датчиків з будь-якої точки Земної кулі, охопленої мережею Інтернет.

Мал. 4.17. Схеми підключення комп'ютера через інтерфейс Ethernet до MK (початок):

а) підключення Ethemet-модуля через інтерфейс SPI до MK;

б) MK має вбудований контролер Ethernet, що тактується частотою 25 МГц. Резистори RI, R2 обмежують струм через світлодіоди, що знаходяться в блоці трансформаторів;

в) контролер Ethernet DD1 (фірма Microchip) зберігає дані у мікросхемі пам'яті DS1\

Мал. 4.17. Схеми підключення комп'ютера через інтерфейс USB до MK (закінчення):

г) MK та мікросхема контролера Ethernet DD2 (фірма Microchip) запитуються від різних напруг. По входах узгодження рівнів не потрібно, а по виходах воно проводиться через буферні повторювачі, що входять до складу мікросхеми DD1. У блоці трансформаторів/ відсутні індикатори, тому застосовуються зовнішні світлодіоди HL1, HL2\

д) аналогічно Мал. 4.17 а, але без зовнішньої мікросхеми пам'яті.

Друкована плата під модуль.

Схема підключення модуля до мікроконтролера.

Друкована плата контролера та шини ISA.

Спочатку хотів зробити, щоб можна було вставляти мережну плату в ISA роз'єм, потім роз'єм викусив і модуль просто впаяв у цю плату. Можна, звичайно, зробити і на роз'ємах, навіть краще буде.

Зовнішній вигляд модуля.

Менеджер керування модулем Ethernet.

При роботі з менеджером натискаємо START та у вікні команд змінюємо цифру від 0 до 9. Спостерігаємо реакцію модуля на команди.

Це менеджер Генадія. Тут вводимо IP-адресу, натискаємо кнопку Connect і кнопками On/Off можна покерувати світлодіодами на модулі.


Тут викладено результат прослуховування протоколу під час обміну менеджера з пристроєм.

ПротоколARP

Address Resolution Protocol

Запит від майстра

0x0000 FF FF FF FF FF 00 0D-61 21 FF 96 08 06 00 01 ÿÿÿÿÿ..a!ÿ–....

0x0010 08 00 06 04 00 01 00 0D-61 21 FF 96 C0 A8 00 05 ........a!ÿ–À¨..

0x0020 00 00 00 00 00 00 C0 A8-00 19 ......ˬ..

Ethernet II

FF FF FF FF FF FF – Destination MAC – МАС адреса одержувача.

08 06 – Ethertype 0x0806 – (2054) – ARP.

ARP

00 01 – Hardware 0x0001 (1) – Ethernet.

08 00 – Protocol 0x0800 (2048) – IP.

06 - Hardware address length 0x06 (6).

04 - Protocol address length 0x04 (4).

00 01 – Operation 0x0001 (1) – ARP Request.

00 0D-61 21 FF 96 – Sender MAC address - МАС адреса відправника.

C0 A8 00 05 – Sender IP address – IP адреса відправника.

00 00 00 00 00 00 – Target MAC address – МАС адреса одержувача (все).

C0 A8-00 19 – Target IP address – IP адреса одержувача.

ПротоколIP/ ICMP.

Internet Control Management Protocol

Запит від майстра

0x0000 00 22 3A 6F 47 B9 00 0D-61 21 FF 96 08 00 45 00 .":oG¹..a!ÿ–..E.

0x0010 00 3C 19 E0 00 00 80 01 -9F 72 C0 A8 00 05 C0 A8 .<.à..€.ŸrÀ¨..À¨

0x0020 00 19 08 00 D2 5A 03 00 -78 01 61 62 63 64 65 66 ....ÒZ..x.abcdef

0x0030 ghijklmnopqrstuv

Відповідь від слейву

0x0000 00 0D 61 21 FF 96 00 22-3A 6F 47 B9 08 00 45 00 ..a!ÿ–.":oG¹..E.

0x0010 00 3C 19 DD 00 00 80 01 -9F 75 C0 A8 00 19 C0 A8 .<.Ý..€.ŸuÀ¨..À¨

0x0020 00 05 00 00 DB 5A 03 00 -77 01 61 62 63 64 65 66 ....ôZ..w.abcdef

0x0030 67 68 69 6A 6B 6C 6D 6E-6F 70 71 72 73 74 75 76 ghijklmnopqrstuv

0x0040 77 61 62 63 64 65 66 67-68 69 wabcdefghi

Ethernet II

00 0D-61 21 FF 96 – Source MAC - МАС адреса відправника.

08 00 - Ethertype 0x0800 = IP.

IP

45 - IP version "4" і "5" - Header length = 20 bytes.

00 – Type of service

00 3C - Total length 0x021 = 33

19 E0 – Id (номер пакету)

00 00 - Flagmant offset = 0.

80 - Time to Live (TTL) = 128.

01 – Protocol (ICMP)

9F 72 – Контрольна сума.

C0 A8 00 05 – IP відправника.

C0 A8 00 19 – IP одержувача.

ICMP

08 - Type 0x08 (8) Echo. (0) - Echo reply.

00 - Code 0x00 (0).

D2 5A - Checksum 0xD25A (53850) correct.

03 00 - Identifier 0x0300 (768).

78 01 - Sequence Number 0x7801 (30721).

ПротоколIP/UDP

User Datagram Protocol

0x0000 00 C9 3A 6F 47 B9 00 0D-61 21 FF 96 08 00 45 00 .É:oG¹..a!ÿ–..E.

0x0010 00 21 30 E0 00 00 80 11 -88 7D C0 A8 00 05 C0 A8 .!0à..€.ˆ)À¨..À¨

0x0020 00 19 17 D8 00 6F 00 0D -C3 75 2A 54 41 54 37 ...Ø.o..Ãu*TAT7

Ethernet II

00 C9 3A 6F 47 B9 – Destination MAC – МАС адреса одержувача.

00 0D-61 21 FF 96 – Source MAC - МАС адреса відправника.

Технології