読者です 読者をやめる 読者になる 読者になる

IFTTTのUIが変わったのでMaker channelの使い方をメモしておく

ESP-WROOM-02(ESP8266)でLチカ(ブラウザからLEDをオンオフ)をSTAモード、固定IPでやってみる

挙動は動画の通り。
www.youtube.com

やってることは以下のサイトをそっくり真似してるだけです。コードもコピペです。インターネットありがたい。

qiita.com
この記事の素晴らしいところは、単なるLチカだけどESP-WROOM-02をAPモードではなくSTAモードで使うことで、操作する側のPC/スマホwifiの接続先をいちいち変えなくてもいいところ。それからブラウザから操作するためのUIをAjaxでつくってるところ。
まさに俺がやりたかったのはこれだよ!って感じです。

が、同じようにやろうとしても、どうしても次の2点だけうまくいきませんでした。何が悪いんだろ。

  1. mDNSでローカルネットワーク内のみのドメイン名を使う →うまくいかない
  2. ファイルシステムを使って別に用意したindex.htmlを返す →うまくいかない

なので、それぞれ代替策をとりました。といっても、ただ諦めただけです。

1に関しては、たしかにDHCPだとルーター再起動等のきっかけでIPアドレスが変わってしまって不便ですが、だったらIPアドレス固定すればええやん、と考えました。想定している用途によりますが、家庭内の無線通信手段としてwifiを使おうとしているだけなら、むしろ固定IPのほうがシンプルに思えます。

2に関しては、あきらめてArduinoのスケッチの中に、UI用のhtmlを書いてしまうことにしました。C++の中にhtmlが書いてあって、そのhtmlの中にJavascriptが書いてあるという気持ち悪さはありますが。


さて、STAモードでESP-WROOM-02wifiアクセスポイントに接続するとき固定IPをつかう方法ですが、調べてみると、どうやらWiFi.config()というのを使うらしい。
arduinoのリファレンスをみると、 デフォルトではDHCPであり、WiFi.config()をつかえば手動で設定できる、ということみたい。


※※※【2016年11月26日追記】※※※
なんとなく疑問が残ったので調べてみたんですが、
https://www.arduino.cc/en/Reference/WiFiConfigにそのまま従うと

WiFi.config(ip, dns, gateway, subnet);

という順で書くのに対して、ESP8266の場合は、

WiFi.config(ip, gateway, subnet, dns);

の順で書き、しかも最後のdns以外は省略できないようです。
参考:

※※※【追記ここまで】※※※


そのあたりを書き加えると、こんな感じのコードになりました。

#include <WiFiClient.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#define LED 13                    //LED点灯に使用するピン
ESP8266WebServer server(80);

void onroot() {
    String msg ;
    msg += "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"><title>LED Button</title></head><body>";
    msg += "<script>";
    msg += "function sendOn(){" ;
    msg += "send(\"/on/\");";
    msg += "document.getElementById(\"LEDstatus\").innerHTML=\"ON!\";";
    msg += "}";
    msg += "function sendOff(){";
    msg += "send(\"/off/\");";
    msg += "document.getElementById(\"LEDstatus\").innerHTML=\"OFF!\";";
    msg += "}";
    msg += "function send(url){";
    msg += "var xhr = new XMLHttpRequest();";
    msg += "xhr.open(\"GET\", url, true);";
    msg += "xhr.send();";
    msg += "}";
    msg += "</script>";
    msg += "<button id=\"on\" onClick=sendOn()>LED ON</button>";
    msg += "<button id=\"off\" onClick=sendOff()>LED OFF</button>";
    msg += "<p id=\"LEDstatus\"></p>";
    msg += "</body></html>";

    server.send(200, "text/html", msg);
}

void LedOn(){
  Serial.println("ON");
  digitalWrite(LED,HIGH);
  server.send(200, "text/html","OK");
}

