В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Дистанционный контроллер состояния подъездного освещения с web-интерефейсом: Лампочкометр-WEB

📆13 сентября 2012   ✒️Discover   🔎16.046   💬10  
…а вот не видать из Челябинска моего Лампочкометра,
я вам скажу больше – его уже и из-за угла не видать…


Кто не понял, вообще о чём речь, смотрите мои статьи на Датагоре:
• Лампочкометр - контроллер освещения, прибор для отображения количества исправных ламп
• Лампочкометр возвращается! (vol. 2)

Моя работа связана с частыми и, бывает, продолжительными командировками. А лампочки как сгорали, так и горят. Причем они как чувствуют. Бывает, за месяц не одной не сгорит, но стоит мне отлучиться в командировку, сразу начинают перегорать. Как-то я был в командировке в Челябинске двадцать три дня – сгорело 10 ламп!!! Все бы хорошо: есть Лампочкометр, есть сосед, с которым я договорился, чтобы он менял за меня лампы. Но вот сказать ему, в каком подъезде сгорела лампа, я не могу, мне же не видно свой Лампочкометр из Челябинска, Магнитогорска или Новотроицка. Естественно, мало по малу начинала зреть мысль о том, как вывести Лампочкометр в «свет» – в ИНТЕРНЕТ!!!
Итак, встречайте, новый Лампочкометр-WEB!!

Содержание статьи / Table Of Contents

Реализация

Начну с самого простого – с аппаратной части. Контроллер нижнего уровня остался без изменений, есть в планах и его модернизировать, но пока руки не доходят. А вот контроллер верхнего уровня выглядит теперь по-другому. Это практически полноценный компьютер, на miniITX материнской плате и с твердотельным диском в качестве основного носителя, собранный специально для нового Лампочкометра.
Главный аргумент – в навигаторе отсутствует Ethernet-порт, необходимый для доступа в сеть. В принципе, можно было и подешевле сделать, всякие там Ethernet-модули и пр. Но, не все так просто как хотелось бы, простой пример предыдущего Лампочкометра, танцы с бубном для того, чтобы состыковать FT232 c навигатором(WindowsCE). На обычной платформе все гораздо проще да и возможностей больше. Преобразователь USB-RS485, тоже претерпел незначительные изменения, был убран стабилизатор питания для навигатора и самого преобразователя. Преобразователь теперь, как и положено, питается от шины USB. Вот собственно и все по аппаратной части.

Программа

Программа переписана на 95%, остался нетронутым модуль связи. Изменен интерфейс и частично функционал.
Интерфейс программы состоит из двух вкладок – «Калибровка» и «Настройки».

Вкладка «Калибровка»


Основная вкладка, на которой я отображаю данные АЦП, принятые от обоих контроллеров нижнего уровня (лестниц и тамбуров) в табличном виде.
Из явных элементов управления всего две кнопки:
«Выгрузка XML» – тестовая кнопка для принудительной выгрузки файла с данными всех каналов, в процессе работы данные выгружаются только по изменению состояния канала.
«Калибровка» – кнопка для выполнения процедуры калибровки каналов, активна только, когда выбраны каналы для калибровки.

Теперь о неявных элементах управления. Чтобы не городить кучу кнопок или чекбоксов (окошечек с галочками), я использую сами ячейки. Для сброса аварийного канала нужно сделать двойной клик по соответствующей ячейке. Таким же образом выбираются каналы для калибровки. В ячейках выбранных каналов выводиться «Да», кнопка «Калибровка» становится активной, после нажатия кнопки будут калиброваны только выбранные каналы.

Вкладка «Настройки»

На вкладке есть группа настроек связи и группа «Program Crash Setting», которая как я надеюсь, в будущем будет ликвидирована. В группе присутствует всего один элемент – чекбокс. При установке опции «Close the program after losing connection» - программа закрывается. В общем, это одна часть костыля, есть одна проблемка, которую я пока не смог решить.

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

Ниже под вкладками расположено поле статуса, где я вывожу информацию об активности обмена и Crash Counter – количество аварийных (при потере связи) закрытий программы.
Как вы помните, в предыдущем Лампочкометре я собирался сделать логирование, которое на момент выхода статьи еще не было сделано, я его сделал, но немного позже. В текстовый файл я записывал следующие события:

«Программа запущена»
«Программа закрыта»
«Авария, лестница подьезд № n»
«Сброс аварии, лестница подъезд № n»

