ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ④
ソースコードの概要
BME280センサーからBMP280.pyにより取得した気温、湿度、気圧データをBlynkアプリへ出力及び16文字2行のLCDに
出力するPythonコードです。スマホにBlynkアプリをインストールしてLCD表示器をI2C接続してることを前提とします。
また、以下のlibraryを同じフォルダーに収めるかパスを通します。
各ライブラリーのダウンロード
ここに利用させて頂いたBMP280.pyはbme280_sample.pyに少し手を加えたコードで「ArduinoやESP、Raspberryで遊ぼう」
さんの記事から引用しました。ページを開いた一番下側のBMP280モジュール (bmp280.py)をコピーさせて頂きました。感謝!
BMP280.pyのコピー先URL
GitHubからI2C_LCD_driver.pyを取得します。
I2C_LCD_driver.pyのダウンロード先URL
GitHubからBlynkLib.pyを取得します。
BlynkLib.pyのダウンロード先URL
Blynk_BME280.py
Raspi Zero WHにセットの自作便利HATを介してI2C接続したBME280からのデータをLCDとスマホに配信しています。
スマホにはBlynkからネット経由にてデータが送られるのでインターネットが届く所なら何処でも受信できます。
今回はスマホへの単なるデータ表示のみですが、Blynkアプリの応用次第で受信したデータを元にスマホからラズパイを
コントロールするなど実用的な操作が簡単に行えます。

皆様の参考になれば幸いです。
BME280センサーからBMP280.pyにより取得した気温、湿度、気圧データをBlynkアプリへ出力及び16文字2行のLCDに
出力するPythonコードです。スマホにBlynkアプリをインストールしてLCD表示器をI2C接続してることを前提とします。
また、以下のlibraryを同じフォルダーに収めるかパスを通します。
各ライブラリーのダウンロード
ここに利用させて頂いたBMP280.pyはbme280_sample.pyに少し手を加えたコードで「ArduinoやESP、Raspberryで遊ぼう」
さんの記事から引用しました。ページを開いた一番下側のBMP280モジュール (bmp280.py)をコピーさせて頂きました。感謝!
BMP280.pyのコピー先URL
GitHubからI2C_LCD_driver.pyを取得します。
I2C_LCD_driver.pyのダウンロード先URL
GitHubからBlynkLib.pyを取得します。
BlynkLib.pyのダウンロード先URL
Blynk_BME280.py
import BlynkLib |
Raspi Zero WHにセットの自作便利HATを介してI2C接続したBME280からのデータをLCDとスマホに配信しています。
スマホにはBlynkからネット経由にてデータが送られるのでインターネットが届く所なら何処でも受信できます。
今回はスマホへの単なるデータ表示のみですが、Blynkアプリの応用次第で受信したデータを元にスマホからラズパイを
コントロールするなど実用的な操作が簡単に行えます。

皆様の参考になれば幸いです。
スポンサーサイト
ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ③
16文字2行のLCDに測定値を表示する
モニターが無くても測定値が判るLCD表示器を付けてみました。
ラズベリーパイで遊ぶ その1 Blynk LCD Message Boardにて紹介しましたRaspi ZeroとLCD表示器のセットに
BME280を接続しました。LCDの上段には年月日と時刻を表示し、下段に温度、湿度、大気圧を表示させました。

Blynkアプリを使ってスマホに測定値を表示する
外出先でも測定値が見れるようにBlynkアプリのValue Displayに測定値を表示させます。
下の画像が気温、湿度、大気圧を表示したスマホのスクリーンショットです。
Blynkアプリのパーツは2,000Energyまで無料で使えます。無料範囲内で出来るだけ多くのパーツが使えるように
Energy単価が小さいValue Displayを1個使って温度、湿度、大気圧を1行に表示するように工夫しました。
ここでは単に値の表示だけですが、Blynkアプリの使い方を工夫すれば便利なことが簡単に実現します。
ほんの一例ですが、温室やビニールハウスの室温や湿度を目安に換気窓の開閉や散水などが、Blynkアプリの
ON/OFFボタンパーツを追加し、ラズパイのGPIO端子にリーレーユニットを設けるとスマホから遠隔操作が行えます。

Blynkアプリの設定
Blynkアプリの使い方は、ラズベリーパイで遊ぶ その1 Blynk LCD Message Boardを参考にして下さい。
ここでは、スマホに測定値を表示するValue Displayの設定について説明します。
①左画像:Widget Boxを開き、赤丸で示したValue Displayを選択します。
②中央画像:Value Display設定画面に赤丸で示したValueとV0を選択します。
③右画像:次のValue Display Settings画面で赤丸のV0を確認し、右下ボックスの矢印で5secに設定します。
V0上側のタイトルはスマホのValue Displayに小さく表示されます。英文で気温、湿度、気圧を記入しましたが任意です。

次回はソースコードを記します。
モニターが無くても測定値が判るLCD表示器を付けてみました。
ラズベリーパイで遊ぶ その1 Blynk LCD Message Boardにて紹介しましたRaspi ZeroとLCD表示器のセットに
BME280を接続しました。LCDの上段には年月日と時刻を表示し、下段に温度、湿度、大気圧を表示させました。

