質問編集履歴

7

誤字

2021/08/22 14:05

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -322,19 +322,29 @@
322
322
 
323
323
  try:
324
324
 
325
- while True:
325
+ while True:
326
+
326
-
327
+ inputVal0=readadc(0,SPICLK,SPIMOSI,SPIMISO,SPICS)
328
+
329
+ inputVal1=readadc(1,SPICLK,SPIMOSI,SPIMISO,SPICS)
330
+
331
+ now=datetime.datetime.now()
332
+
333
+ now6=now-datetime.timedelta(hours=6)
334
+
335
+ nowday='{0:%Y%m%d}'.format(now6)
336
+
327
- if inputVal0>2000: #on/offを判断する光量を変更(緑)
337
+ if inputVal0>2000:
338
+
328
-
339
+ time1=time1+1
340
+
341
+ time2=time2+1
342
+
329
- time10=time10+1#csvファイル保存用
343
+ time10=time10+1
330
344
 
331
345
  if time10 == 60:
332
346
 
333
- a=pd.read_csv('mydata'+nowday+'.csv')
347
+ data=pd.read_csv('mydata'+nowday+'.csv')
334
-
335
- data = pd.merge(pd.DataFrame({0:[f'{h:02}:{m:02}' for h in range(7,24) for m in range(0, 60)]+['24:00']}),
336
-
337
- pd.read_csv('mydata'+nowday+'.csv'), how='left',left_on=None)
338
348
 
339
349
  x=data.iloc[:,0]
340
350
 
@@ -348,39 +358,53 @@
348
358
 
349
359
  w=round(y1/60,1)
350
360
 
361
+ print('稼働時間'+str(w)+'時間')
362
+
363
+ print('機械稼働率'+str(z)+'%')
364
+
351
- s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
365
+ s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
352
366
 
353
367
  plt.xlabel("時刻")
354
368
 
355
369
  plt.ylabel("1=稼働,0=停止")
356
370
 
357
- plt.text(1000,0.4,s)
371
+ plt.text(1000,0.4,s)#グラフにコメントを入れる
358
372
 
359
373
  plt.bar(x,y,width=1.0)
360
374
 
361
375
  plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(60))
362
376
 
363
- plt.subplots_adjust(left=0, right=1, bottom=0.15, top=1)#余白設定
377
+ plt.subplots_adjust(left=0.05, right=1, bottom=0.15, top=1)
364
-
378
+
365
- plt.draw()#グラフ描画
379
+ plt.draw()
366
380
 
367
381
  plt.pause(1)
368
382
 
369
- plt.clf()#グラフ初期化
383
+ plt.clf()
370
-
384
+
371
- time10=0
385
+ time10=0
386
+
387
+
372
388
 
373
389
  else:
374
390
 
375
- if inputVal1>2000:#on/offを判断する光量を変更(赤)
391
+ if inputVal1>2000:
392
+
376
-
393
+ time1=time1+1
394
+
395
+ time3=time3+1
396
+
397
+ time7=time7+1
398
+
377
- time11=time11+1
399
+ time11=time11+1
400
+
401
+ print(now.strftime('%H:%M'))
402
+
403
+
378
404
 
379
405
  if time11 == 60:
380
406
 
381
- data = pd.merge(pd.DataFrame({0:[f'{h:02}:{m:02}' for h in range(7,24) for m in range(0, 60)]+['24:00']}),
382
-
383
- pd.read_csv('mydata'+nowday+'.csv'), how='left')
407
+ data=pd.read_csv('mydata'+nowday+'.csv')
384
408
 
385
409
  x=data.iloc[:,0]
386
410
 
@@ -390,14 +414,16 @@
390
414
 
391
415
  y1=y.sum()#2行目の合計
392
416
 
393
- z=round(y1/x1*100,1)
417
+ z=round(y1/x1*100,1)
394
418
 
395
419
  w=round(y1/60,1)
396
420
 
421
+ print('稼働時間'+str(w)+'時間')
422
+
423
+ print('機械稼働率'+str(z)+'%')
424
+
397
425
  s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
398
426
 
399
-
400
-
401
427
  plt.xlabel("時刻")
402
428
 
403
429
  plt.ylabel("1=稼働,0=停止")
@@ -416,13 +442,17 @@
416
442
 
417
443
  plt.clf()
418
444
 
419
- time11=0
445
+ time11=0
420
446
 
421
447
  else:
422
448
 
423
449
  time1=time1+1
424
450
 
425
- time3=time3+1
451
+ time3=time3+1
452
+
453
+
454
+
455
+
426
456
 
427
457
  elapsed_time=time.time()-start #(処理時間)=(処理が終わった時間)ー(処理を始めた時間)
428
458
 
@@ -432,9 +462,11 @@
432
462
 
433
463
  start=time.time()
434
464
 
465
+
466
+
435
467
  except FileNotFoundError:
436
468
 
437
- pass
469
+ pass
438
470
 
439
471
  ```
440
472
 

6

誤字

2021/08/22 14:05

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -306,6 +306,8 @@
306
306
 
307
307
  GPIO.cleanup()
308
308
 
309
+ ```
310
+
309
311
  ### 光センサーにて記録しているエクセルデータ
310
312
 
311
313
  ラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータ1列目に現在時刻、2列目に1、3列目に0と記録、停止ランプを60秒読み取った場合に1列目に現在時刻、2列目に0と記録、3列目に0、電源が入っていない場合は何も記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)は2列目が0で3列目が1なります。

5

プログラム修正

2021/08/21 12:45

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -2,293 +2,445 @@
2
2
 
3
3
  機械稼働状況グラフの横軸表示を7:00スタートで24:00時終了としたい。
4
4
 
5
-
6
-
7
5
  ![イメージ説明](632e36dc30e672349f7a9041a7ccc973.png)
8
6
 
9
7
  グラフで機械が稼働している時間と停止している時間を可視化する事が目的です。
10
8
 
11
9
  ※青塗りつぶしが稼働中、無色は停止(y軸は1が最大、0が最小)
12
10
 
13
-
14
-
15
-
16
-
17
11
  ###ラズパイ光センサーのデータ記録方法
18
12
 
