
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

В программной инженерии непрерывная интеграция - это практика объединения всех рабочих копий разработчика в общую магистраль несколько раз в день. Вот некоторые из лучших практик для этого:
- все придерживаются базовой линии каждый день,
- автоматизировать сборку,
- все могут увидеть результаты последних сборок.
- …и многие другие.
Чтобы выполнить только эти 3 пункта выше, важно получать уведомления о статусе сборки как можно быстрее.
Этот проект помогает добиться этого за счет создания миниатюрных личных светофоров, которые показывают текущий статус сборки. Я построил 2 комплекта светофоров, которые интегрированы с сервером автоматизации Jenkins, который периодически запускается NodeMCU через Wi-Fi.
Шаг 1. Материалы и инструменты
Материалы, которые я использовал:
- NodeMCU (я использовал v3) (BangGood.com)
- Кабельные перемычки для макетных плат между мужчинами и женщинами (BangGood.com)
- 2 комплекта светодиодов: красный, желтый, зеленый (BangGood.com)
- 2 комплекта по 3 резистора (450 Ом, 500 Ом, 22 Ом)
- 2 тонких, но длинных прототипа печатных плат (BangGood.com)
- кабель microUSB в качестве источника питания
- Некоторая коробка (я использовал одну для электрических компонентов высокого напряжения. Я нашел много разных форм и дешевых в моем местном розничном магазине DIY)
- 2 ручки или 2 толстые трубки с внутренним диаметром 0,5-1 см; и / или 2 толстые соломинки для напитков
Необходимые инструменты:
- Острый нож (например, универсальный нож для резки ковров)
- Поворотный инструмент
- Пистолет для горячего клея
- Паяльная станция
- Плоскогубцы, диагональные плоскогубцы / бокорезы
- Отвертка
- Кусок плотной бумаги
- Двусторонний скотч
- Ты
Шаг 2: светофор



Для построения светофоров используем макетную плату 20х80мм. Припаяйте светодиоды так, чтобы они располагались в линию. Я использовал эти номиналы резисторов:
- красный: 510 Ом
- желтый: 470 Ом
- зеленый: 22 Ом
Значения намного выше рекомендованных (максимальный ток 20 мА на светодиод), но экспериментируя с разными значениями, свет не слишком яркий, а также все 3 имеют одинаковую интенсивность. Обратите внимание, что напряжение для NodeMCU составляет 3,3 В.
Подключение прямолинейное, просто подключите (припаяйте) катод каждого светодиода с резистором, а затем припаяйте его к штекерному концу соединительного кабеля. На одной стороне платы мне нужны были только светодиодные элементы, без каких-либо других "выскакивающих" частей, таких как ножки резистора, провода и так далее. Вот почему я использовал «технику», которая представляет собой разновидность SMD с использованием компонентов печатной платы.
Мы пока оставим это так; Покрытие фары будет сделано позже.
Шаг 3: Коробка - Главное



Нам нужно встроить наш NodeMCU в нижнюю часть коробки. В коробке нужно отверстие для порта microUSB, чтобы мы могли включить основной блок. Я тщательно измерил положение отверстия и просто просверлил его.
Затем я прикрепил пластиковые проставки винтами к nodemcu. Я нанесла клей в каждый угол коробки и положила на нее всю конструкцию. После того, как он остыл, я открутил NodeMCU и нанес немного горячего клея вокруг прокладок, которые, как я был уверен, идеально подходят для NodeMCU. Благодаря этому внутри коробки ничего не шатается, и мы можем легко подключить порт microUSB, не перемещая предметы внутри.
Шаг 4: Коробка - Крышка




Сначала я попытался использовать соломинку для напитков в качестве опоры для светофора, но после некоторых тестов я обнаружил, что пластик слишком тонкий, и когда я хотел использовать горячий клей, чтобы прикрепить его, он просто стал очень мягким и даже изменился его форма. Поэтому я решил использовать что-нибудь посложнее - ручки. Я выбрал несколько дешевых прозрачных ручек, отрезал их нужной длины и пропустил 4 кабеля (по одному) от светофора через трубу.
Я просверлил отверстия в средней линии крышки в соответствии с диаметром ручки. Затем я вставил ручки в отверстия и приклеил их горячим клеем к нижней стороне крышки, стараясь удерживать полюса прямо.
Я также нанесла немного горячего клея на столб, чтобы прикрепить доски светофора к столбам.
Шаг 5: Сборка


