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でのプログラミングはやはり楽です。組み込みプログラミングの中ではおそらく最もイージーモードですね。
コメント