かべぎわブログ

ブログです

RaspberryPiとhubotとSlackで定点カメラをつくってみる

今回はRaspberryPiとhubotとSlackをつかって定点カメラを作ってみたいと思います。

動きとしては以下のような感じのものを想定しています。

Slackでコマンド実行

RaspberryPiのカメラのシャッターをきる

撮影した写真をSlack APIをつかってSlackに投稿

実際に作ってみる

カメラの準備

RaspberryPiのカメラ接続については以下の記事をごらんください。

www.kabegiwablog.com

Raspberry Pi 高精細カメラボード Camera Module V2

Raspberry Pi 高精細カメラボード Camera Module V2

Slackの準備

まずSlackAPIをつかうために必要なチャンネルIDを取得します。

以下で取得できます。
「Test Method」ボタンをおすことで取得できます。

channels.list method | Slack

nameの部分がチャンネルの名前になります。
idの部分がチャンネルIDになりますので覚えておきましょう。

"id": "C99999999",
"name": "aws_config",
"is_channel": true,
~~~省略~~~

Tokenがありませんので作ってくださいみたいなエラー出た場合は以下でTokenを作成したあとでもう一度実行することでできるようになると思います。

https://api.slack.com/custom-integrations/legacy-tokens

RaspberryPiの準備

まずRaspberryPiにhubotを導入してSlackと連携させます。
連携方法は以下記事をごらんください。

www.kabegiwablog.com

今回はraspberry_botという名前のBOTのを作成しました。
raspberry_bot配下のscriptsディレクトリに移動します。

pi@raspberrypi:~/raspberry_bot $ cd scripts/
pi@raspberrypi:~/raspberry_bot/scripts $ pwd
/home/pi/raspberry_bot/scripts

以下のスクリプトをそのディレクトリ配下に作成します。
channnelsの部分は先ほどslackの準備で取得したものと置き換えてください。
tokenはhubotのtokenを入力してください。

RaspberryPi

hubotを起動します。

pi@raspberrypi:~/raspberry_bot $ export HUBOT_SLACK_TOKEN=xoxb-248950932854-tiJxmBvFvki6PSAigTV2V4Ji
pi@raspberrypi:~/raspberry_bot $ ./bin/hubot --adapter slack

実際に動かしてみる

raspberry_botをチャンネルに招待して、Slackで以下コマンドを実行します。

@raspberry_bot 写真

動きました! f:id:kabegiwakun:20170928183324p:plain

まとめ

これを利用して会社にいてもペットの様子を見るなどいろいろ活用できそうですね!

Raspberry Pi 高精細カメラボード Camera Module V2

Raspberry Pi 高精細カメラボード Camera Module V2

AWS ホワイトペーパーを読んだので重要そうなことをまとめるぞ【AWSを用いた故障耐障害性の高いアプリケーションの構築】

AWSのホワイトペーパーの「AWSを用いた故障耐障害性の高いアプリケーションの構築】を読んだので興味深かったこと、重要そうなことをまとめてみます。

元ネタのホワイトペーパーはこちら
https://d36cz9buwru1tt.cloudfront.net/jp/wp/AWS_WP_Fault_Tolerant_JP_v20110517.pdf

故障は関心を集めるべきではない

いままでのオンプレ環境ではサーバの故障は一大事で、データセンターの担当者が迅速に故障したサーバの交換を既存のサービスに影響の出ないように実施する必要があった。
AWS環境で適切なプラットフォームでサービスを構築した場合には、故障は自動的に対処され、特に重要ではないイベントになる

AMI(Amazon Machine Images)

耐障害性の高いアプリケーションを構築する最初のステップは、自社のサービスに特化したAMIライブラリの構築。
AMIを構築すると、故障したインスタンスの交換はとてもかんたんで、そのAMIを使用して代わりのインスタンスを起動するだけで対応できる。

EBS(Elastic Block Store)

EBSは特にデータベース、ファイルシステム、ブロックレベルストレージへの直接アクセスが必要なアプリケーションに適している。
EBSはデータを冗長に保管し、通常のハードドライブよりさらに耐久性を高めている。EBSの年間平均故障率は0.1-0.5%(商用のハードディスクは4%ほど)

Elastic IP

一度取得するとそれを取得したAWSアカウントに関連することになり、特定のインスタンスやインスタンスの寿命には関連しない。
また、ElasticIPアドレスを新しいインスタンスに再度マッピングするだけで代替インスタンスまたはスペアのインスタンスに容易にフェイルオーバーが可能。