Blynkアプリを使ってスマホに測定値を表示する
外出先でも測定値が見れるようにBlynkアプリのValue Displayに測定値を表示させます。
下の画像が気温、湿度、大気圧を表示したスマホのスクリーンショットです。
Blynkアプリのパーツは2,000Energyまで無料で使えます。無料範囲内で出来るだけ多くのパーツが使えるように
Energy単価が小さいValue Displayを1個使って温度、湿度、大気圧を1行に表示するように工夫しました。
ここでは単に値の表示だけですが、Blynkアプリの使い方を工夫すれば便利なことが簡単に実現します。
ほんの一例ですが、温室やビニールハウスの室温や湿度を目安に換気窓の開閉や散水などが、Blynkアプリの
ON/OFFボタンパーツを追加し、ラズパイのGPIO端子にリーレーユニットを設けるとスマホから遠隔操作が行えます。

Blynkアプリの設定
Blynkアプリの使い方は、ラズベリーパイで遊ぶ その1 Blynk LCD Message Boardを参考にして下さい。
ここでは、スマホに測定値を表示するValue Displayの設定について説明します。
①左画像:Widget Boxを開き、赤丸で示したValue Displayを選択します。
②中央画像:Value Display設定画面に赤丸で示したValueとV0を選択します。
③右画像:次のValue Display Settings画面で赤丸のV0を確認し、右下ボックスの矢印で5secに設定します。
V0上側のタイトルはスマホのValue Displayに小さく表示されます。英文で気温、湿度、気圧を記入しましたが任意です。



次回はソースコードを記します。
ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ②
気温、湿度、気圧センサーについて
BME280には各種製品が販売されていますが、今回使用の製品は前回に画像にて紹介のAmazonで購入した製品です。
4ピンタイプのI2C接続専用BME280の拡大画像です。この製品の入力電圧はは3.3V~5Vに対応していますが、
私はラズパイ40ピン端子の1番ピン3.3V=VIN,、3番ピン=SDA、5番ピン=SCL、9番ピン=GNDへ接続して使いました。

この製品の初期I2Cアドレスは0x76で、次に紹介するスイッチサイエンス社のサンプルソースにそのまま使えます。
I2Cアドレスが他の機器と競合する場合は、アドレス設定ジャンパーにて変更できます。
ここからサンプルソース掲載GitHubのURLを開きます。
注意:bme280_sample.pyは、python2用なのでPython3では95行目、103行目、117行目のprint文に()を付けます。
I2C接続が出来たらBME280のテスト
先ずは、BME280/Python27/bme280_sample.pyをダウンロードさせて頂き、センサー単体でのテストを行います。
bme280_sample.pyをThonny python IDEなどにコピーして実行するとShellに次のように測定データが表示されます。
キーボードのスペースキーを押す度に新しいデーターが表示されます。

次回は測定データーをLCDに表示とBlynkアプリの設定です。
BME280には各種製品が販売されていますが、今回使用の製品は前回に画像にて紹介のAmazonで購入した製品です。
4ピンタイプのI2C接続専用BME280の拡大画像です。この製品の入力電圧はは3.3V~5Vに対応していますが、
私はラズパイ40ピン端子の1番ピン3.3V=VIN,、3番ピン=SDA、5番ピン=SCL、9番ピン=GNDへ接続して使いました。

この製品の初期I2Cアドレスは0x76で、次に紹介するスイッチサイエンス社のサンプルソースにそのまま使えます。
I2Cアドレスが他の機器と競合する場合は、アドレス設定ジャンパーにて変更できます。
ここからサンプルソース掲載GitHubのURLを開きます。
注意:bme280_sample.pyは、python2用なのでPython3では95行目、103行目、117行目のprint文に()を付けます。
95 print("pressure : %7.2f hPa" % (pressure/100))
103 print("temp : %-6.2f ℃" % (temperature))
117 print("hum : %6.2f %" % (var_h))
I2C接続が出来たらBME280のテスト
先ずは、BME280/Python27/bme280_sample.pyをダウンロードさせて頂き、センサー単体でのテストを行います。
bme280_sample.pyをThonny python IDEなどにコピーして実行するとShellに次のように測定データが表示されます。
キーボードのスペースキーを押す度に新しいデーターが表示されます。

次回は測定データーをLCDに表示とBlynkアプリの設定です。
ラズベリーパイで遊ぶ その4 気温・湿度・気圧センサーを繋ぐ ①
安価な気温・湿度・大気圧が測定できるBME280を使ってみた!
先に購入した湿度の測定できないBMP280は、気温がかなり高目に出るので補正して使ってたが湿度も測定できる
BME280を試してみました。この製品は温度の誤差が少なく安定しているようです。
単に測定値を見るのでは面白くないので、先に作ったLCDメーッセージボードを流用してセンサの値を見れるようにし、
更にBlynkを使ってスマホで測定値が見れるようにもしました。画像の右側がスマホに表示した測定値です。
スマホのBlynkアプリにON-OFFボタンを付けて、室温を測定して出先から部屋のエアコンの操作も可能です。

pi Zeroを使い自作HATにBME280を差し込んで使います。今回使ったBME280は4ピンタイプなのでI2C接続専用です。
Amazonの安い中国製品にはリスクを覚悟してたが、3個入りを購入したら1個が不良品でした。

次回はソフトウエアーについて記します。
先に購入した湿度の測定できないBMP280は、気温がかなり高目に出るので補正して使ってたが湿度も測定できる
BME280を試してみました。この製品は温度の誤差が少なく安定しているようです。
単に測定値を見るのでは面白くないので、先に作ったLCDメーッセージボードを流用してセンサの値を見れるようにし、
更にBlynkを使ってスマホで測定値が見れるようにもしました。画像の右側がスマホに表示した測定値です。
スマホのBlynkアプリにON-OFFボタンを付けて、室温を測定して出先から部屋のエアコンの操作も可能です。

