日々のつぶやき

なんとなく興味のあることを書いています

作ろうとしているもの

ESP8266でwifi通信、それから赤外線リモコンの送受信ができるようになったのでそろそろ作りたかったものを形にしていく。

 

作りたいもの

Amazon.co.jp|iRemocon WiFi(アイリモコンワイファイ) 【外出先から、自宅の家電を操作!快適センサーでお部屋の状況も確認できる学習リモコンの決定版! 】 IRM-03WLA|家電・カメラ通販

とか

Amazon.co.jp|IRKit - iPhone, iPadを使って外出先からエアコン等の家電を操作できる学習リモコン|家電・カメラ通販

こういうの。

 

買えばいいじゃん、と思うんだけどレビュー見てるとなかなか怖い。IRKitはこういうDo It Yourselfな感じの人には向いていそうだけど、通信にboujourを使っているあたり、今回のターゲットのAndroidに移植は難しそう。調べたらAndroidから使っている人もいるんだけど。

 

今回作りたいもののMust/Wantを書いて行く

Must:

スマホ・パソコンからテレビ、エアコン、照明、ルンバ、パソコンを操作できること。

これらの装置をタイマーで操作できること。

 

Want:

外部からのアクセス、リモコンのスキンの変更

 

6月くらいまでには形にしたい…

赤外線リモコンとArduino

前回に引き続いてArduinoの話題。今回は赤外線リモコンの送受信をArduinoで処理する。

 

もともとAVRをアセンブラで書き始めて、そこからAVRGCCに移ってそろそろ10年になる。赤外線リモコンの送受信も以前自分で書いたことはあるが、今回の目標は「極力他人任せ、ライブラリはダウンロードして使うもの」とする。

 

さて、今回利用したライブラリはこちら

shirriff/Arduino-IRremote · GitHub

 

shirriffさんのRobotIRremoteと関数とかがぶつかるらしく、そのままダウンロードしてlibraryに入れるだけだとエラーが出る。RobotIRremoteを別のフォルダに移動したらすんなりコンパイルが通った。

 

このライブラリの凄い所は、送信をPWMを使って行うこと。いろいろなライブラリが見つかったけど、送信をハードウェアPWMを使ってやってくれるライブラリはこれhしかなかった。副作用として、Arduinoの種類によって送信できるピンが一つに絞られる。Arduino Microの場合は13。他のArduinoについてはIRremoteInt.hを見るしかない。Arduino Microの場合、緑色のLEDと被る。これもご愛嬌。

とりあえず2番の入力に秋月で買った受光モジュールを接続して、下みたいなプログラムで実験したら割とすんなり動いた。ちなみに赤外線LEDは50mA以上で動かしたりするので、できればFETとかで増幅した方がいい。回路図は今後載せる。

受信に関しては結構再現性が悪いのでライブラリ書き直そうかな。そうするとついでに送信も緑のLEDと被らせたくないしこっちも書くか…。当初のコンセプトが。

 

int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ;
  }
  irrecv.enableIRIn();
}

void loop()

{

  if (Serial.available() > 0) {
    inByte = Serial.read();

    if (inByte == 'i') {
      for (int i = 0; i < 3; i++) {
        irsend.sendNEC(0xC02EB847, 32);
        delay(40);
      }
    }

    } else if (inByte == 'd') {
      if (irrecv.decode(&results)) {
        Serial.print("\r\n");
        Serial.println(results.decode_type, DEC);
        Serial.println(results.value, HEX);
        Serial.println(results.bits, DEC);
        irrecv.resume(); // Receive the next value
      }
      delay(100);
    }

}

 

 

ESP8266入手

aliexpressでかねてから気になっていたESP8266を入手した。一個$2.5、送料が2.63$だった。ネットでいろいろ報告されている価格からすると、更に安くなっているようだ。だが為替が…

 

どちらにせよ安いので気にしない。

 

なおESP8266の載ったボードの形で販売されている。実際、このチップはさすがに手はんだは無理そう。ボードの名前はESP-01とかESP-12とか。名前がややこしいのはご愛嬌。ネットで圧倒的に情報が多いのはESP-01。というわけで今回はESP-01を購入。

 

