WiFiのSSIDをスキャン

161020a6ESP8266 ArduinoにWiFiのSSIDをスキャンする機能は、あるよね、と探してみたら、当然ながらあった。SCANクラスというものがあり、Arduinoの同名のライブラリを若干拡張してあるらしい。サンプルプログラムはWiFiScanというのがあって、何の問題もなく動く。結果はシリアルポートに出力される。

それだけでは、何なので、HSES-LCD24の液晶に結果を表示するようにしてみた。プログラムは、GitHubで公開している。 改造点は,表示順を信号強度順にソートしたぐらい。あとはひたすら、見た目が良くなるように調整した。液晶の解像度が320×240もあるので、凝ろうと思えば、かなり凝れる。

実用的な価値があるかどうかは別にして、ちょっとそれっぽい表示になったと思う。自宅で動かしても、かなり多くのSSIDが表示されることに驚く。ノイズが減るのか、深夜になると10を超えるSSIDが表示される。あと、別のESP8266と思われるSSIDが表示されている。これはセンサーを繋いで、WebClientとして動いているやつで、AccessPointとして動いているとは思わなかった。そのうち、調べてみたい。

161020a3

HSES-LCD24のタッチスクリーンを使う

タッチスクリーンを使おうとすると意外に大変だ。HSES-LCD24のLCDモジュールではXPT2046というチップ経由でタッチスクリーンのデータを読み込む。XPT2046のライブラリは複数あり、その点では苦労しないのだが、その次にcalibrationの問題がある。自分ひとりで使う、使い捨てみたいなプログラムであれば、実測値を使い、定数をプログラムに埋め込んで解決だが、人に使いやすいライブラリを提供しようと思うと、それではまずい。LCDの座標系を90度づつ、4方向に設定可能かだから、calibrationも、それに対応する必要がある。毎回、calibrationするのは面倒なので、結果は不揮発性メモリに保存しておきたい。さらに、ちょっと見栄えがするサンプルプログラムを付けようとすると、ボタンやメニューも扱える簡易ウィンドウシステム的なものも欲しくなる。
続きを読む… »

生活に小型ディスプレーを!!

160810a6スイッチサイエンスからHSES-LCD24-FRAMEが発売された。これは、HSES-LCD24を100円ショップのフォトフレームに固定するためのアクリル板とネジとスペーサのセット。これがあれば、WiFi接続小型ディスプレーHSES-LCD24を生活空間に自然に置くことができる。見やすい角度に設置するのに苦労したり、USBケーブルに振り回されたりすることも無くなる … はず。

このフレームの発売はHSES-LCD24自体の企画当初から予定していたのだが、スイッチサイエンスへの委託販売(マーケットプレイス出品)が初めてだったので、まず本体を発売してからと思っていたら、梱包上の問題が発生するなどして遅くなった。
続きを読む… »

esp8266 ArduinoのPROGMEM

160903a0HSES-LCD24での日本語表示を試みる際に、PROGMEMを調べた。

ArduinoのPROGMEMとは、データをROM領域に格納する仕組み。(reference,日本語)

C(C++)言語だとconst修飾子を付ければ、十分な気がするが、AVR等の小型のCPUだと、そうはならない。命令用のROMとデータ用のRAMのアクセス経路を分離し、回路を節約しているためだ。ATmegaとかだとROMのデータを読み込むには、専用の機械語があった気がする。
続きを読む… »

ESP8266 Arduinoでmake

Arduinoのスケッチをmakeコマンドでコンパイルしたいという欲求は昔からあり、sudar/Arduino-Makefileなどというものがあるのも知っているのだが、ちょっと調べて

  • Linux前提っぽい
  • Makefileにincludeさせて使うものらしい
  • Arduino非純正CPU (ESP8266とか)に対応しているか不明

というような感じなので、手を出さずにいた。

HSES-LCD24で日本語の表示をさせようと検討すると、やっぱり fontxファイルをバイナリーのままコードに埋め込みたくなった。Arduino-IDEでコンパイルさせていると、埋め込み先のsectionがわからない。ということでgcc等のコマンドが見えるmakeコマンドでのコンパイルに挑戦してみることにした。
続きを読む… »

HSES-LCD24に文字を表示させる(4) 画像表示とNetLCD公開

HSES-LCD24の販売再開しました。あとNetLCDというプログラムをgithubで公開しました。URLはhttps://github.com/h-nari/NetLCD。中身は今回の記事のプログラムです。

160819a3今回は画像を表示させる機能を追加させたのだが、プログラムの公開方法に悩み、githubで公開することにし、プログラムを整理し、ドキュメントなども書いてたら、時間がかかってしまった。

HSES-LCD24のディスプレーは320×240画素で、1画素16bitなので1画面で 320x240x2byte = 153,600byte必要になる。これだとパラメータで渡すのは無理そうだ、そもそも153kbyteも空容量がESP8266にありそうにない。

WebServerのファイルアップロード機能が使えるのではないかと考え、探すと、サンプルプログラムがあった。SDWebServer.inoだ。これの93行あたりにあるhandleFileUpload()という関数に必要な情報が詰まっている
続きを読む… »

HSES-LCD24に文字を表示させるプログラム(3)

160810a6現在、梱包上の問題でスイッチサイエンスでのHSES-LCD24の販売が停止されています。対策の目途は立っていますので、お盆明けぐらいには再開できると思います。

さて、HSES-LCD24に文字を表示させるプログラムですが、前回紹介したサンプルプログラムESP8266WebServer/HelloServerをベースに簡単に作ってみました。ソースは、この記事の最後に置いておきます。
続きを読む… »

HSES-LCD24に文字を表示させるプログラム(2)

LCDに文字を表示させることはできたので、次はWiFi経由での操作方法を調べる。スケッチの例を調べるとESP8266WebServer/HelloServerが良さそうだ。72行の簡単なプログラムで、必要な機能がうまく説明されている。

続きを読む… »

HSES-LCD24に文字を表示するプログラム(1)

s_160802a7HSES-LCD24は面白い、ということを伝えていきたいと思う。そのために、HSES-LCD24の簡単なプログラムを紹介します。
機能がありすぎて、どんなプログラムにするか悩みますが、基本的な機能でかつ応用が利く、WiFi経由で文字や図形をLCDに表示するプログラムを作っていくことにしました。

続きを読む… »

HSES-LCD24発売

ついに新製品を発売。HSES-LCD24という商品で、スイッチサイエンスから4,969円で発売開始。スイッチサイエンスの商品ページはこちら

どういう製品かというと、中華製WiFiモジュールESP-WROOM-02を2.4インチLCDモジュールに直結できるようにした基板です。LCDモジュールは別製品にするか悩んだが、スイッチサイエンスの委託販売では並行輸入品は扱わないようなので、LCDモジュール込みの製品になった。
続きを読む… »