19
- ラズパイ光センサーにて光を読み取った場合にラズパイ内のエクセルに書き込みし、matplotlibでエクセルデータ読み取り、リアルタイムにグラフ更新をかけています。このグラフにより、機械稼働状況の見える化を行っています。
20
-
21
-
22
-
23
- データ記録方法は稼働していた場合にシグナルタワーの稼働ランプを読み取り、現在時刻と1を記録、停止していた場合は停止ランプが作動するので現在時刻と0を記録、無人稼働の場合は稼働ランプと停止ランプの両方が点灯し、現在時刻と2列目に1と記録します。機械の電源が入っていない場合は記録がされないようにしています。
24
-
25
- 光を読み取った時間を記録し、それをグラフにしているだけなのでその日の最初に読み取った時間がグラフにて表示される時間(画像では22:29スタート、終了23:38)となってしまってますが、グラフ表示はスタートを7:00、終了を24:00としたいです。
26
-
27
- ※機械の電源が入っていない時間(シグナルタワーの点灯が全て消灯)も常に読み取るようにすることも考えましたが、休日など常に記録が続いてしまい、エクセルファイルが大量になってしまうので断念しました。
28
-
29
-
30
-
31
- ##光を記録しているコード
32
-
33
- 稼働ランプを60秒読み取る場合は以下となります。
13
+ ラズパイ光センサーにて光を読み取った場合にラズパイ内のエクセルに書き込みし、matplotlibでエクセルデータ読み取り、リアルタイムにグラフ更新をかけています。このグラフにより、機械稼働状況の見える化を行っています。データ記録方法は稼働していた場合にシグナルタワーの稼働ランプを読み取り、現在時刻と1を記録、停止していた場合は停止ランプが作動するので現在時刻と0を記録、無人稼働の場合は稼働ランプと停止ランプの両方が点灯し、現在時刻と2列目に1と記録します。機械の電源が入っていない場合は記録がされないようにしています。光を読み取った時間を記録し、それをグラフにしているだけなのでその日の最初に読み取った時間がグラフにて表示される時間(画像では22:29スタート、終了23:38)となってしまってますが、グラフ表示はスタートを7:00、終了を24:00としたいです。※機械の電源が入っていない時間(シグナルタワーの点灯が全て消灯)も常に読み取るようにすることも考えましたが、休日など常に記録が続いてしまい、エクセルファイルが大量になってしまうので断念しました。
14
+
15
+ ##機械稼働状況をシグナルタワーの点灯パターンにより記録しているコード
34
16
 
35
17
  ```python
36
18
 
37
- if time10 == 60:#60秒経過した場合
38
-
39
- rcd=[]
40
-
41
- rcd.append(now.strftime('%H:%M'))#時間追加
42
-
43
- rcd.append(1)
44
-
45
- rcd.append(0)
46
-
47
- f=open('mydata'+nowday+'.csv','a',newline='')
48
-
49
- wrtr=csv.writer(f,delimiter=',')
50
-
51
- wrtr.writerow(rcd)
52
-
53
- f.close()
19
+ dissolution=1 #計測分解能[s]
20
+
21
+ rate=0
22
+
23
+ def readadc(adcnum,clockpin,mosipin,misopin,cspin):
24
+
25
+ if adcnum> 7 or adcnum<0:
26
+
27
+ return -1
28
+
29
+ GPIO.output(cspin,GPIO.HIGH)
30
+
31
+ GPIO.output(clockpin,GPIO.LOW)
32
+
33
+ GPIO.output(cspin,GPIO.LOW)
34
+
35
+ commandout=adcnum
36
+
37
+ commandout |=0x18
38
+
39
+ commandout<<=3
40
+
41
+ for i in range(5):
42
+
43
+ if commandout & 0x80:
44
+
45
+ GPIO.output(mosipin,GPIO.HIGH)
46
+
47
+ else:
48
+
49
+ GPIO.output(mosipin,GPIO.LOW)
50
+
51
+ commandout<<=1
52
+
53
+ GPIO.output(clockpin,GPIO.HIGH)
54
+
55
+ GPIO.output(clockpin,GPIO.LOW)
56
+
57
+
58
+
59
+ adcout=0
60
+
61
+ for i in range(13)
62
+
63
+ GPIO.output(clockpin,GPIO.HIGH)
64
+
65
+ GPIO.output(clockpin,GPIO.LOW)
66
+
67
+ adcout<<=1
68
+
69
+ if i>0 and GPIO.input(misopin)==GPIO.HIGH:
70
+
71
+ adcout |=0x1
72
+
73
+ GPIO.output(cspin,GPIO.HIGH)
74
+
75
+ return adcout
76
+
77
+ GPIO.setmode(GPIO.BCM)
78
+
79
+ SPICS=8
80
+
81
+ SPIMISO=9
82
+
83
+ SPIMOSI=10
84
+
85
+ SPICLK=11
86
+
87
+ GPIO.setup(SPICLK,GPIO.OUT)
88
+
89
+ GPIO.setup(SPIMOSI,GPIO.OUT)
90
+
91
+ GPIO.setup(SPIMISO,GPIO.IN)
92
+
93
+ GPIO.setup(SPICS,GPIO.OUT)
94
+
95
+ today1=datetime.datetime.now()
96
+
97
+ start=time.time()
98
+
99
+ kikai='D-'+'32'
100
+
101
+ try:
102
+
103
+ while True:
104
+
105
+ inputVal0=readadc(0,SPICLK,SPIMOSI,SPIMISO,SPICS)
106
+
107
+ inputVal1=readadc(1,SPICLK,SPIMOSI,SPIMISO,SPICS)
108
+
109
+ now=datetime.datetime.now()
110
+
111
+ now6=now-datetime.timedelta(hours=6)
112
+
113
+ nowday='{0:%Y%m%d}'.format(now6)
114
+
115
+ nt1=now.strftime('%H:%M')
116
+
117
+ nt='{0:%H%M}'.format(now)
118
+
119
+
120
+
121
+ if inputVal0>2000 and inputVal1<2000:
122
+
123
+ time1=time1+1
124
+
125
+ time2=time2+1
126
+
127
+ time10=time10+1
128
+
129
+ if time10 == 60:
130
+
131
+ rcd=[]
132
+
133
+ rcd.append(now.strftime('%H:%M'))
134
+
135
+ rcd.append(1)
136
+
137
+ rcd.append(0)
138
+
139
+ f=open('mydata'+nowday+'.csv','a',newline='')
140
+
141
+ wrtr=csv.writer(f,delimiter=',')
142
+
143
+ wrtr.writerow(rcd)
144
+
145
+ f.close()
146
+
147
+ time10=0
148
+
149
+ data=pd.read_csv('mydata'+nowday+'.csv')
150
+
151
+ x=data.iloc[:,0]
152
+
153
+ x1=x.count()
154
+
155
+ y=data.iloc[:,1]
156
+
157
+ y1=y.sum()
158
+
159
+ z=round(y1/x1*100,1)
160
+
161
+ canvas1.create_text(85,20,text=('機械'),font=("",30,"roman"),tag='Y')
162
+
163
+ canvas2.create_text(200,20,text=('稼働状況'),font=("",30,"roman"),tag='Y')
164
+
165
+ canvas3.create_text(200,20,text=('本日の稼働率'),font=("",30,"roman"),tag='Y')
166
+
167
+ canvas4.create_text(85,20,text=(kikai),font=("",30,"roman"),tag='Y')
168
+
169
+ canvas5.create_text(100,20,text=('稼働中'),font=("",30,"roman"),tag='Y')
170
+
171
+ canvas6.create_text(100,20,text=(''),font=("",30,"roman"),tag='Y')
172
+
173
+ canvas7.create_text(200,20,text=(str(z)+'%'),font=("",40,"roman"),tag='Y')
174
+
175
+ canvas1.update()
176
+
177
+ canvas2.update()
178
+
179
+ canvas3.update()
180
+
181
+ canvas4.update()
182
+
183
+ canvas5.update()
184
+
185
+ canvas6.update()
186
+
187
+ canvas7.update()
188
+
189
+ canvas1.delete('Y')
190
+
191
+ canvas2.delete('Y')
192
+
193
+ canvas3.delete('Y')
194
+
195
+ canvas4.delete('Y')
196
+
197
+ canvas5.delete('Y')
198
+
199
+ canvas6.delete('Y')
200
+
201
+ canvas7.delete('Y')
202
+
203
+ if inputVal1>2000 and inputVal0<2000
204
+
205
+ time1=time1+1
206
+
207
+ time3=time3+1
208
+
209
+ time7=time7+1
210
+
211
+ time11=time11+1
212
+
213
+ if time11 == 60:
214
+
215
+ rcd=[]
216
+
217
+ rcd.append(now.strftime('%H:%M'))
218
+
219
+ rcd.append(0)
220
+
221
+ rcd.append(0)
222
+
223
+ f=open('mydata'+nowday+'.csv','a',newline='')
224
+
225
+ wrtr=csv.writer(f,delimiter=',')
226
+
227
+ wrtr.writerow(rcd)
228
+
229
+ f.close()
230
+
231
+ time11=0
232
+
233
+ data=pd.read_csv('mydata'+nowday+'.csv')
234
+
235
+ x=data.iloc[:,0]
236
+
237
+ x1=x.count()
238
+
239
+ y=data.iloc[:,1]
240
+
241
+ y1=y.sum()
242
+
243
+ z=round(y1/x1*100,1)
244
+
245
+ canvas1.create_text(85,20,text=('機械'),font=("",30,"roman"),tag='Y')
246
+
247
+ canvas2.create_text(200,20,text=('稼働状況'),font=("",30,"roman"),tag='Y')
248
+
249
+ canvas3.create_text(200,20,text=('本日の稼働率'),font=("",30,"roman"),tag='Y') .
250
+
251
+ canvas4.create_text(85,20,text=(kikai),font=("",30,"roman"),tag='Y')
252
+
253
+ canvas5.create_text(100,20,text=(''),font=("",30,"roman"),tag='Y')
254
+
255
+ canvas6.create_text(100,20,text=('停止中'),font=("",30,"roman"),tag='Y')
256
+
257
+ canvas7.create_text(200,20,text=(str(z)+'%'),font=("",40,"roman"),tag='Y')
258
+
259
+ canvas1.update()
260
+
261
+ canvas2.update()
262
+
263
+ canvas3.update()
264
+
265
+ canvas4.update()
266
+
267
+ canvas5.update()
268
+
269
+ canvas6.update()
270
+
271
+ canvas7.update()
272
+
273
+ canvas1.delete('Y')
274
+
275
+ canvas2.delete('Y')
276
+
277
+ canvas3.delete('Y')
278
+
279
+ canvas4.delete('Y')
280
+
281
+ canvas5.delete('Y')
282
+
283
+ canvas6.delete('Y')
284
+
285
+ canvas7.delete('Y')
286
+
287
+ if inputVal1<2000 and inputVal0<2000:
288
+
289
+ time1=time1+1
290
+
291
+ time3=time3+1
292
+
293
+ time5=time5+1
294
+
295
+ elapsed_time=time.time()-start #(処理時間)=(処理が終わった時間)ー(処理を始めた時間)
296
+
297
+ a=dissolution - elapsed_time
298
+
299
+ sleep(a)
300
+
301
+ start=time.time()
302
+
303
+ except KeyboardInterrupt: #cntl+Cで停止
304
+
305
+ pass
306
+
307
+ GPIO.cleanup()
308
+
309
+ ### 光センサーにて記録しているエクセルデータ
310
+
311
+ ラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータ1列目に現在時刻、2列目に1、3列目に0と記録、停止ランプを60秒読み取った場合に1列目に現在時刻、2列目に0と記録、3列目に0、電源が入っていない場合は何も記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)は2列目が0で3列目が1なります。
312
+
313
+ ![イメージ説明](f2f944721ec89f9d557f645562d6cccc.png)
314
+
315
+ ### エクセルデータをplotしている該当のソースコード
316
+
317
+ ```python
318
+
319
+ コード
320
+
321
+ try:
322
+
323
+ while True:
324
+
325
+ if inputVal0>2000: #on/offを判断する光量を変更(緑)
326
+
327
+ time10=time10+1#csvファイル保存用
328
+
329
+ if time10 == 60:
330
+
331
+ a=pd.read_csv('mydata'+nowday+'.csv')
332
+
333
+ data = pd.merge(pd.DataFrame({0:[f'{h:02}:{m:02}' for h in range(7,24) for m in range(0, 60)]+['24:00']}),
334
+
335
+ pd.read_csv('mydata'+nowday+'.csv'), how='left',left_on=None)
336
+
337
+ x=data.iloc[:,0]
338
+
339
+ x1=x.count()
340
+
341
+ y=data.iloc[:,1]
342
+
343
+ y1=y.sum()#2行目の合計
344
+
345
+ z=round(y1/x1*100,1)
346
+
347
+ w=round(y1/60,1)
348
+
349
+ s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
350
+
351
+ plt.xlabel("時刻")
352
+
353
+ plt.ylabel("1=稼働,0=停止")
354
+
355
+ plt.text(1000,0.4,s)
356
+
357
+ plt.bar(x,y,width=1.0)
358
+
359
+ plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(60))
360
+
361
+ plt.subplots_adjust(left=0, right=1, bottom=0.15, top=1)#余白設定
362
+
363
+ plt.draw()#グラフ描画
364
+
365
+ plt.pause(1)
366
+
367
+ plt.clf()#グラフ初期化
368
+
369
+ time10=0
370
+
371
+ else:
372
+
373
+ if inputVal1>2000:#on/offを判断する光量を変更(赤)
374
+
375
+ time11=time11+1
376
+
377
+ if time11 == 60:
378
+
379
+ data = pd.merge(pd.DataFrame({0:[f'{h:02}:{m:02}' for h in range(7,24) for m in range(0, 60)]+['24:00']}),
380
+
381
+ pd.read_csv('mydata'+nowday+'.csv'), how='left')
382
+
383
+ x=data.iloc[:,0]
384
+
385
+ x1=x.count()
386
+
387
+ y=data.iloc[:,1]
388
+
389
+ y1=y.sum()#2行目の合計
390
+
391
+ z=round(y1/x1*100,1)
392
+
393
+ w=round(y1/60,1)
394
+
395
+ s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
396
+
397
+
398
+
399
+ plt.xlabel("時刻")
400
+
401
+ plt.ylabel("1=稼働,0=停止")
402
+
403
+ plt.text(1000,0.4,s)
404
+
405
+ plt.bar(x,y,width=1.0)
406
+
407
+ plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(60))
408
+
409
+ plt.subplots_adjust(left=0, right=1, bottom=0.15, top=1)
410
+
411
+ plt.draw()
412
+
413
+ plt.pause(1)
414
+
415
+ plt.clf()
416
+
417
+ time11=0
418
+
419
+ else:
420
+
421
+ time1=time1+1
422
+
423
+ time3=time3+1
424
+
425
+ elapsed_time=time.time()-start #(処理時間)=(処理が終わった時間)ー(処理を始めた時間)
426
+
427
+ a=dissolution - elapsed_time
428
+
429
+ sleep(1)
430
+
431
+ start=time.time()
432
+
433
+ except FileNotFoundError:
434
+
435
+ pass
54
436
 
55
437
  ```
56
438
 
57
- 停止ランプを読み取る場合
58
-
59
- ```python
60
-
61
- if time11 == 60:
62
-
63
- rcd=[]
64
-
65
- rcd.append(now.strftime('%H:%M'))
66
-
67
- rcd.append(0)
68
-
69
- rcd.append(0)
70
-
71
- f=open('mydata'+nowday+'.csv','a',newline='')
72
-
73
- wrtr=csv.writer(f,delimiter=',')
74
-
75
- wrtr.writerow(rcd)
76
-
77
- f.close()
78
-
79
- time11=0
80
-
81
- ```
82
-
83
-
84
-
85
- ※電源オフの場合は何も処理しないとしています。
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
- ### 光センサーにて記録しているエクセルデータ
94
-
95
- ラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータ1列目に現在時刻、2列目に1、3列目に0と記録、停止ランプを60秒読み取った場合に1列目に現在時刻、2列目に0と記録、3列目に0、電源が入っていない場合は何も記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)は2列目が0で3列目が1なります。
96
-
97
- ![イメージ説明](f2f944721ec89f9d557f645562d6cccc.png)
98
-
99
-
100
-
101
- ### グラフを表示させている該当のソースコード
102
-
103
- ```python
104
-
105
- コード
106
-
107
- if inputVal0>2000: #on/offを判断する光量を変更(緑)
108
-
109
-
110
-
111
- time1=time1+1
112
-
113
- time2=time2+1
114
-
115
- time10=time10+1#csvファイル保存用
116
-
117
- print(inputVal0)
118
-
119
- print('稼働中')
120
-
121
- print(now.strftime('%H:%M'))
122
-
123
-
124
-
125
- if time10 == 60:#60秒経過した場合
126
-
127
- data=pd.read_csv('mydata'+nowday+'.csv')
128
-
129
- x=data.iloc[:,0]
130
-
131
- x1=x.count()#1行目のデータ個数
132
-
133
- y=data.iloc[:,1]
134
-
135
- y1=y.sum()#2行目の合計
136
-
137
- z=round(y1/x1*100,1)#機械稼働率 小数点第一位まで
138
-
139
- w=round(y1/60,1)#機械稼働時間
140
-
141
-
142
-
143
- print('稼働時間'+str(w)+'時間')
144
-
145
- print('機械稼働率'+str(z)+'%')
146
-
147
- s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
148
-
149
-
150
-
151
- plt.xlabel("時刻")
152
-
153
- plt.ylabel("1=稼働,0=停止")
154
-
155
- plt.text(1000,0.4,s)#グラフにコメントを入れる
156
-
157
- plt.bar(x,y,width=1.0)
158
-
159
- plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(60))
160
-
161
- plt.subplots_adjust(left=0, right=1, bottom=0.15, top=1)#余白設定
162
-
163
- plt.draw()#グラフ描画
164
-
165
- plt.pause(1)
166
-
167
- plt.clf()#グラフ初期化
168
-
169
-
170
-
171
- time10=0
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
- else:
180
-
181
- if inputVal1>2000:#on/offを判断する光量を変更(赤)
182
-
183
- time1=time1+1
184
-
185
- time3=time3+1
186
-
187
- time7=time7+1
188
-
189
- time11=time11+1
190
-
191
- print('準備中')
192
-
193
- print(now.strftime('%H:%M'))
194
-
195
-
196
-
197
- if time11 == 60:
198
-
199
- data=pd.read_csv('mydata'+nowday+'.csv')
200
-
201
- x=data.iloc[:,0]
202
-
203
- x1=x.count()#1行目のデータ個数
204
-
205
- y=data.iloc[:,1]
206
-
207
- y1=y.sum()#2行目の合計
208
-
209
- z=round(y1/x1*100,1)#機械稼働率 小数点第一位まで
210
-
211
- w=round(y1/60,1)#機械稼働時間
212
-
213
-
214
-
215
- print('稼働時間'+str(w)+'時間')
216
-
217
- print('機械稼働率'+str(z)+'%')
218
-
219
- s='稼働時間'+str(w)+'時間'+'機械稼働率'+str(z)+'%'
220
-
221
-
222
-
223
- plt.xlabel("時刻")
224
-
225
- plt.ylabel("1=稼働,0=停止")
226
-
227
- plt.text(1000,0.4,s)#グラフにコメントを入れる
228
-
229
- plt.bar(x,y,width=1.0)
230
-
231
- plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(60))
232
-
233
- plt.subplots_adjust(left=0, right=1, bottom=0.15, top=1)#余白設定
234
-
235
- plt.draw()
236
-
237
- plt.pause(1)
238
-
239
- plt.clf()
240
-
241
-
242
-
243
- time11=0
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
- else:
252
-
253
- time1=time1+1
254
-
255
- time3=time3+1
256
-
257
- print(now.strftime('%H:%M'))
258
-
259
- print('停止')
260
-
261
-
262
-
263
-
264
-
265
- elapsed_time=time.time()-start #(処理時間)=(処理が終わった時間)ー(処理を始めた時間)
266
-
267
- a=dissolution - elapsed_time
268
-
269
- sleep(1)
270
-
271
- start=time.time()
272
-
273
-
274
-
275
- except FileNotFoundError:
276
-
277
- pass
278
-
279
- ```
280
-
281
439
 
282
440
 
283
441
  ###plt.xlim(07:00,24:00)を入れた場合
284
442
 
285
- 7:00と24:00のデータがない場合もあるので8:06~8:23のデータを読み取りましたが、時刻の表示がありませんでした。
286
-
287
- 作業者の機械稼働スタートが何らかの理由で7:30などになってしまう事もあり、逆に24時以前に機械電源オフとなり記録がなくなることもあります。
443
+ 7:00と24:00のデータがない場合もあるので8:06~8:23のデータを読み取りましたが、時刻の表示がありませんでした。作業者の機械稼働スタートが何らかの理由で7:30などになってしまう事もあり、逆に24時以前に機械電源オフとなり記録がなくなることもあります。常に7:00~24:00のデータがあるのであればxlimで対応出来ると思いました。
288
-
289
-
290
-
291
- 常に7:00~24:00のデータがあるのであればxlimで対応出来ると思いました。
292
444
 
293
445
  ![イメージ説明](989087a74bd8c27501d45f226a4d8d34.png)
294
446
 
@@ -298,298 +450,6 @@
298
450
 
299
451
 
300
452
 
301
- ###matplotlibにて読み取っているエクセルデータ
302
-
303
- 7:58 1 0
304
-
305
- 7:59 1 0
306
-
307
- 8:00 1 0
308
-
309
- 8:01 1 0
310
-
311
- 8:02 1 0
312
-
313
- 8:03 1 0
314
-
315
- 8:04 1 0
316
-
317
- 8:05 1 0
318
-
319
- 8:06 1 0
320
-
321
- 8:07 1 0
322
-
323
- 8:08 1 0
324
-
325
- 8:09 1 0
326
-
327
- 8:10 1 0
328
-
329
- 8:11 1 0
330
-
331
- 8:12 1 0
332
-
333
- 8:13 1 0
334
-
335
- 8:14 1 0
336
-
337
- 8:15 1 0
338
-
339
- 8:16 1 0
340
-
341
- 8:17 1 0
342
-
343
- 8:18 1 0
344
-
345
- 8:19 1 0
346
-
347
- 8:20 1 0
348
-
349
- 8:21 1 0
350
-
351
- 8:22 1 0
352
-
353
- 8:23 1 0
354
-
355
- 8:24 1 0
356
-
357
- 8:25 1 0
358
-
359
- 8:26 1 0
360
-
361
- 8:27 1 0
362
-
363
- 8:28 1 0
364
-
365
- 8:29 1 0
366
-
367
- 8:30 1 0
368
-
369
- 8:31 1 0
370
-
371
- 8:32 1 0
372
-
373
- 8:33 1 0
374
-
375
- 8:34 1 0
376
-
377
- 8:35 1 0
378
-
379
- 8:36 1 0
380
-
381
- 8:37 1 0
382
-
383
- 8:38 1 0
384
-
385
- 8:39 1 0
386
-
387
- 8:40 1 0
388
-
389
- 8:41 1 0
390
-
391
- 8:42 1 0
392
-
393
- 8:43 1 0
394
-
395
- 8:44 1 0
396
-
397
- 8:45 1 0
398
-
399
- 8:46 1 0
400
-
401
- 8:47 1 0
402
-
403
- 8:48 1 0
404
-
405
- 8:49 1 0
406
-
407
- 8:50 1 0
408
-
409
- 8:51 1 0
410
-
411
- 8:52 1 0
412
-
413
- 8:53 1 0
414
-
415
- 8:54 1 0
416
-
417
- 8:55 1 0
418
-
419
- 8:56 1 0
420
-
421
- 8:57 1 0
422
-
423
- 8:58 1 0
424
-
425
- 8:59 1 0
426
-
427
- 9:00 1 0
428
-
429
- 9:01 1 0
430
-
431
- 9:02 1 0
432
-
433
- 9:03 1 0
434
-
435
- 9:04 1 0
436
-
437
- 9:05 1 0
438
-
439
- 9:06 1 0
440
-
441
- 9:07 1 0
442
-
443
- 9:08 1 0
444
-
445
- 9:09 1 0
446
-
447
- 9:10 1 0
448
-
449
- 9:11 1 0
450
-
451
- 9:12 1 0
452
-
453
- 9:13 1 0
454
-
455
- 9:14 1 0
456
-
457
- 9:15 1 0
458
-
459
- 9:16 1 0
460
-
461
- 9:17 1 0
462
-
463
- 9:18 1 0
464
-
465
- 9:19 1 0
466
-
467
- 9:20 1 0
468
-
469
- 9:21 1 0
470
-
471
- 9:22 1 0
472
-
473
- 9:23 1 0
474
-
475
- 9:24 1 0
476
-
477
- 9:25 1 0
478
-
479
- 9:26 1 0
480
-
481
- 9:27 1 0
482
-
483
- 9:28 1 0
484
-
485
- 9:29 1 0
486
-
487
- 9:30 1 0
488
-
489
- 9:31 1 0
490
-
491
- 9:32 1 0
492
-
493
- 9:33 1 0
494
-
495
- 9:34 1 0
496
-
497
- 9:35 1 0
498
-
499
- 9:36 1 0
500
-
501
- 9:37 1 0
502
-
503
- 9:38 1 0
504
-
505
- 9:39 1 0
506
-
507
- 9:40 1 0
508
-
509
- 9:41 1 0
510
-
511
- 9:42 1 0
512
-
513
- 9:43 1 0
514
-
515
- 9:44 1 0
516
-
517
- 9:45 1 0
518
-
519
- 9:46 1 0
520
-
521
- 9:47 1 0
522
-
523
- 9:48 1 0
524
-
525
- 9:49 1 0
526
-
527
- 9:50 1 0
528
-
529
- 9:51 1 0
530
-
531
- 9:52 1 0
532
-
533
- 9:53 1 0
534
-
535
- 9:54 1 0
536
-
537
- 9:55 1 0
538
-
539
- 9:56 1 0
540
-
541
- 9:57 1 0
542
-
543
- 9:58 1 0
544
-
545
- 9:59 1 0
546
-
547
- 10:00 1 0
548
-
549
- 10:01 1 0
550
-
551
- 10:02 1 0
552
-
553
- 10:03 1 0
554
-
555
- 10:04 1 0
556
-
557
- 10:05 1 0
558
-
559
- 10:06 1 0
560
-
561
- 10:07 1 0
562
-
563
- 10:08 1 0
564
-
565
- 10:09 1 0
566
-
567
- 10:10 1 0
568
-
569
- 10:11 1 0
570
-
571
- 10:12 1 0
572
-
573
- 10:13 1 0
574
-
575
- 10:14 1 0
576
-
577
- 10:15 1 0
578
-
579
- 10:16 1 0
580
-
581
- 10:17 1 0
582
-
583
- 10:18 1 0
584
-
585
- 10:19 1 0
586
-
587
- 10:20 1 0
588
-
589
- 10:21 1 0
590
-
591
- 10:22 1 0
592
-
593
453
 
594
454
 
595
455
  ##ラズパイに保管しているエクセルデータ

4

追記

2021/08/21 12:41

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -589,3 +589,9 @@
589
589
  10:21 1 0
590
590
 
591
591
  10:22 1 0
592
+
593
+
594
+
595
+ ##ラズパイに保管しているエクセルデータ
596
+
597
+ ![イメージ説明](da3856f039be731f1bdb936dd5b40ed3.png)

3

誤字

2021/08/16 12:11

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -12,18 +12,26 @@
12
12
 
13
13
 
14
14
 
15
+
16
+
17
+ ###ラズパイ光センサーのデータ記録方法
18
+
15
- ラズパイ光センサーにて光を読み取った場合にラズパイ内のエクセルに記録し、matplotlibでエクセルデータ読み取り、リアルタイムにグラフ更新をかけています。このグラフにより、機械稼働状況の見える化を行っています。
19
+ ラズパイ光センサーにて光を読み取った場合にラズパイ内のエクセルに書き込みし、matplotlibでエクセルデータ読み取り、リアルタイムにグラフ更新をかけています。このグラフにより、機械稼働状況の見える化を行っています。
16
-
20
+
21
+
22
+
17
- データ記録方法は稼働していた場合にシグナルタワーの稼働ランプを読み取り、1記録、停止していた場合は停止ランプが作動するので0と記録機械の電源が入っていない場合は記録がされないようにしています。
23
+ データ記録方法は稼働していた場合にシグナルタワーの稼働ランプを読み取り、現在時刻と1記録、停止していた場合は停止ランプが作動するので現在時刻と0を記録、無人稼働の場合は稼働ランプ停止ランプの両方が点灯し、現在時刻と2列目に1と記録します。機械の電源が入っていない場合は記録がされないようにしています。
18
-
24
+
19
- 光を読み取った時間を記録し、それをグラフにしているだけなので最初に読み取った時間がグラフ表示される時間(画像では22:29スタート、終了23:38)となってしまってますが、表示はスタートを7:00、終了を24:00としたいです。
25
+ 光を読み取った時間を記録し、それをグラフにしているだけなのでその日の最初に読み取った時間がグラフにて表示される時間(画像では22:29スタート、終了23:38)となってしまってますが、グラフ表示はスタートを7:00、終了を24:00としたいです。
20
-
26
+
21
- ※機械の電源が入っていない時間も常に読み取るようにすることも考えましたが、休日など常に記録が続いてしまい、エクセルファイルが大量になってしまうので断念しました。
27
+ ※機械の電源が入っていない時間(シグナルタワーの点灯が全て消灯)も常に読み取るようにすることも考えましたが、休日など常に記録が続いてしまい、エクセルファイルが大量になってしまうので断念しました。
22
28
 
23
29
 
24
30
 
25
31
  ##光を記録しているコード
26
32
 
33
+ 稼働ランプを60秒読み取る場合は以下となります。
34
+
27
35
  ```python
28
36
 
29
37
  if time10 == 60:#60秒経過した場合
@@ -46,13 +54,45 @@
46
54
 
47
55
  ```
48
56
 
57
+ 停止ランプを読み取る場合
58
+
59
+ ```python
60
+
61
+ if time11 == 60:
62
+
63
+ rcd=[]
64
+
65
+ rcd.append(now.strftime('%H:%M'))
66
+
67
+ rcd.append(0)
68
+
69
+ rcd.append(0)
70
+
71
+ f=open('mydata'+nowday+'.csv','a',newline='')
72
+
73
+ wrtr=csv.writer(f,delimiter=',')
74
+
75
+ wrtr.writerow(rcd)
76
+
77
+ f.close()
78
+
79
+ time11=0
80
+
81
+ ```
82
+
83
+
84
+
85
+ ※電源オフの場合は何も処理しないとしています。
86
+
87
+
88
+
49
89
 
50
90
 
51
91
 
52
92
 
53
93
  ### 光センサーにて記録しているエクセルデータ
54
94
 
55
- ラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータに2列目に1と記録、停止ランプを60秒読み取った場合に2列目に0と記録、電源が入っていない場合は記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)は2列目が0で3列目が1なります。
95
+ ラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータ1列目現在時刻、2列目に1、3列目に0と記録、停止ランプを60秒読み取った場合に1列目に現在時刻、2列目に0と記録、3列目に0、電源が入っていない場合は何も記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)は2列目が0で3列目が1なります。
56
96
 
57
97
  ![イメージ説明](f2f944721ec89f9d557f645562d6cccc.png)
58
98
 
@@ -242,7 +282,13 @@
242
282
 
243
283
  ###plt.xlim(07:00,24:00)を入れた場合
244
284
 
245
- 7:00と24:00のデータがない場合もあるので8:06~8:23のデータを読み取りましたが時刻の表示がありませんでした。常に7:00~24:00のデータがあるのであればxlimで対応出来ると思いました。
285
+ 7:00と24:00のデータがない場合もあるので8:06~8:23のデータを読み取りましたが時刻の表示がありませんでした。
286
+
287
+ 作業者の機械稼働スタートが何らかの理由で7:30などになってしまう事もあり、逆に24時以前に機械電源オフとなり記録がなくなることもあります。
288
+
289
+
290
+
291
+ 常に7:00~24:00のデータがあるのであればxlimで対応出来ると思いました。
246
292
 
247
293
  ![イメージ説明](989087a74bd8c27501d45f226a4d8d34.png)
248
294
 

2

データ追記

2021/08/16 05:04

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -247,3 +247,299 @@
247
247
  ![イメージ説明](989087a74bd8c27501d45f226a4d8d34.png)
248
248
 
249
249
  ![イメージ説明](595e7567bd366216312305b538f22487.png)
250
+
251
+
252
+
253
+
254
+
255
+ ###matplotlibにて読み取っているエクセルデータ
256
+
257
+ 7:58 1 0
258
+
259
+ 7:59 1 0
260
+
261
+ 8:00 1 0
262
+
263
+ 8:01 1 0
264
+
265
+ 8:02 1 0
266
+
267
+ 8:03 1 0
268
+
269
+ 8:04 1 0
270
+
271
+ 8:05 1 0
272
+
273
+ 8:06 1 0
274
+
275
+ 8:07 1 0
276
+
277
+ 8:08 1 0
278
+
279
+ 8:09 1 0
280
+
281
+ 8:10 1 0
282
+
283
+ 8:11 1 0
284
+
285
+ 8:12 1 0
286
+
287
+ 8:13 1 0
288
+
289
+ 8:14 1 0
290
+
291
+ 8:15 1 0
292
+
293
+ 8:16 1 0
294
+
295
+ 8:17 1 0
296
+
297
+ 8:18 1 0
298
+
299
+ 8:19 1 0
300
+
301
+ 8:20 1 0
302
+
303
+ 8:21 1 0
304
+
305
+ 8:22 1 0
306
+
307
+ 8:23 1 0
308
+
309
+ 8:24 1 0
310
+
311
+ 8:25 1 0
312
+
313
+ 8:26 1 0
314
+
315
+ 8:27 1 0
316
+
317
+ 8:28 1 0
318
+
319
+ 8:29 1 0
320
+
321
+ 8:30 1 0
322
+
323
+ 8:31 1 0
324
+
325
+ 8:32 1 0
326
+
327
+ 8:33 1 0
328
+
329
+ 8:34 1 0
330
+
331
+ 8:35 1 0
332
+
333
+ 8:36 1 0
334
+
335
+ 8:37 1 0
336
+
337
+ 8:38 1 0
338
+
339
+ 8:39 1 0
340
+
341
+ 8:40 1 0
342
+
343
+ 8:41 1 0
344
+
345
+ 8:42 1 0
346
+
347
+ 8:43 1 0
348
+
349
+ 8:44 1 0
350
+
351
+ 8:45 1 0
352
+
353
+ 8:46 1 0
354
+
355
+ 8:47 1 0
356
+
357
+ 8:48 1 0
358
+
359
+ 8:49 1 0
360
+
361
+ 8:50 1 0
362
+
363
+ 8:51 1 0
364
+
365
+ 8:52 1 0
366
+
367
+ 8:53 1 0
368
+
369
+ 8:54 1 0
370
+
371
+ 8:55 1 0
372
+
373
+ 8:56 1 0
374
+
375
+ 8:57 1 0
376
+
377
+ 8:58 1 0
378
+
379
+ 8:59 1 0
380
+
381
+ 9:00 1 0
382
+
383
+ 9:01 1 0
384
+
385
+ 9:02 1 0
386
+
387
+ 9:03 1 0
388
+
389
+ 9:04 1 0
390
+
391
+ 9:05 1 0
392
+
393
+ 9:06 1 0
394
+
395
+ 9:07 1 0
396
+
397
+ 9:08 1 0
398
+
399
+ 9:09 1 0
400
+
401
+ 9:10 1 0
402
+
403
+ 9:11 1 0
404
+
405
+ 9:12 1 0
406
+
407
+ 9:13 1 0
408
+
409
+ 9:14 1 0
410
+
411
+ 9:15 1 0
412
+
413
+ 9:16 1 0
414
+
415
+ 9:17 1 0
416
+
417
+ 9:18 1 0
418
+
419
+ 9:19 1 0
420
+
421
+ 9:20 1 0
422
+
423
+ 9:21 1 0
424
+
425
+ 9:22 1 0
426
+
427
+ 9:23 1 0
428
+
429
+ 9:24 1 0
430
+
431
+ 9:25 1 0
432
+
433
+ 9:26 1 0
434
+
435
+ 9:27 1 0
436
+
437
+ 9:28 1 0
438
+
439
+ 9:29 1 0
440
+
441
+ 9:30 1 0
442
+
443
+ 9:31 1 0
444
+
445
+ 9:32 1 0
446
+
447
+ 9:33 1 0
448
+
449
+ 9:34 1 0
450
+
451
+ 9:35 1 0
452
+
453
+ 9:36 1 0
454
+
455
+ 9:37 1 0
456
+
457
+ 9:38 1 0
458
+
459
+ 9:39 1 0
460
+
461
+ 9:40 1 0
462
+
463
+ 9:41 1 0
464
+
465
+ 9:42 1 0
466
+
467
+ 9:43 1 0
468
+
469
+ 9:44 1 0
470
+
471
+ 9:45 1 0
472
+
473
+ 9:46 1 0
474
+
475
+ 9:47 1 0
476
+
477
+ 9:48 1 0
478
+
479
+ 9:49 1 0
480
+
481
+ 9:50 1 0
482
+
483
+ 9:51 1 0
484
+
485
+ 9:52 1 0
486
+
487
+ 9:53 1 0
488
+
489
+ 9:54 1 0
490
+
491
+ 9:55 1 0
492
+
493
+ 9:56 1 0
494
+
495
+ 9:57 1 0
496
+
497
+ 9:58 1 0
498
+
499
+ 9:59 1 0
500
+
501
+ 10:00 1 0
502
+
503
+ 10:01 1 0
504
+
505
+ 10:02 1 0
506
+
507
+ 10:03 1 0
508
+
509
+ 10:04 1 0
510
+
511
+ 10:05 1 0
512
+
513
+ 10:06 1 0
514
+
515
+ 10:07 1 0
516
+
517
+ 10:08 1 0
518
+
519
+ 10:09 1 0
520
+
521
+ 10:10 1 0
522
+
523
+ 10:11 1 0
524
+
525
+ 10:12 1 0
526
+
527
+ 10:13 1 0
528
+
529
+ 10:14 1 0
530
+
531
+ 10:15 1 0
532
+
533
+ 10:16 1 0
534
+
535
+ 10:17 1 0
536
+
537
+ 10:18 1 0
538
+
539
+ 10:19 1 0
540
+
541
+ 10:20 1 0
542
+
543
+ 10:21 1 0
544
+
545
+ 10:22 1 0

1

誤字

2021/08/16 04:39

投稿

F91_
F91_

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 機械稼働状況グラフの横軸表示を7スタートで24時終了としたい。
3
+ 機械稼働状況グラフの横軸表示を7:00スタートで24:00時終了としたい。
4
4
 
5
5
 
6
6
 
@@ -8,27 +8,57 @@
8
8
 
9
9
  グラフで機械が稼働している時間と停止している時間を可視化する事が目的です。
10
10
 
11
- ※青が稼働中、無色は停止で縦軸は1が最大、最小は0
11
+ ※青塗りつぶしが稼働中、無色は停止(y軸は1が最大、0が最小)
12
-
13
-
14
-
12
+
13
+
14
+
15
- ラズパイ光センサーにて光を読み取った場合にエクセルに記録し、matplotlibでエクセルデータ読み取り、リアルタイムに更新をかけています。
15
+ ラズパイ光センサーにて光を読み取った場合にラズパイ内のエクセルに記録し、matplotlibでエクセルデータ読み取り、リアルタイムにグラフ更新をかけています。このグラフにより、機械稼働状況の見える化を行っています。
16
-
16
+
17
- データ記録方法は稼働していた場合に稼働ランプが作動するので1と記録、停止していた場合は停止ランプが作動するので0と記録、機械の電源が入っていない場合は記録がされないようにしています。
17
+ データ記録方法は稼働していた場合にシグナルタワーの稼働ランプを読み取り、1と記録、停止していた場合は停止ランプが作動するので0と記録、機械の電源が入っていない場合は記録がされないようにしています。
18
18
 
19
19
  光を読み取った時間を記録し、それをグラフにしているだけなので最初に読み取った時間がグラフで表示される時間(画像では22:29スタート、終了23:38)となってしまってますが、表示はスタートを7:00、終了を24:00としたいです。
20
20
 
21
+ ※機械の電源が入っていない時間も常に読み取るようにすることも考えましたが、休日など常に記録が続いてしまい、エクセルファイルが大量になってしまうので断念しました。
22
+
23
+
24
+
25
+ ##光を記録しているコード
26
+
27
+ ```python
28
+
29
+ if time10 == 60:#60秒経過した場合
30
+
31
+ rcd=[]
32
+
33
+ rcd.append(now.strftime('%H:%M'))#時間追加
34
+
35
+ rcd.append(1)
36
+
37
+ rcd.append(0)
38
+
39
+ f=open('mydata'+nowday+'.csv','a',newline='')
40
+
41
+ wrtr=csv.writer(f,delimiter=',')
42
+
43
+ wrtr.writerow(rcd)
44
+
45
+ f.close()
46
+
47
+ ```
48
+
49
+
50
+
21
51
 
22
52
 
23
53
  ### 光センサーにて記録しているエクセルデータ
24
54
 
25
- ラズベリーパイ光センサーにて、1分毎に稼働していた場合にエクセルデータに1と記録、停止していた場合に0と記録、電源が入っていない場合は記録なし、無人稼働の場合は3列目が1なります(画像は稼働していないので全て0でグラフに反映はなしで考えています)
55
+ ラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータに2列目のに1と記録、停止ランプを60秒読み取った場合に2列目に0と記録、電源が入っていない場合は記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)2列目が0で3列目が1なります。
26
56
 
27
57
  ![イメージ説明](f2f944721ec89f9d557f645562d6cccc.png)
28
58
 
29
59
 
30
60
 
31
- ### 該当のソースコード
61
+ ### グラフを表示させている該当のソースコード
32
62
 
33
63
  ```python
34
64
 
@@ -207,3 +237,13 @@
207
237
  pass
208
238
 
209
239
  ```
240
+
241
+
242
+
243
+ ###plt.xlim(07:00,24:00)を入れた場合
244
+
245
+ 7:00と24:00のデータがない場合もあるので8:06~8:23のデータを読み取りましたが時刻の表示がありませんでした。常に7:00~24:00のデータがあるのであればxlimで対応出来ると思いました。
246
+
247
+ ![イメージ説明](989087a74bd8c27501d45f226a4d8d34.png)
248
+
249
+ ![イメージ説明](595e7567bd366216312305b538f22487.png)