pi Zeroを使い自作HATにBME280を差し込んで使います。今回使ったBME280は4ピンタイプなのでI2C接続専用です。
Amazonの安い中国製品にはリスクを覚悟してたが、3個入りを購入したら1個が不良品でした。

次回はソフトウエアーについて記します。
ラズベリーパイで遊ぶ その3 WAV音源ピアノ USBキーボード編
ラズパイ4に接続したUSBキーボードを使いwav音源ピアノを弾く!
前回紹介のI2CKeyPadに替えてUSBキーボードを使った方法です。 こちらの方が外付け部品が要らずにキーボードの
テンキーを使って疑似ピアノが楽しめます。下はラズパイ4にアンプ付きスピーカーとUSBキーボードを繋いだテストの様子

ここで使えるUSBキーボードはフルサイズのテンキー付きの他、ショートサイズでNumlockキーを押すと一部のキーが
テンキーとして使えるタイプ、専用テンキーボードなどです。
USBキーボードのテンキーをラズパイの外部スイッチとして使う方法は、ラズパイの実験に応用すれば重宝すると思います。
このアイデアは、AnitesさんのRaspberry PiのUSBキーボードを応用にさせて頂きました。
USBキーボードを使う準備
Pythonプロジェクトには「evdev」が既に入ってるので、コマンドラインから「pip3 install evdev」を実行します。
使用するキーボードのDEVICE名を調べる方法。
ラズパイにキーボードをセットしてコマンドラインから「ls /dev/input/by-id/」を実行するとDEVICE名が表示されます。
ソースコードのDEVICE = "/dev/input/by-id/に続けて調べたDEVICE名を記入します。

音源のwavファイルのダウンロードについては前回I2CKeyPadの記事を参考にして下さい。
wavファイルはフォルダーwav_datに格納して以下のkeymap.py、usb_kb.piano.pyと同じディレクトリーに置きます。
キーコードマップ 注意:キーボードによってコードが少し異なる場合が有ります。
keymap.py
ソースコード
usb_kb_piano.py
動画をご覧下さい。
曲が弾けないのでドレミだけですがご覧下さい。
前回紹介のI2CKeyPadに替えてUSBキーボードを使った方法です。 こちらの方が外付け部品が要らずにキーボードの
テンキーを使って疑似ピアノが楽しめます。下はラズパイ4にアンプ付きスピーカーとUSBキーボードを繋いだテストの様子

ここで使えるUSBキーボードはフルサイズのテンキー付きの他、ショートサイズでNumlockキーを押すと一部のキーが
テンキーとして使えるタイプ、専用テンキーボードなどです。
USBキーボードのテンキーをラズパイの外部スイッチとして使う方法は、ラズパイの実験に応用すれば重宝すると思います。
このアイデアは、AnitesさんのRaspberry PiのUSBキーボードを応用にさせて頂きました。
USBキーボードを使う準備
Pythonプロジェクトには「evdev」が既に入ってるので、コマンドラインから「pip3 install evdev」を実行します。
使用するキーボードのDEVICE名を調べる方法。
ラズパイにキーボードをセットしてコマンドラインから「ls /dev/input/by-id/」を実行するとDEVICE名が表示されます。
ソースコードのDEVICE = "/dev/input/by-id/に続けて調べたDEVICE名を記入します。

音源のwavファイルのダウンロードについては前回I2CKeyPadの記事を参考にして下さい。
wavファイルはフォルダーwav_datに格納して以下のkeymap.py、usb_kb.piano.pyと同じディレクトリーに置きます。
キーコードマップ 注意:キーボードによってコードが少し異なる場合が有ります。
keymap.py
|
ソースコード
usb_kb_piano.py
|
動画をご覧下さい。
曲が弾けないのでドレミだけですがご覧下さい。
皆様の参考になれば幸いです。
ラズベリーパイで遊ぶ その2 WAV音源ピアノ I2CKeyPad編
ラズパイ4にI2C接続したキーパッドを使いwav音源ピアノを弾く!

私は音痴で子供のころから楽器で遊んだことが無く音楽とは無縁でした。
ラズパイを始めてから電源+2本の線を繋ぐだけでGPIOが節約出来るI2C通信に興味を持ち、安価なI2C
エキスパンダーPCF8574を入手しました。
このエキスパンダーに4X4マトリックスキーボードを付けたので何かに応用したいと思い、ヒントを探してたら
ラズベリーパイORGの「今日は何を作りたいですか?」コーナーにGPIO music boxが目に
留まりました。ここでは、4個のボタンスイッチをGPIOに接続し、ボタンを押すとドラムの音を再生する簡単な
仕組みでしたが、I2Cを使えばGPIOの数に制限されずに簡単にボタンを増やすことが出来ます。
そこで、今回は16個まで使えるキーパッドを使って模擬ピアノを試しました。但し、ピアノ音源のwavソースが
ドレミファソラシドの8音階しか入手出来なかったのでほんのお遊び程度です。
キーパッドの使い方やソースコードはKI04.comのチュートリアルを参考にさせて頂きました。
必要な部品
ラズベリーパイ:Pi4を使ってテストしました。
I2CエキスパンダーPCF8574:通販で1個150円程度です。
このエキスパンダーはアドレスの設定をジャンパーピンを差し替えることで0x20から0x27を選べます。
余談ですが、エキスパンダーのアドレスを変えて直列接続(daisy chain)すればもっと多くのキーボードが使えます。
I2Cのアドレスを調べる方法は前回のLCDメッセージボードを参考にして下さい。
4X4マトリックスキーボード:通販で1個125円でした。
I2CエキスパンダーPCF8574と4X4マトリックスキーボードの接続図