void LedOff(){
  Serial.println("OFF");
  digitalWrite(LED,LOW);
  server.send(200, "text/html","OK");
}

void setup() {

    pinMode(LED, OUTPUT);

    Serial.begin(115200);
    Serial.println("");
    Serial.println("ESP8266 Wifi test");

    WiFi.config(IPAddress(192, 168, 0, 99), WiFi.gatewayIP(), WiFi.subnetMask()); //使いたいIPアドレスを指定
    WiFi.begin("xxxxSSIDxxxx", "xxxxPASSWORDxxxx");   //接続先のwifiアクセスポイント
    WiFi.mode(WIFI_STA);

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("");
    Serial.print("Connected as ");
    Serial.println(WiFi.localIP());

    // Web server setting
    server.on("/", onroot);
    server.on("/on/", LedOn);
    server.on("/off/", LedOff);
    server.begin();
}

void loop() {
    server.handleClient();
}

ご覧の通り、サーバーが返すhtmlの内容が見難いので、msgの中身だけ取り出してみたのが以下。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>LED Button</title>
</head>
<body>
  
  <script>
    function sendOn(){
      send("/on/");document.getElementById("LEDstatus").innerHTML="ON!";
    }
    function sendOff(){
      send("/off/");document.getElementById("LEDstatus").innerHTML="OFF!";
    }
    function send(url){
      var xhr = new XMLHttpRequest();xhr.open("GET", url, true);xhr.send();
    }
  </script>

  <button id="on" onClick=sendOn()>LED ON</button>
  <button id="off" onClick=sendOff()>LED OFF</button>
  <p id="LEDstatus"></p>
  
</body>
</html>


ブラウザで見たときの、“ON!”や“OFF!”の表示は、実際のLEDの状態を監視して取得しているわけではなくて、ただ単にボタンがクリックされたら文字を書き換えてるだけです。


早速、ESP-WROOM-02に書き込んで、指定したIPアドレスhttp://192.168.0.99/をブラウザのアドレスバーに入れてEnter。ちゃんとhtmlが返されました。

念のため、ルーターの設定画面でIPアドレスの割当状況を見てみると、192.168.0.99は「*** STATIC IP ADDRESS **」となっていました。
f:id:teramorosu:20161023162829p:plain

例外処理とか全然考えてないので公開するようなもんじゃないですが、最低限これでやりたいこと実現できたよ、という意味で。

【ネタバレ】映画『君の名は。』の考察をいくつか読んでなるほどと膝を打った解釈を個人的にまとめる

君の名は。』の考察です。というか自分用に色んな人の考察のまとめみたいなものを書いてみます。なので公開後も加筆修正しまくる予定なのであしからず。あと、「こういう解釈もあるよ!」ってのがあったらバンバン教えてくれると嬉しいです。

公開翌日に見に行って感動しきりで友だちに勧めまくって今日3回目を川崎チネチッタのLIVE ZOUNDで見てきました。たしかに音響がガツンとくると感情の高ぶりも増す。

当然ながら以下はネタバレ放題なので閲覧は自己責任でお願いします。










まず、僕が最も重要だと思っているのは、東浩紀ツイッターで言ってたこれ↓

ラストの5年後(8年後)こそが現在の世界(2016年という意味ではなく、基準・出発点となる世界)であり、まず、2人が出会った。で、"なぜか"運命を感じた。その運命を感じた理由として、「過去に(前世に)あったかもしれない一つの可能性」の物語が遡って生み出された。

この、「あったかもしれない一つの可能性」というのが超重要ワードなのです。

選択肢を選んでいくようなゲームで、複数のルートが用意されていて、その全部のルートをプレイヤーが見ることで初めてそのゲームの世界全体を理解できるようになってるゲームってありますよね?それがゲーム的リアリズムなのです(詳細は東浩紀の本を読め)。

君の名は。」は、糸守の人が死ぬルートと死なないルートの2つを僕らが見せられて、だけど登場人物たちは片方のルートしか覚えてない、というのが一番のポイントだと思うんですよ。

