Innehållsförteckning:

Jenkins jobbtrafikljus: 8 steg (med bilder)
Jenkins jobbtrafikljus: 8 steg (med bilder)

Video: Jenkins jobbtrafikljus: 8 steg (med bilder)

Video: Jenkins jobbtrafikljus: 8 steg (med bilder)
Video: Video in Recruitment | Derek Jenkins | Job Board Summit 2019 2024, November
Anonim
Jenkins jobbtrafikljus
Jenkins jobbtrafikljus

Inom mjukvaruteknik är kontinuerlig integration praxis att slå ihop alla utvecklarkopior till en delad huvudlinje flera gånger om dagen. Några av de bästa metoderna för att uppnå det är:

  • alla förbinder sig till baslinjen varje dag,
  • automatisera bygget,
  • alla kan se resultatet av de senaste byggnaderna.
  • …och många andra.

För att uppfylla bara dessa tre punkter ovan är det viktigt att meddelas om byggstatus så snabbt som möjligt.

Detta projekt hjälper till att uppnå det genom att skapa ett mini, personligt trafikljus som anger aktuell byggstatus. Jag har byggt två uppsättningar trafikljus som är integrerade i Jenkins automationsserver som dras av NodeMCU regelbundet via WiFi.

Steg 1: Material och verktyg

Material jag använde:

  • NodeMCU (jag använde v3) (BangGood.com)
  • Manliga till kvinnliga breadboard -bygelkablar, (BangGood.com)
  • 2 uppsättningar lysdioder: röd, gul, grön (BangGood.com)
  • 2 uppsättningar med 3 motstånd (450Ω, 500Ω, 22Ω)
  • 2 tunna men långa prototyp PCB -kort (BangGood.com)
  • microUSB -kabel som strömförsörjning
  • Någon låda (jag använde en för elektriska högspänningskomponenter. Jag hittade många olika former och billigt i min lokala byggvaruhus)
  • 2 pennor eller 2 tjocka rör 0,5-1 cm innerdiameter; och/eller 2 tjocka sugrör

Verktyg som behövs:

  • Vass kniv (t.ex. verktygskniv för skärning av mattor)
  • Roterande verktyg
  • Lim pistol
  • Lödstation
  • Tång, diagonal tång/sidoskär
  • Skruvmejsel
  • En bit tjockt papper
  • Dubbelsidig tejp
  • Du

Steg 2: Trafikljus

Trafikljus
Trafikljus
Trafikljus
Trafikljus
Trafikljus
Trafikljus

För att bygga trafikljus använder vi prototypplatta 20x80mm. Löd lysdioder så att de är placerade i en linje. Jag har använt dessa motståndsvärden:

  • röd: 510Ω
  • gul: 470Ω
  • grön: 22Ω

Värdena är mycket högre än rekommenderat (max 20mA ström per LED), men experimenterar med olika värden, ljuset är inte för starkt och alla tre har liknande intensitet. Observera att spänningen är 3,3V för NodeMCU.

Ledningarna är raka fram, anslut bara (löd) katod på varje lysdiod med motstånd och sedan lödning till hanänden av bygelkabel. På ena sidan av brädet ville jag bara ha LED -element utan att andra "poppar upp" delar som motståndsben, ledningar och så vidare. Det är därför jag har använt en "teknik" som är ett slags SMD med PCB -komponenter.

Vi lämnar det så här för nu; lampskyddet kommer att göras senare.

Steg 3: Box - Main

Box - Main
Box - Main
Box - Main
Box - Main
Box - Main
Box - Main

Vi måste bädda in vår NodeMCU i botten av lådan. Lådan behöver ett hål för microUSB -port så att vi kan slå på huvudenheten. Jag mätte skrämmande hålpositionen och jag borrade det bara.

Sedan fäst jag plastdistanserna med skruvar för att nodemcu. Jag lägger lite lim i varje hörn av lådan och jag lägger hela konstruktionen på den. Efter att det svalnat skruvade jag bort NodeMCU och lade ytterligare varmt lim runt distanserna som jag var säker på var perfekt placerade för NodeMCU. Tack för detta, ingenting vinglar inuti lådan och vi kan enkelt fästa microUSB -porten utan att flytta saker inuti.

Steg 4: Låda - lock

Låda - lock
Låda - lock
Låda - lock
Låda - lock
Låda - lock
Låda - lock
Låda - lock
Låda - lock

