1 of 36

ESP32+MicroPython�試してみた!

Shizuoka.py #7

Hiroshi Sano

2 of 36

自己紹介

  • 電子工作素人だけど 趣味で IoTLT で発表してきました

2

3 of 36

本日の目次

  • IoT流行ってるけど始めるにはどうする?
    • PythonとIoT
    • MicroPythonとは?
  • Dive Into MicroPython:
    • Getting Started
    • Lチカしてみよう
    • Wifi接続, httpアクセス
  • ***?
  • まとめ

3

4 of 36

本日の目次

  • IoT流行ってるけど始めるにはどうする?
    • PythonとIoT
    • MicroPythonとは?
  • Dive Into MicroPython:
    • Getting Started
    • Lチカしてみよう
    • Wifi接続, httpアクセス
  • ***?
  • まとめ

4

5 of 36

IoT(Internet of Things)�盛り上がってる!?

5

6 of 36

製品たくさん出てきました

  • Arduino: マイコンを簡単にプログラマブルに出来るボード
  • Raspberry Pi(ラズパイ): 小型だけどパワフルなLinuxボード
  • ESP32: 最近出てきた新鋭, 小型省エネながらWifi,BLE標準搭載
    • ESP8266: ESP32の前身,Wifi対応で更に省エネ�

6

7 of 36

こういうボードたちです

7

8 of 36

製品たくさん出てきました

  • Arduino: マイコンを簡単にプログラマブルに出来るボード
  • Raspberry Pi(ラズパイ): 小型だけどパワフルなLinuxボード
  • ESP32: 最近出てきた新鋭, 小型省エネながらWifi,BLE標準搭載
    • ESP8266: ESP32の前身,Wifi対応で更に省エネ

派生やその他のデバイスなどなど、安価かつ使いやすい環境�通信環境(Wifi,Bluetooth,BLE,LPWA系)も扱いやすい

プロトタイプ→そのまま本番でも使われるケースを見ます。ラズパイとか

8

9 of 36

こちらの受け売り

興味を持ったら是非買いましょう!

2018年9月号 | Interface – CQ出版

ちなみに 2018年10月号は �きゅうり農家の小池さんが�記事書かれてます

2018年10月号 | Interface – CQ出版

9

10 of 36

IoT全盛期!

10

11 of 36

本日はPythonの�勉強会です

11

12 of 36

PythonでIoT�出来る?

12

13 of 36

IoT(組み込み)とPython

  • ラズパイはCPythonが扱える(arm系)
    • TensorFlowが乗るのでデータを集めつつML出来る
    • ピンも出てるのでセンサーを直に繋いでデータも取れる
    • 有線LAN,Wifi,BLEと使える
  • MicroPythonなるものの存在
    • mrubyのような組み込み系の処理系
    • mrubyより最近は元気っぽい(Googleトレンド調べ)
  • 過去にはpython-on-a-chip (他にもありそうだったけど見つけられず)

13

14 of 36

MicroPythonとは?

  • MicroPython - Python for microcontrollers
  • 組み込みボードで動くように開発されたPython処理系
  • REPLが使える(シリアル通信,WEBREPL)→シリアル通信でデモします
  • スクリプトファイルをボードに保存して実行させる機能
  • 対応ボードの専用ライブラリもある

14

15 of 36

MicroPythonが使えるボード

  • [!]PyBoard : 公式の対応ボード, kickstarter初
  • [!]ESP系 : ESP8266, ESP32
  • [!]micro:bit : BBCが開発した教育機関向けボード
  • Wipy: pycomというメーカーの ESP32ベースのボード�高レンジのWifi, LPWAのモジュール対応

派生として[!]CircuitPython : Adafruitというボードメーカーが自商品用に�カスタマイズしたMicroPython (いくつか日本でも扱いあり)

15

16 of 36

こういうボードたちです

16

17 of 36

IoT気軽にやるなら

MicroPythonがいいかも!

17

18 of 36

Pythonistaな皆さんなら

MicroPython!

18

19 of 36

というわけで