試食に使うハードはArduinoとした。これも安さとネットでの情報の多さから。パソコンからUSBで繋いで、同時にESP8266ともシリアル通信したいので、Arduino Microを選択した。ESP8266は3.3V駆動で、Arduinoは5V系なので何らかの変換が必要となる。ただし、Arduinoの入力(つまりAVRの入力)は2.1Vあたりが閾値となるのでESP8266→Arduinoは直結可。Arduino→ESP8266はこのへんを参考にした。デフォルトでの通信速度は9600bpsなのでこの中の変換回路は何でもOKである。今回はダイオードと抵抗でさくさくっと。

 

繋いだらライブラリを

itead/ITEADLIB_Arduino_WeeESP8266 · GitHub

から頂いて、こんな感じで書いてarduinoのシリアルモニタでwを打ち込んでEnterを押すとさっくりと動いた。中国製の$2.5のチップとは思えないほど高性能。今日のところはこれくらいで。

 

#include <ESP8266.h>
#define SSID        "ssid"
#define PASSWORD    "password"

int inByte = 0;
int i;

ESP8266 wifi(Serial1);

// the setup function runs once when you press reset or power the board
void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ;
  }
}

// the loop function runs over and over again forever
void loop() {
  if (Serial.available() > 0) {
    inByte = Serial.read();
    Serial.write(inByte);
    if (inByte == 'w') {
      Serial.print("FW Version:");
      Serial.println(wifi.getVersion().c_str());

      if (wifi.joinAP(SSID, PASSWORD)) {
        Serial.print("Join AP success\r\n");
        Serial.print("IP: ");
        Serial.println(wifi.getLocalIP().c_str());
      } else {
        Serial.print("Join AP failure\r\n");
      }

      if (wifi.enableMUX()) {
        Serial.print("multiple ok\r\n");
      } else {
        Serial.print("multiple err\r\n");
      }

      if (wifi.startTCPServer(8090)) {
        Serial.print("start tcp server ok\r\n");
      } else {
        Serial.print("start tcp server err\r\n");
      }
    }
  }
}

満員電車、解決に有効なのは?(2)

技術的な話をしよう。どのような投資をすれば混雑緩和につながるか。一般的に考えられるのは「複々線化」や「新線建設」、「長編成化」、「増発」な どである。複々線化、新線建設は劇的な効果が見込めるものの、莫大な費用を必要とする。また、大都市圏ではこれ以上の増発は困難とされる。なのでみんな口 を揃えて「長編成化」というがこれは効果があるのか。

まず「増発が限界」という話だが、そ もそも鉄道の増発の限界は何で決まるのか。大都市圏の特に混雑が激しい路線で2分間隔であり、このあたりが最大本数のようだ。理論的にはどうか。電車と電 車が最低限取らなくてはならない車間距離がある。一般の鉄道は600mで止まらなくてはならない(いわゆる600m条項)とされており、停車には 120km/hで走っていると30秒程度掛かるようだ。なので実は30秒間隔で走らせることができる。2分間隔は駅の話であり、電車がホームに入ってきて 人を乗せ降ろしし、ドアを閉めて発車し、次の電車が入ってくるのに2分かかってしまうことが2分もかかる原因である。長編成化はこの間隔を長くしてしまう ため、逆効果なのである。

線路自体は複線でも一時間に120本、現在の4倍程度を捌く能力を持っていて、駅が増発の律速となっている。

これを解消するためには駅を改良すれば良いことがわかる。交互発着という方法があり、駅の番線を二つ交互に使う。1番線に電車が止まっていても2番線に電車が入れるので単純計算で2倍の列車を発車させられる。すべての駅で導入すればポイント切り替えの時間があるため単純に二倍とは言わないが一時間に40本程度は余裕であると考えている。この方式のよいところは現在「律速」になっている駅から順番に増強を行うことですぐに効果を発揮できることである。

次に通過線を付けることである。駅に止まらなければよいので通過線を付けて2本に1本は通過させることにすると、2倍の列車を捌くことができる。これは通過列車の割合を増やせばいくらでも駅の電車を捌く能力を向上させられる。列車の平均速度も上昇するので、混雑を我慢しなければならない時間も短縮する。線路の幅だけ確保すればよいのでホームを増設する場合よりも低コストである。

 

 

満員電車、解決に有効なのは?

