はじめに
本記事はESP8266を使って天気予報読み上げスピーカーが動くまでの過程を記録したものです。興味本位にmicropythonを使ったことで無用な苦労をしたので、同じ轍を踏まないように記録を公開します。
準備する
- 前回の記事 ESP8266でmicropythonを使う を参照ください。
配線する
LOLIN D1mini の場合
(ESP-WROOM-02に変更予定)
no | D1 mini Pin | DFPlayer Pin | 備考 |
---|---|---|---|
1 | 5v | vcc | 3.3vだと動かなかったので5V |
2 | G | GND | |
3 | D4 | RX | ESP8266のUART1はTXのみ有効なためRXは未接続※1 |
4 | - | SPK_1 | スピーカーに接続 |
5 | - | SPK_2 | スピーカーに接続 |
※1 micropython公式のESP8266のUART (シリアルバス)を参照しました。
タクトスイッチはGPIO14(D5)に接続しました。
3. 確認する
配線が完了したらESP8266 + DFPlayerの動作確認をします。
3.1. ここからmicropython-defplayerminiをダウンロードします。
(lavronさんに感謝!)
3.2. ライブラリはEPS32用なので少しだけ手を加えます。
ESP8266のUARTはPIN指定ができないようです。
dfplayermini.py
#self.uart = UART(1, 9600, tx=pin_TX, rx=pin_RX)
self.uart = UART(1, 9600)
3.3. SDカードに適当なmp3ファイルもしくはwavファイルを入れてDFPlayerにセットします。
3.4. WebREPLのSend a File機能を使ってESP8266にdfplayermini.pyを転送します。
3.5. ファイル転送を確認します。
>>> uos.listdir()
['a.py', 'boot.py', 'dfplayermini.py', 'webrepl_cfg.py']
3.6. ライブラリを動作させます。
pin番号を指定していますが先の修正でライブラリ内では未使用です。気になる場合はコンストラクタの引数を削除してください。
>>> from dfplayermini import Player
>>> music = Player(pin_TX=17, pin_RX=16)
>>> music.volume(15)
>>> music.play(1)
3.7. 無事音が鳴りました!
続いてタクトスイッチの動作を確認します。
3.8. WebREPLの挿入モードを使って下記のコードをコピペします。
Ctrl + Eで挿入モード開始、Ctrl + Dで保存終了です。
test.py
from machine import Pin
def test():
p0 = Pin(14, Pin.OUT)
while True:
p0_v = p0.value()
if p0_v == 1:
print("ON")
break
3.9. コピペした関数を実行します。
test.py
>>>
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== from machine import Pin
===
=== def test():
=== p0 = Pin(14, Pin.OUT)
=== while True:
=== p0_v = p0.value()
=== if p0_v == 1:
=== print("ON")
=== break
>>> test()
ON
>>>
3.10. タクトボタンを押下するとOKを表示して終了します。
3.11. これでボードの確認は完了です。
これでハード側の準備は完了しました。
次回はソフトの作成についての記事を投稿します。