1週間ぐらい前MicroPython入門しました!

19

20 of 36

20

21 of 36

本日の目次

  • IoT流行ってるけど始めるにはどうする?
    • PythonとIoT
    • MicroPythonとは?
  • Dive Into MicroPython
    • Getting Started
    • Lチカしてみよう
    • Wifi接続, httpアクセス
  • ***?
  • まとめ

21

22 of 36

デモ多めです

詳しいセットアップなどはやってる暇が無いと思うので軽めに話しておきます

22

23 of 36

MicroPythonやるために必要なもの

  • ボード:今回は ESP32-DevKitC(ESP32のメーカー公式の開発ボード)
  • ブレットボード: 電子部品(素子)を繋いだり回路のプロトタイプをするMicroUSB: PCに接続して電源供給+シリアル通信でのやり取り用
  • 電子回路作成用の電子部品
    • LED: 光るものが一番分かりやすい
    • 抵抗(10kΩぐらい) LEDとボードの間に挟む. プルアップ抵抗として使う
  • Wifiつなぐためのルーター, テザリング端末

あと先程載せたESP32を特集しているInterface 2018/9月号があると安心

23

24 of 36

こういうものを用意しました

24

ブレットボード

LED

抵抗

ESP32

MicroUSB

25 of 36

ESP32でMicroPythonを動かす

動かすためには、ESP32に入ってる標準のファームから�MicroPythonが提供しているファームウェアの書き換えが必要

専用ツールのインストール, ファームの書き換えまでは説明のみです

25

26 of 36

ESP32でMicroPythonを動かす

(Pythonの仮想環境を用意して)2つのツールをインストール

  • pip install esptool #ESP系のファームを変えるためのツール
  • pip install adafruit-ampy #ampyコマンド,ユーティリティ,ファイル操作

公式で推奨するシリアル端末エミュレーターのpicocomを使います�screen,Teratermでも可

(macOS,homebrewなら) brew install picocom

26

27 of 36

ESP32でMicroPythonを動かす

PC/Mac/Linux <-> USBで接続

各種ドライバが必要な場合があります

  • Win: 専用(VCP)ドライバ必須 ? or COMポート経由で行けます→COM*
  • Mac: 専用(VCP)ドライバ必須 ? or /dev/ttyUSB*?
  • Linux: 最新カーネルなら認識する, /dev/ttyUSB*

ESP32-DevKitCにあるシリアルコントローラーは複数→ CP201x, FT232RL

27

28 of 36

ESP32でMicroPythonを動かす

ESP32には標準ではArduino向けのファームウェアが入ってるので�MicroPythonのファームウェアに変えます

ファームウェアをDL: esp32-20180511-v1.9.4.bin を今回使いました

MicroPython - Python for microcontrollers Firmware for ESP32 boards

28

29 of 36

ESP32でMicroPythonを動かす

(ただ長々書くとダレるので要点だけ書いておくと)

  • esptoolでMicroPythonのファームウェアを変えます
  • シリアル経由でREPLに入ります
  • ampyコマンドでファイルをアップロードしたりします

29

30 of 36

REPLからデモ

30

31 of 36

Lチカ�(ハードウェアでのHelloworld)�やってみます

31

32 of 36

Wifi接続してみます�テザリング先に接続

32

33 of 36

httpのget処理をデモしてみます

33

34 of 36

無事デモできた!?

34

35 of 36

本日の目次

  • IoT流行ってるけど始めるにはどうする?
    • PythonとIoT
    • MicroPythonとは?
  • Dive Into MicroPython
    • Getting Started
    • Lチカしてみよう
    • Wifi接続, httpアクセス
  • ***?
  • まとめ

35

36 of 36

最後のまとめ

  • IoT楽しいけど学習コストが多いと思ったらMicroPythonが�一つ選択肢になるかも
  • できないことより出来ることで攻めていきましょう
  • まずは買っておけば後で楽しめます!

IoTLTは年末中に1回は行くつもりなので�都内でタイミングが合えば是非一緒に行きましょう!

あと静岡でもIoTLTやりたい!

36