最近、東京の真ん中あたりで働いている友人と話していると、やはり満員電車の不満が大きいようである。個人的に昔調べたので満員電車がなぜ無くならないのか、どうすれば無くなるのかをつらつらと書いて行きたい。

 

①なぜ無くならないのか

鉄道会社と言えど、会社は会社。利益にならないことはできない。鉄道事業鉄道事業法なんかで運賃の値上げが会社の勝手では出来ない、ということになっている。実際、日本の鉄道会社は古い会社が多く料金がその時代の物価のまま、ということがよくある。新しく設立された「つくばエクスプレス」や「成田スカイアクセス」などは非常に高い運賃を取っている。この理由はもちろん建設費を償還するため、となっている。が、よく考えてみると、一般に「料金が高い=利益が大きい」とはならない。公共性が高いという理由で最大収益をあげられる運賃設定にはできないようだ。これが満員電車が無くならない唯一絶対の理由。

鉄道会社が利益を上げるために出来ること、それは「投資をしない」「特急列車等、運賃が高額になる列車に誘導する」「出来るだけ詰め込む」「出来るだけ長い距離に乗ってもらう」等々、すべて通勤列車を混雑させる方向ばかりである。

 

②どうすれば無くなるか

「なぜ無くならないのか」を踏まえた回答は、「列車の運賃制度を規制緩和する」。これが一番丸く、合理的である。鉄道会社としても、列車を多数抱えることはコストとなる。需要が集中する時間帯は高額に、少ない時間帯は低額にすることで需要を平均化し車両という資産を有効活用でき、さらに需要が大きい時間帯で収益が増えるため鉄道会社として非常にメリットが大きい。カラオケボックスのようなイメージでとらえると良いかもしれない。朝はつくばエクスプレス的運賃で、日中はタダ同然、夕方は今までと同じくらいの運賃といったイメージである。各鉄道会社が自社にあった混雑対策を講じれるため、効果が大きいと考える。

CO2などで行われているような「混雑権の売買」も考えられる。こちらはどちらかと言えば共産的な考え方で、政府が混雑率を把握し、年度ごとに達成すべき目標値を設定する。目標未達の場合は混雑権を他社から買い取ることで達成できる。こうすればより混雑を緩和した会社が経済的なメリットを受けられる。

 

 

 

生活改善PJ

自宅の生活を良くしよう!ということでお仕事ライクな考え方で投資をしていくプロジェクトを「生活改善プロジェクト」と銘打ってやっている。

 

考え方は費用対効果を重視すること。基準にしたがって物事を考えることで「買うべき」「買わないべき」を迅速に判断できることをメリットとしている。

とは言っても分かりにくいので具体例を。

①棚の購入

家に新しく収納(例として棚)を買う場合を考える。問:いくらまで出してもよいか。

我が家の家賃は78,000円/月である。20平米なので平米あたり3,900円/月、と算出できる。ニトリのカラーボックスが2848円で床面積が5段(上にもモノを乗せるなら6段)増えるので、棚板一枚あたりの面積(45cm*30cm=1350cm^2)×5段=6750cm^2=0.68m^2床面積が増える計算である。この投資が産むメリットは0.68×3900円=2650円と計算できる。1か月で元が取れる計算となる。

カラーボックス(MCB-17545 DBR): 収納・ラック・ドレッサー - 【ニトリ】公式通販 家具・インテリア通販のニトリネット

「得をするから買う」というわけではなく、物を買う時に費用的な重さを金額だけで見ると変なことになるよ、という話である。一か月で元が取れる買い物なので、例えば2年後に引っ越すから…などと考える必要はない、と言える。

 

②特急に乗るか、鈍行で行くか

特急の非日常感、鈍行の旅情、甲乙付けがたいものがある。が、その選択がどれほど「お得」なのかを計算したい。例えば、東京から大阪まで鈍行で行くか、新幹線で行くか。

鈍行で行く場合、だいたいは青春18きっぷを使うと思う。青春18切符を1枚で買うとなると時期によって値段も変わってくるが、3500円より高いことは無いと思う。一方の新幹線は14320円である。ざっくり差額は11,000円くらいか。

さて掛かる時間だが、新幹線は2時間40分程度、対する鈍行は早くても9時間半くらいである。こちらも差はざっくり7時間。