К каждому событию прибавлялось время и дата. Но и тут был косячок, дата и время периодически «слетали», видимо сказывалось не совсем нормальное состояние навигатора.
В этом Лампочкометре я так же сделал логирование, но не так как в предыдущем, а именно: я пишу сообщения в журнал операционной системы. Чтобы не путаться, я создал свой журнал.


Вот так красивенько это выглядит – совсем по-взрослому smile
Возможность управления насосом из программы убрана. Старый насос приказал долго жить. Купили новый насос, не шумный, с частотным регулированием, включили и забыли, но это уже совсем другая история.

Теперь о взаимодействии с Веб-интерфейсом. Сразу оговорюсь, в Веб-разработке я полный профан, а посему пришлось обращаться за помощью к другу. Для обмена данными с сайтом, в программе реализована выгрузка данных в XML формате, а также загрузка данных с сайта, когда производиться операция сброса аварии. На страничке Лампочкометра изображение жилого дома с подъездами.


Цвет окон и дверей отображает статус лестниц и тамбуров:
Голубой(темно-серый для тамбуров) – свет выключен,
Желтый – свет включен, нагрузка номинальная.
Красный – авария.

Для сброса аварийного канала нужно кликнуть по аварийной двери/группе окон – выводиться диалог для ввода пароля. При корректном пароле будет сформирован файл InXML с номером сбрасываемого канала. Программа считывает файл, обрабатывает и удаляет.

Видео

И напоследок кратенькое видео, как это все работает, для наглядности, вместо реального железа – эмулятор в Протеусе.

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 13 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Лампочкометр возвращается! (vol. 2)... Вдох глубокий. Руки шире. Не спешите, три-четыре! Бодрость духа, грация и пластика....
Схема на Датагоре. Новая статья Лампочкометр - контроллер освещения, прибор для отображения количества исправных ламп... ПрологС 2006 года я по совместительству работаю в своем доме электриком. Причины тому у меня были...
Схема на Датагоре. Новая статья Не стартует материнка от кнопки питания. Лечим очень нетривиальным методом... Приветствую читателей журнала Датагор! Есть у меня пожилой компьютер, которому уже исполнилось лет...
Схема на Датагоре. Новая статья Куда запихнуть свой УНЧ (фотоотчет)... Нет-нет, наши УНЧ не настолько плохи, чтобы сделать с ними то, что вы подумали! :bye: Давно...
Схема на Датагоре. Новая статья Управление шаговым двигателем с ПК... Драйвер для шагового двигателя, который управляется с персонального компьютера. Привет всем! Решил...
Схема на Датагоре. Новая статья Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 1. Блок питания для Raspberry Pi (5V, 2A)... Всем привет! Давным-давно в голову мне пришла идея сделать стационарный аудиоплеер, как в старые...
Схема на Датагоре. Новая статья Счётчик витков для намоточного станка на ATtiny13... Случилось так, что припекло мне трансформатор мотать, всё бы хорошо, да станка только не хватает -...
Схема на Датагоре. Новая статья 10 практических устройств на AVR-микроконтроллерах. Книга 1. А.В. Кравченко... 10 практических устройств на AVR-микроконтроллерах. Книга 1. А.В. Кравченко Издательство: Москва,...
Схема на Датагоре. Новая статья Миниатюрный полный USB-RS232 адаптер на CP-2102 для подключения микроконтроллера к компьютеру по USB... В продолжение к теме «Программатор AVR910», про маленькое устройство, хочу предоставить вашему...
Схема на Датагоре. Новая статья USB-программатор AVR на FT232RL с буффером... Иметь дело с микроконтроллерами (как и вообще с цифровой техникой) мне приходится довольно редко и...
Схема на Датагоре. Новая статья Балластный регулятор для ветрогенератора (ветряка)... После того, как ветряк построен и работает, рано или поздно встает вопрос об утилизации лишней...
Схема на Датагоре. Новая статья Несколько функций для програмной реализации протокола I2C на AVR... Добрый день, дорогие друзья! Решил поделиться с вами несколькими функция для работы по протоколу...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

Datagor

<
Читатель Датагора

Discover

<
Читатель Датагора

tarip

<
Читатель Датагора

swap

<
Читатель Датагора

Discover

<
Читатель Датагора

Datagor

<
Читатель Датагора

еще один max

<
Читатель Датагора

Discover

<
Читатель Датагора

semenchuk85

<
Читатель Датагора

Discover

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой