質問編集履歴
6
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,6 +66,10 @@
|
|
66
66
|
|
67
67
|
|
68
68
|
|
69
|
+
上の内容をもとに関連するコードを探してみたところ、次のコードが見つかりました。
|
70
|
+
|
71
|
+
|
72
|
+
|
69
73
|
```
|
70
74
|
|
71
75
|
def compensate_P(adc_P):
|
@@ -162,6 +166,10 @@
|
|
162
166
|
|
163
167
|
|
164
168
|
|
169
|
+
そのため、temp, press, humに与える数値?がどこに当たるのかがreadData()と言うコマンドでは足りないのかと考え、()内に"temp : %-6.2f ℃" %"など、print文で表示を指示している文を入れて実行し直すも、結果エラーのままです。
|
170
|
+
|
171
|
+
|
172
|
+
|
165
173
|
どなたか早急に教えてくださると助かります。
|
166
174
|
|
167
175
|
|
5
add code
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,6 +66,100 @@
|
|
66
66
|
|
67
67
|
|
68
68
|
|
69
|
+
```
|
70
|
+
|
71
|
+
def compensate_P(adc_P):
|
72
|
+
|
73
|
+
global t_fine
|
74
|
+
|
75
|
+
pressure = 0.0
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
v1 = (t_fine / 2.0) - 64000.0
|
80
|
+
|
81
|
+
v2 = (((v1 / 4.0) * (v1 / 4.0)) / 2048) * digP[5]
|
82
|
+
|
83
|
+
v2 = v2 + ((v1 * digP[4]) * 2.0)
|
84
|
+
|
85
|
+
v2 = (v2 / 4.0) + (digP[3] * 65536.0)
|
86
|
+
|
87
|
+
v1 = (((digP[2] * (((v1 / 4.0) * (v1 / 4.0)) / 8192)) / 8) + ((digP[1] * v1) / 2.0)) / 262144
|
88
|
+
|
89
|
+
v1 = ((32768 + v1) * digP[0]) / 32768
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
if v1 == 0:
|
94
|
+
|
95
|
+
return 0
|
96
|
+
|
97
|
+
pressure = ((1048576 - adc_P) - (v2 / 4096)) * 3125
|
98
|
+
|
99
|
+
if pressure < 0x80000000:
|
100
|
+
|
101
|
+
pressure = (pressure * 2.0) / v1
|
102
|
+
|
103
|
+
else:
|
104
|
+
|
105
|
+
pressure = (pressure / v1) * 2
|
106
|
+
|
107
|
+
v1 = (digP[8] * (((pressure / 8.0) * (pressure / 8.0)) / 8192.0)) / 4096
|
108
|
+
|
109
|
+
v2 = ((pressure / 4.0) * digP[7]) / 8192.0
|
110
|
+
|
111
|
+
pressure = pressure + ((v1 + v2 + digP[6]) / 16.0)
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
print("pressure : %7.2f hPa" % (pressure/100))
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
def compensate_T(adc_T):
|
120
|
+
|
121
|
+
global t_fine
|
122
|
+
|
123
|
+
v1 = (adc_T / 16384.0 - digT[0] / 1024.0) * digT[1]
|
124
|
+
|
125
|
+
v2 = (adc_T / 131072.0 - digT[0] / 8192.0) * (adc_T / 131072.0 - digT[0] / 8192.0) * digT[2]
|
126
|
+
|
127
|
+
t_fine = v1 + v2
|
128
|
+
|
129
|
+
temperature = t_fine / 5120.0
|
130
|
+
|
131
|
+
print("temp : %-6.2f ℃" % (temperature))
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
def compensate_H(adc_H):
|
136
|
+
|
137
|
+
global t_fine
|
138
|
+
|
139
|
+
var_h = t_fine - 76800.0
|
140
|
+
|
141
|
+
if var_h != 0:
|
142
|
+
|
143
|
+
var_h = (adc_H - (digH[3] * 64.0 + digH[4]/16384.0 * var_h)) * (digH[1] / 65536.0 * (1.0 + digH[5] / 67108864.0 * var_h * (1.0 + digH[2] / 67108864.0 * var_h)))
|
144
|
+
|
145
|
+
else:
|
146
|
+
|
147
|
+
return 0
|
148
|
+
|
149
|
+
var_h = var_h * (1.0 - digH[0] * var_h / 524288.0)
|
150
|
+
|
151
|
+
if var_h > 100.0:
|
152
|
+
|
153
|
+
var_h = 100.0
|
154
|
+
|
155
|
+
elif var_h < 0.0:
|
156
|
+
|
157
|
+
var_h = 0.0
|
158
|
+
|
159
|
+
print("hum : %6.2f %" % (var_h))
|
160
|
+
|
161
|
+
```
|
162
|
+
|
69
163
|
|
70
164
|
|
71
165
|
どなたか早急に教えてくださると助かります。
|
4
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
3
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Raspberry Pi 4でエラー発生()
|
1
|
+
Raspberry Pi 4でエラー発生(TypeError)
|
test
CHANGED
File without changes
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -25,6 +25,14 @@
|
|
25
25
|
|
26
26
|
|
27
27
|
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
他の方よりご教示いただき、上のエラーメッセージより、readDataの内容を確認してみました。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
内容は次の通りです。
|
28
36
|
|
29
37
|
|
30
38
|
|
1
add code
test
CHANGED
File without changes
|
test
CHANGED
@@ -21,6 +21,36 @@
|
|
21
21
|
temp, press, hum = readData()
|
22
22
|
|
23
23
|
TypeError: cannot unpack non-iterable NoneType object
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
```
|
32
|
+
|
33
|
+
def readData():
|
34
|
+
|
35
|
+
data = []
|
36
|
+
|
37
|
+
for i in range (0xF7, 0xF7+8):
|
38
|
+
|
39
|
+
data.append(bus.read_byte_data(i2c_address,i))
|
40
|
+
|
41
|
+
pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4)
|
42
|
+
|
43
|
+
temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4)
|
44
|
+
|
45
|
+
hum_raw = (data[6] << 8) | data[7]
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
compensate_T(temp_raw)
|
50
|
+
|
51
|
+
compensate_P(pres_raw)
|
52
|
+
|
53
|
+
compensate_H(hum_raw)
|
24
54
|
|
25
55
|
|
26
56
|
|