18+
  Войти, или Зарегистрироваться (Что мне это даст?)

Совершенствование службы радиационного мониторинга

14 Января 2012, 23:58.
Опубликовал admin

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

Осуществить идею помог один из клонов Arduino и Ethetnet модуль к нему. Arduino представляет собой аппаратную платформу (микрокомпьютер), на основе которой можно собирать разные уникальные гаджеты. Вот так она выглядит:

ArduinoМодуль Ethernet Shield

Так что оставалось только соединить все и написать прошивку. Алгоритм работы такой: прямоугольные импульсы от счетчика поступают на один из цифровых входов Arduino. Каждый импульс фиксируется с помощью прерываний. В остальном алгоритм расчета и трансляции данных на сервер аналогичен описанному здесь — раз в полчаса происходит расчет уровня радиации и трансляция на сайт.

Температурный датчик Осознав всю красоту данного решения, мы подумали вот о чем — почему бы на основе этой платформы не сделать еще и он-лайн термометр? Тем более, что необходимые температурные датчики есть в продаже. Актуальность он-лайн термометра обусловлена тем, что частота обновления прогноза погоды на сайте — 1 раз в 4 часа, чего не всегда достаточно, так как текущая температура на улице может меняться быстрее. Поэтому система была дополнена температурным датчиком. Измерение температуры производится 1 раз в минуту. Показания видно в блоке Погода. Большая цифра — и есть текущая температура на улице.

Получилось вот так:



Вся система схематически:

СГ (Счетчик Гейгера) и t — это датчики, радиации и температуры соответственно. Обвязка СГ содержит схемы, необходимые для работы Счетчика Гейгера. Обвязка Arduino — схему автоматической перезагрузки при включении для стабильного старта модуля Ethernet Shield, фильтры помех и некоторые другие элементы.

Вся система, включая модем, запитана от источника бесперебойного питания.



Для повышения надежности так же было сделано следующее: в случае зависания Arduino введена система автоматической перезагрузки. Сделано это с помощью встроенного «сторожевого таймера». Это такая штуковина, которая автоматически делает рестарт микрокомпьютера в случае зависания. Однако, со стандартным бутлоадером сторожевой таймер не работал. Пришлось заливать новый бутлоадер.

Было так же обнаружено, что периодически Arduino зависает напрочь. Не помогает даже сторожевой таймер. Проведя несколько экспериментов источник зависаний удалось найти — это помехи, проникающие по цепи питания. Создавать их может любой электроприбор, включаемый в сеть неподалеку. Подключив параллельно контактам +5V и GND конденсатор 100n, проблема разрешилась (подробнее об этом здесь). Тэги: