ガジェット好きブログ

スマホとかraspberry piとか3Dプリンターとかetc

【xiaomi】スマートウォッチと3Dプリンター買いました【3Dプリンター】

艦これイベント中で何もできていないです。

とりあえず下記の2点を購入しました。

  1. スマートウォッチ(Amazfit Verge)と関連アクセサリ

    f:id:Di_no:20190616112944p:plain

    Verge

    まだ発送されていないようですが届いてからレビューしてみます。

    ちなみに現在はmi Band3を使用しています。これなかなかいいですが、ちょっと時計系?を試してみたくAmazfitVergeを購入してみました。

  2. 3Dプリンター(Ender-3x)

    これです。初めての3Dプリンターです。いろいろ触ってみたいです。

ということでイベント終了後いろいろ本気を出します。

【Raspberry pi】自宅スマートホーム化その2【EchoDot】

2019年5月5日の記事の続きです。

記事は↓ 

di-no.hatenablog.com

SLackとの連携

hubotというbotを使います。

hubotとは、raspberryに常駐してSlackに対してメッセージの受信や送信といった動きをしてくれます(たぶん)。

厳密にはもっとすごい子らしいけどまぁよくわからなくてもどうにかなるのがいいところです。

hubotの導入

下記ページを参考にさせていただきました。

qiita.com

hubotのスクリプト

hubotをインストールした下記スクリプトディレクトリにcoffeeスクリプトをつくりました。

/home/pi/hubot/pibot/scripts

とりあえずテスト用ということでtest.coffeeです。

中身はこんな感じにしました。

# Description
# A Hubot test script
#
# Configuration:
# None
#
# Commands:
# test
#
# Author:
# Di-no

module.exports = (robot) ->
 robot.respond /test/i, (msg) ->
  msg.send 'test-OK'
 robot.respond /mylighton/i, (msg) ->
  @exec = require('child_process').exec
  command = "python /var/www/html/irm.py -p -f /var/www/html/MyLight-ON.json"
  msg.send "MyLight-sta.json"
  @exec command, (error, stdout, stderr) ->
  msg.send error if error?
  msg.send stdout if stdout?
  msg.send stderr if stderr?
 robot.respond /mylightoff/i, (msg) ->
  @exec = require('child_process').exec
  command = "python /var/www/html/irm.py -p -f /var/www/html/MyLight-OFF.json"
  msg.send "MyLight-end.json"
  @exec command, (error, stdout, stderr) ->
  msg.send error if error?
  msg.send stdout if stdout?
  msg.send stderr if stderr?

 どうもよくわかってはいませんがとりあえず解説です。

最初にコメントで題名や作者等々書いています。これがないとhubotがエラーメッセージを出力するみたいです。まぁエラーが出たからと言って動作に支障はないみたいです。

「robot.respond /test/i, (msg) ->」

ここでslack上のメッセージの監視を行っております。

この場合”test”という単語があれば動作を行うという感じです。

「msg.send 'test-OK'」

見たまんまです。

”test-OK”というメッセージをslackに出力しています。

その1の記事でtestと言われたらというのは実はこのためです。

「@exec = require('child_process').exec

command = "python /var/www/html/irm.py -p -f /var/www/html/MyLight-OFF.json"」

pythonプログラムを動かいたいので、コマンドでpythonプログラムを起動します。

「@exec command, (error, stdout, stderr) ->
  msg.send error if error?
  msg.send stdout if stdout?
  msg.send stderr if stderr?」

一応エラー系メッセージがでたら(でないでほしいけど)同じくslackに出力します。

そんなに難しいことをしていません。

たんにキーワードとなる単語のメッセージがきたら決まったpythonプログラムを動かすだけです。

とりあえずこれでAlexa~slack~raspberryまで来ました。

あとは赤外線関連ですがそれはその3でやります。

【xiaomi】スマートホーム用LED【Gearbest】

到着しました。

以前購入した「xiaomi Aqara LED Light Bulb」です。

Gearbestで購入しました。2個も買いました。

中国は電源プラグがO2タイプで日本はAタイプです。

変換プラグまでついていました。

Gearbestありがとう。

(でもAmazonで3個1000円のやつ注文しちゃったよ。。。)

f:id:Di_no:20190513211739j:plain

わくわく

f:id:Di_no:20190513211931j:plain

ん??

f:id:Di_no:20190513212058p:plain

がーん!

しまったぁ

電圧 電球サイズ
日本 110V E26
中国 220V E27

 です、はい。お疲れさまでした。

ちょっと使い方考えます。。。

【Android】xiaomi Mi 9 SEレビュー【xiaomi】

xiaomiのAndroidスマホ、「Mi 9 SE」が到着し、少し使用しましたのでレビューします。

Mi 9 SEとは

xiaomiという中国スマホメーカーが2019年に発売したフラッグシップモデル「Mi 9」の小型版です。

この辺はいろいろなサイトで記載されているので簡潔にポイントを書くと

  • サイズが小型
  • ワイヤレス充電には非対応
  • SocがSnapdragon855 ⇒ 712
    (Antutuは約17万でした)