「鈍行の時給」とも言うべき計算はよく見かけるが時給が1500円以上の人は新幹線、それ以下の人は鈍行を使う方が「お得」である。ちなみに他の場所でもこれくらいの値になることは多い。おおむね学生なら鈍行、社会人なら新幹線/特急列車とイメージと合うように感じる。

 

まとめ

①、②ともに別に「お得」だからそちらを選択せよ、という話ではなく、購入金額が安い高いで判断をすると間違えるよ、という話である。変なところでケチるより、こういう面倒な計算をするだけで後悔が無くなって、意思決定の時間が短くなって自分の時間が増えたことを実感している。

 

携帯電話とか

xperia acro(au, IS11)がさすがに3年を過ぎていろいろとダメになっていたので変えようかな、などと検討。スマートフォン・携帯電話を巡る状況は一段と複雑さを増しているようで、以前機種変更をしたときとはずいぶんと変わっていた。

 

私の状況としても当時は固定インターネット回線を引いていたものの、現在はwimaxを契約している。これが月約4000円。各社ともカケホーダイプランだと8000円/月程度の支払いとなるので合計120000円である。さすがに払いたくない。

 

考え方としては「何台持つか」で整理した。

 

①1台持ち

ガラケーのみを持つこととすると機種変で2000円、MNPで1100円程度になるようだ。

スマホのみを持つこととすると↑で書いた通り機種変で8000円程度、MNPで7400円程度になることが分かった。ちなみにMNPで乗り換える意思をauに伝えると機種変に使えるポイントを3万ポイント貰えるらしい。

 

②2台持ち

ガラケースマホスマホwimaxというパターンが考えられる。

MNPガラケーは月1000円程度、MVMOのスマホは値段はいろいろだが2000円~3000円も出せば十分使えそうである。

一方のスマホwimaxだが、MNPスマホに乗り換えた上で通話のみのプランに加入するというもの。docomoだと2700円/月、ソフトバンクでは通話のみプランは無いらしい。

 

③3台持ち

ガラケースマホwimaxのパターン。ガラケー代のみでスマホが使える。スマホは別途購入する。例えばスマホを50000円で購入した場合、今回の検討はすべて24か月で考えているので月2000円程度換算になる。そう考えるとあまりおいしくは無い。

 

結論

MNPスマホwimaxとすることにした。

一括0円の機種を購入することで月々の支払が2700円となる。auMNPできる人はもっと安くなりそうだが元々のキャリアがauなのでdocomoしか選択肢が無い。メリットとして、①LINE、Gmail、普通の電話が同じ端末に来る。②電話がかけ放題。というところだろうか。

コツとして、キャリアショップ(ドコモショップ)ではなくケータイショップに行くこと。一括0円の機種はいろいろな制約が掛けられている(オプション加入等々)が、それが少なかったり場合によってはキャッシュバックが受けられる。いろいろと条件を揃えれば一台当たり3万円程度のキャッシュバックを受けられることもある。その場合、一か月あたりに直しても1250円引きとなるので半額近い割引となる。今回は条件が揃わなかったので、そこまではお得にならなかった。

注意点として、初期費用があげられる。今回は家電量販店内のショップでオプション10点ほど加入させられたが、当月解約可のところを選んだ。当月解約では追加料金は発生しない。通話のみのプランでは一括0円の対象にならないので、一か月間はLTEプランにも加入をする必要はあり、初期費用として約4000円かかる。またMNP手数料も約3000円ほどかかってくる。月々サポートはLTEプランと紐付けされているらしく、LTEを解約すると無くなってしまう。U25割引も同様。spモード(いわゆる@docomo.ne.jp)を付けると月々315円発生する上、いわゆる「パケ漏れ」が発生する。そのため、この使い方では外すのが常套手段だが、gmailから携帯にメールを送ると結構な確率で弾かれるようだ。

 

アドバイス

長々と書いたが、まとめるとこんな感じ

①2台持ちにすると何だかんだ月々3000円くらいになる。一台余計に持つ手間が月々5000円くらいなんですね。

②街の怪しげなケータイショップのキャッシュバック案件はマジでお得。

③変なことをする以上、トラブルには対応できる力が必要。