だから参考文献として「ひぐらしのなく頃に」とか「シュタインズ・ゲート」が挙がるんです。ループものに近い。そう考えれば拡大解釈として、三葉は瀧くん以外の男の子とも入れ替わっていたかもしれない(そういう世界線もあるかもしれない)とも考えられるし、更に拡大すれば世代を超えたループもの(少なくとも一葉ばあちゃんは「ハッ、この感じ…前にどこかで…」と感じてる)とも言える。

ほんとに、この点さえ理解できれば、よくある批判「薄っぺらい感動」とか「互いを好きになる過程が描かれてない」とか「なぜ瀧くんが選ばれたのかわからない」とか「ハッピーエンドじゃ今までの新海誠の否定だ」とかはぜんぶ撥ね退けられる。そもそもジャンルは恋愛モノじゃなくて、ソウルメイト・前世モノに近い。

僕も1回目に見たときはこれが理解できてなくて、「なんでこんな、お互い名前を尋ねる、というベタな(低レベルな)ラストにしてしまったのか、と思った。正直、片割れ時のシーンでもう感動がマックスになっていたので、「このまま終わってくれ、後日談みたいなのは付け足さないでくれ」と祈りまくってました。だから5年後が出てきて、ちょっとがっかりした。いやだいぶがっかりした。隕石あぼーんて落ちて糸守の人はみんな死んで、でもそのリアルタイムで中学生の瀧くんは美しい彗星をじっと見つめながらなぜだが涙が出る、というラストにしたほうがいいのに、って。

でも、東浩紀のツイートを読んで、あのラストシーンの意味がいっぺんに理解できました。


つづいて、たらればさんの「【ネタバレ注意】『君の名は。』を見て溢れ出た感想と考察」からの引用。
というか、もうこの記事がほぼ僕の意見と矛盾なくて、しかも気づいてなかった発見がいっぱいあって、すげぇぇぇぇぇぇって叫びながら読んだ。

tarareba722.hatenablog.com

1200年周期で地球に近づく彗星は少なくとも3回落ちている。一度目は中心に口噛み酒を祀った祠のあるクレーター(だから祠に彗星の壁画がある≒2400年前でまだ文字が入っていない時代)、二度目が糸守湖を作り、三度目が今回。

糸守湖だけでなく、御神体のある場所も明らかに隕石が落ちた痕だよね、ってのはわかってたけど、瀧が口噛み酒を飲んだあと、足を滑らせたときに天井に彗星の壁画があるのは、文字のない時代(2400年前)だったから、というのは目からウロコだ!! 1200年前は文字があったけど繭五郎の大火で焼けてしまったってことね。

主人公の2人が直接には出会っていないのに惹かれ合うためには、2人が周囲に愛されている必要があったんですね。入れ替わっているあいだ、2人は周囲の人間や環境を通して、それぞれが「どんな人間か」を深く知っていくわけです。

この解釈も自分にはなかった。まじすげえ。「入れ替わってる間(特に初回)どうやって学校生活乗り切ったんだよ普通ムリだろ」というツッコミにはこれで反論できる。すなわち「2人とも、それくらい良い友達に囲まれてるってことだよ!」。
他人からの目線を気にするSNS世代にとってはむしろ、様子がおかしくても、心配こそしてくれるが怪しんだり嫌ったりはしない友達や家族やバイト先の先輩に囲まれている、というだけで人物像の説明は十分ということなのかもしれない。

瀧くんが描く絵は「街や風景」ばかりで「人物」は描こうとしません。(中略)これは本作でキャラクターデザインを田中将賀氏に任せて、自身は背景画の作り込みに徹した新海監督自身もモチーフになっているのではないでしょうか。

あああ!なるほど!絶対そうだよね!

途中、勅使河原家の町長接待シーンで、隣室にいる勅使河原克彦くんが「腐敗の匂いがする」とつぶやきます。これは、三葉さんのかなり破滅的で犯罪的な避難作戦に勅使河原くんがすすんで協力する伏線なんですね。

これも気づかなかった。言われてみれば、序盤で三葉とさやちんが、糸守の田舎っぷりに文句を言っているときに、てっしーがちょっとだけイラついた様子を見せてから「カフェ」に誘ったり、さやちんに将来のことを聞かれて「この町でずっと暮らしていくんだと思う」と言っていたりと、てっしーは糸守の町それ自体は嫌いではないんだと思う。ただ、このまま行けば自分も父親と同じになってしまう、という葛藤があったってことなのねー。納得納得。



続いて、細かいところだけど、以下のブログ記事について。
「君の名は。」一点だけよく分からないところ(ネタバレあり)追記あり | blog.roudai.net

ここで三葉が、テッシーに自転車壊しちゃってごめん(壊したのは瀧だけど)、と謝ると、テッシーの反応は
「はあ?誰が?」
となる。この反応はいったいなんなんだろう、という話。
(中略)
瀧と三葉の活躍によりほとんど犠牲者がでずに終わるかの世界線が入れ替わったところなので、
そのあたりを表現している(前後での世界線の違いを強調してる)とも思えるけど、どうなろうなと。

追記で"壊したのお前やろ、っていう意味の誰が?だったと"と解釈を変えて納得しているようだが、僕は、ろーだいさんの当初の考え、正しいと思う。

というか、これと全く同じことを岡田斗司夫がニコ生で言っていた。

数時間前に強引に自転車を奪っていった人に、「自転車壊しちゃってごめん、って言ってたよ」と言われたとして、「誰が?」と返答するのはやっぱり不自然だと思う。「え?俺の自転車壊したの?」ってリアクションがまずあるべきでしょ。
だから、てっしーがバイクに乗っているのは「自転車を持っていかれたから代わりに」ではなく、「糸守の住人が助かる世界線へ移ったから(後の世界線において、てっしーははじめからバイクに乗っている)」が正しいと思うんだけどなぁ。

そう考えたほうが、「瀧と三葉が片割れ時に出会ったことによって糸守の人が救われた」ということが明確になる。おお、セカイ系っぽい。


もう一個、岡田斗司夫がニコ生で言ってたことなんですが、「隕石が1200年周期で落ちてくるのは、ティアマト彗星自身も、地球に落ちている"片割れ"に会いたいと思っているから」という解釈。つまり織姫と彦星ってやつ。この解釈はかなりしっくり来るんだけど、難点は「片割れどころがいくつにもバラバラになってんじゃねぇかw」というツッコミが入ること。

彗星に意志があると仮定すれば「地球に落ちた片割れに会いたいけど、会おうとするとまた人間に被害を及ぼしてしまう、だからそれを避けるために一部の人間に特殊な能力を与えよう」と彗星が(または彗星を含む超宇宙意思みたいなものが)宮水家の人々に入れ替わり能力・タイムリープ能力を与えた、って考えられそう。まあこれはかなりの拡大解釈と言うか、個人的な解釈ですね、劇中にエビデンスがあるわけではないです。


最後に一つ、疑問があります。これはいろんなブログやツイッターで言及されているのですが、「三葉が東京へ行って瀧に組紐を渡した。これによって入れ替わりの発動条件を満たした」という解釈。これ、明らかにパラドックスなのに、「まあ、パラドックスだけどそれはご愛嬌ww」みたいな捉え方をされていて、すげえ納得いかない。

さっきの、「片割れ時に出会ったから糸守の人が救われた」と関係するんですが。組紐を中学生の瀧くんに渡したのは、入れ替わりの発動条件ではなく、片割れ時に出会う(物理的接触をする)ための条件、と考えたほうが自然じゃないですかね?そのために、事前に接触しておく必要があった。3年後に会いに来てもらうために、三葉が死ぬ前に(もちろん明日死ぬと自覚してはいないけど)会いに行く必要があった。一葉ばあちゃんが「糸をつなぐことも結び、人をつなぐくことも結び、時間の流れも結び」と言ってるように(正確なセリフは忘れた)、組紐を渡しておくことによって、組紐を通じて、時間を超えてつながることができたのではないか。

組紐に三葉の記憶または時間超越能力が宿っていて、それによって瀧が三葉の夢を見ることができ、入れ替わりが発動した、という解釈もあるようだけど、それだと片手落ちだと思う。瀧が三葉の夢を見ることはできるけど、三葉が瀧の夢を見たことの説明にはならない(さっき言ったパラドックス)と思うんだけどなぁ。

じゃあ、なぜ入れ替わりが起こったのか?入れ替わり能力は宮水の、すなわち三葉側の能力だとして、なぜ瀧くんが選ばれたのか?って言うところなんですが。これこそまさに、はじめに書いた「あったかもしれない一つの可能性」で考えればいいと思うんですよね。多元世界解釈です。

三葉が、「来世は大阪のイケメン男子に」と願った世界線もあったかもしれない、でもその世界線では、お互いに会いたいと思うまでには至らなかった。そういういくつもの可能性の中で、"たまたま"瀧くんがうまく行った。つまり瀧くんは確率的に選ばれたにすぎない。と。

君の名は。」は、男の子と女の子がフェアに描かれているようで、結局は男の子目線の、「特別な女の子に選ばれたい」というお話だ、ということですよね。


とりあえずここまで。まだまだ付け足す予定。

テレビを見る画面が小さくなったからコンテンツもそれに合わせないといけないんじゃね、ってキングコング西野とホリエモンが話してたよ

TOKYO MXの「QREATOR’S calendar」*1という番組でキングコング西野さんが「ひな壇をやめた理由」を話していたのが面白くて、鼎談*2相手のホリエモンもすごく納得していた。2人の会話を要約すると以下のとおり。

  • バラエティーでひな壇が導入されたのは、テレビの大画面化が進んだから
  • テレビの画面が大きくなったから、絵面として収まりがいいように画面に映る人数を増やしていった
  • ところが今はスマホで番組を見る
  • 小さい画面ではひな壇芸人が多数いると内容の良し悪し以前に見づらい
  • 単に画面の面積の問題
  • youtubeで人気のあるヒカキンとかみんな一人しゃべり
  • テレビでも面白がられている番組は登場人物が少ない
  • 3人以上いらない
  • これから芸人はひな壇のチームプレーを鍛える必要はない
  • グループアイドルの時代もスマホの普及によって終わる

これ、すごい。

バラエティー番組の現状を、とってもシンプルな、「視聴するデバイスの画面の面積」というハードウェア的な要因のみでズバッと説明してしまうの、すげえ。

出演者の人数が少ないバラエティー番組ってたぶんマツコ・デラックスの番組を念頭に置いてるんじゃないかな、と推測してみる。怒り新党、月曜から夜ふかし、アウトデラックス。NHKの新春テレビ放談でもマツコのすごさ話題に出てたしね。

マツコの番組が人気がある理由として、「客観的ではない」「マツコの目を通した」コメントを視聴者が求めていて、マツコのコメントだったら信用できるという安心感がある、みたいな説明をされてきたけど(もちろんそれらも要因としてはあるだろうけど)、それより何より、視聴者が見てる画面がちっちゃくなったから、ひな壇にごちゃごちゃ人がいるの見辛いから、という説明をしちゃうの、すごいクールだと思う。

この文章を書いている間にもいろいろ思い当たるフシが出てきちゃう。ちょうど、めちゃイケ終了のニュースが流れている。考えてみれば、めちゃイケも、映る人数、テロップ、ごちゃごちゃしてるイメージあるなぁ。しくじり先生はテロップごちゃついてないもんね(ひな壇的要素はあるけどメインは先生の一人喋りだし)

あと、「ワイプ」もなくなるのかも。ワイプの女王だった矢口真里さんがいなくなり、後継は小島瑠璃子か片瀬那奈かと言われてたけど、そもそもワイプ自体なくなるのかもしれない。ワイプじゃなくて画面全体でこじるりリアクション顔のアップをバーンて出したほうが絶対いいもんね。

実は「徹子の部屋」が最強だったりして。

*1:2015年12月21日 (月) 22:30~。キングコング西野さん、ホリエモン、JK社長の椎木さんノ3人だけで話していた。14日と21日の2週連続で前後編に分けて放送していたみたい。ガラポンTVで今になって見た。

*2:番組表では「トップクリエイター3名の超本音対談」ってい書いてあったけど、2人の場合に対談、3人の場合は鼎談、4人以上の場合は座談会と呼ぶらしいので皆さん気をつけましょう

がっかり接客の飲食店は嫌だ

友だちとドライブに行って昼食にたまたま見つけた寿司屋に入ったら、その店の方々がすごく積極的で気持ちいい接客だった。「どちらからいらしたんですか」「この後どこへ行かれるんですか」という質問からグイグイ会話を広げてきて観光マップとか渡してくれて見どころを説明してくれて本当に気持ちよく店を出た。
自宅の近くの個人経営の飲食店はガッカリ接客な店がすごく多い。飯の味さえ良ければいいと思ってるのか知らないが無愛想だし言葉遣いはなってない。
そんなに高度なことを求めてるわけじゃなくて、僕はどちらかと言うとあんまり店員に話しかけられるのは得意じゃない方なんだけど、そんな僕からしてもあまりに愛想が悪いというか最低限のいらっしゃいませとか声のトーンとかがやる気を疑うレベルでガッカリする。クソ接客というよりガッカリ接客。だいたいそういう店はメニュー表もわかりにくい(どこにも定食って書いてないのに注文しようとしたら「そのページは全部定食ですけど」って真顔で言われたときは閉口した)。
コンビニとかのマニュアル接客を否定する向きってあるけど僕はバカにできないと思っている。クソ接客な飲食店の人は一回コンビニでバイトして挨拶の仕方から学んで来いと言いたい。

清水富美加のツイートがぶっ飛んでる件

「好きな芸能人はだれ?」って聞かれた時には今までずっと堀北真希って答えてたんだけど、結婚しちゃったからそれ以外で、ってもう一押し聞かれるパターンが増えてきちゃったので(既婚者を挙げちゃいけないというのは納得いかないが)、誰か他にグッと来る若手の女優さんいないかなーと探していたところに清水富美加のツイッターがめっちゃぶっ飛んでるということに気づいて一気に興味が湧いてきた。

最初に清水富美加を明確に認識したのはNHK Eテレの「哲子の部屋」という不定期放送の番組で、可愛いし素直だし頭も悪くなさそうだしすごく気になっていた。そしたら2015年末の平野レミが生放送でおせち作るっていう明らかに【放送事故】って書かれてまとめサイトに載ることを狙ったようなNHKの番組で清水富美加がアシスタントとして出ていて、それがもう、アシストしつつ平野レミの勢いに負けず適度にてんやわんやを起こして笑いを取るっていうその期待されてる役回りに必死に応えようとしている感じがめちゃめちゃ健気で心から「ふみか、頑張れ!」って思ってしまった。

そして清水富美加のツイッターをフォローしてみたら、もう女優とは思えぬ異様なツイートが並んでいて大笑いした。この記事の執筆時点での直近のツイートからしてすごい。



過去のツイートを遡ってもぶっ飛んでる。たしかに、その時の出演していたラジオを聞いてた人しかわからんねたとかもあるっぽいから一概には言えないけど、それを差し引いてもぶっ飛んでる。

もう清水富美加が気になって眠れない。