とりあえずトリプルカメラ、ディスプレイ指紋認証を試してみたかったので購入しました。

注意点として

  • Mi 8で話題になったデュアルGPSには非対応

なのかなぁと思います。

(公式HPによるとDual-frequency GPSの記載がないので。。。)

https://www.mi.com/global/mi-9-se/specs/

https://www.mi.com/global/mi8/specs/

https://www.mi.com/global/mix3/specs/

スペック

以下の通りです。

項目 内容
Soc Snapdragon712
バッテリー 2970mAh
サイズ 147.5-70.5-7.45mm 155g
ディスプレイ 5.97インチAMOLED
カメラ リア48MP+8MP+13MP、フロント20MP
バンド FDD LTE: B1/2/3/4/5/7/8/20/28
WiFi 802.11 b / g / n / ac

詳細はこちら(公式HP)

 

パッケージ内容

今回もGearbestで購入しました。

去年の年末頃?から梱包がよくなったような気がします。

f:id:Di_no:20190509224038j:plain

f:id:Di_no:20190509224113j:plain

左から

純正ケース(透明なTPU)

本体

説明書とUSB-C ⇔ イヤホンジャック

あとは充電器とケーブルでした。

ここで気になった点が1点。

f:id:Di_no:20190509224341j:plain

ちょっとわかりにくいですが、ケースを付けてもカメラの出っ張りがでちゃうんですね。。。

机とかに置くとき注意しないといけないですね。もしくはケースを別途購入しようかなぁ。。。

カメラ機能

f:id:Di_no:20190509224617j:plain

48MPではなく普通の写真モードです。

写真についてはもっといろいろ撮ってみようかなぁと。

mi mix 2Sとの比較

メインはmix2sなのですが、それと比較で感じたことです。

  • 重さが全然違う!
    155gと189gなのですが30gでこんなに違うんだっていうぐらいです。
  • 持ちやすい!
    何かでスマホは横幅が70.0mmが基準でこれ以下だと片手操作ができる(楽にできる)と聞いたのですが、mi9seは70.05mm。mix2sは74.9mm。この4mmの違いは大きいです。

まとめ

  • カメラはもっと使い倒したい
  • ディスプレイ指紋認証はちょっと精度がよくないかなぁ
  • 軽さ、持ちやすさはイイ!
  • 350ドル程度でこの性能は。。。反則というかチートというか。。。

まずはファーストインプレという感じですが、さらに使用して感じたこと気づいたことあればいろいろ書きたいと思います。

 

 

【Raspberry pi】自宅スマートホーム化その1【EchoDot】

自部屋の一部をスマートホーム化してみました。

構成

構成図は以下のようになります。

f:id:Di_no:20190505134302j:plain

流れとしては、

①AmazonEchoに向かって話したことをalexaスキルを使って解析し、slackに投稿

②投稿されたslackの内容をraspberry piのhubotが受け取り、スクリプト実行

③実行されたスクリプトによりirmagicianが照明をオンオフする赤外線を出力

というふうになります。

キーポイントは

・alexaスキルはAmazonクラウドサービス、つまりインターネット上で動かすしかない。

・照明をオンオフするraspberry piは家庭のLAN上で、家庭のLANはグローバルIPをもっていない。

・ということはalexa(AWS)とrapberry piをつなぐ何かが必要

です。

今回はslackを使ってみました。

ほかにも「Node-RED」や「IFTTT」とかがあるかと思いますが

Node-RED・・・alexaスキルが有効にならないよ。どうもNode-REDのサーバがおちてんじゃない?そんなの大丈夫??てかIBMだからWASなのかなぁと思っていたらNginxでした。

IFTTT・・・なんか音声認識がうまくできなかった

ということで断念しました。

詳細①

alexaスキルの開発については公式にいろいろありますのでそちらのほうがわかりやすいかと思います。

ここではslackへの投稿部分だけ簡単に記載します。

slack側の準備

簡単なのはIncoming Webhooksだと思うのでそれにしました。

API管理でWebhook用のURLを発行しておくだけです。

f:id:Di_no:20190505135257p:plain

alexa側の記述

キーを受け取ったインテントの中でslackに投稿する動作を記述します。

具体的にはインテントの中のhandleの中です。

そこでhttpsによりPOSTをします。

f:id:Di_no:20190505135507p:plain

隠している個所にslack側で発行したURLをコピペします。

なお頭で

const slackreq = require('https');

を定義しておきます。

JSONの中身は決まったユーザに投稿するだけなので

JSON.stringify({"text":"<@pibot>test"})

としています。これで「pibot」というユーザに「test」というメッセージを投稿する内容になっています。

f:id:Di_no:20190505140414p:plain

こんな感じです。

AlexabotはslackのAPI登録時に分かりやすいようにしています。

そしてpibotはraspberryに仕込んであるhubot用のslackAPIです。

このpibot君はtestといわれたら何があろうとtest-OKと返すようにしています。

とりあえずこれでEchoに向かって話をしたらslackに投稿するまではできるようになりました。

詳細②

長くなるので次の記事にします。

詳細③

長くなるので次の記事にします。