ゆっくり技術ノート!

いつかきっとできるだろうよ

低価格帯ロボット掃除機の比較 2020

Image from Gyazo

この記事はシリーズ物です

  • 低価格帯ロボット掃除機の比較 2020 (この記事)
  • +Style B300 のレビュー (2020年3月中に投稿予定)
  • +Style B300 を Siri で操作する (2020年4月中に投稿予定)

この記事を書いた経緯

「コストと機能のバランスの良いロボット掃除機が欲しいなぁ」と思い、色々探してたところ割引セールをしている +Style社製の B300 を見つけたのですが、うかうかしていたらセールが終わってしまい とてもがっかりしたので、「ブログでレビュー記事を書く代わりに割引してもらえないか」と +Style社さんにお願いしたところ、寛大にも50%割引のクーポンを送っていただいたのでこの記事を書いています。

(現在はセールが再び行われています)

私が求めていた機能

以下の機能を備えた 1-2万円代のロボット掃除機を探していました。

  1. Wi-Fiでアプリ連携ができる
  2. マッピングができて、ランダム走行しない
  3. 水拭きができる
  4. 回転ローラーがある(回転する筒状のブラシ、一般的な掃除機のヘッドについている物)

低価格帯のロボット掃除機への要求としてはかなり欲張りだと思います。

各社スペック比較

前述の要求仕様を満たす物を中心に表にまとめました。

  • 価格情報は 2020/03/25 にAmazonの価格にクーポンを適用した価格を記載しています
  • 自分で集計したので間違いがあるかもしれません、購入の際は公式の情報源を参照いただき、間違いを発見したら教えれくれるとありがたいです

上記の表からわかること

  • Wi-Fi対応、水拭きパーツ付属、回転ローラー対応の3つの要素を満たすのは +Style の B300, G300 のみであることが分かります
  • Anker の G10Hybrid は回転ローラーがない代わりに最大吸引力が 2000Pa ある
  • Dibea の D960 は Wi-Fi対応以外の要件を満たしている

検討中に思ったこと

  • Lafant, Prosecenic は公式サイトが重かったり情報が少なかったり不安感があった
  • ILIFE も日本法人のサイトに最新機種の A9 の説明がなかったり、本社のサイトも情報が少なかったり不安感があった
  • +Style, Anker, ILEFE のロボット掃除機はオンラインで取扱説明書を読むことができたが、他社は見つけられなかった
    • 私は購入前に説明書をオンラインで確認したい人なので、オンラインで確認できない商品は買いたくない

iPhoneアプリの評価

2020/03/25 に日本の AppStore で集計

  • ECOVACS HOME, ILEFERobot AS は掃除機との接続に失敗して低評価をする人が多く見られた
  • Lefant, ProscenicHome はレビューが少なかったがバグだらけというレビューがあった
  • Anker はレビューに返信しているので好感を抱いた
  • この手のレビューは ユーザーが勘違いしていたり 知識不足だったりして 上手くいかないということもあるため判断が難しい
  • 私はこのアプリ評価を総合的に見て ILIFE, Lefant, Proscenic を購入候補から外した

消耗品

  • +Style 以外は消耗品のセット販売があり、これがお得になっている
  • Lefant は消耗品の入手先を見つけられなかった
  • ECOVACS は正規品がとても高額だが非正規品は他社と大差ない価格で入手できる
  • ILEFE のみ正規品の交換バッテリーを販売している

まとめ

  • というわけで、私の求めていた機能を持つ +Style B300 を購入する事にしました
  • 私のように低価格で、アプリ接続、マッピング、水拭き、回転ローラー が欲しい方なら誰でも、同じ結論に至ると思います (少なくとも2020年3月の時点では)
  • 近日中に B300 のレビュー記事を公開する予定ですので、購入を検討中の方はそちらもお楽しみに

セール

+Style では現在2つの決算セールを開催しているそうです

1つは +Style公式サイトで B300などの対象商品を購入すると 人感センサー、ドアセンサー、スマートコンセントのどれか1つを貰えるキャンペーン (2020/03/30まで)
人気商品がセットでお得!決算セール - 最先端のIoT製品とあなたをつなぐ通販サイト

もう1つはAmazonの新生活セールで、+Style社のいろいろなIot機器が安くなっています。
例えば B300 は 3000円引きの 16800円で購入できます
Amazon | 【+Style ORIGINAL】スマートロボット掃除機 B300 Wi-Fi接続 水拭き

Amazon新生活応援セール は 2020/03/31 23時59分 (JST) までです

安くなってるこの機会に、スマートコンセントを買い足したり、人感センサーやドアセンサーを試してみるのはいかがでしょうか?

この記事について

  • 前述の通り50%割引のクーポンを送ってもらっています
  • +Style社さんを含め誰からも記事の校閲などを受けていません
  • 記事の作成編集校閲を行なったのは私一人だけで自由に思ったことを書いています
  • 記事中に記載された価格は2020年3月に個人的に集計した物です
  • 購入の際は公式の情報源を参照いただき、間違いを発見したら教えれくれるとありがたいです
  • 価格情報は 2020/03/25 にAmazonの価格にクーポンを適用した価格を記載しています
  • スペック情報はAmazonなどのECサイト, メーカーのサイトとYoutubeチャンネル, 説明書PDFを閲覧しています
  • 表に記載する製品が恣意的に選択されていないことを示すために以下に選択基準を示します
    • 2020/03/25 に amazon.co.jpのホーム&キッチンカテゴリーで"ロボット掃除機 水拭き"と検索して1ページ目に表示される製品の中で価格が1万から2万円台の製品を記載しています
    • 同じメーカーの似たような製品、低機能過ぎる製品、スポンサープロダクトは除外しています
    • +Style G300は1ページ目に表示されませんでしたが、参考のために記載しています
    • メーカー名をABC順にソートしています

余談

今回、人生で初めて企業さんにこのようなお願いをするにあたって、瀬戸康史さんの動画を思い出しました
【大激怒!】俺の名前を勝手に使って、企業とコンタクト取ってるやつがいる!!!いますぐやめろ! - YouTube

動画の中で瀬戸さんは、「所属事務所ドメインのメールアドレスか twitter の DM を使う事にした」と語っていますが、私は瀬戸康史さんと違って有名ではないので、twitter の認証アカウントは持っていませんし、独自ドメインのメールサーバも持っていません。
それでは私が私であることは保証するにはどうすればいいのでしょうか?
Diffie-Hellman、Diffie-Hellmanがお助けします!
というわけで、公開鍵暗号の署名機能を使うことにしました。

初めて実生活で自分の公開鍵を使い、偽物と疑われる心配は無くなりましたが、相手側でちゃんと署名の検証をパスするか心配しなくてはなりませんでした。
案の定、問合せフォームに ダブルクォーテーション を&qout;に変換されてしまいました。HTML特殊文字には勝てなかったよ。

ちなみに、鍵サーバとして Keybase を使っています。
Keybase は鍵サーバ、270GBのクラウドストレージ、gitサーバ、暗号資産のWallet、botと統合できるグループチャット、ブラウザ上での暗号化と署名検証の機能があり、オープンソースで、全てがE2Eで暗号化されているためKeybaseのサーバを信頼する必要がなく、しかも無料です。聖人かな?

参考URL

壁のスイッチをWi-Fi経由で操作する

Image from Gyazo

これ何

  • 2つの壁のスイッチを Wi-Fi経由で操作できます
  • 部屋の 温度、湿度と照度 を送信します
  • 別の部屋の 温度と湿度 を送信します
  • ドアの状態を送信します

ESP8266 を使って Wi-Fi経由 で壁のスイッチを操作できるものを作った。

ESP8266内で Webサーバが起動していて、ブラウザから壁のスイッチを操作できる。
壁のスイッチはサーボモータを使ってオンオフしています。
また、いちいちブラウザを起動するは面倒なので、プッシュボタンも付けています。

温度などのデータは毎分送信され、ローカルにあるサーバの InfluxDB に格納しています。

ESP8266とは

Image from Gyazo ESP8266 は Espressif Systems が製造している小型で安価な Wi-Fiモジュールです。
3.3V で動作し、大きさは100円玉くらいでとても小型ながら、2.4GHz帯の Wi-Fi(b/g/n) に接続することができます。
また、Arduino と互換性があり Wi-Fi が付いた Arduino として使うことができます。
技適に通っている ESP8266 は ESP-WROOM-02(とその派生型) パッケージだけなので、これを使います。
この手の工作ではおなじみですね。

ESP8266 - Wikipedia

部品

合計で大体 2500円。

リストに書いたもの以外にも、プログラムを書き込むための USBシリアル変換機、リード線、ピンヘッダ、ピンソケットなどが必要です。やってないですが、USBシリアル変換機は Arduino UNO などで代用できるようです。
元々持っていた物が多くて、今回買ったのは温湿度センサと三端子レギュレータだけ。
サーボは数年前に、ヴイストン ロボットセンタ 秋葉原店 で 1人 2個、1個 100円で安売りしてたやつ。

回路

初めて KiCad に挑戦してみました。(数時間でまぁまぁ使えるようになります)
Image from Gyazo

温湿度センサ

今回使用した 2つの温湿度センサ(AM2320)は I2C (Inter-Integrated Circuit) に対応していましたが、同じデバイスを同じ I2C bus で使うと device address が重複してしまいます。
そのため、device address を変更する必要があるのですが、AM2320 の device address を変更する方法がわからなかったので、今回は I2C を諦めて 1-Wire で接続しています。
1-Wire だと読み取りに失敗することがあるので何回か試行するようにしています。

リードスイッチ

リードスイッチは近くに磁石があるとオンになるスイッチです。
今回使用したものはガラス管がむき出しで壊れそうだったので、ストローに入れてホットボンドで蓋をしています。
Image from Gyazo ユニバーサル基板でテスト中の回路 と ブレッドボードでテストした回路

電源

回路図には書いてませんが、電源は iPhone の 5W充電器 から 5V を供給し三端子レギュレータで 3.3V に降圧しています Image from Gyazo とても素朴な基板ができた

接続

Device PIN name PIN name Device
3V 3V GND GND
- EN IO16 LED 1
Button 2 IO14 TOUT Illuminance
Button 1 IO12 RST Writer RST
Servo 1 IO13 IO5 ReadSW 1
Servo 2 IO15 IO1(TXD) Writer RX
Sensor 2 IO2 IO3(RXD) Writer TX
Sensor 1 IO0 IO4 ReadSW 2

回路のパターンは Numbers.app で書いた Image from Gyazo 作業風景、マグカップ

ちなみに、回路とサーボを覆う筐体は Amazon で買ったスノコ を解体したものが余っていたので、それで箱を作りました。ヒノキの良い匂いがします。

参考URL

回路の作成にあたって大変お世話になりました。ありがとうございます。

コード

github.com
コードは 600行くらい。
web server や web client は ESP8266 の標準ライブラリがあるのでそれを使っています。
温湿度センサは以下のライブラリを使わせてもらいました。
github.com

Grafana

ESP8266 から InfluxDB に送られたデータを Grafana で可視化してみた。

Image from Gyazo かっこいい。
3つの ESP8266 と 3つの Raspberry Pi が、毎分データを送信してくる。
ちなみに Raspberry Pi には赤外線LED を繋げていて、部屋の照明やテレビなどのリモコン信号が出るようにしています。
センサーは BME280, HDC1000, AM2320 を使っています。

HomeKit

Apple HomeKit は ホームオートメーション機器と通信するためのフレームワークで、家電を macOS, iOS, watchOS のホームアプリとSiri、または iOSのコントロールセンタ から操作できます。影が薄いですが、ホームアプリは iOS8 から標準で入っていますね。
Image from Gyazo 今回は、HomeKit 上でブリッジとして振る舞うOSSである Homebridge を使って HomeKit に対応しています。
ファンは動作中だと羽が回転するアニメーションがあったりして見てて楽しい。
壁のスイッチ操作は Wi-Fi経由で DB に送信されているので、Homebridge は DB を参照し家電のオンオフ状態を認識しています。
Homebridge のプラグインhomebridge-cmd4 を使っています。
温度と湿度が常にグレーでちょっと見づらいのが難点ですが、これは HomeKit の仕様っぽい。

オートメーション

今回はお風呂の照明と換気扇のスイッチを操作しているので、DB を参照して以下の操作を自動で行うようにしました。
お風呂が使用中か非使用かはドアの状態を見ています。

  • ライトを点ける: もし使用中かつ暗いなら
  • ライトを止める: もし非使用かつ点灯中なら
  • ファンを点ける: もし使用中かつ暑いなら
  • ファンを止める: もし使用中かつ暑くないなら
  • ファンを点ける: もし非使用かつ湿ってるなら
  • ファンを止める: もし非使用かつ乾いてるなら

以下を サーバ上で定期実行している
Automatically operate the bath light and fan

ハマりどころ

雑感

  • 温湿度センサは設置する高さで結構数値が変わる
  • 人がいない時、温度が下がったりしているのが見えて面白かった
  • HomeKit対応製品でここまで機能てんこ盛りの製品はないのでとても満足した
    • HomeKit対応の温度、湿度、気圧センサーが 8000円もするので、値段的にも優位
    • 自分で作ると安くできて、好きに細かい機能を作り込めるし、何より楽しい
  • Apple watch で心拍とか色々取ってきてリアルタイムに Grafana で表示してみたい
    • 室温が体温にどれだけ影響するのかみたい
  • ESP8266 の後継機 ESP32 では Bluetooth に対応しているので、分割キーボードを完全無線化してみたい (AirPods みたいに)

間違いなどがありましたら、コメントいただけるとありがたいです。
最後までお付き合いいただきありがとうございました。

見ているアニメのアニソンの発売日をスマホに通知する

github.com 見ているアニメのアニソンの発売日をスマホに通知するAnison-noticeというのを作った

Animetick.netという視聴中のアニメを登録するサイトがあります
ここで登録したアニメのアニソンの発売日に通知するものです
http://animetick.net/

通知はPushbulletを用います
https://www.pushbullet.com/

こんな感じに携帯にPush通知がくるのでリリースを逃すことがない
f:id:Coro:20170726105213p:plain:w400

これをcrontabで毎日0時に実行することにする。

どなたか使われる際はconfig.rbにpushbullet token と animetickのユーザidを入力して使ってください
github.com

Raspberry Pi で温度と湿度を知る

Raspberry Pi で温度と湿度を知る

はじめに

この記事はおうちハック Advent Calendar 2016の21日目の記事です。
前日:ajimitei labo.: HUIS でいらすとやリモコンを作ってみた
翌日:MQTTベースのおうち環境にMESHを追加する - Qiita

遅刻記事になってしまい本当にすいません。
RasPiの不調と、風邪をひいてしまったのと、能力不足で遅くなってしまいました。

環境と機器

  1. Raspberry Pi B 3 (Rasbian 2016-11-25)
  2. 温湿度計 HDC1000

手順

実際の試行錯誤はトラブルの項にまとめています

Step.1 Rasbianの初期設定を終わらせてからraspi-configでi2cを有効にします

sudo raspi-config
7 Advanced Options > I2C

Step.2 確認します

lsmod

Step.3 i2c-toolsをインストールする

sudo apt-get install i2c-tools

Step.4 HDC1000の接続を確認

sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Step.5 Wiring Piはデフォルトで入っているので再度入れる必要はないです

Step.6 HDC1000から温湿度を読む

gcc -Wall -o hdc1000_sample -lwiringPi hdc1000_sample.c
sudo ./hdc1000_sample

Raspberry Pi 2 Model B でI2C 温度+湿度センサーモジュール(HDC1000)を使う - Qiita
とうい記事の中のサンプルコードをほとんどそのまま使わせてもらいました
ありがとうございます

Step.7 継続的なログを見るためにcsvを作ります

これをcronで実行します

require "csv"
results = `sudo ./hdc1000_sample`
stamp  = Time.now.to_s + "," + results
File.open("/home/pi/outi_hack/tem_hyg.csv","a"){|f|f.puts(stamp)}

Step.8 ブライザで見るためにSinatraで表示させます

sudo apt-get install -y sinatra
sudo apt-get install -y sinatra-contrib

require "sinatra"
require "csv"
require 'sinatra/reloader' if development?
set :bind, '0.0.0.0'

get '/' do

    logs = CSV.read("tem_hyg.csv").reverse
    time = logs[0][0]
    tem = logs[0][1]
    hyg = logs[0][2]

    p "TEM: " + tem + " HYG: " + hyg + "   (#{time})"

end

できました!

f:id:Coro:20170129180030p:plain

トラブルと嵌ったところ

恥を忍んで公開します、笑ってやってください

配線を間違えてHDC1000を壊す

  • 暗がりでRasPiにジャンパー線を差し込んでいたら青と黒を見間違えて壊しました
  • 焦げ臭くなって基板上のセンサチップの半田が溶けて位置がずれた
  • RasPiが壊れなかったのは不幸中の幸い

i2c が有効にならない

  • 最初はRaspberry Pi B 1 Rev.2でRasbian(2016-11-25)を使っていたのですがraspi-configでもi2c や spi の項目ができこず/etc/modulesなどで手動で試みるも有効になりませんでした
  • 結局 Raspberry Pi B 3 を用意して再度やったら何の問題もなくraspi-config`から有効にできました
  • 今記事を書いてる時点で確認したら Raspberry Pi B 3 でもI2Cの項目が消えました f:id:Coro:20161228032233p:plain

RasPiが家の外に繋がらない

  • 家の中の他の PC には ping が通るのですがapt-getできなかったりwgetできなかったりしました
  • 原因がわからなかったので OS を再書き込みしました

sshができない

Sinatraが外から見えない

おわりに

  • i2cはArduinoで使ったことがあったので「温湿度表示とか簡単だろう」とたかをくくっていましたが、大変なことになってしまいました
  • 本当はESP-WROOM-02で温湿度やCO2を計測してマトリクスLEDなんかをつけることを妄想していたのでいつになるかわかりませんが、やりたい
  • 温度と湿度があっているのか調べるために家にあったアナログの温湿度を3つHDC1000の隣に置いていたのですが温度は3つのアナログ温度計もHDC1000も大体一致するのですが湿度に関してはすべて約15%の誤差があり湿度を正確に知るのは難しいことがわかりました f:id:Coro:20161228033953j:plain
  • ここまでお付き合いいただきありがとうございました

参考URL

  1. Raspberry Pi 2 Model B でI2C 温度+湿度センサーモジュール(HDC1000)を使う - Qiita
  2. 共有ライブラリへパスを通す | hajichan.net technical version
  3. Raspberry Pi 3でRaspbian Jessieをセットアップする方法 - karaage. [からあげ]
  4. RubyでWiringPiを使う | ぬわーーーーーーー!!!
  5. 「全裸で学ぶMVC事始め」をruby + Sinatraでやってみた - 飲む、寝る。
  6. Raspberry Pi の I2C を有効化する方法 (2015年版) – ymyzk’s blog

ありがとうございます