wav音源の準備
先ずは、先に紹介しましたGPIO music boxのtutorialを一通りご覧下さい。音源の再生にpygameを使います。
私はフリー音楽素材魔王魂トップページのピアノ(wav)1-1ド~1-8ドをダウンロードして使わせて頂きました。
ダウンロードしたwavファイルはフォルダーwav_datに格納して次の16key_Piano.pyと同じディレクトリーに置きます。
ソースコード
動画をご覧下さい。
撮影のセットが悪く3脚とテーブルが接触してノイズが入ってしまった!。
次回はキーパッドに替え、ラズパイ4につないだUSBキーボードを使う方法を紹介します。

私は音痴で子供のころから楽器で遊んだことが無く音楽とは無縁でした。
ラズパイを始めてから電源+2本の線を繋ぐだけでGPIOが節約出来るI2C通信に興味を持ち、安価なI2C
エキスパンダーPCF8574を入手しました。
このエキスパンダーに4X4マトリックスキーボードを付けたので何かに応用したいと思い、ヒントを探してたら
ラズベリーパイORGの「今日は何を作りたいですか?」コーナーにGPIO music boxが目に
留まりました。ここでは、4個のボタンスイッチをGPIOに接続し、ボタンを押すとドラムの音を再生する簡単な
仕組みでしたが、I2Cを使えばGPIOの数に制限されずに簡単にボタンを増やすことが出来ます。
そこで、今回は16個まで使えるキーパッドを使って模擬ピアノを試しました。但し、ピアノ音源のwavソースが
ドレミファソラシドの8音階しか入手出来なかったのでほんのお遊び程度です。
キーパッドの使い方やソースコードはKI04.comのチュートリアルを参考にさせて頂きました。
必要な部品
ラズベリーパイ:Pi4を使ってテストしました。
I2CエキスパンダーPCF8574:通販で1個150円程度です。
このエキスパンダーはアドレスの設定をジャンパーピンを差し替えることで0x20から0x27を選べます。
余談ですが、エキスパンダーのアドレスを変えて直列接続(daisy chain)すればもっと多くのキーボードが使えます。
I2Cのアドレスを調べる方法は前回のLCDメッセージボードを参考にして下さい。
4X4マトリックスキーボード:通販で1個125円でした。
I2CエキスパンダーPCF8574と4X4マトリックスキーボードの接続図

wav音源の準備
先ずは、先に紹介しましたGPIO music boxのtutorialを一通りご覧下さい。音源の再生にpygameを使います。
私はフリー音楽素材魔王魂トップページのピアノ(wav)1-1ド~1-8ドをダウンロードして使わせて頂きました。
ダウンロードしたwavファイルはフォルダーwav_datに格納して次の16key_Piano.pyと同じディレクトリーに置きます。
ソースコード
#!/usr/bin/env python |
動画をご覧下さい。
撮影のセットが悪く3脚とテーブルが接触してノイズが入ってしまった!。
次回はキーパッドに替え、ラズパイ4につないだUSBキーボードを使う方法を紹介します。
皆様の参考になれば幸いです。
ラズベリーパイで遊ぶ その1 Blynk LCD Message Board 後編
Blynk LCD Message Board 後編 (前編と併せてご覧下さい)
ソフトウエアの説明
下の画像はアクリル板を加工して作ったLCDメッセージボードで、ラズパイZeroとHAT基板を載せてます。
スマホアプリBlynkの設定について
先ず、iPhone(App Store)又はAndroid(google Play)からスマホにBlynk-IoT for Arduino, ESP32をダウンロードして
インストールを行います。使用するパーツ(Widget)を沢山使うと有料になりますが、ここで扱う程度は無料です。
左上から順番に①・・・
lcdsample.confのI2Cアドレス等の設定
Blynk_LCD_Messageのソースコード
同じディレクトリーにBlynk_LCD_Message.py、BlynkLib.py、HD44780.py、conf/lcdsample.confを入れます。
Blynk_LCD_Message.py
使い方
①左側画像のようにスマホBlynkアプリのText Input Boxにメッセージを入力して送信します。
メッセージに使える文字はHD44780.pyに定義したアルファベットの大文字、小文字、英数記号、カタカナ
のみですが、カタカナ入力は全角で入力しても半角カタカナに変換して表示されるのでとても便利です。
間違えてひらがなや漢字を入力しても、定義された文字以外はパスして表示せずにエラーが出ません。
16文字を超える文字はオーバフローして表示しません。
②メッセージが届いたら確認ボタンを押すと、右画像のようにスマホ側へメッセージが届いたことを知らせます。

スマホから届いたメッセージがLCDの2行目にに表示されると同時にブザーが鳴って着信を知らせます。
1行目の年月日と時刻は常時表示としました。

