🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2529閲覧

Sokuteikekka.pyのBME280測定温度がSO1602(EL)に表示できません-2

yama286

総合スコア34

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/10/15 11:41

yama286です
9/23以前に温度センサDS18B20とLCDの組み合わせで、表示を試みましたがうまくいっていません。そこで、秋月電子のELを購入し、下記のURL
https://www.itmedia.co.jp/news/articles/1902/22/news025_2.html
“ラズパイで作る「気温・湿度・気圧センサー」 有機ELディスプレイを取り付け (2/2)”
の記事を参考に下記組み合わせで再チャレンジしてみましたがうまくいきません。
センサー   :BME280気温・湿度・気圧センサー
EL表示器  :SO1602AWGB(16*2) 秋月電子
標準開発環境 :Thonny Python IDE、LXTerminal
なおこの組み合わせは、上記記事の使用機器と同一です。
そこで、再度同じ構成でトライしましたがうまくいきません。
ただし今回は、エラー内容が違ってきました。

1.不具合内容
BME280センサーのThonny Python IDEへの温度・湿度・気圧表示は正常、またSO1602AWGB表
示器への文字表示も正常です。
ところが上記URLに載っているサンプルプログラム(後述)を実行すると次のエラーが出ます。
1)LXTerminal
BME280センサーのThonny Python IDEへの温度・湿度・気圧表示は正常、またSO1602AWGB表示器への文字表示も正常です。
ところが上記URLに載っているサンプルプログラム(後述)を実行すると次のエラーが出ます。
イメージ説明
ImportError:No module named so1602 が出ています。

2)Thonny Python IDE
![イメージ説明
同じ ImportError:No modulenamed so1602 が出ています。

2.サンプルプログラム  sokuteikekka.py
なおこのプログラムは、前述の
https://www.itmedia.co.jp/news/articles/1902/22/news025_2.html
に載っているものです。
このプログラムは /home/pi/bluebacks/に入れています。

#!usr/bin/env python # -*- coding: utf-8 -*- import smbus2 import time import bme280 import so1602 #パラメーターの設定 port = 1 address = 0x76 bus = smbus2.SMBus(port) I2C_BUS_NUM = 1 i2c = bus data = 0x40 address2 = 0x3e command = 0x00 bme280.load_calibration_params(bus, address) calibration_params = bme280.load_calibration_params(bus, address) data = bme280.sample(bus, address, calibration_params) so1602.setaddr(0x3c) # LCD初期化 so1602.command(0x0c) so1602.command(0x01) # 気温と湿度、圧力のデータ temp = str(round(data.temperature, 1)) hum = str(round(data.humidity, 1)) press = str(round(data.pressure, 1)) # LCD表示 so1602.command(0x80) so1602.write("T=" + temp + "C") 9 so1602.command(0x89) so1602.write("H=" + hum + "%") so1602.command(0xa0) so1602.write("P=" + press + "hPa") print ("Temperature : %s C" % temp) print ("Humidity : %s %%" % hum) print ("Pressure : %s hPa" % press)

3.依頼事項
Q1. “ラズパイで作る「気温・湿度・気圧センサー」 有機ELディスプレイを取り付け (2/2)”の
記事と同じ機器構成なのになぜエラーが出て動かないのでしょうか?
ImportError:No modulenamed so1602

Q2.pathは特別に設定する必要がありますか?

/usr/local/lib/の下を見ると次のようになっていました。

イメージ説明/local/lib/python2.7/dist_packages
図で分かるように、libの下にpython2.7とpython3.5があります。
それぞれのフォルダの下には /dist_packagesフォルダがあり、その下には
名前は違いますが、4個のフォルダがあります。
Q2-1.上記python2.7とpython3.5どちらを使うようにすればよいのでしょうか?

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

A1:以下のライブラリが必要のようです。
ITmediaの記事に書いてありますね。

事前の準備として、それぞれのモジュールをインストールします。以下のコマンドを入力します。

$ sudo pip install RPi.bme280 $ sudo pip install smbus2

A2:Thonny Python IDEは知らないので何とも言えませんが、python2/python3の何方で実行したいかかと思います。
現在、Thonny Python IDEで起動されているバージョンはどちらでしょうか?

python

1import sys 2print(sys.version)

上記のコードをThonny Python IDE内で実行すれば表示されると思います。

3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]

