15
Making a XFD with Arduino for Jenkins 第2回 大阪Jenkins勉強会 @haradakiro / 原田騎郎 株式会社 情報システム総研

Arduino jenkins

Embed Size (px)

DESCRIPTION

Making an XFD for Jenkins with Arudino and Ethernet Shield.

Citation preview

Page 1: Arduino jenkins

Making  a  XFD  with  Arduino  for  Jenkins  

第2回 大阪Jenkins勉強会  

@haradakiro /  原田騎郎  株式会社 情報システム総研

Page 2: Arduino jenkins

自己紹介

•  原田騎郎  /  @haradakiro  

•  アジャイルコーチ  – 認定スクラムプロフェショナル  – スクラム道  

•  ドメインモデラー  –  DDD  実践編。まもなく勉強会を開始予定@東京  

•  SCM  コンサルタント  – サプライチェーンマネジメントのほう  

•  Maker  (←今日はここで)  

Page 3: Arduino jenkins
Page 4: Arduino jenkins

XFD  Extreme  Feedback  Device  とは

•  Jenkins  動かしても、ビルドはこけたかどうか見に行かないといけない。  – ステータスページ見るなり  – メールみるなり  

•  見に行かなくても、見えるようにするデバイス  – 「あんどん」といえば、わかるおじさんもいる  

Page 5: Arduino jenkins

材料

•  Arduino  Uno  •  Arduino  Ethernetshield  

•  リレーコントロールキット(KIT-­‐10733)  •  キセノンフラッシュランプ  •  ACアダプタ  •  配線、コネクタ類

Page 6: Arduino jenkins

Arduino  とは オープンハードウェア    Arduino  言語でプログラミング   -­‐  アセンブラ書かなくてよい    いろいろな入出力    シールドと呼ばれる拡張カードで  拡張可能     今回は、Ethernet  Shield  と一緒に      

Page 7: Arduino jenkins

リレーキット

•  Arduino  の5V出力で、大電流のオンオフができます。  

•  今回は  12V  のスイッチングに使用

Page 8: Arduino jenkins

パトランプ(他) •  パトランプが高価+モーターがうるさかったので、キセノンフラッシュを利用  

•  スイッチで動かせれば何ででも  

•  100V  を使うときは絶縁に注意。ヒューズも忘れずに。  

Page 9: Arduino jenkins

Jenkins  Remote  API •  扱いたい情報のある  URL  に  “/api/”,  “/api/xml”,  “/api/json”  を足してみる。  

•  最新のビルド状態を取得  

–  hYp://example.com/job/projectA/lastCompletedBuild/api/json?tree=result  

–  {“result”:”SUCCESS”}  –  {“result”:”UNSTABLE”}  –  {“result”:”FAILED”}

Page 10: Arduino jenkins

Arduino  Code例 void  setup()  {                                      //  デジタル13ピンを出力用として初期化      //  13ピンには、LED  が接続されている      pinMode(13,  OUTPUT);          13ピンを出力用にする  }    void  loop()  {      digitalWrite(13,  HIGH);      //  LED  点灯      delay(1000);                               //  1秒ウェイト      digitalWrite(13,  LOW);        //  LED  消灯      delay(1000);                                //    1秒ウェイト  }

Page 11: Arduino jenkins

Arduino  Code  例 Ethernet.begin(mac,  ip);  Client  client(server,80);  Serial.begin(9600);    Serial.println("conneclng...");    if  (client.connect())  {      Serial.println("connected");      client.println("GET  /search?q=arduino  HTTP/1.0");      client.println();  }  else  {      Serial.println("conneclon  failed");  }

Page 12: Arduino jenkins

組み立て、コーディング

Page 13: Arduino jenkins

デモ

Page 14: Arduino jenkins

XFD  のメリット

•  Jenkins  の赤をほっとけなくなる。

Page 15: Arduino jenkins

ありがとうございました

•  質問、コメントなどはこちらにお願いします。  TwiYer:  @haradakiro  Facebook:  www.facebook.com/haradakiro