ソフトウエアの説明
下の画像はアクリル板を加工して作ったLCDメッセージボードで、ラズパイZeroとHAT基板を載せてます。
スマホアプリBlynkの設定について
先ず、iPhone(App Store)又はAndroid(google Play)からスマホにBlynk-IoT for Arduino, ESP32をダウンロードして
インストールを行います。使用するパーツ(Widget)を沢山使うと有料になりますが、ここで扱う程度は無料です。
左上から順番に①・・・
①インストルール初期画面のアカウント作成を選択します。
②メールアドレスとパスワードを登録します。
②メールアドレスとパスワードを登録します。
③この画面の一番下Email allをクリックすると登録したEメールに「AUTH TOKEN」が送られてきます。
注意:この「AUTH TOKEN」が後で作成するソースコードに必要となります。
④プロジェクト名の入力とデバイス選択をRaspberry pi Zero Wが無いのでRaspberry pi 3Bを選びCreateボタンを押す。

⑤プロジェクト画面が開いたら右上の丸✙のを選択するとwidget Boxが開きます。
⑥widget Boxの下の方にText inputを選択しするとText input Setting画面が開きます。
⑦Text input Setting画面ではPINを選択します。
⑧次にSelect pinのVitualとV0を選択してOKをクリックするとText input Settin画面に戻ります。

⑨この画面下側のCHARACTER LIMIT枠に50から100位を入力し、一番上左端の←をクリックします。
⑩プロジェクトと画面に表示されたText inputボックスを見易い位置に移動と幅の調整をします。
⑪次はWidget Boxを開き、着信をスマホに通知するパーツNotificationを追加します。
⑫NotificationをText input Boxの下辺りに配置します。Notificationは、メッセージが届いた後、本体拡張基板に
追加したタクトスイッチを押すと、スマホの画面に確認のメッセージが表示され、メッセージが届いたことを通知します。
通知はOKをタップすると消えます。

Blynkライブラリーのダウンロード
BlynkLib.pyのダウンロード先URL
カタカナを表示のの準備
もんごんたさんのホームページ「LCD1602Aや2004AをI2C接続で使いこなす」
ハード編とソフト編を参考にカタカナの表示に必要なソースコードHD44780.pyを使わせて頂きました。感謝!
必要なソースファイルは次のGitHubからClone出来ます。 GitHub mongonta0716/hd44780
LCDモジュールの設定やラズパイの設定もハード編、ソフト編で詳しく説明されているので参考にして下さい。
注意:この「AUTH TOKEN」が後で作成するソースコードに必要となります。
④プロジェクト名の入力とデバイス選択をRaspberry pi Zero Wが無いのでRaspberry pi 3Bを選びCreateボタンを押す。




⑤プロジェクト画面が開いたら右上の丸✙のを選択するとwidget Boxが開きます。
⑥widget Boxの下の方にText inputを選択しするとText input Setting画面が開きます。
⑦Text input Setting画面ではPINを選択します。
⑧次にSelect pinのVitualとV0を選択してOKをクリックするとText input Settin画面に戻ります。




⑨この画面下側のCHARACTER LIMIT枠に50から100位を入力し、一番上左端の←をクリックします。
⑩プロジェクトと画面に表示されたText inputボックスを見易い位置に移動と幅の調整をします。
⑪次はWidget Boxを開き、着信をスマホに通知するパーツNotificationを追加します。
⑫NotificationをText input Boxの下辺りに配置します。Notificationは、メッセージが届いた後、本体拡張基板に
追加したタクトスイッチを押すと、スマホの画面に確認のメッセージが表示され、メッセージが届いたことを通知します。
通知はOKをタップすると消えます。




Blynkライブラリーのダウンロード
BlynkLib.pyのダウンロード先URL
カタカナを表示のの準備
もんごんたさんのホームページ「LCD1602Aや2004AをI2C接続で使いこなす」
ハード編とソフト編を参考にカタカナの表示に必要なソースコードHD44780.pyを使わせて頂きました。感謝!
必要なソースファイルは次のGitHubからClone出来ます。 GitHub mongonta0716/hd44780
LCDモジュールの設定やラズパイの設定もハード編、ソフト編で詳しく説明されているので参考にして下さい。
lcdsample.confのI2Cアドレス等の設定
[lcd] |
Blynk_LCD_Messageのソースコード
同じディレクトリーにBlynk_LCD_Message.py、BlynkLib.py、HD44780.py、conf/lcdsample.confを入れます。
Blynk_LCD_Message.py
#!/usr/bin/python3 |
使い方
①左側画像のようにスマホBlynkアプリのText Input Boxにメッセージを入力して送信します。
メッセージに使える文字はHD44780.pyに定義したアルファベットの大文字、小文字、英数記号、カタカナ
のみですが、カタカナ入力は全角で入力しても半角カタカナに変換して表示されるのでとても便利です。
間違えてひらがなや漢字を入力しても、定義された文字以外はパスして表示せずにエラーが出ません。
16文字を超える文字はオーバフローして表示しません。
②メッセージが届いたら確認ボタンを押すと、右画像のようにスマホ側へメッセージが届いたことを知らせます。


スマホから届いたメッセージがLCDの2行目にに表示されると同時にブザーが鳴って着信を知らせます。
1行目の年月日と時刻は常時表示としました。

皆様の参考になれば幸いです。
Raspberry pi 用便利HATの紹介 その2
ラズパイ用HAT基板 その2
先に作ったラズパイZero用のHAT基板を差し替えて共用してたが、ラズパイ4専用として少し大きいHAT基板に
4チャンネル I2C ロジック レベル変換双方向モジュールを組み込んで組み立てました。
回路図

完成したHAT基板
圧電ブザーの右横が 5個290円(送料込み)で購入したロジックレベル変換双方向モジュールです。
このモジュールは4チャンネルですが、ここでは2チャンネルのみ使用。コネクターは3.3V系と5V系を夫々に設けました。
これで、5V系のI2C 機器を安心して使えるようになりました。使用したHAT基板は秋月電子にて150円で購入しました。

皆様の参考になれば幸いです。
先に作ったラズパイZero用のHAT基板を差し替えて共用してたが、ラズパイ4専用として少し大きいHAT基板に
4チャンネル I2C ロジック レベル変換双方向モジュールを組み込んで組み立てました。
回路図

完成したHAT基板
圧電ブザーの右横が 5個290円(送料込み)で購入したロジックレベル変換双方向モジュールです。
このモジュールは4チャンネルですが、ここでは2チャンネルのみ使用。コネクターは3.3V系と5V系を夫々に設けました。
これで、5V系のI2C 機器を安心して使えるようになりました。使用したHAT基板は秋月電子にて150円で購入しました。

皆様の参考になれば幸いです。
ラズベリーパイで遊ぶ その1 Blynk LCD Message Board 前編
Blynkのメッセージ表示にI2C 16X2LCDを使う
先に紹介しました。Blynkを使った8X8X8 LEDドットマトリックスメッセージボードを安価なI2C16X2 LCD表示器に
置き換えてみました。
Blynkを使ってスマホからメッセージを送るとラズパイに接続した16文字2行のLCD表示器にメッセージが届きます。
1行目には年月日と時刻を表示し、2行目に英数記号とカタカナのメッセージを表示します。
スマホから間違って英数記号やカタカナ以外の文字を送ってもエラーとならず、その部分のみ表示しません。

使用部品は、1602 LCD表示器+I2C変換モジュール(セット物と別売が有り、何れも数百円程度にて入手)
私があまり気にしないので5V駆動のLCDを使いましたが、気になる方は3.3V駆動のLCDを使うかI2Cラインに
双方向ロジックレベル変換モジュールを挿入してください。

上の画像では、先に作った便利HATを使ってますが、下のFritzing接続図では必要部分のみ結線しています。

I2Cインターフェースを使うための準備
Rasbianのdesktopがインストールされている場合は、設定⇒Raspberry piの設定⇒インターフェースを開き、
I2Cを有効にチェックした後に再起動するとI2Cが使えます。

もし、動かない場合はコマンドラインから”sudo raspi-config”と入力すれば下図のraspi_config画面が開きます。
5番目のInterfacing Options選択します。

P5 I2Cを選択します。

yes(はい)を選択します。

OK(了解)を選択してfinish(終了)します。

LCDのI2C変換モジュールのアドレスを調べる方法
LCDの各Vcc,GND,SDA,SCLを接続後起動、コマンドラインからi2cdetect -y 1と入力すると下図のようにアドレスが
表示されます。この場合は27即ち0x27だと解ります。

次回、後編ではソフトウェアについて説明します。
皆様の参考になれば幸いです。
先に紹介しました。Blynkを使った8X8X8 LEDドットマトリックスメッセージボードを安価なI2C16X2 LCD表示器に
置き換えてみました。
Blynkを使ってスマホからメッセージを送るとラズパイに接続した16文字2行のLCD表示器にメッセージが届きます。
1行目には年月日と時刻を表示し、2行目に英数記号とカタカナのメッセージを表示します。
スマホから間違って英数記号やカタカナ以外の文字を送ってもエラーとならず、その部分のみ表示しません。

使用部品は、1602 LCD表示器+I2C変換モジュール(セット物と別売が有り、何れも数百円程度にて入手)
私があまり気にしないので5V駆動のLCDを使いましたが、気になる方は3.3V駆動のLCDを使うかI2Cラインに
双方向ロジックレベル変換モジュールを挿入してください。

上の画像では、先に作った便利HATを使ってますが、下のFritzing接続図では必要部分のみ結線しています。

I2Cインターフェースを使うための準備
Rasbianのdesktopがインストールされている場合は、設定⇒Raspberry piの設定⇒インターフェースを開き、
I2Cを有効にチェックした後に再起動するとI2Cが使えます。

もし、動かない場合はコマンドラインから”sudo raspi-config”と入力すれば下図のraspi_config画面が開きます。
5番目のInterfacing Options選択します。

P5 I2Cを選択します。

yes(はい)を選択します。

OK(了解)を選択してfinish(終了)します。

LCDのI2C変換モジュールのアドレスを調べる方法
LCDの各Vcc,GND,SDA,SCLを接続後起動、コマンドラインからi2cdetect -y 1と入力すると下図のようにアドレスが
表示されます。この場合は27即ち0x27だと解ります。

次回、後編ではソフトウェアについて説明します。
皆様の参考になれば幸いです。
Raspberry pi 用便利HATの紹介
先月、初めてラズパイしZeroを購入してPythonの勉強を始め、最近Raspi4を入手しました。
各種センサーやI2Cモジュールを繋いで遊んでますが、有れば便利なHAT(拡張基板)を作りました。
ここに使ったHAT基板は秋月電子にて1枚100円で購入出来ます。基板左側の4pinコネクターはI2C用です。

回路図
LED8個、タクトスイッチ3個、圧電ブザー1個、I2C用コネクター1個の簡単な回路です。
自作が苦手な方は、スイッチサイエンスにて販売のMaker pHAT(1252円)を購入して下さい。
LEDをスクロールさせたり出来るサンプルコードが提供されていて、初めて使う方にも有効だと思います。

