Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V softwarovém inženýrství je kontinuální integrace spojením všech pracovních kopií vývojářů do sdílené hlavní řady několikrát denně. Mezi osvědčené postupy, kterých lze dosáhnout, patří:
- každý se zavazuje k základní linii každý den,
- automatizovat stavbu,
- každý může vidět výsledky nejnovějších sestavení.
- …a mnoho dalších.
Aby byly splněny pouze tyto 3 body výše, je důležité být informován o stavu sestavení co nejrychleji.
Tento projekt tomu pomáhá dosáhnout vytvořením mini osobních semaforů, které indikují aktuální stav sestavení. Postavil jsem 2 sady semaforů, které jsou integrovány do automatizačního serveru Jenkins, který je pravidelně tažen NodeMCU přes WiFi.
Krok 1: Materiály a nástroje
Materiály, které jsem použil:
- NodeMCU (použil jsem v3) (BangGood.com)
- Propojovací kabely pro propojovací kabely mezi muži a ženami, (BangGood.com)
- 2 sady LED: červená, žlutá, zelená (BangGood.com)
- 2 sady 3 rezistorů (450Ω, 500Ω, 22Ω)
- 2 tenké, ale dlouhé prototypy desek plošných spojů (BangGood.com)
- microUSB kabel jako napájecí zdroj
- Nějaký box (jeden jsem použil na elektrické vysokonapěťové součástky. Našel jsem mnoho různých tvarů a levné v mém místním maloobchodním obchodě pro kutily)
- 2 pera nebo 2 tlusté trubky o vnitřním průměru 0,5-1 cm; a/nebo 2 hustá brčka na nápoje
Potřebné nástroje:
- Ostrý nůž (např. Nůž na řezání koberců)
- Rotační nástroj
- Horká lepicí pistole
- Pájecí stanice
- Kleště, diagonální kleště/boční řezačky
- Šroubovák
- Kus silného papíru
- Oboustranná lepicí páska
- Vy
Krok 2: Semafory
K výrobě semaforů používáme prototypovací desku 20x80 mm. Pájejte LED diody tak, aby byly umístěny v řadě. Použil jsem tyto hodnoty odporu:
- červená: 510Ω
- žlutá: 470Ω
- zelená: 22Ω
Hodnoty jsou mnohem vyšší, než je doporučeno (maximální proud 20 mA na LED), ale při experimentování s různými hodnotami není světlo příliš jasné a všechny 3 mají podobnou intenzitu. U NodeMCU je napětí 3,3 V.
Zapojení je přímočaré, stačí připojit (pájet) katodu každé LED s odporem a poté pájet na vnější konec propojovacího kabelu. Na jedné straně desky jsem chtěl pouze LED prvky bez jakýchkoli dalších „vyskakujících“částí, jako jsou odporové nohy, vodiče a tak dále. Proto jsem použil „techniku“, což je jakýsi druh SMD využívající komponenty DPS.
Necháme to prozatím takto; kryt světel bude proveden později.
Krok 3: Box - hlavní
Potřebujeme vložit náš NodeMCU do spodní části krabice. Krabice potřebuje otvor pro port microUSB, abychom mohli napájet hlavní jednotku. Rychle jsem změřil polohu díry a právě jsem ji vyvrtal.
Poté jsem pomocí šroubů připevnil plastové rozpěrky k uzlu. Do každého rohu krabice jsem dal trochu lepidla a na něj jsem dal celou konstrukci. Poté, co vychladl, odšrouboval jsem NodeMCU a dal další horké lepidlo kolem distančních podložek, o kterých jsem si byl jistý, že jsou pro NodeMCU umístěny perfektně. Díky tomu se uvnitř krabice nic neviklá a můžeme snadno připojit port microUSB, aniž bychom uvnitř museli přesouvat věci.
Krok 4: Krabice - víko
Nejprve jsem se pokusil použít slámku na pití jako tyč pro své semafory, ale po několika testech jsem zjistil, že plast je příliš tenký, a když jsem ho chtěl použít horké lepidlo, byl velmi měkký a dokonce se změnil jeho tvar. Rozhodl jsem se tedy použít něco tvrdšího - pera. Vybral jsem nějaká levná průhledná pera, která jsem odřízl v požadované délce a dal sem 4 kabely (po 1) od semaforů potrubím.
Vyvrtal jsem otvory ve střední linii víka podle průměru pera. Potom jsem vložil pera do otvorů a nalepil jsem je na spodní stranu víka a snažil se udržet tyče rovné.
Na horní část stožáru jsem dal také horké lepidlo, abych připevnil desky semaforů na sloupy.
Krok 5: Sestavení
Připojil jsem vodiče k NodeMCU (pinout):
Levý semafor:
- červená na D2 (GPIO4)
- žlutá až D3 (GPIO0)
- zelená na D4 (GPIO2)
- uzemnění na GND (právě jsem vybral jeden z pinů GND NodeMCU)
Světelný semafor:
- červená na D5 (GPIO14)
- žlutá až D6 (GPIO12)
- zelená do D7 (GPIO13)
- uzemnění na GND (právě jsem vybral jeden z pinů GND NodeMCU)
… A zavřel jsem víko. Dráty, které jsem vybral, byly docela dlouhé, takže jsem měl trochu problémy s jejich vložením do malé krabičky, ale nějak jsem to zvládl.
Krok 6: Kryt světel
Nemohl jsem najít žádná hotová řešení jako kryty světel - nějaké krabice od bonbónů nebo tak. Rozhodl jsem se je tedy postavit ručně pouhým vystřihnutím krabice z papíru.
Velikost krabice, kterou jsem vybral, byla: 20 mm x 15 mm x 85 mm.
Vyřízl jsem otvory tak, že jsem vyřízl jakési „hvězdy“na správných místech, kde byly umístěny LED diody. Přilepil jsem je pomocí oboustranné lepicí pásky.
K zakrytí průhledných pólů můžete použít nějaký permanentní fix, netransparentní skotskou pásku, … Použil jsem černé brčko na pití, které jsem prořezával od konce k konci. Pak jsem zakryl tyče.
Z konečného výsledku jsem měl více než radost.
Krok 7: Software
Existuje mnoho přístupů k označení aktuálního stavu sestavení. Implementoval jsem takové chování:
Červené nebo zelené světlo se rozsvítí, když stavba selhává nebo podle toho prochází. Žluté světlo bliká při každém volání HTTP a je trvale zapnuto, když se aktuálně vytváří plán.
Implementaci můžete snadno změnit podle svých potřeb - zkuste experimentovat a zkontrolovat, co vyhovuje vám a/nebo vašemu týmu.
Před nahráním kódu na svůj NodeMCU musíte nastavit kód. Musíte nastavit max. 2 WiFis.
Také musíte nastavit svůj uživatelský token. Chcete-li získat token API, klikněte v Jenkinse vpravo nahoře na své uživatelské jméno a poté na Konfigurace. Můžete najít tlačítko „Zobrazit API token“. Chcete -li vytvořit základní ověřovací hodnotu, vytvořte řetězec podle vzoru:
USER_NAME: API_TOKEN
a poté je zakódujte pomocí Base64. Např. pro výše falešný řetězec byste měli získat hodnotu Base64:
VVNFUl9OQU1FOkFQSV9UT0tFTg ==
Musíte také nastavit cesty svého hostitele Jenkins, port a 2 úlohy.
Po tomto nastavení a nahrání náčrtu - jste připraveni používat své semafory.
Kód je také k dispozici na GitHub.
Krok 8: Poslední slova
Chcete -li zařízení zapnout, stačí jej připojit k jakékoli zásuvce USB. Pro připojení k internetu využívá WiFi připojení, takže jakákoli fungující USB zásuvka je v pořádku - port počítače nebo nabíječka. Po spuštění a připojení k WiFi začnou vaše semafory ukazovat aktuální stav sestavení.
Považuji tyto semafory za velmi užitečné. Stojí vedle mých monitorů v kanceláři a kdykoli se rozsvítí červené světlo - okamžitě si toho všimnu. Nepotřebuji ztrácet čas kontrolou stavů stavů přímo na Jenkins.
Jednoho vylepšení by se dalo dosáhnout použitím nějaké hračky na semaforech, místo abych ji sám postavil od nuly (haraburdí?).
Doufám, že najdete inspiraci pro stavbu vlastních integrovaných semaforů Jenkins.