Подключил провода к NodeMCU (распиновка):
Левый светофор:
- красный к D2 (GPIO4)
- желтый к D3 (GPIO0)
- зеленый к D4 (GPIO2)
- земля на GND (я просто выбрал один из контактов GND NodeMCU)
Правый светофор:
- красный к D5 (GPIO14)
- желтый к D6 (GPIO12)
- зеленый к D7 (GPIO13)
- земля на GND (я просто выбрал один из контактов GND NodeMCU)
… И я закрыл крышку. Провода, которые я выбрал, были довольно длинными, поэтому у меня были небольшие проблемы с их размещением в маленькой коробке, но каким-то образом мне это удалось.
Шаг 6: крышка света




Каких-то готовых решений в виде чехлов для фонарей я не нашел - какие-то коробки от конфет или что-то в этом роде. Поэтому я решил собрать их вручную, просто вырезав коробку из бумаги.
Размер коробки, которую я выбрал, был: 20 мм x 15 мм x 85 мм.
Я вырезал отверстия так, чтобы вырезать что-то вроде «звездочек» в нужных местах, где располагались светодиоды. Я склеила их двусторонним скотчем.
Чтобы закрыть прозрачные столбы, можно использовать какой-нибудь перманентный маркер, непрозрачный скотч… Я использовал черные соломинки для напитков, которые я прорезал от края до края. Потом накрыл столбы.
Я был более чем доволен конечным результатом.
Шаг 7: Программное обеспечение
Есть много способов указать текущее состояние сборки. Я реализовал такое поведение:
Красный или зеленый свет загорается, когда сборка завершается ошибкой или успешно завершается. Желтый свет мигает каждый раз, когда выполняется HTTP-вызов, и постоянно горит, когда план в настоящее время строится.
Вы можете легко изменить реализацию в соответствии с вашими потребностями - попробуйте поэкспериментировать и проверьте, что подходит вам и / или вашей команде.
Вам необходимо настроить код, прежде чем загружать его в свой NodeMCU. Вам нужно установить максимум 2 WiFis.
Также вам необходимо установить свой токен пользователя. Чтобы получить токен API, нажмите «Ваше имя пользователя» в правом верхнем углу Jenkins, затем «Конфигурация». Вы можете найти кнопку «Показать токен API». Чтобы создать значение обычной проверки подлинности, создайте строку, используя шаблон:
USER_NAME: API_TOKEN
а затем закодируйте его с помощью Base64. Например. для указанной выше поддельной строки вы должны получить значение Base64:
VVNFUl9OQU1FOkFQSV9UT0tFTg ==
Вы также должны указать путь к хосту Jenkins, порту и 2 заданию.
После этой настройки и загрузки скетча - все готово к работе со светофором.
Код также доступен на GitHub.
Шаг 8: Последние слова
Чтобы включить устройство, просто подключите устройство к любому USB-разъему. Он использует соединение Wi-Fi для доступа в Интернет, поэтому подойдет любой рабочий USB-разъем - компьютерный порт или зарядное устройство. После загрузки и подключения к Wi-Fi ваши светофоры начнут показывать текущий статус сборки.
Я считаю этот светофор очень полезным. Они стоят рядом с моими мониторами в офисе, и когда загорается красный свет - я сразу это замечаю. Мне не нужно тратить время на проверку статусов сборки прямо на Jenkins.
Одно улучшение можно сделать, используя игрушку со светофором вместо того, чтобы строить ее самостоятельно с нуля (барахло?).
Я надеюсь, что Вы найдете вдохновение для создания собственных интегрированных светофоров Jenkins.
Рекомендуемые:
Умные светофоры: 6 шагов

Умные светофоры: зачем я сделал этот проект Я учусь в Howest Kortijk. Это школьный проект для моего MCT второго семестра. Когда я веду машину и на улице тихо, бесполезно стоять перед красным светом, когда на улице нет другого движения
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)

Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)

Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)

Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)

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