HAT側面の様子
ケースに入れると本体基板の40Pinプラグまで届かないので、ラズパイ用スタッキングコネクターで下駄をはかせてます。
このスタッキングコネクターは秋月電子にて1個150円でした。
右上の黒い棒状の突起物はI2Cの電源電圧5Vと3.3V切り替え用のジャンパーピンです。

お気に入りのアクリルケースに載せて使います。
HAT基板は差し込んでるだけで固定していません。スペーサーはスイッチを押した時に基板がたわむのを防ぐために
取り付けています。

アクリルケースの手前側から見た様子
HAT基板にも40pinヘッダーを取り付けてあるので、ブレッドボードにリボンケーブルを繋いで実験する時もコネクターの
取り外しが簡単で利便性が有ります。

アクリルケースの後ろ側から見た様子
特にI2C用の専用コネクターを取り付けたのでLCDや各種センサーのテストにはとても便利です。

皆様の参考になれば幸いです。
各種センサーやI2Cモジュールを繋いで遊んでますが、有れば便利なHAT(拡張基板)を作りました。
ここに使ったHAT基板は秋月電子にて1枚100円で購入出来ます。基板左側の4pinコネクターはI2C用です。

回路図
LED8個、タクトスイッチ3個、圧電ブザー1個、I2C用コネクター1個の簡単な回路です。
自作が苦手な方は、スイッチサイエンスにて販売のMaker pHAT(1252円)を購入して下さい。
LEDをスクロールさせたり出来るサンプルコードが提供されていて、初めて使う方にも有効だと思います。

HAT側面の様子
ケースに入れると本体基板の40Pinプラグまで届かないので、ラズパイ用スタッキングコネクターで下駄をはかせてます。
このスタッキングコネクターは秋月電子にて1個150円でした。
右上の黒い棒状の突起物はI2Cの電源電圧5Vと3.3V切り替え用のジャンパーピンです。

お気に入りのアクリルケースに載せて使います。
HAT基板は差し込んでるだけで固定していません。スペーサーはスイッチを押した時に基板がたわむのを防ぐために
取り付けています。

アクリルケースの手前側から見た様子
HAT基板にも40pinヘッダーを取り付けてあるので、ブレッドボードにリボンケーブルを繋いで実験する時もコネクターの
取り外しが簡単で利便性が有ります。

アクリルケースの後ろ側から見た様子
特にI2C用の専用コネクターを取り付けたのでLCDや各種センサーのテストにはとても便利です。

皆様の参考になれば幸いです。
Raspberry pi4が届いた!
予約していたラズパイ4が27日朝に届きました。
先に紹介しましたLEDマトリックスディスプレイにラズパイZeroを使ったのが切っ掛けでラズパイに嵌り、技適マークが
付いた製品の販売を予約していました。

基板表側は先に販売されていた技適マークの無い製品と同じです。

基板裏側には、申し訳程度の大きさで技適マークが印刷されていました。

先に準備していたファン付きアクリルケースに入れて早速動かせてみました。
このケースはAMAZONにて購入、3Aの専用電源とセット(送料込み1999円)ですが、評判が良くて現在は在庫なし。

ラズパイ4を使ってみての感想ですが、先に使ったZeroの処理能力が低かっただけにビックリするほど早く、
WebやYouTubeの閲覧もストレスなく出来る小さな!小さな!PCとしても使えそうです。
先ずは、覚え始めたPythonの練習を兼ねて遊んでみたいと思います。

皆様の参考になれば幸いです。
先に紹介しましたLEDマトリックスディスプレイにラズパイZeroを使ったのが切っ掛けでラズパイに嵌り、技適マークが
付いた製品の販売を予約していました。

基板表側は先に販売されていた技適マークの無い製品と同じです。

基板裏側には、申し訳程度の大きさで技適マークが印刷されていました。

先に準備していたファン付きアクリルケースに入れて早速動かせてみました。
このケースはAMAZONにて購入、3Aの専用電源とセット(送料込み1999円)ですが、評判が良くて現在は在庫なし。

ラズパイ4を使ってみての感想ですが、先に使ったZeroの処理能力が低かっただけにビックリするほど早く、
WebやYouTubeの閲覧もストレスなく出来る小さな!小さな!PCとしても使えそうです。
先ずは、覚え始めたPythonの練習を兼ねて遊んでみたいと思います。

皆様の参考になれば幸いです。
LEDマトリックスモジュールで遊ぶ その4(最終回) Raspberry pi 編
その4 Raspberry pi Zero WとBlynkを使ったメッセージボードの紹介
Cytron社のRaspberry pi Zeroを使ったtutorialページを参考にさせて頂きました。
2019年11月24日
Raspberry pi Zero WのOSインストール方法は、インターネット上にたくさん紹介されているのでここでは省略します。
私自身初めてのPaspberry piと初めてのPythonですが、購入から3週間で工作を含めて完成出来ました。
ここでは、LEDマトリックスモジュールで遊ぶ その3と重複する部分は省略しています。その3と併せてご覧下さい。
今度のメッセージボードの特長は通常時計が表示され、メッセージ信号が入るとBeep音を発し、メッセージを
スクロール表示します。tutorialではマトリックスボードが1枚(8X8X4)ですが、見易くするために2枚連結しました。

回路図
tutorialではMaker pHAT(拡張基板)を使っていますが、ここでは秋月電子の1枚100円の拡張基板に必要な部品を
組み込んで使いました。 メッセージ着信時に送信側スマホへ確認を通知するためのスイッチを追加しました。

背面1 今回も前回同様にアクリル板をCNC加工して作りました。左側の黒い部品は圧電ブザーですが、
手持ち部品を使ったのでケースの外に設置しました。