Auto Scalling

Auto Scallingを使用して、メモリリークや品質の劣化がアプリケーションに影響しないことを確認するため、定期的にインスタンスを入れ替えるべき。(インスタンスに失効日を設定し常にフレッシュに保つ)

Elastic Load Balancing

ELBは不具合のあるインスタンスを検出し、不具合が修復されるまでとトラフィックを健全なインスタンスへ自動的にルート変更する。
ELBとAutoScallingは理想的な組み合わせ。ELBとは単一のDNS名を提供し、AutoScallingはリクエストを受けるインスタンスが常に必要な数存在することを保証してくれる。

リージョンと利用可能なゾーン

耐障害性を高めるのに鍵となる要素はアプリケーションを地理的に分散すること。地理的に遠方のデータセンターで同時に実行して、アプリケーションを保護することが可能。

Amazon Sinple Queue Service

SQSは受信メッセージを最高4日間保管している。

Amazon Sinple Storage Service

S3はリージョンの複数の施設にある複数のデバイスに冗長にオブジェクトを保管するため、データセンターが故障した場合でもデータにアクセスできる。
S3はURLでアクセスするため、インターネット接続があるあらゆるコンピューティングリソースからS3を利用できる。

Amazon Reletional Database Service

RDSではデータベースとトランザクションログを自動的にバックアップするため、データベースインスタンスを任意の時点に復旧できる。

結論

従来のハードウェアと同様の方法でAWSを利用するのでは耐障害性、パフォーマンス、コストの大幅な改善は期待できない。
AWSの利点はAWS製品を統合するときに発揮される。
使用した分だけの支払いなのでAWSでは事前投資の必要がなく、実証事件が可能になる。
AWSはパワフルで洗練されたサービス、その経済的な透明性を提供する。耐障害性の高いソフトウェアを構築するという観点では最適なプラットフォームである。

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-

  • 作者: 荒木靖宏,大谷晋平,小林正人,酒徳知明,高田智己,瀧澤与一,山本教仁,吉羽龍太郎
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/06/10
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

過熱防止センサー対応補助五徳でガスコンロのセンサーを無効化してみた

うちのコンロにはSiセンサーというものがついていて、長時間の加熱やコンロに鍋が乗っていないと非が自動的に止まります。
これは火災防止のための安全な機能なのですが、直火でなにかを作りたい場合や、中華鍋の空焼きができない、魚の網焼きができないなどのデメリットがあります。

どうにかならないかなーといろいろ調べていたらこんなものを見つけました。

ガスコンロの五徳のうえにこれをのせて水を入れるだけでセンサーの加熱を防止して焼き網で魚やおもちが焼けますとのこと。

さっそく買ってみた

Amazonから届きました。 f:id:kabegiwakun:20170927212108j:plain

ダンボールを開けてみるとこんなかんじ。
プチプチにくるまれています。 f:id:kabegiwakun:20170927212201j:plain

プチプチを開けるとお目当てのものがでてきました。
f:id:kabegiwakun:20170927212308j:plain

全体像はこんなかんじ。 f:id:kabegiwakun:20170927212356j:plain

ここに水をいれます。
f:id:kabegiwakun:20170927212425j:plain

実際に使ってみる

コンロの上にこの加熱防止センサー対応補助五徳をのせます。 f:id:kabegiwakun:20170927212517j:plain

その上に鍋をのせて利用します。
f:id:kabegiwakun:20170927212610j:plain

まとめ

安全のためのセンサーですがそれに悩まされていた人は多いかと思います。
これをおいてしばらく火をつけていましたがぜんぜん火がちいさくなりませんでした。

おすすめです!

RaspberryPiにhubotをインストールする

RaspberryPiにSlackでBOTが使えるようになるhubotをインストールして、slackと連携させてみたいと思います。

hubotのインストール

hubotのインストールに必要なものをインストールしていきます。

npmのインストール

sudo apt-get install npm

Node.jsのインストール

curl -L https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

yoのインストール

sudo npm install -g yo 

generator-hubotのインストール

sudo npm install -g generator-hubot

Coffee Scriptのインストール

sudo npm install -g coffee-script

これでインストールするものは全てです。

BOTの設定

BOTを作成するディレクトリを作成し、yo hubotを実行します。

mkdir bot
cd bot
yo hubot