投稿2019/10/15 23:04

編集2019/10/15 23:06
nandymak

総合スコア799

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yama286

2019/10/16 08:45

nandymak 様                                    yama286です  早速のお返事ありがとうございます。下記ご回答いたします。 ***********************************: A1:以下のライブラリが必要のようです。 ITmediaの記事に書いてありますね。 *********************************** A1.ITmediaの記事に書いてある通りにやっております。  従ってご指摘のLXTerminalからのコマンドの2行は入力しました。 ********************************************************* Thonny Python IDEで起動されているバージョンはどちらでしょうか? ********************************************************* A2.実行結果は次のようです。  python IDEの下にあるshellで実行したものです。   3.5.3(default,Sep27 2018, 17:25:39) [GCC 6.3.0 20170516]
guest

0

ベストアンサー

ImportError:No modulenamed so1602

そのモジュールがないというエラーなんで、きちんとインストールしよう

投稿2019/10/15 22:54

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yama286

2019/10/16 08:55

y_waiwai 様                                yama286です 早速のご返事ありがとうございます。 下記ご回答いたします。 この資料の前のほうに書いてある https://www.itmedia.co.jp/news/articles/1902/22/news025_2.html “ラズパイで作る「気温・湿度・気圧センサー」 有機ELディスプレイを取り付け (2/2)” の中ごろに書いてある ”事前準備として、それぞれのモジュールをインストールします。” というところがあり、下記コマンドを入力させています。   $ sudo pip install RPi.bme280 $ sudo pip install smbus2 この通り入力しました。 このやり方が悪いのでしょうか? よろしくお願いいたします。
y_waiwai

2019/10/16 09:00

そういうエラーが出てるので、まずはそのエラーを解決するためにどうすればいいかを考えよう その元記事を見てみると、so1602のモジュールについてはその手順ではインストールされないですね。 も一度その記事のとおりにしてみればどうでしょう
yama286

2019/10/17 07:14

y_waiwai 様                            yama286です  ご指摘通りではないですが、LXTerminalでは動きました。 ありがとうございます。 *********************************************** その元記事を見てみると、so1602のモジュールについてはその手順ではインストールされないですね。 *********************************************** ここに書かれている手順以外は分かりませんので、再度二つのコマンドを入力し  $python sokuteikekka.py を実行しましたが、結果は同じでした。 次に上記二つのコマンド入力をさせている記事の下に、so1602モジュールのインストールの記述があり、この五つのコマンドの最後に下記があります。  $ cp so1602.py /home/pi/programs この意味はso1602.pyを  /home/pi/programsにコピーすることです。 従って、sokuteikekka.pyもこのデイレクトリにないといけないと思い、今までの/home/pi/bluebacksより移動しました。  $ cd programsに変更後  $ python sokuteikekka.py を実行すると ELに資料通りの温度、湿度、気圧の現在値が出ました。  資料通りにやっても、sokuteikekka.py、so1602.pyのインストール先が違えば動かないことがわかりました。  ありがとうございました。 ところでもう一点質問があります。上記のようにLXTerminalでは動いたのですが、Thonny Python IDEでは相変わらず  no module named 'so1602'エラーが出ます。 どうしたらよいのでしょうか?  よろしくお願いいたします。
y_waiwai

2019/10/17 07:29 編集

その記事をよく読むとわかりますが、その記事では、 /home/pi/programs/sokuteikekka.pyというディレクトリになってます で、so1602.pyも同じディレクトリにコピーすることになってます ということは、2つのファイルは、同じところになければならないということがわかります Thonny Python IDEというのは使ったことがないのでわかりませんが、IDEのエラーチェックというのはPythonとは別に、そのIDE自身で判定しているため、往々にして双方に違いが出ることがあります 本番で正常に使えるなら、そのエラーは誤判定、あるいはIDEの何かの設定の違いで出ているんじゃないかと思われます
yama286

2019/10/18 02:06

y_waiwai 様                            yama286です 有難うございます。 うまくいかないときの考え方が少しわかったような気がします。  Thonny Python IDEは自分なりに調べようと思っています。 取りあえずこの件は終了したいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問