のりとも爺のホビーワークショップ <Raspberry Pi>
トップ
ラズパイ概要
試行・実験
試行・実験
Rasberry Pi 5 をミニPCに構築...
ファイルサーバーを構築...
実験ボードにLED調光回路製作
PythonでLED調光制御する
C言語でLED調光制御する
SPIモード切替
Pythonで温湿度をLCDに表示する
C言語で温湿度をLCD表示する
I2Cモード切替
Pythonで日時温湿度をGUI画面に表示する
プログラム
プログラム
PythonLED制御サンプルプログラム
C言語LED制御サンプルプログラム
Python温湿度LCD表示サンプルプログラム
C言語温湿度LCD表示サンプルプログラム
Python日時温湿度GUI画面表示サンプルプログラム
プロフィール
メール・コメント
試行・実験
Rasberry Pi 5 をミニPCに構築...
ファイルサーバーを構築...
実験ボードにLED調光回路製作
PythonでLED調光制御する
C言語でLED調光制御する
SPIモード切替
Pythonで温湿度をLCDに表示する
C言語で温湿度をLCD表示する
I2Cモード切替
Pythonで日時温湿度をGUI画面に表示する
Pythonで日時温湿度をGUI画面に表示する
(ネット上に公開されているプログラムを参考にして試行する)
Python(パイソン)でGUI画面をプログラムする
*プログラムを記述するにはテキストエディタが必要になる。
RasPiのOSにGUIに馴染むいくつかのテキストエディタがあるが教則本にある Geany が
プログラム開発では使い勝手が良いと思う。
*アプリの画面例
(デスクトップの左上にある黒い画面、西暦-月-日 時:分、温度、湿度を表示)
*回路図(LCDの回路は不要、DHT11の3ピンに配線するだけで可能)
*GPIOピンにてDHT11のDATA-INと接続する番号を回路図と異なるピンに変更する場合は
プログラムにてBCM番号を変更する必要がある
------------------------------------------------------------------------
Pythonで組んだプログラムを簡易に動かす場合、RasPiOSに入っているPythonのインタープリタで
動かすことになる。インタープリタとはPythonで書かれた命令文を1つずつ解釈しながら実行して
いく形である。ゆえにインタープリタでは実行速度がC言語で組まれたものより遅くなる。
*実行例(ソースファイルが
pyDHTdesktop.py
の場合)
sudo python3 pyDHTdesktop.py
サンプルプログラムの概要は、2秒ごとに温湿度センサーDHT11からデータを読み込んで
GUI画面に日時と温度/湿度を表示する
GUI画面設定:tkinterライブラリ
DHT11操作 :dht11ライブラリ
<サンプルプログラムの動作手順>
(続にいうフローチャートを文書化したもの)
------------------------------------------------------------------------
1.メイン動作(TkinterでGUI画面設定)
・
Tkinter
で画面のオブジェクト作成
a)画面の初期設定
b)日時を表示するラベル設定
c)温度を表示するラベル設定
d)湿度を表示するラベル設定
e)PRi.GPIOライブラリ初期化(BCM番号でプログラムする)
f)dht11ライブラリ初期化、インスタンス作成(GPIOのBCM番号設定)
・update_screen(画面更新処理)関数コール
・画面のイベント処理ループ開始(無限ループ)
画面の右上[X]をクリックしてプログラム終了可能
------------------------------------------------------------------------
2.画面更新処理
<関数 update_screen() >
a)プログラムが正常ループしていることを表すために時刻表示の右に*マークを
表示する文字列作成(ループ毎に*表示、*無しを繰り返す)
b)日時ラベルにシステム時刻から取得した年-月-日 時:分 *マークを表示する
c)DHT11から温度、湿度を読み込む
d)温湿度を正常に読み込めたら温度ラベルに温度を表示、湿度ラベルに湿度を表示
異常だったら直前の温度、湿度の値の右に「−」を表示する
e)2秒後に再帰的に画面更新処理を実行する(ループする)
------------------------------------------------------------------------