天気電光掲示板にギミック追加


どんな内容か?

@103yen さんが、WioTerminal用の素敵なプログラム(WioTerminalで天気予報電光掲示板を作った)を公開してくださったので、少しギミックを加えてみた話です。少し私の環境では上手く行かなかった部分や、他のハマった内容などもあったので記事にしています。

加えたギミックとは?

横浜相鉄線沿線にお住まいの方で、通勤・通学でご利用された経験のあるかたは、この電光掲示板を何度も目にされたことがあると思います。私もお世話になっておりますが、最近はその役割も終えつつあるようです。昔ながらの電球を使っているタイプのようで、電球の寿命が短くてドット落ちが頻繁に発生します。こちらの「はまれぽ」という地方誌で詳しく説明されています。
ということで、@103yenさんのコードをベースにこの電球欠けのギミックを追加しました。どんどん欠けていくと訳が分からなくなるので、電球交換も簡単にできるようにしています。

こちらの写真で、少しドットが欠けているのが分かると思います。右はそろそろ電球交換ですね。

簡単な動画を作成しました。(8倍速で欠ける様子が分かるかと思います。)
動画がみつかりません

内容

加えた内容は3つです。
・通信がHttp1.0だと上手く動かなかったのでHttp1.1に変更した
・ディスプレイに画像を表示する都度、ランダムにどこか一点が欠けていく。
・Aボタンを押すと復活する。

コードは、Githubからダウンロードが可能です。

ハマった内容1(無線モジュールの更新が必要)

ハマったって程ではありませんが、手間だっただけです。
WioTerminalの説明にも記載はされていますが、最初にWiFi機能を利用するためには、内蔵無線モジュールRealtek RTL8720のファームを最新に変更する必要があります。
やり方は、@jksoft さんが日本語で解説してくれています。Wio TerminalをWi-Fiに繋ぐ
本家のサイトは、こちらにあるのですが、ファームウェアのVersionが更新されていますので、最新版を使うようにします。詳細な手順はそちらを参照ください。

簡単な手順としては、
- USB経由でRTL8720が書き換えられるようにWioTerminalのプログラムを変更する。
- 外部ツール(Image Tool)を使い、RTL8720のファームを更新する。(一度削除してから、書き込みする)
- Wi-Fiを利用するためのライブラリ6個を入れる。

ハマった内容2(無線接続が上手く行かない?)

上記で、ファームの更新などを行っているので、上手く更新できてるのか気になります。
ネットワークに接続して、接続確認するとDHCPでIPアドレスが割り当てられるはずなのですが、そのIPが不正なアドレスを返却するように見えます。
IPだけでなく、Macアドレスも上手く見れないようなので、ライブラリに不具合がありそうです。

 //print the local IP address
  ip = WiFi.localIP();
  Serial.println(ip);

ただ、このlocalIPで値が取得できないだけで、内部ではIPアドレスが割り当てられて動作しているようなので、気にしなければ大丈夫です。私は、DHCPが悪い?とかいろいろ調べて時間がかかりました。

ハマった内容3(Http1.0 → Http1.1)

通信する際に、天気の情報をライブドアのWeatherHacksを利用していますが、Http1.0で情報取得すると無視されるようで、Http1.1を指定することで安定した通信ができるようになりました。ファームの問題とHTTPの問題と切り分けを行うのに時間がかかってしまいました。

  tft.println("Request " API_RESOURCE);
  // Make a HTTP request:
  client.println("GET " API_RESOURCE " HTTP/1.1"); // HTTP/1.0だと応答が来ないようだった。
  client.println("Host: " API_SERVER);
  client.println("User-Agent: WioTerminal/1.0");
  client.println();

最後に

これで、無線接続もWioTerminalでできそうなことが分かりましたが、無線通信にはまだ不具合もあるようなので安定動作にはもう少し時間がかかるかもしれませんね。
@103yen さん素敵な作品ありがとうございます!

以上です。