ESP32 + MicropythonでLCDにサーバから取得した情報を表示してみた

ex-rate-esp32.jpg

MicropythonでネットにつながりLCDに表示ができることも確認しましたので、以前ESP8266+Arduinoで動かした以下のプログラムと同じものをMicropythonで作ってみました。

ESP8266版Arduinoでネットから情報を取ってきてLCDに表示する: 楽しくやろう。

ざっとおさらいすると、HTTP GETで取得したJSONのデータをパースしてキャラクタ液晶に表示する。というものです。
従って、追加で必要なのはHTTP GETとJSONのパースだけですが、どちらもゼロから作る必要はありません。

HTTPのサンプルは以下にあります。
ちなみにESP32では標準でmicropython-libのurequestsというパッケージも用意されているようですが、今回は使いませんでした。

5. Network – TCP sockets — MicroPython 1.9.2 documentation

JSONのライブラリは標準で用意されており、使い方は以下の記事が参考になりました。
(Pythonのユーザには常識なのかもしれませんが・・・)

ESP32 MicroPython: Parsing JSON | techtutorialsx

ESP8266+ArduinoではJSONの扱いが若干難儀だったような記憶がありますが、今回は特に苦労することはありませんでした。

というわけで作ってみたのが以下のコードです。
ハードウェアの配線はLCD出力の実験と同じです。

REPLでコピペしたあと(wlan_connect()に与えるSSIDとパスワードはmain()の中で追加してください)、

main()

を実行すると、現時点の円・ドルレートがLCDに表示されます。

前半はST7032iのドライバです。
カーソル移動と文字列表示を追加しました。
最初のi2c通信がエラーになる現象は直っていませんので、main()の中で一度i2c.scan()を呼んでいます。

そのあと無線LAN接続、HTTP GET、メインと3つの関数が続いています。
簡単な内容なので説明は省略します。

Micropythonでのプログラミングはやはり楽です。組み込みプログラミングの中ではおそらく最もイージーモードですね。

コメント