top of page

Raspberry Pi Pico×DFPlayer×DHT20(温湿度計)×OLEDディスプレイ×タッチセンサーでしゃべる温湿度計を作成しました(MicroPython)

更新日:6月30日

Raspberry Pi Pico, DFPlayer, DHT20(温湿度計), OLEDディスプレイ, タッチセンサーでしゃべる温湿度計を作成しました。言語はMicroPythonを使用しています。


今回はタッチセンサーが反応したときにしゃべり、通常時にはOLEDディスプレイに温度と湿度を表示します。


Raspberry Pi PicoのMicroPythonのファームウェアをセットアップや開発環境の設定については下記をご覧ください。


【MicroPythonのファームウェアをセットアップ】

設定方法は下記のURLに記載されています。


また、当ブログでは下記の記事に記載しています。

今回の注意点としてはファームウェアをダウンロードする際にRaspberry Pi Pico のほうを選択してください。


【開発環境の設定】

当ブログでは下記の記事に記載しています。


 準備が整ったらUSBケーブルをコンピューターに接続します。

BOOTSELボタンを押しながら起動するのは初期設定のときのみで、普段は普通の接続で大丈夫です。


Thonnyを起動し、インタプリタとして「MicroPython(Raspberry Pi Pico)」を選択します。

これは、右下のボックスをクリックして行うことができます。



接続について

Raspberry Pi PicoのPINの配置は下記の通りです。



DFPlayerのPINの配置は下記の通りです。


DHT20(温湿度計)のPINの配置は下記の通りです。

秋月電子

販売コード :116732

PIN配置 ※メーカーのサイトから引用しています。



Raspberry Pi Picoと各モジュールとの接続は下記の通りです。


スピーカーとDFPlayer

+側⇔SPK_1

ー側⇔SPK_2


Raspberry Pi PicoとDFPlayer

GND⇔GND

3V3⇔VCC

GP0(UART 0 TX)⇔RX

GP1(UART 0 RX)⇔TX


Raspberry Pi PicoDHT20(温湿度計)

GND⇔GND

3V3⇔VCC

GP18(I2C 1 SDA)⇔SDA

GP19(I2C 1 SCL)⇔SCL


Raspberry Pi PicoとOLEDディスプレイ

GND⇔GND

3V3⇔VCC

GP17⇔SCL

GP16⇔SDA


Raspberry Pi Picoとタッチセンサー

GND⇔GND

3V3⇔VCC

GP2⇔I/O




プログラムについて


DHT20(温湿度計)を動かすにあたり今回は下記のリンクのDHT20のライブラリを使用しました。

こちらについてはRaspberry Pi Picoにインストールするのではなく、下記のリンクのプログラムをコピペしてdht20.pyの名前でRP2040マイコンボードキットに保存します。



DHT20(温湿度計)とDFPlayerのプログラム (タッチセンサーが反応したとき)

温湿度計の値は、温度は -100から100℃、湿度は0から100%の値を発言するようにしており、温度の場合は0以下の場合は先頭にマイナスを発言、0の場合はゼロを発言、100の場合はヒャクを発言、そのほかの場合は10の位と1の位の値に分けてそれぞれ発言するようにしています。


なお、DFPlayerの音声の順番はmicroSDに格納した順番になるので、複数のファイルを扱うときには順番通りに1つずつ格納する必要があります。


作成したプログラムは下記の通りです。


※個々の説明については、当ブログでは下記の記事に記載しています。



OLEDのプログラム

OLEDディスプレイを使う際はライブラリーをインストールする必要があります。

メニューバー ツール > パッケージを管理 を選択します。


ssd1306と検索して、micropythpn-ssd1306を選択後、インストールボタンをクリックします。


作成したプログラムは下記の通りです。

DHT20(温湿度計)とOLEDのプログラム(タッチセンサーが反応していないとき)


OLEDディスプレイのプログラム(タッチセンサーが反応したとき)



最終的にはプログラムをOLEDとDFPlayerの動作をthreadを使って並列処理しています。


プログラムは下記にになります。


動かした様子です。


閲覧数:111回

Comments


bottom of page