Самодельный билд-светофор в офис

от автора

Предыстория

В связи в планируемым переходом на continious integration и прочтением пары статей о светофорах в офисе захотелось и себе заиметь такой теплый ламповый прибор. В результате он получился совсем не теплым и не ламповым, но об этом потом.

Кто интересовался этой темой, уже знает что цена нового светофора колеблется в районе $500. Попытки найти бывший в употреблении списанный прибор так и не увенчались успехом. Оба варианта никак не могли радовать бюджет и душу двух энтузиастов из офиса, поэтому было принято решение сделать светофор самому.

Идея

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

image

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

Главным “мозгом” был назначен raspberry pi по нескольким причинам. Первая єто его наличие после предыдущих экспериментов с “малинкой”, вторая это простота реализации управления светофором извне, установка разного рода софта, wifi и т. д.

Корпус

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

image

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

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

image

После покраски в чёрный “светофорный” цвет все стало выглядеть еще более замечательно. Также были наклеены маскировочные шнуры для прикрытия крепежа стекол и придания конструкции более завершенного вида.

image

Электроника

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

image

Для удобства ремонта и установки светодиодов они были размещены на пластиковых матрицах с размещением совпадающим с отверстиями в корпусе.

image

Они с легкостью устанавливаются и снимаются на случай если сгорит один из светодиодов. Для управления логикой используются выводы GPIO на raspberry pi, соответственно в качестве управляющей логики была изготовлена плата с тремя реле управляемыми напряжением 3В и коммутирующими 12В, которые подаются на светодиодные матрицы.

image

На этапе тестирования перед окончательной сборкой сборкой все выглядело примерно вот так.

image

Все “заброшено” в корпус и приделан временный шнур питания на 220В так как под рукой в момент сборки не было шнура достаточной длинны. Внутри также размещено два блока питания. Один 12В для питания светодиодов, второй блок с портом USB для raspberry pi.

image

Программное обеспечение

Для простоты управления извне был установлен lighttpd сервер с mod_fcgi для python. Таким образом управлять режимом можно просто из браузера. Так было удобно побаловаться самому. Позже для Jenkins был написан код который опрашивает его и соответственно меняет статус светофора. Python же был выбран не случайно, с его помощью довольно легко справиться с управлением выводами GPIO на raspberry при помощи набора библиотек wiringpi.com.

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

#!/usr/bin/pythonRoot # Bring in the libraries import RPi.GPIO as G from flup.server.fcgi import WSGIServer import sys, urlparse, time  # GPIO lights map light_r = 4 light_y = 17 light_g = 22  # Set up our GPIO pins G.setmode(G.BCM) G.setup(light_r, G.OUT) G.setup(light_y, G.OUT) G.setup(light_g, G.OUT)  # Offs all lights def offLights():     G.output(light_r, False)     G.output(light_y, False)     G.output(light_g, False)      # Function which is called for each http request we receive def app(environ, start_response):     # start our http response     start_response("200 OK", [("Content-Type", "text/html")])     # look for inputs on the URL     i = urlparse.parse_qs(environ["QUERY_STRING"])     yield (' ') # flup expects a string to be returned from this function     # if there's a url variable named 'q'     if "mode" in i:         if i["mode"][0] == "red":             offLights()             G.output(light_r, True)         elif i["mode"][0] == "yellow":             offLights()             G.output(light_y, True)         elif i["mode"][0] == "green":             offLights()             G.output(light_g, True)         elif i["mode"][0] == "off":             offLights()          #Run app WSGIServer(app).run() 

Затраты

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

Raspberry Pi model B $50
Пластик ПВХ для корпуса с порезкой $15
Краска чёрная матовая $10
Блоки питания $10
Реле, светодиоды и прочая мелочь $10
Wifi свисток для raspberry $10
Стекла $7
Шпатлевка $5
  Итого: $117

Заключение

Начнем с видео работы в демонстрационном режиме.

Как видно из видео, холодное свечение светодиодов в комбинации з нашим стеклом дало синеватый оттенок. Сейчас обдумываем варианты исправления, благо ремонтопригодность была заложена в нашу конструкцию.
Согласитесь разница в бюджете колоссальная, энтузиазм удовлетворен и результат более чем удовлетворительный. В результате получился хоть и не теплый ламповый а холодный светодиодный, но все же светофор, который в скором будущем надеюсь станет выполнять свое предназначение. Процесс перехода на continious integration еще пока не завершен.

Всем удачи, и поменьше красных на билд-светофорах!

ссылка на оригинал статьи http://habrahabr.ru/post/206486/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *