3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ArduinoAdvent Calendar 2017

Day 16

arduinoとスマホで強力に傘を忘れなくする試み

Last updated at Posted at 2017-12-15

この記事はbenridane(みやまる)のAdventカレンダーArduinoの16日目の記事です。

傘をよく忘れるので、忘れないようにしたい。
とても忘れっぽいので雨の日にLEDを光らせても何の光だったかを忘れて、傘を忘れたりする。
強引に傘を差し出してくれれば、たぶん忘れないだろうという狙い。そこには眠っていたスマホとArduinoがあった。

#そしてできたもの
雨になるとサーボモータが動作して傘をカバンの上に落とす仕組み
videotogif_2017.10.30_21.52.18.gif
朝にドスンとという音とともにカバンに落ちる。

用意するもの

Android端末 (一台ぐらい余ってるでしょう)
taskerアプリ (最初に買った有料アプリ)
arduino UNO (互換品でもいい)
cdsセンサー (なんなら100均のを分解)
10k抵抗
サーボモーター

一番簡単にAndroidスマホとarduinoをつなげる方法

普通はBluetoothだろうけど、もっと簡単に接続する。
今回はコミュニケーションの手段にスマホのライト機能とarduinoのCdsセンサーを使う。
Taskerアプリで、スマホのライトを光らせて、光センサーであるCdsセンサーが検知すると、サーボモータを動かすのだ。
なんとも原始的で技術的にはLチカから脱していないが、単純明快でインターフェイスとしてもすごい汎用性があると思う。なんせ光が出ていれば、アクションを起こせるんですから。

#やってることと接続
IMG_20171214_235119.jpg
(ホコリかぶりすぎ)

配線がごちゃごちゃして分かりにくいが、Cdsセンサーに抵抗をつなぎ、5VとGNDにつなぐ、抵抗の後をA0ピンにつないでモニタリングする。サーボモータは、5VとGNDにつなぎ、13ピンにて信号線とする。Cdsセンサー とAndroidのカメラのライト部分を外の光が入らないようにガムテープで接着する。

#Arduinoプログラム

#include <Servo.h>
Servo myservo;

int val = 0;
int iPin = A0;
int oPin = 13;

void setup() {
  Serial.begin(9600);
  pinMode(oPin, OUTPUT);
  myservo.attach(9);
  myservo.write(90);
}

void loop() {
  val = analogRead(iPin);
  Serial.println(val);
  if(val<10){
 //   digitalWrite(oPin, LOW);
  }else{
 //   digitalWrite(oPin, HIGH);
    myservo.write(180);
    delay(10000);
    myservo.write(90);
  }
  delay(2000);
}

ループでCdsセンサーを確認して、閾値を超えると、サーボモータを動かす。

#Tasker設定
1.朝7時にアクションを設定する。
2. HTTP GETにて天気予報を取ってくる。(livedoorAPIを利用)

  • weather.livedoor.com/forecast/webservice/json/v1?city=270000
  • Variable Search Replaceにて必要な情報に整形
  • Variable %HTTPD Search "telop":"temperature"
  • Take PhotoでフラッシュをON if %Tenki11 ~R .96e8. (APIがUnicodeエスケープシーケンス。96e8が雨のユニコードでそのまま使う)

まとめ

日常生活にarduinoから光以外のアプローチできた。
おそらく一番簡単なAndroidスマホとarduinoとを繋ぐハック。
これを作ってから雨に打たれることが無くなった。(うまく動作しているか毎日天気を気にするようになった。[重要])

#余談
スマホを使うのは大げさかもしれない。ただ、スマホはWifi、Bluetooth、場合によってはSIMという強力なインターフェースにバッテリーまで持ちつつコンパクトに収まっているし、なんなら画面に表示して確認とかできる。大量に生産されているので、手に入りやすく型落ちスマホは安い。スマホを使う上で、一番ネックになるのはスマホとarduinoをどうやって情報を伝えるかだ。ソフトウェア開発者が日常生活にアプローチしようとすると、時折とんでもないことになる。スマホのBluetoothとarduionoのBluetoothモジュールを繋いで、、待てよ、Bluetoothモジュール買わないと。。Bluetoothとarduionoはどうやって通信する? arduinoにBluetoothをつなぐプログラムをかいて。。Android側はアプリ開発からはじめるのか。。仕様を調べよう。。ヤックシェービング。どんどん物理的なコストと期待していない仕様が増えてくる。時には愚直な選択も必要かと思いました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?