むきゅー系技術メモ

技術的な何かとか書きます。たぶん。

Twitterと連携するコーヒーメーカーを作った

オンラインコーヒーメーカー「萌香たん」とはじめるドキドキ☆コーヒーブレイク - mixi Engineers' Blog

ぶっちゃけこれのパクリ

結果

フランちゃんかわいい

使ったもの

仕組み

  1. コーヒーメーカーの表示ランプをフォトトランジスタで読み取る。
  2. Arduinoに入力して一定値を超えた時点でBLEND、下回った時点でDONEのシリアル信号を出力する。
  3. Raspberry Piがそれを受信してTwitterにポストする。

作り方

[5V] - [抵抗] - [フォトトランジスタ] - [GND]
            |_ [ANALOG 0]
  1. フォトトランジスタに適当に抵抗付けて分圧させとく (10kΩくらい?)
  2. Arduinoのアナログ0番ピンに分圧した線を刺す
  3. フォトトランジスタをコーヒーメーカーのランプに黒いビニールテープでくっつける
  4. Arduinoにスケッチを書き込む
  5. ArduinoとRaspberryPiをUSBでつなぐ
  6. RaspberryPiでrubyスクリプトを回す

使ったコード

coffee.rb

require "serialport"
require "twitter"

client = Twitter::REST::Client.new do |config|
  config.consumer_key        = ""
  config.consumer_secret     = ""
  config.access_token        = ""
  config.access_token_secret = ""
end

now = Time.now.strftime("(%H:%M:%S)")
client.update("起動しました " + now)
sp = SerialPort.new('/dev/ttyACM0', 9600, 8, 1, 0)
sleep 3
loop{
    line = sp.gets # read
    now = Time.now.strftime("(%H:%M:%S)")

    if line.index("BLEND")
        client.update("@palon_m コーヒー淹れるねお兄様! " + now)
    elsif line.index("DONE")
        client.update("@palon_m お兄様ー、コーヒーできたよ! " + now)
    end
}

coffee.ino

boolean blending = 0;
int thres = 5;
int count = 0;

void setup() {
  Serial.begin(9800);
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
}

void loop() {
  int cds = analogRead(0);
  if (cds > 50 && !blending){
    count++;
  } else if (cds <= 50 && blending){
    count++;
  } else if (count > 0) {
    count--; 
  }
  if (count > thres){
    blending = !blending;
    if (blending){
      Serial.println("BLEND");
      digitalWrite(13, HIGH);
    } else { 
      Serial.println("DONE");
      digitalWrite(13, LOW);
    }
    count = 0;
  }
  delay(50);
}

詳細

あとで書く。

【終了】1000MONAハッキングコンテストやります

正解者出ました!
秘密鍵からは出金されましたが、しばらくサーバは動かしておきます。


1000monaを賞金にしたハッキングコンテスト(のようなもの)やります。
最後まで解けば先着一名限りで1000 Monacoin(≒15000円相当 @ 9/11)が入った秘密鍵が手に入ります。

最初の問題はこちらです。

uggc://zbanfu.cj/vzt/d1.cat

秘密鍵を手に入れたら、https://www.dropbox.com/s/cdfyngfrnry0mx5/howtoimportprivkey.pdfなどを参考にインポートしてください。

挑戦お待ちしております。

yumが入ってない環境でyumをインストール

yumが入ってないCentOS環境でyumを導入する必要性に迫られたのでメモ。

環境

# uname -a
Linux *** 2.6.32-042stab092.3 #1 SMP Sun Jul 20 13:27:24 MSK 2014 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS release 6.5 (Final)

パッケージをwget

FC2VPSにyumをインストールしてみる(CentOS6.0) - あぷすたを参考に必要なパッケージをwgetしてくる

wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/rpm-4.8.0-12.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/rpm-python-4.8.0-12.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/libcurl-7.19.7-16.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/libcurl-devel-7.19.7-16.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/python-pycurl-7.19.0-5.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/python-urlgrabber-3.9.1-7.el6.noarch.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/gpgme-1.1.8-3.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/gpgme-devel-1.1.8-3.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/pygpgme-0.1-18.20090824bzr68.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.26-11.el6.noarch.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm
wget ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noarch.rpm

インストール

# rpm -ivh *
warning: gpgme-1.1.8-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
        libgpg-error-devel is needed by gpgme-devel-1.1.8-3.el6.x86_64
        automake is needed by libcurl-devel-7.19.7-16.el6.x86_64
        libidn-devel is needed by libcurl-devel-7.19.7-16.el6.x86_64

依存関係でエラーが出た。
調べてみるとlibcurl-develはいらないっぽい。
必要そうなlibgpg-error-develを入れる。

rm libcurl-devel-7.19.7-16.el6.x86_64.rpm
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/monkeyiq:/centos6updates/CentOS_CentOS-6/noarch/automake-1.13.4-3.2.noarch.rpm

もう一度やってみる。

# rpm -ivh *
warning: gpgme-1.1.8-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
        package rpm-4.8.0-12.el6.x86_64 is already installed
        package libcurl-7.19.7-16.el6.x86_64 is already installed
# rpm -ivh --force *
warning: gpgme-1.1.8-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:rpm                    ########################################### [  8%]
   2:gpgme                  ########################################### [ 15%]
   3:pygpgme                ########################################### [ 23%]
   4:rpm-python             ########################################### [ 31%]
   5:yum-metadata-parser    ########################################### [ 38%]
   6:libcurl                ########################################### [ 46%]
   7:python-pycurl          ########################################### [ 54%]
   8:python-urlgrabber      ########################################### [ 62%]
   9:python-iniparse        ########################################### [ 69%]
  10:yum-plugin-fastestmirro########################################### [ 77%]
  11:yum                    ########################################### [ 85%]
  12:libgpg-error-devel     ########################################### [ 92%]
  13:gpgme-devel            ########################################### [100%]

# yum --version
3.2.29
  Installed: rpm-4.8.0-37.el6.x86_64 at 2014-08-30 15:33
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2013-11-22 11:38
  Committed: Panu Matilainen <pmatilai@redhat.com> at 2013-09-12

  Installed: yum-3.2.29-43.el6.centos.noarch at 2014-08-30 15:33
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2013-12-17 12:27
  Committed: Johnny Hughes <johnny@centos.org> at 2013-12-17

  Installed: yum-plugin-fastestmirror-1.1.30-17.el6_5.noarch at 2014-08-30 15:33
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2014-02-05 09:35
  Committed: Valentina Mukhamedzhanova <vmukhame@redhat.com> at 2014-02-03

動いた!