背面2 カバーを外すとRaspberry pi Zeroと拡張基板が見えます。

RaspberryPi Zero Wと拡張基板の様子
赤く見えるのが追加したタッチスイッチです。回路図ではpushスイッチですが、配線を引き出すのが一手間なので
アクリルカバーの外から操作が出来るタッチスイッチを拡張基板に取り付けて使いました。

スマートフォン側 Blynk APPの変更箇所について
Blynkの設定方法は、その3とほぼ同じです。その3 前編と併せてご覧下さい。
①デバイスの選択をRaspberry pi Zero Wが無いのでRaspberry pi 3Bを選びます。
②次はtutorialに無い通知機能を追加します。Widget Boxを開き、Notificationを追加します。
③追加したNotificationをText Inputの下辺りに配置します。
④LEDボードにメッセージが届いた後、本体拡張基板に追加したタッチスイッチに触れると、スマホの画面に確認の
メッセージが表示され、メッセージが届いたことを通知します。通知はOKをタップすると消えます。

ソースコードについて
tutorialのソースコード(Python)に少し手を加えましたので変更部分を#にて記します。
以下のプログラム実行には、blynk-library-pythonとLuma.LED_Matrixをインストールしておく必要が有ります。
ここで使ったLEDマトリックスボードは、LumaライブラリーがサポートするFT16タイプです。表示方法が異なる
IC STATIONは使えません。ライブラリーを修正すれば可能だと思いますが試していません。
動画をご覧下さい。
皆様の参考になれば幸いです。
Cytron社のRaspberry pi Zeroを使ったtutorialページを参考にさせて頂きました。
2019年11月24日
Raspberry pi Zero WのOSインストール方法は、インターネット上にたくさん紹介されているのでここでは省略します。
私自身初めてのPaspberry piと初めてのPythonですが、購入から3週間で工作を含めて完成出来ました。
ここでは、LEDマトリックスモジュールで遊ぶ その3と重複する部分は省略しています。その3と併せてご覧下さい。
今度のメッセージボードの特長は通常時計が表示され、メッセージ信号が入るとBeep音を発し、メッセージを
スクロール表示します。tutorialではマトリックスボードが1枚(8X8X4)ですが、見易くするために2枚連結しました。

回路図
tutorialではMaker pHAT(拡張基板)を使っていますが、ここでは秋月電子の1枚100円の拡張基板に必要な部品を
組み込んで使いました。 メッセージ着信時に送信側スマホへ確認を通知するためのスイッチを追加しました。

背面1 今回も前回同様にアクリル板をCNC加工して作りました。左側の黒い部品は圧電ブザーですが、
手持ち部品を使ったのでケースの外に設置しました。

背面2 カバーを外すとRaspberry pi Zeroと拡張基板が見えます。

RaspberryPi Zero Wと拡張基板の様子
赤く見えるのが追加したタッチスイッチです。回路図ではpushスイッチですが、配線を引き出すのが一手間なので
アクリルカバーの外から操作が出来るタッチスイッチを拡張基板に取り付けて使いました。

スマートフォン側 Blynk APPの変更箇所について
Blynkの設定方法は、その3とほぼ同じです。その3 前編と併せてご覧下さい。
①デバイスの選択をRaspberry pi Zero Wが無いのでRaspberry pi 3Bを選びます。
②次はtutorialに無い通知機能を追加します。Widget Boxを開き、Notificationを追加します。
③追加したNotificationをText Inputの下辺りに配置します。
④LEDボードにメッセージが届いた後、本体拡張基板に追加したタッチスイッチに触れると、スマホの画面に確認の
メッセージが表示され、メッセージが届いたことを通知します。通知はOKをタップすると消えます。




ソースコードについて
tutorialのソースコード(Python)に少し手を加えましたので変更部分を#にて記します。
以下のプログラム実行には、blynk-library-pythonとLuma.LED_Matrixをインストールしておく必要が有ります。
ここで使ったLEDマトリックスボードは、LumaライブラリーがサポートするFT16タイプです。表示方法が異なる
IC STATIONは使えません。ライブラリーを修正すれば可能だと思いますが試していません。
#Blynk_LED_MatrixMessageBoard.py |
動画をご覧下さい。
皆様の参考になれば幸いです。
LEDマトリックスモジュールで遊ぶ その4
RaspberryPi Zero Wを使ったLEDメッセージボードの紹介。
初めてRaspberry Piを使いましたが、今までのマイコンと違い小さなPCと言う感覚です。
Pythonも初めてなのでゼロからのスタートですが、購入から3週間で完成すことが出来ました。
前回同様にスマホのBlynkアプリを使ってローカルネットワークの外からメッセージを送ります。
今回もCytron社のtutorialページを参考にマトリックスモジュールを増すなど自分なりの工夫をしました。
今回は先ず動画のみ紹介します。
次回は詳細記事を掲載します。
皆様の参考になれば幸いです。
初めてRaspberry Piを使いましたが、今までのマイコンと違い小さなPCと言う感覚です。
Pythonも初めてなのでゼロからのスタートですが、購入から3週間で完成すことが出来ました。
前回同様にスマホのBlynkアプリを使ってローカルネットワークの外からメッセージを送ります。
今回もCytron社のtutorialページを参考にマトリックスモジュールを増すなど自分なりの工夫をしました。
今回は先ず動画のみ紹介します。
次回は詳細記事を掲載します。
皆様の参考になれば幸いです。