Först försökte jag använda en drink sugrör som en stolpe för mina trafikljus men efter några tester fick jag reda på att plasten är för tunn och när jag ville använda ett varmt lim för att fästa det, blev det bara väldigt mjukt och ändrades till och med dess form. Så jag bestämde mig för att använda något hårdare - pennor. Jag har valt några billiga transparenta pennor, som jag klippte av i önskad längd och lade 4 kablar (1 i taget) från trafikljusen genom röret.

Jag borrade hål i lockets mittlinje enligt pennans diameter. Sedan inbäddade jag pennor inuti hål och jag limde dem på lockets undersida och försökte hålla stavarna raka.

Jag lägger också lite varmt lim ovanpå stolpen för att fästa trafikljusskivorna på stolparna.

Steg 5: Montering

Montering
Montering
Montering
Montering

Jag kopplade ledningar till NodeMCU (pinout):

Vänster trafikljus:

  • röd till D2 (GPIO4)
  • gul till D3 (GPIO0)
  • grön till D4 (GPIO2)
  • mark till GND (jag valde just en av GND -stiftet på NodeMCU)

Rätt trafikljus:

  • röd till D5 (GPIO14)
  • gul till D6 (GPIO12)
  • grön till D7 (GPIO13)
  • mark till GND (jag valde bara en av GND -stiftet på NodeMCU)

… och jag stängde locket. Ledningarna jag valde var ganska långa så jag hade lite problem med att lägga dem alla inuti den lilla lådan, men på något sätt lyckades jag göra det.

Steg 6: Ljusskydd

Ljusskydd
Ljusskydd
Ljusskydd
Ljusskydd
Ljusskydd
Ljusskydd
Ljusskydd
Ljusskydd

Jag kunde inte hitta några färdiga lösningar som ljuskåpor - någon form av lådor från godis eller så. Så jag bestämde mig för att bygga dem för hand bara genom att klippa en låda från ett papper.

Storleken på lådan jag valde var: 20mm x 15mm x 85mm.

Jag skar hålen så att jag skar ett slags "stjärnor" på rätt ställen där lysdioderna var placerade. Jag limmade dem med dubbelhäftande tejp.

För att täcka de genomskinliga stolparna, kan du använda någon permanent markör, otransparent skottejp, … Jag använde svarta sugrör som jag skar igenom från ände till ände. Sedan täckte jag stolparna.

Jag var mer än glad över slutresultatet.

Steg 7: Programvara

Det finns många tillvägagångssätt för att indikera det nuvarande byggtillståndet. Jag implementerade ett sådant beteende:

Rött eller grönt ljus tänds när byggnaden misslyckas eller går därefter. Gult ljus blinkar varje gång det görs ett HTTP -samtal och tänds kontinuerligt när en plan för närvarande byggs.

Du kan enkelt ändra implementeringen efter dina behov - försök experimentera och kontrollera vad som passar dig och/eller ditt team.

Du måste konfigurera koden innan du laddar upp den till din NodeMCU. Du måste ställa in max 2 WiFis.

Du måste också ställa in din användartoken. För att få API-token klickar du på Ditt användarnamn högst upp till höger i Jenkins och sedan på Konfiguration. Du hittar knappen "Visa API -token". Om du vill bygga grundläggande autentiseringsvärde skapar du en sträng med mönstret:

USER_NAME: API_TOKEN

och sedan koda den med Base64. T.ex. för ovan falsk sträng, bör du få Base64 -värde:

VVNFUl9OQU1FOkFQSV9UT0tFTg ==

Du måste också ställa in din Jenkins -värd, port och 2 jobbvägar.

Efter denna installation och överföring av skissen - Du är redo att använda dina trafikljus.

Koden är också tillgänglig på GitHub.

Steg 8: Sista ord

För att starta enheten, anslut bara enheten till valfritt USB -uttag. Den använder WiFi -anslutning för att få åtkomst till Internet så att alla fungerande USB -uttag är OK - antingen datorport eller laddare. Efter en start och anslutning till WiFi börjar dina trafikljus visa den aktuella byggstatusen.

Jag tycker att dessa trafikljus är mycket användbara. De står bredvid mina bildskärmar på kontoret och när rött ljus tänds - märker jag det direkt. Jag behöver inte slösa tid på att kontrollera byggstatus direkt på Jenkins.

En förbättring kan göras genom att använda lite trafikljusleksak istället för att bygga en själv från grunden (skräp?).

Jag hoppas att du hittar lite inspiration för att bygga dina egna Jenkins integrerade trafikljus.

Rekommenderad: