自作LED電光掲示板に Yahooニュースや 天気予報 を表示させ、さらに NTP 時計機能追加しました

ESP8266 ( ESP-WROOM-02 )
Yahoo!ニュース RSS サイトが https ( SSL )化されてしまいました。
EasyWebSocketライブラリを Beta ver 1.50 にすると動作します。
それに伴い、スケッチも改良しました。
以下をご覧ください。
(2017/4/13時点)

※ ESP-WROOM-02 の Flashメモリサイズが 4MB のはずが、実は 2MB だったという情報がありました。
以下のページを参照して、Flashメモリサイズを確認しておくことを強くお勧めします。

ESP-WROOM-02 ( ESP8266 ) チップ・メモリ・MACアドレス情報確認方法
(2017/10/2)

こんばんは。

なかなか忙しくて、記事アップがだいぶ遅れてしまいました。
プログラムが複雑になるほど記事を書くのが辛くなってくる今日この頃です。

さて、今回は前回の記事から更に新たな機能を2つほど追加しました。いよいよIoTとして一歩踏み出した感じです。

去年の こちらの記事 でほとんど諦めていたWeb記事を自動取得して自作電光掲示板に表示させることが、ついにできました!!!

これができるようになったのは独自にUTF8文字コードをShift_JISに変換するテーブルファイルを作成できたことが大きいですね。(こちらの記事を参照)
諦めないで続けていて良かった・・・。

Yahoo Japan の RSS はHTMLタグの解析がし易く、電子工作で表示させるには最適ですね。そして、記事内容が豊富で選択肢がたくさんあります。
ただ、これを無料で利用するには個人用途限定だそうです。 商用で使用するにはご注意ください。

スポンサーリンク


動画はこんな感じです。
(これは ESP-WROOM-02 ( ESP8266 )と Adafruit I2C 8×8 mini LED matrix だけを使ってスマホのブラウザからWebSocket通信で電光掲示板をコントロールしています)
因みに、この動画を掲載するにあたって、Yahooヘルプセンターに確認して、個人利用ブログなら問題ないという回答をいただいております。

いかがでしょうか。
例えばデスクにこれを置いておいて、トップニュースタイトルだけでも常時流しておけば、パソコンやスマホを開かなくてもニュースを把握できてイイですね。

美咲フォントですから複雑な漢字はさすがに読みにくいです。
でも、遠くから見ると結構把握できますよ。8X8ドットなので贅沢は言えません。
もし、確実に漢字を読めるようにするには16×16ドットは必要ですね。
個人的には、ある程度把握できれば良いのでこれで十分です。

天気予報も取得できていますね。文字だから分かりにくいのですが、今後はこの文字列を基に独自にドットを作成してお天気マークを表示させることもできそうです。
そして、それで別途LEDやモーターを制御することもできそうですね。
因みに、WebSocket通信を切断しても、ニュース記事や天気予報記事は5分毎に自動で記事を更新します。スマホの電源を切っても大丈夫です。

それと、半角数字は全角と混ざるとバランスが悪かったので、4X8.FNTファイルの数字部分を独自に改変させていただきました。

また、NTP時計機能も追加しました。
インターネットのNTPサーバから時刻を自動取得して定時補正しています。
曜日を漢字表示できる機能も追加しました。
NTP時計は5分毎に補正してます。Yahoo記事取得時では4分毎に補正します。

スマホ側でスイッチを沢山作ることが出来るので、ハード側は一切スイッチ無しっていうのがイイですね。

では、これの作り方について説明していきます。

1.準備するもの

●ESP-WROOM-02開発ボード ( スイッチサイエンス製 )
Amazonさんではこんな感じで販売してます。

ESP-WROOM-02開発ボード
スイッチサイエンス(Switch Science)

ESPr Developer(ピンソケット実装済)
スイッチサイエンス(Switch Science)

最近、スイッチサイエンスさんではこんなものも販売されてますね。ピンアサインを同じように使用すればこれも使えると思います。
(※ESPr One はAmazonで販売されなくなったようです。以下のリンクはが販売元です。
ESPr® One(Arduino Uno同一形状 ESP-WROOM-02開発ボード)

●I2C 8×8 mini LED matrix (Adafruit製)
色はどれでも良いです。ただ、青や白は高いです。
これを4つ揃える必要があります。
間違えないでいただきたいのは1.2インチではなく、ミニLEDマトリックスの方ですのでご注意ください。
Amazonさんでは私はマルツさん販売のものを購入しました。

Adafruit ミニLEDマトリックス基板(青色) 【959】
エイダフルート(Adafruit)
¥2,612(2024/11/21 00:07時点)
Adafruit ミニLEDマトリックス基板(赤色) 【870】
エイダフルート(Adafruit)
¥2,128(2024/11/21 20:22時点)
Adafruit ミニLEDマトリックス基板(白色) 【1080】
エイダフルート(Adafruit)
¥2,805(2024/11/21 20:22時点)

2.Arduino IDE やESP-WROOM-02を設定する

※Arduino IDE 1.6.11以降で動作します。こちらの記事を参照して、Arduino15フォルダを削除してから再インストールすれば動作します。(2016/8/29時点)

ESPr Developer ( ESP-WROOM-02 開発ボード )の組み立てや使い方はこちらの記事を参照してください。

そして、前回の記事の 2~5までの設定を予め済ませておいてください。

ただ、今回からバージョンアップしたライブラリがありますので、以下のライブラリを新たにダウンロードし直してインストールしておいてください。

EasyWebSocket Beta 1.50
このバージョンでは https ( SSL )Webページを取得する関数を追加しています。

MisakiFNT_read_for_ESP8266  Beta 1.1
このバージョンでは全角と半角文字混在の場合のレイアウトを修正してます。

I2C_Adafruit_8x8_LEDmatrix_library Beta 1.1
このバージョンではドットスクロールもライブラリ化してます。

初めて当ブログをご覧になる方はあちこちの記事を参照しなければいけないと思いますが、ご容赦ください。

3.Timeライブラリのインストール

Arduino.ccページから最新のTimeライブラリをダウンロードします。
こちらのページ を開くとこのように表示されます。


newer versions のTimeライブラリのリンクをクリックすると下図のように表示されます。

そしたらGitHubをクリックすると下図のように表示されるので、ZIPファイルをダウンロードします。

それを解凍して、Time-masterフォルダの中に同じ名前のTime-masterフォルダがありますので、そのフォルダごとご自分のArduino IDEのlibrariesフォルダにコピペします。
それが終わったらIDEを再起動すればインストール完了です。

4.独自フォントをダウンロードしてSPIFFSファイルシステムでESP-WROOM-02のフラッシュにアップロードしておく

美咲フォントの半角フォント 4X8.FNT では全角に対して数字が小さすぎて「8」という数字が判別しにくいので、数字だけを独自に改変させていただきました。アルファベットや記号、カタカナはそのままです。
フリーのバイナリエディタ、Stirling で修正してみました。
美咲フォントのライセンスを読むと、配布、改変は自由とのことでしたので、当方で改変したファイルはGitHubの こちらのページ にあります。
ダウンロードして解凍しておいてください。

mgotec48.FNT

というファイルを予め保存してある空白サンプルスケッチのdataフォルダにコピーしておきます。
次にSPIFFSファイルシステムを使用して ESP-WROOM-02 のフラッシュメモリにアップロードしておいてください。
SPIFFSファイルシステムについて分からない方は こちらのページ を参照してください。

コメント

タイトルとURLをコピーしました