hubotのためにエラー報告してくれるかい?
みたいなことがきかれるので任意でynで答えます。

pi@raspberrypi:~/bot $ yo hubot
? ==========================================================================
We're constantly looking for ways to make yo better!
May we anonymously report usage statistics to improve the tool over time?
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== (Y/n)

すると以下のように聞かれますのでそれぞれ回答します。

? Owner kabegiwa <kabegiwa@example.com>
? Bot name bot
? Description test_bot
? Bot adapter campfire

Owner メールアドレス
Bot name BOTの名前
Description BOTの説明
Bot adapter そのままEnterでいいです。

BOTの動作確認

BOTの設定の最初で作成したディレクトリに移動して、hubotを実行します。
(./binなので注意!)

./bin/hubot

いろいろなエラーが出てきますが今回は関係ありませんので無視してEnterを押します。

pi@raspberrypi:~/bot $ ./bin/hubot
npm WARN hubot-help@0.2.2 requires a peer of coffee-script@^1.12.6 but none is installed. You must install peer dependencies yourself.

up to date in 4.578s

bot> [Fri Sep 22 2017 22:15:48 GMT+0900 (JST)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script.

Your hubot-scripts.json is empty, so you just need to remove it.

bot> [Fri Sep 22 2017 22:15:49 GMT+0900 (JST)] ERROR hubot-heroku-keepalive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web.url | cut -d= -f2)`
[Fri Sep 22 2017 22:15:49 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379

botのプロンプトが出てくるので動作確認用にBOT名 pingを実行してみましょう。PONGと帰ってきたら成功です!

bot>
bot> bot ping
bot> PONG

slackと連携する

slack側の設定

slackと連携させていきます。
自分のslackのチームを開き、設定から「Customoize Slack」を選択します。

左側のConfigure Appsを選択します。

上部にhubotといれて検索します。

Installをクリックします

BOTの名前を聞かれますので適当に名前をつけて「Add Hubot Integration」をクリックします。

APITokenが表示されますのでそれをコピーしてRaspberryPiの設定にもどります。

RaspberryPi側の設定

HUBOT_SLACK_TOKENに先ほどコピーしたAPITokenの値を設定します。

export HUBOT_SLACK_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

--adapter-slackオプションをつけてhubotを起動します。

./bin/hubot --adapter-slack

ERROR Cannot load adapter slack - Error: Cannot find module 'hubot-slack'のエラーがでたときはbot設定の最初で作成したディレクトリで以下コマンドを実行してからもう一度実行し直してみましょう

npm install hubot-slack -save

slackでの動作確認

以上の設定が完了すると、slackで以下のようにBOTがオンラインになっているはずです。

反応するかどうかためしにうごかしてみます

うごきました!

まとめ

RaspberryPiをslackのBOTとして動かすことに成功しました!
これではping PONGしかやりとりできませんがhubotではスクリプトを書くことで様々なものを作ることが可能ですのでまた別の機会に紹介できればと思います。

RaspberryPiに最新のnode.jsをインストールする

RaspberryPi標準のOSのRaspbianの初期状態ではnodeのバージョンが0.12と低いので最新版のnodejsをインストールしてみたいと思います。

pi@raspberrypi:~/bot $ node -v
v0.12.18

nodejs最新版(8.x)のインストール

nodejsをver8の最新版とcurlコマンドをつかって紐付けます。

curl -L https://deb.nodesource.com/setup_8.x | sudo -E bash -

apt-getでnodejsをインストールする

sudo apt-get install nodejs

これでnode.jsの最新版がインストールできます!

RaspberryPiにSambaをいれてNASとして利用する

RaspberryPiでファイルサーバを稼働させてLAN野中でファイル共有できる環境を構築したいと思います。(LANの中だけでの共有だけでインターネットからの閲覧は今回やりません)

Sambaの導入

RaspberryPiではCIFS五感のSambaが利用できます。Sambaをインストールすることでファイル共有を実現したいと思います。

Sambaのインストール

以下のコマンドを実行してRaspberryPiにSambaのパッケージをインストールします。

sudo apt-get install samba samba-common-bin

Sambaの設定

共有用ディレクトリの作成

適当な場所に共有用のディレクトリを作成します。

mkdir kyouyuu

共有したいファイルを作成したディレクトリの下に配置します。 (今回はてきとうにtouchで空ファイルを作成しています。)

touch kyouyuu/wawawa

RaspberryPiにアクセスする際に使用するユーザとパスワードを入力します。

sudo pdbedit -a pi

共有ディレクトリの公開設定を行います。/etc/samba/smb.confをviで開きます。

sudo vim /etc/samba/smb.conf

smb.confの末尾に以下を挿入します。

[Share]
        comment = Share Folder
        browseable = yes
        path = /home/pi/kyouyuu
        writable = yes
        valid users = pi
        force user = pi

Sambaを再起動して設定を適用させます。これでSambaの設定は完了です。

sudo /etc/init.d/samba restart

実際に共有フォルダにアクセスしてみる

Windowsのエクスプローラを起動して「ネットワーク」を選択します。
すると「RASPBERRYPI」があるはずなので開きます。 f:id:kabegiwakun:20170922195947p:plain

「Share」を開きます。 f:id:kabegiwakun:20170922200139p:plain

ユーザ名とパスワードを求められるのでpiとそのパスワードを入力します。(デフォルトはraspberry) f:id:kabegiwakun:20170922201135p:plain

共有ディレクトリの内容が表示されます。
f:id:kabegiwakun:20170922201236p:plain

まとめ

Sambaでのファイル共有方法でした。
これでRaspberryPiにファイルを送る際にSDカードを抜き差ししたりUSBメモリを使ったりする苦労から開放されそうです。

激安センサーDHT11で温度と湿度を取得する

さて、今回はHiLetGoの激安温度湿度センサとRaspberryPiをつかって部屋の温度と湿度を取得してみたいと思います。
使っているのはこちらです。

配線図

f:id:kabegiwakun:20170921212028p:plain

DHT11にはGND,DATA,VCCとそれぞれ3つのピンがありますので以下のように接続します。

RaspberryPi DHT11
GND GND
GPIO14 DATA
3.3V VCC

f:id:kabegiwakun:20170921212546j:plain

コード

公式のチュートリアルがありますのでそのコードを利用していきます。

http://osoyoo.com/ja/2017/07/06/dht11/

RaspberryPi

コードのかんたんな説明

DHT11は温度と湿度を40ビットで返します。
(湿度の8ビット整数部+湿度の8ビット小数部+温度の8ビット整数部+温度の小数部の8ビット+ 8ビットのチェックサム)
それぞれを読み取って温度と湿度を出力します。

実際に動かしてみたところ

pi@raspberrypi:~/script $ python dht11.py
Raspberry Pi wiringPi DHT11 Temperature test program

Data not good, skip
Data not good, skip
bits: [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0], length: 40
[1, 0, 1, 1, 1]
humidity: 80%, Temperture: 28C

まとめ

これで留守中の家の温度を監視して一定を超えたら通知するなどの仕組みがつくれそうです。

RaspberryPiで利用できるOSまとめ9選

RaspberryPi用に配布されているOSをまとめてみました。

Raspbian

f:id:kabegiwakun:20170918192249p:plain
DebianベースのRaspberryPi用のOSです。
正式にRaspberryPiに対応しているOSです。
特に特別な理由がない場合はこのOSで大丈夫かと思います。

Ubuntu MATE

f:id:kabegiwakun:20170918192521p:plain
LinuxOSとして有名なUbuntuの公式の派生OSです。
MATE(マテ)とよばれる軽量なデスクトップ環境を採用しているのが特徴です。

Snappy Ubuntu Core

f:id:kabegiwakun:20170918192837p:plain こちらもUbuntuの公式派生OSです。
もともとはUbuntuTouchというスマートフォン用に開発されたOSをベースにしています。
クラウド環境やコンテナ環境を前提にしていることが特徴です。

Windows 10 IoT Core

f:id:kabegiwakun:20170918193524p:plain
IoT向けに開発されたWindowsOSです。
Windows10という名前がついていますが、通常のWindows10とは使い方がかなり異なります。
GUIベースのアプリケーションで様々な操作を行うのが特徴です。

OSMC

f:id:kabegiwakun:20170918194033p:plain
動画や音楽などのメディア再生に特化したOSです。
リモコンアプリと連携させることも可能で、RaspberryPiをメディアプレイヤーとして利用できるようになります。

LibreELEC

f:id:kabegiwakun:20170918194422p:plain
OSMC同様にメディアプレイヤーとして利用可能なOSです。
OSMCにくらべて動作が軽いことが特徴です。

PiNet

f:id:kabegiwakun:20170918194636p:plain
RaspberryPiのファイルなどを保存しておけるストレージを構築できるOSです。
学校のクラス内でのファイル共有などに利用されています。

RISC OS

f:id:kabegiwakun:20170918194838p:plain
ARMアーキテクチャ向けに設計されたOSです。
非常に軽量で動作が早いことが特徴です。

RetroPie

f:id:kabegiwakun:20170918194950p:plain
ゲームエミュレーションに特化したOSです。
ファミコンやスーパーファミコン、ゲームボーイなどの様々なゲームをプレイすることができます。

RaspberryPiにいれるべきおすすめアプリまとめ25選

RaspberryPiを購入、セットアップしたらいれておくべきアプリを紹介します。

ブラウザ

Firefox ESR

f:id:kabegiwakun:20170916235311p:plain

ブラウザとしてはおなじみのFirefoxの延長サポート版です。
基本的に通常のFirefoxとおなじように利用できます。

sudo apt-get install iceweasel

Midori

f:id:kabegiwakun:20170916235950p:plain
とにかく動作が軽いブラウザです。
RaspberryPiなどの低スペック環境でも安定したブラウジングが実現できます。

sudo apt-get install midori

Epiphasy

f:id:kabegiwakun:20170917001107p:plain
GNOMEの標準ブラウザとして有名です。
トピックをつけて管理できる高機能なブックマークが利用できます。

sudo apt-get install epiphany-browser

メール

IceDove(Thunderbird)

f:id:kabegiwakun:20170917001414p:plain
WindowsのOutlookのような雰囲気のメーラーです。
RSSリーダとしても利用できます。

sudo apt-get install thunderbird

Sylpheed

f:id:kabegiwakun:20170917002015p:plain
日本人が開発したメールクライアントです。
動作が軽いのが特徴です。

sudo apt-get install sylpheed

PDFビューア

Adobe Reader

f:id:kabegiwakun:20170917002732p:plain
言わずと知れたAdobeのPDFビューアです。

sudo apt-get install adobereader-jpn

Evince

f:id:kabegiwakun:20170917002840p:plain
Adobe Readerにくらべて非常に軽量なPDFビューアです。

sudo apt-get install evince

ワープロソフト

LibreOffice Writer

f:id:kabegiwakun:20170917003139p:plain
特定のベンダに依存せず、誰でも自由に利用可能なオフィススイートを発展させることを目標に開発されたソフトです。
Microsoft Office Wordともある程度互換性をもち、操作法も似ています。

sudo apt-get install libreoffice-writer

Abiword

f:id:kabegiwakun:20170917003831p:plain
動作が軽量なワープロソフトです。
こちらもMicrosoft Office Wordとある程度の互換性をもっています。

sudo apt-get install abiword

表計算ソフト

LibreOffice Calc

f:id:kabegiwakun:20170917004351p:plain
LibreOfficeの表計算ソフトです。
Micro Soft Office Excelとの互換性をもっています。

sudo apt-get install libreoffice-calc

Gnumeric

f:id:kabegiwakun:20170917004659p:plain
GNOME搭載の表計算ソフトで動作が軽量なのが特徴です。 Micro Soft Office Excelとの互換性をもっています。

sudo apt-get install gnumeric

プレゼンテーションソフト

LibreOffice Impress

f:id:kabegiwakun:20170917100118p:plain
LibreOfficeの表計算ソフトです。
Micro Soft Office Powerpointとの互換性をもっています。

sudo apt-get install libreoffice-impress

テキストエディタ

gedit

f:id:kabegiwakun:20170917100327p:plain
GNOMEの標準テキストエディタとして知られています。
プログラミング言語に対応したハイライト表示なども可能です。
また、ショートカットキーがWindowsと似ているのも特徴です。

sudo apt-get install gedit

Emacs

f:id:kabegiwakun:20170917100934p:plain
CUI環境でvimとならんで使われているテキストエディタです。
vimは標準搭載されていますが、Emacs派のひとは是非。

sudo apt-get install emacs

画像ビューア

Shotwell

f:id:kabegiwakun:20170917101349p:plain
写真や動画などを直接デジタルカメラから取り込んで、自動でグルーピングまでしてくれます。
カラーバランス調整などの画像編集機能もあるのが特徴です。

sudo apt-get intall shotwell

Gwenview

f:id:kabegiwakun:20170917101802p:plain
KDE環境の画像ビューアとして知られています。
フルスクリーンで利用でき、画像をスライドショー形式で表示することができます。

sudo apt-get install gwenview

gThumb

f:id:kabegiwakun:20170917102310p:plain
軽量な画像ビューアです。
スライドショー表示や、画像のコントラスト変更などの編集機能も有しています。

sudo add-apt-repository ppa:webupd8team/gthumb
sudo apt-get install gthumb

ペイント/レタッチソフト

GIMP

f:id:kabegiwakun:20170917102631p:plain
非常に高機能なソフトです。
ほとんどの画像編集はこれひとつで可能です。

sudo apt-get install gimp

Pinta

f:id:kabegiwakun:20170917102849p:plain
軽量なソフトです。 機能としてはWindowsのペイントにレイヤー機能を追加したものといったかんじです。

sudo apt-get install pinta

メディアプレイヤー

MPlayer

f:id:kabegiwakun:20170917103139p:plain
CD/DVDの再生からmp3やAVI形式などの音楽/動画の再生を行うことができます。
また、MEncoderという機能を使うことで音声/動画を別のフォーマットに変換することができます。

sudo apt-get install mplayer

Xine

f:id:kabegiwakun:20170917103532p:plain
Linux環境でよくつかわれるメディアプレイヤーです。 CD、DVD、ビデオCD の再生が可能です。

sudo apt-get install xine-ui

Totem

f:id:kabegiwakun:20170917212703p:plain

GNOME環境の標準メディアプレイヤーです。
DVDの再生等の他に曲名検索のサポート、TV出力等が可能です。

sudo apt-get install totem

VLCメディアプレイヤー

f:id:kabegiwakun:20170917213216p:plain
多くのメディアファイルのコーデックが内蔵されているメディアプレイヤーです。
様々なプラグインに対応していることも特徴です。

sudo apt-get install vlc

ミュージックプレイヤー

Rhythmbox

f:id:kabegiwakun:20170917213619p:plain
音楽の再生はもちろん、CDのチッピングやCDの作成、歌詞の表示なども可能な非常に高機能なプレイヤーです。

sudo apt-get install rhythmbox

Audacious

f:id:kabegiwakun:20170917214035p:plain
非常に軽量なメディアプレイヤーです。 Winampに似ているUIをもっています。

sudo apt-get install audacious

AWS 認定デベロッパー アソシエイトの勉強法まとめ

AWS認定デベロッパーアソシエイトに合格したので実際に勉強して参考になったものをまとめます。

書籍

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

アカウントの作成から実際にWordpressなどをインストールしてWebサービスを構築するまでがのっています。
実際にこれを見ながら手を動かしてAWSでどんなことができるのかを理解していきました。

合格対策 AWS認定ソリューションアーキテクト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

これはソリューションアーキテクトの本ですが、試験範囲がかぶっている箇所がおおいのでデベロッパーの試験にも役に立ちます。

この本一冊でAWSの主要なサービスポイントを網羅的に知ることができます。
これをもとに興味を持ったものや疑問をもったものは実際に自分でAWSを触ってみてより理解を深めていきました。

AWS クラウドサービス活用資料集

AWSでは公式で様々な資料が展開されていますのでそれらを活用します。
デベロッパーの試験で特に役に立ったなと思ったのは以下のスライドです。

AWS Lambda

www.slideshare.net

Amazon S3

www.slideshare.net

Amazon Glacier

www.slideshare.net

Amazon RDS

www.slideshare.net

Amazon DynamoDB(特に重要!)

www.slideshare.net

AWS SDK

www.slideshare.net

AWS CLI

www.slideshare.net

まとめ

これさえやれば大丈夫!
というわけではありませんが参考になればさいわいです。

実際に動かして見る。
そして公式ドキュメントを読む。というのが合格への最短ルートだと思います。

東京電力の過去の電気料金(検針票)をネットで見る方法

電力自由化の値段比較をする際に決まって必要なのが以下の情報です。

  • 契約プランとアンペア数
  • いまの電気使用量(300kWhとか)

そんなもんおぼえてねーわ!!!!

となって毎回電力自由化を検討しても比較の段階で挫折することが多かったのですが、どうやらこれらの情報を過去分までまとめてみることができるWebサービスがあるようです。

それがこちら「でんき家計簿」というサービスです。

https://www.kakeibo.tepco.co.jp/

でんき家計簿でできること

電気使用量(kWh)と料金がわかる

こんなかんじで1年間をとおした電気代金や他の家庭の平均使用量をみることができます。
(前年の5月からしかデータがないのは去年の5月に今の家に引っ越してきたからです) f:id:kabegiwakun:20170914194058p:plain

f:id:kabegiwakun:20170914194302p:plain

f:id:kabegiwakun:20170914194326p:plain

プランごとの電気料金シミュレーションができる

今回の場合は今のプランが一番オトクという結果になったのでなにもしませんでしたが、Web上で別のプランへと変更することもできるようです。 f:id:kabegiwakun:20170914194559p:plain

各種手続きができる

引っ越しの際の面倒な手続きや支払い方法の手続きなどがここからできます。 f:id:kabegiwakun:20170914194824p:plain

まとめ

過去の電気代を見直すにあたってこのサービスは非常に便利だと思います。

ぼくはこの情報をもとに東京電力から別の電力会社へ変更したいと思います。
ごめんよ東電

シェルスクリプトがリモートで呼び出されたかどうかを判定する

シェルスクリプト内でリモートで呼び出されたか否かを判定してみたいと思います。
具体的にはremsh script.sh./script.shそれぞれで実行したときに違う結果を返すようなスクリプトをつくります。

コード

ShellScript

結果

・ローカルで実行

# ./remote_script.sh
local dayo

・リモートで実行

# remsh test001 ./remote_script.sh
remote dayo

かんたんな説明

UNIX/LinuxにはREMOTEHOSTという環境変数があり、telnetやrloginなどをつかって接続した際、接続元のホスト名がここにこの変数にはいるのでそれを利用しています。
REMOTEHOSTになにもはいっていないということはローカルでそのまま実行している。ということになります。

RaspberryPi3にRetroPieをインストールしてみる

RaspberryPi3にゲーム用OSのRetroPieをインストールしてみたいと思います。

必要なもの

Raspberry Pi 3 MODEL B 【RS正規流通品】

Raspberry Pi 3 MODEL B 【RS正規流通品】

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

Raspberry Pi用電源セット(5V 3.0A)?Pi3フル負荷検証済

Raspberry Pi用電源セット(5V 3.0A)?Pi3フル負荷検証済

OSのダウンロード

以下にアクセスして、RaspberryPi2/3のボタンをおしてRetroPieをダウンロードします。

retropie.org.uk

f:id:kabegiwakun:20170910123204p:plain

.gzという拡張子でimgファイルが圧縮されていますので解凍しておきます。
Windows10であれば右クリック→解凍で大丈夫なはずです。

SDカードのフォーマット

RetroPieをいれるSDカードをフォーマットします。
今回はSDカードフォーマッターを利用します。

以下のアドレスからダウンロード可能です。

SDメモリカードフォーマッター - SD Association

ダウンロードしたら単純にSDカードフォーマッターを起動してフォーマットを押すだけです。 f:id:kabegiwakun:20170910124436p:plain

SDカードにRetroPieのイメージを書き込む

Win32 Disk ImagerというソフトをつかってRetroPieのイメージをSDカードに書き込んでいきます。
Win32 Disk Imagerは以下URLからダウンロードできます。

https://sourceforge.net/projects/win32diskimager/sourceforge.net

Win32 Disk Imagerを起動して、最初にダウンロードして解凍したRetroPieのイメージファイルを選択、DeviceがSDカードのドライブになっているかどうか確認します。
確認できたら「Write」ボタンをおします。 f:id:kabegiwakun:20170910125605p:plain

確認画面がでてくるのでYesをおします。 f:id:kabegiwakun:20170910125732p:plain

するとイメージの書き込みがはじまります。
f:id:kabegiwakun:20170910125821p:plain

書き込みが終わりました。
f:id:kabegiwakun:20170910130157p:plain

RetroPieを起動してみる

USBキーボードとコントローラを接続してRaspberryPiを起動してみます。
f:id:kabegiwakun:20170910132330j:plain

起動しました! f:id:kabegiwakun:20170910132148j:plain

みなさんもRetroPieをインストールしてみてくださいね!

wavesのスタイリッシュなRaspberryPiケースを買ったので組み立て方を紹介するぞ

wavesというところから出ているスタイリッシュなRaspberryPiのケースを購入しました。
組み立て方を写真付きで紹介していきます。

Amazonから到着

超シンプルな白い箱がとどきました。 f:id:kabegiwakun:20170910120415j:plain

内容物はこんなかんじ。
アクリルの5枚の板と、ヒートシンク3つ、組み立てに利用するネジ等がはいっています。

f:id:kabegiwakun:20170910120000j:plain

アクリルには保護シートがはってありました。
ので、組み立てる前に剥がしておきましょう。 f:id:kabegiwakun:20170910115951j:plain

組み立ててみる

実際に組み立てていきます。
まず、以下の形のアクリル板にネジをとおします。
f:id:kabegiwakun:20170910115941j:plain

つづいて以下の黒い板をはめます。 f:id:kabegiwakun:20170910121021j:plain

その上にRaspberryPiを置くのですが、そのまえにヒートシンクをとりつけておきます。
RaspberryPi裏面に以下の銅のヒートシンクを貼り付けます。
シールになっているのでそのままはりつけるだけでOKです。 f:id:kabegiwakun:20170910121010j:plain
f:id:kabegiwakun:20170910120959j:plain

RaspberryPiをケースに装着します。
f:id:kabegiwakun:20170910120947j:plain

RaspberryPi表面にもヒートシンクをつけていきます。
これもシールになっているので貼り付けるだけです。 f:id:kabegiwakun:20170910121454j:plain f:id:kabegiwakun:20170910121444j:plain

つづいて以下の透明のアクリル板を装着します。f:id:kabegiwakun:20170910120937j:plain f:id:kabegiwakun:20170910121434j:plain

その上から黒のアクリル板を重ねます。
f:id:kabegiwakun:20170910121830j:plain f:id:kabegiwakun:20170910121818j:plain

最後に透明のアクリル板を重ねます。
f:id:kabegiwakun:20170910121802j:plain f:id:kabegiwakun:20170910121751j:plain

さて、アクリル板はすべてつかってケースとして形ができあがりましたのでネジ止めしていきます。
手ですこししめてあげれば完成です! f:id:kabegiwakun:20170910121738j:plain f:id:kabegiwakun:20170910122058j:plain

完成!

f:id:kabegiwakun:20170910122058j:plainf:id:kabegiwakun:20170910122048j:plainf:id:kabegiwakun:20170910122038j:plainf:id:kabegiwakun:20170910122025j:plain

まとめ

スタイリッシュでかっこいいです!!!

GPIOやカメラなどすべての端子も塞がらずすべて利用可能です。

おすすめです!!!!!

HHKBのカラーキートップのはめかた

HHKB(Happy Hacking KeyBoard)にカラーキートップをはめてみました。 f:id:kabegiwakun:20170907214508j:plain

カラーキートップセット到着

Amazonからカラーキートップセットがとどきました。
f:id:kabegiwakun:20170907213200p:plain

はこをあけてみるとこんなかんじ 内容物としては青のEscキー(刻印あり/なし)、赤のCtrlキー(刻印あり/なし)とキートップの引き抜き工具がはいっていました。 f:id:kabegiwakun:20170907213302j:plain

実際にはめてみる

まずEscキーからやってみます。

引き抜き工具をキーの下までしっかりと押し込みます。f:id:kabegiwakun:20170907213612p:plain

そのまま引き抜き工具でキーをつまんでまっすぐひきぬきます。 f:id:kabegiwakun:20170907213752j:plain ぬけました。

交換するキートップを抜いた場所に設置して押し込みます。 f:id:kabegiwakun:20170907214251j:plain

無事交換できました! f:id:kabegiwakun:20170907214004p:plain

つづいてCtrlキーを交換してみます。 引き抜き工具を画像の向きで下までしっかりと押し込みます。
f:id:kabegiwakun:20170907214232j:plain

そのまま真上に引き抜きます。 f:id:kabegiwakun:20170907214223j:plain

交換するキートップを抜いた場所に設置して押し込みます。 f:id:kabegiwakun:20170907214214j:plain

無事交換できました!! f:id:kabegiwakun:20170907214818j:plain

交換後はこんなかんじ

いやー
かっこいいっすねー f:id:kabegiwakun:20170907212839j:plain

無刻印のHHKBも持っているのでそっちも交換してみるとこんなかんじ。
うん、超かっこいい。 f:id:kabegiwakun:20170907214518j:plain

おわり

みなさんもHHKBをカスタマイズしてみてくださいね! f:id:kabegiwakun:20170907214508j:plain